fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Proyecto de visión artificial+Lego NXT (presentación)

12 Respuestas
4 Usuarios
0 Reactions
4,381 Visitas
jorcoval
Respuestas: 418
Topic starter
(@jorcoval)
Reputable Member
Registrado: hace 18 años

Bien, estoy acabando por fin.

La breve descripción de siempre: El proyecto consiste en capturar video en movimiento de una persona. CUando dicha persona mueva un brazo, un robot (robonova o lego nxt) conectados al PC debe imitar dicho movimiento.

Está programado en C con OpenCV, de momento es una versión beta y no sé si puede jorobar algo de vuestros PC's por tanto muestro unas imágenes y descripción del funcionamiento. Si interesa, haré un tutorial de programación cuando lo acabe del todo y lo presente.
-----------------------------------------------------------------------------------------

Primero se nos muestra un menu de usuario. Hay unos checkbox para mostrar los distintos resultados del programa, un textbox y varios botones.
menu
El usuario pulsa el botón "Ver referencia" y se le muestra una ventana donde con un slider
ref1
Ajustando el slider debe obtener una imagen aproximada de su torso. Fijaos que el rectangulo ajusta al torso dinámicamente (se muestra tal cual en el programa). Con una flecha roja he indicado que el slider se ha movido (esa flecha es paint, no del programa)
ref2
Cuando el usuario decide que la imagen de referencia es más o menos adecuada, pulsa el botón "Capturar referencia". Se muestra el resultado obtenido:
ref3
Ahora el usuario pulsa "Capturar video", con lo que dinamicamente el programa calcula el ángulo que forma el brazo del usuario con el torso del mismo. Muestro las ventanas de Video Real (información que se muestra al usuario, con una linea verde se le señala su brazo, y un rectangulo rojo marca su torso. Esta linea y rectangulo son reales del programa, no añadidos posteriores).
Por otro lado una ventana muestra solo el brazo, como procesamiento interno, con la línea blanca a partir de la cual obtengo el ángulo.
Finalmente fijarse en el textbox, que muestra el ángulo de forma numérica
final
-----------------------------------------------------------------------

El siguiente paso es comunicar ese ángulo al Robonova para que mueva el servo adecuado. Estas librerías de comunicación ya las tengo hechas.
Otro paso sería comunicar la misma información a un LegoNXT. Esto todavía no lo tengo pero creo que es bastante sencillo mediante NXC (programación en C para Lego) y enviar el ángulo mediante un bluetooth.

Responder
11 respuestas
jorcoval
Respuestas: 418
Topic starter
(@jorcoval)
Reputable Member
Registrado: hace 18 años

Sin un buen umbralizado, no funciona. Por tanto el contraste tiene que ser lo mejor posible (las fotos están hechas en un laboratorio, una sudadera negra sobre una pantalla de proyector).

El rectángulo que se ve en la imagen "Final" es prácticamente fundamental: con él elimino todo lo que se considera torso en posición de firme.

Al principio traté de hacerlo mediante diferencia de imágenes, pero siempre que te mueves con algo de ropa se arruga de una forma u otra que hace imposible una buena diferencia, por eso pensé en utilizar un marco dinámico que se ajustase al torso...y luego eliminar con él toda información innecesaria.

Por cierto que aún estoy un poco lejos de lanzar campanas al vuelo: mientras que con imágenes estáticas funciona perfecto y en un tiempo mejor que bueno, en video hay algo que provoca algún desbordamiento 🙁
Seguiré optimizando o si no me veré obligado a reducir el nº de frames x segundo (o de frames procesados, al menos) aunque estoy bastante contento con el resultado

Mif Aunque he utilizado las OpenCv hay muchisimas cosas que he implementado desde 0, como por ejemplo una función para acceder pixel a pixel en la imagen, otra de adelgazamiento, búsqueda de centroides y radios, etc. He utilizado las OpenCV (al menos, propiamente dichas) sobretodo para la captura de imagen y poco más

Responder
jorcoval
Respuestas: 418
Topic starter
(@jorcoval)
Reputable Member
Registrado: hace 18 años

Muy buen trabajo jorcoval. Iras a la campus??? lo digo porque se podria hacer una conferencia improvisada que no este dentro de la programacion de la campus sobre vision artificial ( con los expertos que tenemos, tu, mif , eventronic, y alguno que me dejo seguro ) podria ser muy interesante

La verdad es que me gustaría ir. Si me es posible (vamos, si puedo rascar el dinero de la entrada XD) iré, y si veis adecuado que participe un poco en una charla o conferencia lo haré con mucho gusto

Responder
mif
Respuestas: 1095
 Mif
(@mif)
Noble Member
Registrado: hace 19 años

jorcoval, es que tenemos que hablar de todo esto tranquilamente y en persona... no puedes faltar!

Responder
jorcoval
Respuestas: 418
Topic starter
(@jorcoval)
Reputable Member
Registrado: hace 18 años

Finalmente, he acabado todo el proyecto.

Cuelgo una presentación en PDF (que ocupa menos) con los distintos pasos del proyecto.

Como hay un límite de 2 MB para la subida de archivos, la presentación va en 2 partes

Responder
jorcoval
Respuestas: 418
Topic starter
(@jorcoval)
Reputable Member
Registrado: hace 18 años

Parte 2 de la presentacion

Responder
Página 2 / 3
Compartir: