Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Vision Artificial

Iniciado por Virtus, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Virtus

                                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
                               

ASK

                                Creo que te refieres a distinguir la pelotita del rostro y todo lo demás no?                                

Ionicboy

                                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..                                

Virtus

                                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                                

synchrnzr

                                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...)                                

JPeP

                                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?                                

Virtus

                                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.                                

synchrnzr

                                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:                                

seryu

                                Todo el mundo sabe qe dentro de esos cacharros hay un chino.                                

synchrnzr

                                Coño, eso no se me había ocurrido XDDD                                

JPeP

                                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                                

synchrnzr

                                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:                                

JPeP

                                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.                                

JPeP

                                ¡¡¡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                                

synchrnzr

                                Bueno, eran gammagrafías, en realidad... XDDD                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.