Vous êtes sur la page 1sur 11

Prctica 6.

- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

1
Prctica 6.- Bsqueda de patrones

La bsqueda de patrones es una tcnica ampliamente utilizada en aplicaciones de visin
industrial por computador. Consiste en, dado un objeto patrn de referencia, buscar en nuevas
imgenes objetos similares al de referencia. El usuario o programador de una aplicacin de
bsqueda de patrones a menudo podr decidir el grado de similitud que se considera aceptable
o, dicho de otra manera, cul ser el umbral que definir cundo se considera que un objeto
se corresponde al patrn de referencia.

Un sistema de reconocimiento de patrones, como se menciona en la literatura sobre esta
tcnica, se compone, como mnimo, de un elemento sensor que forma una imagen a partir del
mundo real, un sistema de preprocesado y/o realce de caractersticas de dicha imagen, un
sistema extractor de caractersticas y un clasificador que decide cmo clasificar la imagen
obtenida.

En esta prctica se explica el trabajo con patrones con Sherlock 7. Sherlock 7 incorpora
distintos algoritmos para la bsqueda de patrones en imgenes en monocromo. A continuacin
se describen los principios de funcionamiento y el uso de cada uno de ellos.


Search Correlation

Este algoritmo basado en el histograma crea un mapa de los valores en la escala de grises del
patrn y busca coincidencias en la regin de inters.

Se buscan posibles coincidencias utilizando unos pocos pxels del patrn, es decir, se
submuestrea el patrn y se buscan coincidencias del patrn submuestreado. Cada una de las
posibles ocurrencias es examinada con un nmero superior de pxels hasta que cada una de
ellas se descarta o acepta como coincidencia. Es conveniente utilizar este algoritmo en
imgenes poco contrastadas.

Ventajas Desventajas
Ejecucin rpida
Permite escalado y rotacin de la imagen
Puede encontrar mltiples coincidencias en la
imagen

El uso del escalado y rotacin aumenta
mucho el tiempo de ejecucin del algoritmo
No es una buena solucin para el trabajo con
imgenes que pierden informacin sensible al
submuestrearlas


Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

2
Search Geometric

Este algoritmo est basado en la lgica de contornos y crea un modelo de los bordes del
patrn. Por este motivo, necesita que el patrn tenga un mnimo de pxels que formen el
contorno. Es conveniente utilizarlo en imgenes contrastadas con los bordes claramente
definidos.

Ventajas Desventajas
Permite trabajar con imgenes rotadas
Puede encontrar mltiples coincidencias en la
imagen


No permite el escalado de la imagen






Search Line based

Este algoritmo tambin est basado en la lgica de contornos y crea un modelo de los bordes
rectos del patrn.

Es otra forma de Search Geometric, un algoritmo basado en contornos. En este caso, se ha
optimizado el algoritmo para patrones de lneas rectas.

Ventajas Desventajas
Permite rotacin en la imagen
Permite el escalado de la imagen
Suele ser ms rpido que Geometric
Slo puede encontrar un patrn en la imagen


Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

3
Aprendizaje de patrones

Cuando se define una ROI y se selecciona uno de los algoritmos de bsqueda de patrones,
Sherlock realiza un aprendizaje del contenido de la ROI de forma automtica y guarda la
informacin resultante en un vector de caractersticas que se emplear posteriormente en la
comparacin. Si el aprendizaje que realiza Sherlock resulta satisfactorio para la aplicacin a
desarrollar, se pueden continuar realizando investigaciones directamente. El caso ms comn
es que haya que ajustar el aprendizaje que ha hecho Sherlock.

Cada algoritmo de bsqueda de patrones tiene opciones de configuracin distintas. Se
distinguen dos tipos de parmetros:

Por un lado estn los parmetros que afectan al aprendizaje (Train parameters). Al modificar
cualquiera de estos parmetros, hay que reentrenar al algoritmo. Es decir, estando en el
modo Run, despus de cambiar los parmetros, debe cambiarse al modo Train y de nuevo al
modo Run.

Por otra lado estn los parmetros de ejecucin (Run parameters), que definen la forma en
que el algoritmo busca los patrones.

A continuacin se da una descripcin de cada algoritmo. En el caso de Geometric, se utiliza un
ejemplo, dado que es ampliamente utilizado y su configuracin es ligeramente ms complicada
que el caso de los otros algoritmos.

Search Correlation

Este algoritmo requiere algunos ajustes si se quiere que encuentre objetos con rotacin. Para
habilitar la capacidad de detectar un patrn rotado, debe asignarse el valor true al campo
Train:use rotation. En los campos min rotation y max rotation se define el margen de rotacin
que pueden presentar las piezas. Junto con rotation increment, Search Correlation sabr
cuntos patrones deber generar para poder comparar. De esta manera, si se definen max
rotation = 45 ,min rotation = -45 y rotation increment = 5, Search Correlation generar


patrones, con una diferencia de rotacin entre ellos de 5, con los que comparar la figura
correspondiente a cada inspeccin de pieza. Como se ha comentado anteriormente, esto
incrementar notablemente el tiempo de ejecucin del algoritmo.

