Detectar tapas de botes de jabón mediante diagramas de estados tipos moore (tutorial 5)


Este tutorial de vision builder se trata de detectar si hay tapas en los botes, al igual que el tutorial uno pero  en este se ha realizado de manera distinta, ya que en el tutorial 1 se hizo con un solo diagrama de estados y en este se utilizara  4 estados para realizar el ejercicio.

Para eso vamos a estudiar las funciones que hay en cada estado del diagrama.

Pues para empezar inicializamos con el primer estado llamado chequeo_presencia.

Pues bien en el primer estado (chequeo_presencia), vemos que contiene un simulate acquisition y un match pattern.

Con el simulate acquisition(cuadro morado en la imagen) seleccionamos la carpeta que contiene las imágenes a las cuales vamos a tratar con el vision builder y con el match pattern(cuadro azul en la imagen) pondremos  un área o zona en escala de grises para reconocer en cada imagen ese punto de referencia como patrón.

Esto en cada una de las imágenes a tratar se tendría que visualizar para ser reconocida

Ahora pasamos al segundo estado llamado inspección pero antes de pasar estudiamos la transición llamada detectado_bote que va del estado  chequeo_presencia al estado  inspección.

Por defecto hay una transición (default) en el estado chequeo_presencia , por si no detecta nada que se quede en ese estado.

Para darles propiedades a la transición basta con dar doble clic sobre de ella y veremos sus propiedades.

En measurement se ha seleccionado localiza_bote-#matches , esta opción es la del match pattern situada en el estado de chequea_presencia para detectar una muestra o varias en este caso una porque así esta seleccionado, es decir las muestras que se han tomado con el match pattern si coincide ese punto con otra imagen pasa al estado inspección y en este estado localizamos la tapa con la función caliper.

Esta función mide la distancia en pixeles  separadas en los bordes o flancos.

Si hay una imagen que no tenga tapa dará fail en el clíper porque la distancia no es correcta.

Ahora pasamos a los estados fallo o paso, si no hay tapa por defecto ira al estado llamado fallo mediante la transición default y si hay tapa ira al estado paso.

En primer lugar analizaremos el estado paso y luego el de fallo.

Para ir del estado inspección al estado paso tiene que cumplirse la transición llamada ok, y esta transición contiene lo siguiente.

En la imagen se muestra que en el measurement tiene referenciado el localiza_tapa, esto quiere decir que si en el estado inspección detecta la tapa pasa al estado paso mediante esta transición.

Además se puede observar que contiene en el current value: 141,7….esta es la distancia que tiene la tapa en pixeles.

Ahora después de esto y ya estando en el estado paso, lo que se hará en este paso es colocar un texto  con un custom overlay que indique si esta bien la  tapa y luego por defecto va al end, para luego volver al start y cumplirse el ciclo.

Ahora bien si en el estado inspección no detecta tapa pasa al estado fallo por defecto, mediante la transición default la cual no contiene ninguna condición.

Este estado llamado fallo contiene un custom overlay  igual que el estado paso, pero con la única diferencia es que este texto indica que no hay tapa y por defecto va al end mediante la transición default y luego se siguen repitiendo estos pasos cíclicamente comenzando por el start.

video del funcionamiento: