Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Virtus en 01 de Enero de 1970, 01:00:00 AM

Título: Vision Artificial
Publicado por: Virtus en 01 de Enero de 1970, 01:00:00 AM
                                He comprado un curioso aparatito que emula un raton pero curiosamente no hace falta tocarlo con las manos, os cuento:

El usuario se coloca una pelotita en la frente (refractiva) y el receptor esta compuesto por dos camaras de infrarojos y un panel emisor de infrarojos... de esta manera, el panel emite infrarojos y se refractan en la pelotita que el usuario se coloca en la frente y cada camara toma una vision distinta de la pelotita... luego, mediante triangulacion simple (y conociendo la distancia a la que se encuentran ambas camaras), determina la posicion de la pelotita...

Bueno, el caso es que me preguntaba sobre el algoritmo que usaba este asunto (no el de triangulacion) para "ver" la pelotita... imagino que hay una calibracion de fabrica o algo asi... pero, que algoritmos hay para ver la pelotita? imagino que se determina el diametro espacial de la pelotita... como???

Salu2. Virtus
                               
Título: Vision Artificial
Publicado por: ASK en 01 de Enero de 1970, 01:00:00 AM
                                Creo que te refieres a distinguir la pelotita del rostro y todo lo demás no?                                
Título: Vision Artificial
Publicado por: Ionicboy en 01 de Enero de 1970, 01:00:00 AM
                                pues si como dices el invento va con infrarrojos la pelota reflejará mucho y el resto de tu cabeza no, asi que lo que ve la camara es mucho negro o manchas grises y una mancha blanca (aproximadamente redonda) que es la pelota. Asi que mientras no hagas cosas raras como poner un espejo delante la camara (se supone que reflejarian mucha luz infrarroja) pues la cosa no debe tener mucho problem en identificar lo que es la pelota.

Un consejo, cuando estes delante de eso, acuerdate de parpadear mucho, no es que sea malo, pero si estas mucho tiempo la luz infrarroja te seca las retinas y puede ser molesto.

A to esto...como se llama el chacharro en cuestión y cuanto cuesta? pq para hacer experimentos como captura de movimientos y cosas asi puede estar bien..                                
Título: Vision Artificial
Publicado por: Virtus en 01 de Enero de 1970, 01:00:00 AM
                                Si, si el funcionamiento es asi como dices... pero no me refiero a eso... mi duda es mas bien la siguiente:

Efectivamente, la camara ve un "circulo" blanco donde está la pelotita y el resto de un tono mucho mas oscuro... bien...

Mi duda es, cuando la imagen entra por la camara que hace el software para saber la posicion de la pelotita???


Salu2. Virtus                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Eso que describes parece más bien el funcionamiento de una cámara range, de esas que devuelven una imagen de profundidad de la escena que enfocan (lo de la imagen de la pelotita blanca y lo demás oscuro...)                                
Título: Vision Artificial
Publicado por: JPeP en 01 de Enero de 1970, 01:00:00 AM
                                Por lo que dices (pelotita con unas caracteristicas de tono, saturación y valor dificilmente encontrables en la cara humana), yo me inclino a pensar que lo que realiza es una simple humbralización para segmentar dicha pelotita y que no hace ninguna otra historia rara.
La posición creo que tiene que venir determinada por la posición del punto central de la umbralizacion de la pelota en función del tamaño de la pantalla.

De todas formas hay una cosa que no tengo clara: ¿al mover la pelotita hacia un lado u otro que es lo que se consigue; que el objeto a mover se desplace en dicha direccion de una forma proporcional al movimiento de tu cabeza o que simplemente avance en dicha direccion una unidad dada?                                
Título: Vision Artificial
Publicado por: Virtus en 01 de Enero de 1970, 01:00:00 AM
                                Consigues un desplazamiento, cuya "violencia" viene definida por un valor offset... es decir, si subes ese valor, al mover la cabeza 4 cm a un lado, se traduce en un movimiento mas "largo" que si el valor del offset es menor....

Aun asi, sigo sin tener claro el proceso de software que hace para saber la posicion de la pelotita una vez que tiene dos imagenes (1 por camara).

Salu2.                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Pos basándonos en lo que decía JPep, puede ser bastante complejo.

