martes, 31 de enero de 2012

Clasificación de objetos

Muy buenas a todos, en la siguiente práctica lo que haremos será mediante una web cam, y gracias a nuestro soporte de vídeo visión builder, vamos a conseguir visualizar objetos e indentificarlos con etiquetas que nosotros mismos crearemos.

El proceso será muy sencillo, tan solo tendremos que crear una especie de “huella” o patrón, la cámara captará todos aquellos cuerpos que sean fiel a los “patrones” anteriormente creados.
Aquí os enseño una imagen que explica bastante bien el objetivo de esta práctica.




Como veis, hemos puesto 2 monedas, 2 tuercas y 1 púa de metal. Tan solo me han bastado 3 patrones, 1 para la púa, otro para la tuerca, y otro para la moneda, como veis, hay parejas, y no se genera ningún problema, la cámara reconoce la otra moneda y la otra tuerca, ya que son similares al patrón inicial. De tal manera que, como os enseño en esta imagen, si quito alguna pieza, las cosas se siguen captando.




El proceso es bastante sencillo, apenas tiene 3 o 4 pasos. Primero empezaremos adquiriendo datos “adquire image”, después, a través de “visión builder”  lo que haremos será quitar una capa de color, para verlo en blanco y negro y, por tanto, captar mucho mejor los objetos.
Aconsejo que los objetos seleccionados sean oscuros y opacos, para poder captarlos mejor y evitar así problemas con la luz.
Una vez tengamos nuestros objetos seleccionados, será el momento de “captarlos” para eso nos iremos a detect objetcs, y será ahí donde creemos lo patrones, que nos servirán para captar muchos cuerpos iguales.

Esto sería la teoría. Ahora vamos poco a poco con el proyecto.
Lo primero que haremos será abrir visión builder. Y seleccionamos “my computer”.








Una vez le demos se nos abrirá el entorno de visión builder, y será aquí donde comencemos a trabajar.

Como bien os dije, lo primero será adquirir imágenes, para eos nos vamos a “adquire imagen” como os enseño aquí.




 Entonces cuando le demos nos saldrá una ventana donde nos dirá qué cámara deseamos coger, yo tengo una Logitech, por tanto me sale en el buscador. Además de eso le daremos a que el modo de adquisición sea continuo – inmediato, una vez tengamos la cámara y esto seleccionado, daremos a play, y nos saldrá la cámara.




Ahora nos toca quitar una capa de color para visualizar las cosas en blanco y negro, y captar así las cosas mucho mejor.
Para eso nos vamos a “vision assitant”. Aquí os lo pongo.






Cuando le demos nos llevará a otra parte del entorno, importante, esto no es visión builder, es “visión assitant”, otro entorno diferente, no penséis que es lo mismo. Entonces nos aparecerá otra ventana diferente.
 Lo primero que veremos será una región en verde, esta será la región en la que meteremos los objetos para que sean captados.
Podemos configurar la cámara en “constant” para que seleccione simplemente ese pequeño marco (que podemos modificar de tamaño, claro) o bien podemos darle a “full image” para que capte todo lo que ve la cámara.
Podemos cambiar el nombre al entorno en la parte superior.
Pero lo que haremos será irnos a “edit” donde quitaremos la capa de color para verlo en blanco y negro.




Una vez le demos a edit deberemos irnos a “extrat color panel” y coger una capa, yo he cogido la roja. Una vez hagamos eso, se nos verá la imagen en blanco y negro (en mi caso se ve negro porque estoy trabajando sin máquina). Una vez tengamos eso completado, le daremos a OK. Y pasaremos al siguiente paso.





Ahora pasaremos al proceso de localización de “patrones” de tal manera que con uno solo, podríamos ser capaces de captar y clasificar todos los que la cámara pudiera ver.

Para eso nos vamos, desde el entorno de visión builder, a la parte donde nos dice “classify objetcts”´.




Cuando le demos lo primero que tendremos que hacer es colocar la sección de lectura, en mi caso es el cuadro que pone “objetos”, como también podemos cambiar el nombre de esta región como os muestro en la imagen, lo que nos importa es donde dice “edit classifier file”.
Nos meteremos ahí.






Entonces entraremos en la ventana de clasificación, aquí lo que haremos será crear un patrón, como veis hay muchas opciones, podemos seleccionar si los objetos son oscuros, para verlos aún mejor, así como también crear patrones y elegir el método de “captación”, o ver los patrones que ya tenemos… nos iremos a “add class”.





Cuando le demos a “add class” nos tendrá que salir una pequeña ventana  con la cámara funcionando, ahora será el momento de empezar con los componentes, pondremos algún componente en la pantalla, lo marcaremos como”dark objetct”, seleccionaremos el objeto en cuestión y pondremos en “range” de tal forma que capte la moneda, una vez lo tengamos, tendremos que darle a “add class” nos pedirá un nombre, y cuando lo pongamos tan solo necesitaremos darle a “add sample” con lo que ponemos  el patrón en la lista. Si queréis ver si se os meten las cosas en la lsita tan solo tenéis que dar a “edit classifier” en la parte superior.






Desde esta opción también podemos ir borrando las que no nos gusten.

Una vez tengamos nuestros patrones listos, será el momento de hacer “run continuo” y ver si coge las cosas bien. Yo he utilizado un elemento que tiene una lámpara dentro de una caja oscura, y hace que las cosas se vean mucho mejor. Este sería el resultado final del proyecto.






Como veis, tan solo tenía 3 patrones, sin embargo está reconociendo  5 objetos, precisamente por lo que os conté antes, con un solo patrón clasificamos las piezas iguales.
Si por el contario quito alguna, veréis que la cámara sigue reconociendo las cosas sin problema.





Y esto sería todo, veré si puedo grabar un pequeño vídeo cuado lo vuelva a probar asi veréis en tiempo real como funciona la cosa, esto es todo por hoy espero que os haya gustado un saludo!




Para descargarte el programa PINCHA AQUÍ




No hay comentarios:

Publicar un comentario