jueves, 2 de febrero de 2012

Detección de Tapa Tutorial Labview

Hola a todos, en esta entrada vamos a trabajar con visión builder para hacer un proyecto. Nuestro objetivo principal será reconocer si un bote tiene o no una tapa colocada, de tal forma que nos dará como “ok” cuando esté puesta y como “ko” cuando no lo esté.
Este tutorial lo he sacado de una serie de tutoriales que incluye labview dentro del entorno de visión, hay unos 6, cada uno explicando una cosa.
Uno de los puntos fuertes de visión builder es su extrema sencillez para ahcer las cosas, aquí os adjunto el conjunto de acciones que tendremos que meterle a la cámara para captar.





Como veis, con apenas 5 opciones somos capaces de detectar si un bote lleva tapa o no. Esto como es un tutorial vamos a utilizar imágenes que ya nos proporciona labview. Ahora os explicaré uno a uno cada uno de los pasos que he dado para conseguir esto.

Comenzamos con la “simulación”.









Con esta función vamos a meter las imágenes, contenidas en una carpeta dentro de labview. La dirección de la carpeta es lo que está en negro de la imagen. Para adjuntarla recordad que debéis dar a la “carpeta” que hay al lado derecho. Así como también podemos cambiar en nombre de la función en “step name”.





Importante, marcaremos lo de “cycle through” para que se nos cree un bucle de las imágenes contenidas en la carpeta.
Una vez tengamos ya nuestra secuencia de imagen será el momento de comenzar con el reconocimiento. Lo primero que vamos a hacer es buscar un patrón común a todas las imágenes, para que nuestra cámara se sitúe correctamente. Para eso nos iremos a “match pattern”, la segunda función.





Una vez la tengamos colocada veréis que, al darle, nos aparecerá una región en un color, este es el “patrón “ al que yo me refería antes. Tan solo elegiremos una parte que podamos ver común en todo el proyecto. Yo he seleccionado este, que se repite en todas y la cámara capta fácilmente.





Como veis, donde pone “región of interest” es donde decimos que la cámara esté chequeando, esto recomiendo que seleccionemos “full image” para que coja automáticamente toda la imagen, así cuando la cámara se mueva, o el bote, o cualquier cosa, va a seguir captando nuestro patrón, porque se encuentra dentro de la región de interese, es decir, en cualquier sitio dentro de la imagen.




Como veis, si seguís navegando por las pestañas vemos diferentes tipos de configuración.
Así como en template, podemos editar nuestra imagen patrón, así como borrarla y seleccionar otra si es lo que queremos.








Si nos pasamos a “settings”  podemos configurar el número de patrones que deseamos buscar (si el objeto en cuestión es algo más complicado, podemos reconocerlo mejor con más patrones), así como también elegir el “score”, es decir la puntuación, que viene a significar el “rango de captación”, cuanto más alto, más difícil coger la imagen, ya que debe verse muy bien, la relación va entre los 1000, si ponemos 900, estaremos diciendo que se parezca el patrón en un 90%. También podemos configurar el ángulo de giro de nuestro objeto, para que, a pesar de haber girado, sea detectado igualmente.




Y si por último nos vamos a “limits” podemos decidir el número de patrones que tenemso que seleccionar para que se nos reconozca como imagen buena, así como también el máximo.




Una vez configurado esto a nuestro gusto, podremos darle a “ok” y ya tendremos nuestro patrón en la imagen. Como os enseño aquí.
Aunque es poco visible s os fijáis, en los extremos de la imagen hay una línea de color “rosa” pues esa representa al “rango de visón del que antes os hablé”.







Una vez tenemos esto, vamos a utilizar una función que ayuda al programa a situarse, se trata de establecer un eje de coordenadas, esto es importante ya que nuestro objeto va a simular una cinta, y por tanto se estará moviendo. Por eso necesitamos decir a la cámara donde está pinado nuestro bote. Para que nos entendamos. Abrimos este recurso.




Y si le damos click, en la primera pestaña podremos configurar el nombr de la función, si pasamos a la siguiente pestaña.
Y en modo le marcamos “horizontal motion”, para que la cámara sepa que habrá desplazamiento lateral.
Aconsejo que, en la parte donde pone “origin”, seleccionemos la función del patrón de referencia, para que automáticamente se centre en función de la colocación del patrón.




Una vez le demos nos aparecerá que el eje se nos crea a partir del punto de origen de nuestro patrón.






Una vez llegados a éste punto será el momento de poner la función más importante, la de detección de tapa. Para eso abrimos la siguiente función. “Measurement intensity”.





Ahora como en todas las pestañas, podemos configurar el nombre de nuestra función. Desde la pestaña “main”, vamos a establecer 3 cuadros, que si os fijáis, se colocan justo donde va a pasar nuestra tapa, en caso de haberla.
Importante, en este caso, como vamos a trabajar en 3 cuadros concretos, y no en toda la imagen, marcaremos constant en la región de interés.

Y debemos marcar la casilla donde dice ajustar patrones a punto de origen. Debe saliros algo así.






Aconsejo que en la pestaña de límites, agreguemos un mínimo de 0 y un máximo de  100, es decir, un rango muy bajo, de tal manera que cuando la cámara detecte un cambio de color (por la tapa) ésta afirme que hay tapa.


Y ya por último será el momento de añadir la función que nos mostrará, mediante elementos booleanos, si hay tapa o no.




Tan solo deberemos abrirlo una vez lo tengamos en la paleta y nos saldrá esta ventana.




Y ya tan solo en la pestaña de custom overlay, colocamos un indicador, le decimos que nos muestre OK cuando sea verdadero, y KO cuando sea falso, seleccionamos los colores, y en “value” seleccionamos la función que capta la tapa, es decir, el paso anteriormente explicado. De esta forma, de manera booleana, cuando nos de fail, el paso de detectar tapa, el programa nos dirá KO en la parte superior y si por el contrario, hay tapa, nos dira que OK. Como os enseño en estas dos imágenes.






Y ya tendríamos nuestro programa hecho con esto, espero que os haya servido de ayuda y hayáis disfrutado, un saludo a todos.

DESCARGAR PROGRAMA AQUÍ.

No hay comentarios:

Publicar un comentario