Una opción es que, una vez umbralizadas ambas imágenes, se le apliquen operaciones morfológicas hasta reducir la "mancha" que queda de la pelotita a un pixel que represente el centro de la pelotita (a partir erosiones, dilataciones, openings, closings...) y luego se calcula la triangulación a partir de la posición de ese píxel en ambas imágenes. Esto es lo más simple. Con algunas correciones de movimiento para corregir la inestabilidad del puntero... pos ya tienes el problema solucionado ^_^'

Mmmm... bueno... mi exprofe de proceso de imágenes no te lo pintaría tan fácil XDDD

Sync :guay:                                
Título: Vision Artificial
Publicado por: seryu en 01 de Enero de 1970, 01:00:00 AM
                                Todo el mundo sabe qe dentro de esos cacharros hay un chino.                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Coño, eso no se me había ocurrido XDDD                                
Título: Vision Artificial
Publicado por: JPeP en 01 de Enero de 1970, 01:00:00 AM
                                No, si teneis razon, facil no hay nada. Te pones a hacer algo que dices "Bua, eso es una chorrada" y luego te pegas rayadas en unas cosas que jamas hubieses pensado que tenian ningun problema. :sonriendo:

Decidmelo a mi que llevo 2 meses intentado que rule un sistema de reconocimiento que, ignorante de mi, afirme en su dia que era muy sencillo  :triste:

Yo en este caso, lo que no entiendo es lo de las dos camaras. Con una sola y umbralizando una pelota con un color super extraño me parece que seria mucho mas sencillo. De todas formas yo creo que se basa en lo mismo: dos imagenes umbralizadas.

El tema es que creo que si usa dos camaras en vez de una, independiza en cierta manera  la respuesta del "artefacto" un poco de la distancia del sujeto a la pantalla (tiene dos guias en vez de una), aunque con una sola tambien se podria hacer teniendo en cuenta el tamaño de la bola umbralizada.

SALUDOS                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Pero con una sola no puedes conseguir información 3D... Yo sigo creyendo que lo que intentan es conseguir un efecto de cámara "range". Aunque lo suyo sería pasar por la web del fabricante y mirarlo, que seguro que lo pone :lengua:

De qué va tu sistema de reconocimiento? En la Universidad hice algunos experimentillos de reconocimiento (en la asignatura de proceso de imágenes/visión por computador) y a lo mejor te puedo dar alguna idea. Aunque siempre joden, los malditos. Nosotros reconocíamos botellas de Schweppes, corazones de pacientes, bloques de zirconita, tejidos... ^_^'

Sync :guay:                                
Título: Vision Artificial
Publicado por: JPeP en 01 de Enero de 1970, 01:00:00 AM
                                Bueno, tengo que seguir jugadores de futbol y realizar una animación en OpenGL en la que aparezcan en una posición proporcional a la que ocupan realmente, pero los malditos jugadores no saben que tiene que permanecer separados los unos de los otros y que sus camisetas tiene que estar visibles en todo momento por mi camara. ¡Si hasta se tocan entre ellos¡ Yo creo que lo hacen aposta.JAJAJA  :sonriendo:

Si alguien sabe de algun buen algoritmo de seguimiento, os lo agradeceria muy mucho (que sea facil de implementar, porfa plis)

Encima, yo veo mas facil directX que OpenGl, pero bueno, esa es otra historia...

Por cierto, ¿para que quieres informacion en 3d de la bola? ¿acaso necesitas 3d para mover el raton? Tu necesitas 2d, y con una sola camara es lo que tienes: 2d. La distancia de la camara a la bola viene determinada por el tamaño de la ultima una vez umbralizada, y si eso lo relacionas con el tamaño de la pantalla....EVOALA (Machada que seguro que si lo tengo que hacer yo me tengo que tragar mis palabras, pero bueno...)

Poz na, si alguien puede echar una mano se lo agradecere.                                
Título: Vision Artificial
Publicado por: JPeP en 01 de Enero de 1970, 01:00:00 AM
                                ¡¡¡Corazones de pacientes!!!
Que asco dios mio. Esas imagenes no me las mandes que soy muy flojito y soy propenso a desmayarme enseguida.  :ojo:

SALUDOOOOOOOS                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Bueno, eran gammagrafías, en realidad... XDDD                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Pos yo creo que lo de la posición 3D es para amortiguar el movimiento 2D y que no te baile demasiado el cursor. Además, puede ser interesante para conocer la orientación de la cabeza y saber a dónde miras, que es lo que me imagino que hace el aparato este. Aunque puedo estar imaginándomelo mal XDDD                                
Título: Vision Artificial
Publicado por: JPeP en 01 de Enero de 1970, 01:00:00 AM
                                Hombre, yo creo que lo que tu comentas es muy interesante, pero si se tratase de un sistema de tracking. En este caso no es así porque lo que hace es sustituir al ratón. De todas formas, es cierto que con dos camaras tienes una mayor robustez al determinar la posicion.

SALUDOS                                
Título: Vision Artificial
Publicado por: Virtus en 01 de Enero de 1970, 01:00:00 AM
                                Vayamos por partes:

1) Las dos camaras son imprescindibles por que de lo contrario no sabrias la posicion de la pelotita (triangulacion simple).Y la posicion es importante saberla para poder conocer la relacion del movimiento y el tamaño de la pelota.

2) Hasta donde yo veo (y cuidao' questoy de acuerdo con lo de que lo dificil se esconde tras una apariencia sencilla) el soft lo que hace es buscar pixels con color blanco, dentro de una tolerancia X. cuando los encuentra, almacena su posicion en una matriz, de forma que mirando el aspecto mas largo (en x o y) sabe el diametro de un circulo ficticio, cuyo tamaño determina su acercamiento/alejamiento de la camara.

3) Cuando tiene la distancia del circulo ficticio de ambas imagenes, ya conoce la longitud de dos lados del triangulo, y tambien la del tercero, que es la distancia entre ambas camaras... hace triangulacion et voila! sabe donde esta el punto en 3D.

Asi es como yo lo veo... se acepta opiniones.

Salu2. Virtus                                
Título: Vision Artificial
Publicado por: JPeP en 01 de Enero de 1970, 01:00:00 AM
                                Jopeta!! Que sofisticación.¿No seria mas facil usar el ratón? Juas, Juas :sonriendo:

Posiblemente funcione como dice Virtus, pero de todas formas, sigo sin entender muy bien para que quieres la posicion en 3D si la que necesitas es en 2D, a no ser quieras tener en cuenta el desplazamiento que haces al girar la cabeza, puesto que con una sola camara el movimiento y la distancia que capta la camara es inferior al que tu has realizado, pero con una buena calibracion yo creo que ya esta.

Por cierto, synchrnzr, ¿me puedes recomendar algun libro de reconocimiento o web donde encontrar algo del tema?. Gracias.

SALUDOOOOOS                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Pos no vas mal Virtus, en realidad lo que tú dices es lo primero que se le pasa a cualquiera con un mínimo de idea sobre reconocimiento de imágenes por la cabeza.

Aunque luego, cuando lo implementas y ves que el cursor parece que tenga el Parkison, es cuando empiezas a necesitar otros recursos como las operaciones mofológicas que comentaba para conseguir más precisión y estabilidad en el movimiento del cursor ^_^'

Yo abandoné el mundo del reconocimiento de imágenes cuando terminé la asignatura pq lo mio es el sonido, o sea que la web más interesante que conozco es la del CVC de la UAB (www.cvc.uab.es) XDDD

A lo mejor te puedes bajar los apuntes de las asignaturas de Proceso de Imágenes o Visión por Computador en los enlaces de teaching, pero te advierto que estan en català ^_^'

Son muy completos, toda la base que necesites estará allí. El centro en sí tiene un cierto prestigio en su ámbito y, de hecho, desarrollan sistemas de visión por computador para varias compañías (como Schweppes, de ahí salió una de nuestras prácticas de reconocimiento de imágenes XDDD)

Sync :guay:                                
Título: Vision Artificial
Publicado por: Zaelsius en 01 de Enero de 1970, 01:00:00 AM
                                Estoy de acuerdo con el ultimo post en que debes buscar informacion en webs de universidades, que son las que se encargan de investagaciones como esta.
Yo, por mi parte, pude probar en un museo tecnologico de Paris un aparato que tras "enganchar" la posicion de tu pupila, te permitia dirigir un cursor con la mirada.Realmente alucinante.                                
Título: Vision Artificial
Publicado por: Ionicboy en 01 de Enero de 1970, 01:00:00 AM
                                Virtus, nos podias contar un poco más el funcionamiento del aparato, pq tu lo tendrás muy claro, pero yo por lo menos aun no me he enterado como se maneja...