De la misma forma, se puede habilitar el escalado de los patrones. Los parmetros para el
escalado son anlogos a los de rotacin en cuanto a la generacin de nuevos patrones.

45 45
5
18
Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

4
Algunos de los parmetros de ejecucin de uso ms frecuente son:

max matches: nmero mximo de patrones que buscar el algoritmo

min score: umbral que determina si una identificacin se considera vlida o no


Search Geometric

Como se ha comentado anteriormente, Search Geometric se basa en la deteccin de
contornos. A continuacin se muestra una forma de definir los contornos de inters en una
pieza. Queremos verificar que la posicin de la pieza es correcta. Para ello nos ayudamos de
los pins que tiene la pieza en su parte inferior. Dado que no estn situados simtricamente, su
posicin relativa a la pieza nos indica si la pieza est orientada de forma correcta o al revs.
Vanse las imgenes siguientes.




Pieza orientada correctamente



Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

5
Pieza orientada incorrectamente


En primer lugar, definimos el patrn a buscar. Desde Sherlock cargamos la imagen 0000.bmp
que se encuentra en el directorio search\ejemplo\imagenes. Definimos una ROI rectangular
que contenga toda la pieza y seleccionamos el algoritmo Search - Geometric.



Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

6

Como se puede observar, el algoritmos, de forma automtica, no slo selecciona el contorno
que nos interesa, sin otros contornos presentes en el interior de la ROI. Puede que nos
interese utilizar los contornos que ha detectado automticamente o puede que queramos
editar (aadir/suprimir) los contornos para seleccionar nicamente los que nos interese.

En este caso, dado que el tornillo que se ve en la imagen puede atravesar parcial o totalmente
la pieza sin que ello afecte a la verificacin de posicin que queremos realizar, descartaremos
todos lo contornos correspondientes al tornillo. Para ello, abrimos el editor de patrones
clickando sobre Parameters.










Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

7



Para editar los contornos que queremos que utilice Search Geometric utilizaremos los
botones Delete points, Undelete y Delete. Si clickamos sobre Delete y luego sobre cualquiera
de las lneas verdes, veremos que la lnea que define el borde sobre el que hemos clickado se
vuelve roja. Esta lnea se descarta de los contornos que forman el patrn y no ser
considerada por el algoritmos.

Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

8

En este caso, hay una nica lnea que define el contorno, pero no siempre es as. Search
Geometric puede dividir el contorno de una pieza en varias lneas al detectar los gradientes
que definirn los bordes.

Clickamos sobre Undelete y luego sobre la misma lnea y observaremos que vuelve a ser
verde. A continuacin seleccionamos Delete y clickamos sobre la lnea bajo la E.

Con Delete Points se pueden descartar pxels individuales. Seleccionamos Delete Points y
seleccionamos todos los pxels correspondientes al tornillo que sobresale por la parte superior
de la pieza.

El resultado sera el siguiente.

Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

9


Una vez realizadas estas modificaciones, cambiamos el parmetro min score a 80 y cambiamos
a modo Train para, inmediatamente, volver al modo Run. Con esto hemos realizado el
aprendizaje del patrn. Clicamos sobre la ROI rectangular para editar sus parmetros y en la
pestaa Position clicamos sobre Fit to window para que busque patrones en toda la imagen.

Para poner a prueba dicho aprendizaje, definimos dos variables para poder monitorizar el
nmero de patrones encontrados (num matches) y el grado de similitud (best score) con el
patrn o monitorizamos directamente el resultado desde una ventana Watch. Cargamos la
secuencia que se encuentra en el directorio ejemplo\imagenes. Para poder ver correctamente
los resultados de la investigacin se recomienda modificar el valor de Delay before load.

Como se puede observar, cuando num matches es 1, el valor del grado de similitud es superior
a 80. Se aconseja asignar distintos valores a min score y observar como varan los resultados.


Search Line Based

En este caso, algunos de los parmetros que se pueden ajustar son el gradiente mnimo y la
longitud mnima y mxima de un contorno que se deben dar para que se considere un borde
(min edge stregth, min contour length y max contour length respectivamente), el escalado
permitido (min scale, max scale) y el tiempo lmite para encontrar un patrn (timeout).
Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

10
Dado que Search Line Based no dispone del editor de aprendizaje de Search Geometric, se
pueden utilizar estos parmetros para especificar los bordes que nos interesen.

Prctica 6.- Bsqueda de patrones
________________________________________________________________________
Prcticas de visin por computador

11

Ejercicio

Dado el conjunto de imgenes que se proporciona en el directorio ejercicio\imagenes, crear
una investigacin que permita encontrar el nmero de piezas correctas, as como su posicin y
ngulo para, posteriormente, enviar dichos datos a una ventana Reporter . Una pieza correcta
es aquella que, como se defini en una prctica anterior, tiene la pestaa a la izquierda y est
completa. Vase la siguiente imagen.

Vous aimerez peut-être aussi