el cursor lo mueves según donde mira tu cabeza o el cursor se coloca en la posicion perpendicular a tu cabeza en la pantalla (lo que resultaria además de incomodo algo gracioso de ver)
y otra duda... como haces click?????

sobre lo que ya se ha dicho, me parece a mi que lo que hace una vez que tiene la posicion 3d es que conociendo la diferencia entre dos puntos haya el radio de la circunferencia que los une (ya q se supone q el ususario gira la cabeza para mover el raton), conocido este radio y angulo de giro, se pueden relacionar con la distancia a las camaras (que supongo estarán pegadas a la pantalla) y asi determinar donde colocar el raton.

Tb se puede ver como que lo que hace es determinar un segundo punto 3d (el punto de giro de tu cabeza) para poder trazar una linea que al chocar con el plano de la pantalla (determinado por las posiciones de las camaras) determine donde esta el cursor.

Para saber si lo q tiene en cuenta es solo los giros de cabeza o si el aparato intenta adivinar donde estás mirando prueba a mover la cabeza en un mismo plano imaginario paralelo a la pantalla pero sin girar la cabeza, si el raton se mueve y tb se mueve cuando solo giras la cabeza manteniendote quieto entonces es probable que usen algo parecido a esto q he dicho, vamos digo yo :lengua:

                               
Título: Vision Artificial
Publicado por: Virtus en 01 de Enero de 1970, 01:00:00 AM
                                A ver si esto nos aclara algo mas:

http://www.naturalpoint.com/

Salu2. Virtus.                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Pero si lo pone todo en la web en el apartado de características técnicas ^_^'

http://www.naturalpoint.com/prod/technical.htm
http://www.naturalpoint.com/prod/technical2.htm

Por si a alguien se le escapa un poquillo el inglés:

La "cámara" contiene emiten infrarrojos que se reflejan en la bolita esa, que en realidad es un material que refleja bien los infrarrojos. La imagen de infrarrojos pasa a través de un filtro y es captado a través de unos sensores CMOS como si fueran una cámara digital, se umbraliza la señal a un cierto nivel y se pasa por puerto USB a los drivers que acaban de calcular la posición.

No veo que hagan falta dos cámaras para hacer ninguna triangulación, porque la orientación del punto reflector se puede calcular a partir de la intensidad reflejada (a mayor ángulo, menor intensidad) y de hecho en la web pone que se puede utilizar más de una cámara para aumentar el radio de rastreo (50º por cámara) pero no para calcular ningún tipo de triangulación.

Me gusta más lo de la retina. Eso sí que lo conocía y sé que las primeras investigaciones sobre el tema eran con fines militares, para los pilotos de cazas (que miedo, por Dios XDDD) Yo cuando miro la pantalla muevo los ojos, no toda la cabeza (ley del mínimo esfuerzo)

Venga, un saludo!

Sync :guay:                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Mmmm... pensándolo bien debe ser un poco ridículo ir con una mierda de esas pegada en la frente. Imagínate que sales a la calle y te olvidas de despegártela... XDDD                                
Título: Vision Artificial
Publicado por: TurBo_biT en 01 de Enero de 1970, 01:00:00 AM
                                Holas.

Me temo que no es tan sencillo, el calculo de las coordenadas basandose en su intensidad no es suficiente, ya que la intensidad solo te dice el grado de desviacion entre el emisor y el plano de la pegatina esa, pero no te dice en que eje se produce, asi que una de 2, o hay 2 camaras (y con eso ya se podria sacar en que eje), o hay una sola camara y la pegatina esta formada por algun material polarizado, que lo que basicamente hace es cambiar el color del reflejo, no solo su intensidad, con lo que se puede sacar la agulatura por la intensidad, y el eje por su color.

Saludotes.                                
Título: Vision Artificial
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Creo que eso se puede deducir de la posición del punto o también es posible lo que apuntas, que el material del la bolita sea un reflector polarizado. Pero, por lo que pone en la web, basta con una cámara para captar su posición

Sync :guay:                                
Título: Vision Artificial
Publicado por: Bjorg en 01 de Enero de 1970, 01:00:00 AM
                                Yo mas bien estoy de acuerdo con lo del chino, pero yo creo que son 2 y no uno, uno para cada camara, deben ser chinos que hayan estudiado Imagen y Sonido. ... y muy pequeñitos.  :ojo: