Sunteți pe pagina 1din 19

Capítulo 4

4. Desarrollo

4.1 Adquisición

El sistema inicia su proceso con la adquisición de las imágenes en tiempo real usando
una cámara con entrada USB para poder recibir las imágenes en una computadora. El software
labview proporciona una facilidad para realizar una rápida interfaz con su módulo de NI-
IMAQdx en el cual se activa el dispositivo para poder recibir las imágenes en el programa.

El software de labview nos proporciona la facilidad de implementar la teoría de visión


artificial al complementarse con tres módulos: vision development, vision builder for
automated inspection y vision acquisition software. En el paquete completo se hace uso de los
VI (virtual instrument) donde se implementa la teoría matemática que se usa en los procesos
de vision artificial. El VI que permite leer los datos es el vision acquisition que se muestra en
la figura 4.1 donde “imagen de salida” proporciona la imagen dentro del programa y el “paro”
es un valor booleano que determina cuando detener la activación del VI.

Figura 4.1 Vision Acquisition

43
4.2 Pre-procesamiento

La imagen que se proporciona en la etapa de adquisición es muy grande y en formato


RGB, es decir, en color, pero el único color que se necesita es el negro del código de la placa.
Para facilitar la próxima segmentación se necesita realizar una umbralización o binarización,
pero el formato RGB disminuye la velocidad de procesamiento, por lo que se necesita
disminuir el tamaño y cambiar el formato a escala de grises para iniciar con la binarización.

4.2.1 Reducción

Para disminuir el consumo computacional se eligió el tamaño de 2000x2000 pixeles y el


VI que te permite realizar esta acción es IMAQ resample que se observa en la figura 4.2. El
tamaño de la imagen en pixeles se modifica en “resolución X” y “resolución Y” donde se
insertan los valores enteros de 2000 en cada uno, la “imagen fuente” es la que se recibió
anteriormente de la “imagen de salida” de vision acquisition la cual se encuentra en el tamaño
que captura la cámara y la “imagen de salida” nos proporciona la nueva imagen de 2000 X
2000 pixeles.

Figura 4.2 IMAQ Resample

4.2.2 Escala de grises

Para transformar el formato a escala de grises se implementa la ecuación 3.1 y el VI


que nos permite realizar esta acción es IMAQ extract single color plane (ver figura 4.3).

Figura 4.3 IMAQ extract single color plane

44
La imagen fuente es la que se obtiene de IMAQ Resample, el plano de color puede ser
rojo, verde o azul, pero en este proceso no tiene importancia de cual se elija, ya que solo el
color negro es el área de interés del sistema y con cualquiera de los planos a elegir será el
valor de intensidad del pixel será igual a cero. La imagen de salida será una de tamaño 2000 X
2000 pixeles y en escala de grises (ver figura 4.4).

Figura 4.4 Imagen en escala de grises.

4.2.3 Umbralización

Este proceso convierte la imagen de escala de grises a binaria, partiendo de la ecuación


3.4 donde el nivel de transición está dado por el parámetro de entrada , en la ecuación 4.1 se
establece que , esto significa que los pixeles que tengan una intensidad mayor de este
valor serán sustituidos por 255, el cual es el color blanco, y los que sean igual o menor serán
sustituidos por 0, el cual es el color negro.

(4.1)

El VI que permite realizar la operación individual de umbralización se llama IMAQ


treshold (ver figura 4.5), el funcionamiento de esta herramienta consiste en que todos los
valores de intensidad de los pixeles serán cero, excepto los valores del rango que se asigne y
se tiene que asignar el valor que se desea remplazar en ese intervalo.

45
Figura 4.5 IMAQ Treshold

El valor que se pide es 255 porque indica el color blanco y el rango será de 71 a 255
porque son los valores mayores del umbral que se determinó anteriormente, es decir, el VI
convierte toda la imagen en valor 0 excluyendo el umbral establecido. La imagen fuente es la
imagen de salida de IMAQ Resample. Después de aplicar la umbralización se obtiene una
imagen binaria de 2000 X 2000 pixeles (ver figura 4.6), en la que se resalta el código de la
placa por su color negro, con esto se termina la etapa de pre-procesamiento.

Figura 4.6 Imagen binaria

4.3 Segmentación

El objetivo de esta etapa es extraer el código de la placa del fondo de la imagen para su
posterior uso al basarse en el principio fundamental de la discontinuidad, es decir, detectando
los bordes del código para definir donde se encuentra, sin embargo la imagen que se recibe de
IMAQ Treshold tiene ruido e imperfecciones como se muestra en la figura 4.7, por lo que se
tiene que mejorar la calidad de la imagen, de lo contrario, al momento de realizarse la
detección de bordes, el ruido puede generar un falso borde y provocar que se obtengan
coordenadas erróneas de la localización del código de la placa dentro de la imagen. Para evitar

46
estos inconvenientes es necesario aplicar morfología matemática antes de aplicar el proceso de
detección de bordes.

Figura 4.7 a) Los cuadrados indican ruido y b) los círculos indican huecos dentro del caracter

4.3.1 Morfología

Se aplican procesos morfológicos para corregir las imperfecciones de la imagen, de lo


contrario, el ruido que se encuentra como puntos negros dentro del fondo blanco puede
confundir al sistema haciéndolo creer que es un borde y los puntos blancos dentro del código
negro pueden dificultar el reconocimiento de patrones.

(4.2)

La erosión es uno de los métodos morfológicos más fundamentales, que consiste en


combinar dos conjuntos utilizando substracción de vectores [8], en pocas palabras elimina los
puntos blancos suspendidos en fondos negros. El ruido que se tiene es una situación contraria,
por lo que sacamos el negativo de la imagen antes de aplicar erosión al aplicar la ecuación 4.2.

Figura 4.8 IMAQ Inverse.

El VI que permite aplicar la ecuación 4.2 es IMAQ inverse (ver figura 4.8) donde la
imagen fuente es la que se recibe de IMAQ Treshold y la imagen de salida es binaria con los
valores invertidos como se aprecia en la figura 4.9.
47
Figura 4.9 Imagen binaria invertida

Ahora se procede a eliminar los puntos blancos dentro del fondo negro con el proceso de
erosión al aplicar la ecuación 3.12 y con un elemento estructural cuadrado de conectividad con
ocho vecinos (ver figura 3.6b), ya que es el tipo de erosión más común. El VI que te permite
aplicar este proceso morfológico es IMAQ remove particle que se muestra en la figura 4.10.

Figura 4.10 IMAQ Remove particle

Los valores que se insertaron es un false en conectividad para que sea de ocho, un true
en la forma para que sea cuadrado, la imagen fuente es la que se recibe de IMAQ inverse y el
número de iteraciones es de 20, ya que entre más grande sea el número, será más efectivo pero
también aumenta el tiempo de procesamiento, por lo que se tiene que tener en consideración
esos dos factores. La imagen resultante es una imagen binaria inversa libre de ruido (ver figura
4.11).

48
Figura 4.11 Imagen binaria invertida al aplicar erosión.

Se invierte la imagen otra vez para que se regrese a su estado original y se erosiona de
nuevo para corregir las imperfecciones dentro del código, para terminar con una imagen sin
ruido y lista para encontrar los bordes que se observan en la figura 4.12.

Figura 4.12 Imagen binaria al aplicar morfología.

4.3.2 Detección de bordes

El objetivo es obtener la fila del código de la placa para proceder con el reconocimiento
de los caracteres. El sistema determina el punto promedio donde se concentra los pixeles de
valor cero, ya que después del proceso de umbralización y de morfología, se considera que
donde va a estar concentrada la proporción de los pixeles será en la ubicación del código de la
placa.

El sistema determina el centro de la placa al trazar una secuencia de líneas horizontales


de arriba hacia abajo detectando el número de bordes. El código normalmente está
conformado con la mayor cantidad de bordes, la línea que tenga la mayor cantidad de bordes
es el centro del eje Y y se promedian las posiciones con respecto al eje X para obtener su
centro.
El punto que se obtuvo debe estar dentro del área en la que se encuentra el código. Se
usa el valor del eje Y del centro para trazar una recta horizontal para determinar los bordes de
la misma, el primer borde de la izquierda y el último de la derecha serán los límites
provisionales. Con la misma magnitud de la recta y con los extremos provisionales, se trazan
49
una secuencia de rectas disminuyendo el valor de Y en múltiplos de diez pixeles, es decir,
trazando rectas horizontales hacia arriba. En el momento que la recta no detecte ningún punto
de borde, se considerara que el valor anterior de Y es el límite superior del código o el mínimo
valor del eje Y. Es el mismo caso para el máximo valor de Y, pero se aumenta el valor en el
eje en múltiplos de diez hasta que la recta no detecte ningún borde.

Al tener el máximo y mínimo valor de Y, se usan estos dos valores en los límites de las
rectas verticales como valores constantes. El proceso para determinar el mínimo valor de X o
límite izquierdo consiste en una serie de rectas verticales, donde los extremos de la recta son el
máximo y mínimo valor de y se disminuye el valor en el eje X en múltiplo de diez, es decir, se
recorre la recta hacia la izquierda. Cuando no se detecte ningún borde el valor del eje X de la
recta será el límite derecho del código de la placa. El proceso es el mismo para determinar el
límite derecho, se aumenta el valor del eje X en múltiplo de diez, es decir, se recorre las rectas
hacia la derecha hasta no detectar ningún borde para determinar el límite derecho del código
de la placa.

Al terminar la secuencia de trazado de las rectas se obtiene el rectángulo donde se


encuentra el código de las placas como se muestra en la figura 4.13, lo cual se denomina
región de interés (ROI). Los incrementos y decrementos de los valores de los ejes en la
secuencia de las rectas trazadas son en múltiplo de diez para aumentar la velocidad de
procesamiento.

Figura 4.13 Detección de la región de interés.


La herramienta que permite realizar la detección de bordes por primera derivada es
IMAQ simple edge que se muestra en la figura 4.14. La imagen fuente es la que se recibe del
anterior proceso morfológico. Los parámetros de umbral sirven para evitar que el sistema tome
el ruido como falso borde, pero no es necesario, ya que se realiza previamente un proceso

50
morfológico para eliminar el ruido de la imagen. Las coordenadas de los pixeles son los
puntos de los extremos de la recta donde un valor de un eje se mantiene constante y el otro
variable para realizar la secuencia de trazado. El proceso pueden ser tres diferentes: obtener el
primer borde que encuentre la recta, el primer y el último, o todos los bordes. En el caso este
sistema se busca todos los ejes. Los datos de salida de la herramienta son el número de bordes
que encuentra y las coordenadas de los puntos.

Figura 4.14 IMAQ Simple edge.

Al obtener la región de interés (ROI), es decir, el rectángulo que ubica el código de la


placa dentro de la imagen, se extrae esa porción para concluir con la segmentacion. El VI que
permite realizar esta acción es IMAQ extract tetragon el cual se muestra en la figura 4.15. La
imagen fuente es la que se recibe del proceso morfológico y el ROI es el que se obtiene del
proceso de detección de bordes.

Figura 4.15 IMAQ extract tetragon.

La imagen de salida será una imagen en la que solo se observa el código de la placa, la
cual se muestra en la figura 4.16, para su posterior reconocimiento de patrones.

51
Figura 4.16 Imagen segmentada.

4.4 Reconocimiento de patrones.

En este sistema, la aplicación que se realiza es el reconocimiento de patrones. La


importancia de esto es que la computadora adquiera la capacidad de leer el código sin
necesidad de un operador.

El reconocimiento que se usa es aplicando la ecuación 3.13, la cual es la función de


correlación para encontrar un match en una imagen (imágenes similares), es decir, se busca
una imagen pequeña dentro de una grande. Se realiza previamente una base de datos de
abecedario y números del cero al nueve que serán los matchs a comparar.

El proceso comienza en modificar la imagen que se recibe de IMAQ exract tetragon, ya


que es importante tener las mismas dimensiones de las imágenes que se van a comparar para
evitar errores de reconocimiento, por lo que se usa IMAQ resample para cambiar el tamaño a
1800 x 600 pixeles.

La comparación de imágenes del código de la placa se realiza de forma individual. Se


considera que cada imagen creada dentro de la librería tiene un tamaño en específico, por lo
que el sistema será un ciclo en el que se realiza una serie de segmentacion-comparación.

Cada carácter se separa usando el mismo método de segmentacion que se hizo


previamente en la ubicación del código de la placa, en el que se realizó una secuencia de rectas
para determinar los límites de lo que se desea encontrar. Las rectas son verticales en los que
los limites en el eje Y son los mismos que los de la imagen y el eje X es la variable que se
incremente en múltiplos de diez, cuando la recta no detecte ningún borde se interpreta que
hasta ahí termina la dimensión del carácter. Se realiza el mismo proceso con las rectas
horizontales en el que se usa el eje X como constante y el eje Y como variable para determinar
los límites superior e inferior.

52
Cuando se tiene la imagen del carácter (mostrado en la figura 4.18 se modifica el tamaño
con IMAQ resample al que corresponda con la imagen que se va a comparar y después se
aplica la función de correlación para una letra o número, si la función determina que no son
iguales el sistema aplica otra modificación de tamaño y comparación con otro carácter, esto se
realiza consecutivamente hasta que el sistema determina que las comparación entra en el
intervalo de aceptación para considerarse similar, por lo que se envía un valor de cadena que
se va a ir almacenando. Este proceso se realiza consecutivamente hasta que el código de la
placa no tiene caracteres que se pueda segmentar, por lo que el sistema envía el resultado de la
cadena y lo compara a la base de datos para determinar si el vehículo es aceptable o no para el
acceso vehicular.

Hay dos herramientas fundamentales que se necesitan para el reconocimiento de


patrones: IMAQ learn pattern 2 y IMAQ find pattern 2 como se muestran en la figura 4.17 y
4.18. El primero hace que el sistema adquiera la imagen o match que se va a comparar, es
decir, los caracteres de la base de datos y el segundo realiza la comparación por función de
correlación.

Figura 4.17 IMAQ learn pattern 2

En IMAQ learn pattern 2 se procesaran una serie de descripciones que se utilizan al


momento de aplicar la función de correlación donde la imagen será la que proviene de la base
de datos del caracter se va a comparar y la imagen match es la que se utiliza en la búsqueda.

Figura 4.18 IMAQ find pattern 2

53
En IMAQ find pattern 2 se aplica la función de correlación para determinar si una
imagen match se encuentra dentro de la imagen que se obtiene de la segmentacion de
caracteres, una característica de esta acción es de que las imágenes deben ser del mismo
tamaño para disminuir el margen de error. La imagen match es la que se obtiene de IMAQ
learn pattern 2, la imagen es la que se recibe de la segmentacion de caracteres, el marco es
una serie de características en las que se determina el tipo de búsqueda de realizar como el
parámetro de tolerancia de exactitud en la comparación de patrones en la que puede ser
conveniente bajar su valor cuando el pre-procesamiento es deficiente o aumentar su valor
cuando es lo contrario. Los matches son las características de la comparación satisfactoria y el
número de match te indica el número de veces que se encontró el carácter, aunque lógicamente
debería ser solo una vez.

Cuando el código corresponde a uno de la base de datos, se manda una señal lógica en la
que un actuador, en este caso una aguja de metal, se active para permitir el acceso vehicular.
La comunicación de procesador a actuador, se realiza con el DAQ assistant 2 (ver figura 4.19)
la cual traduce la información que se proporciona desde la computadora a un medio físico en
términos de voltaje analógico.

Figura 4.19 DAQ Assistant 2

4.5 Pruebas y resultados.

El sistema se diseñó para demostrar que es capaz de poder localizar el código de la placa
y reconocer sus caracteres por lo que sus pruebas iniciales son en condiciones ideales a 40
centímetros de distancia, con una luminosidad estándar proporcionada por una lámpara y con
ningún tipo de inclinación. Para efecto de estudio y determinar el alcance del sistema se
realizan pruebas con las que se encuentran errores.
54
4.5.1 Diversidad

En un ambiente real se presentaran distintos tipos de placas, ya sea por un cambio de


modelo o un código distinto, por lo que el sistema se somete a pruebas para determinar su
comportamiento ante la diversidad.
Los resultados son mostrados en la figura 4.20 en la que detecta diferentes códigos y
modelos de placa sin importar el contenido o imágenes que se encuentre en su interior.

Figura 4.20 Prueba de diversidad

4.5.2 Inclinación

La inclinación es un factor muy relevante debido a que es muy común que los
automóviles ingresen al estacionamiento en forma de diagonal por lo que se deben hacer
distintas pruebas de inclinación hacia los laterales y hacia arriba, para determinar si el sistema
tolera esas perturbaciones alejadas de su entorno ideal.

55
Figura 4.21 Inclinación lateral: a) 40 grados y b) 45 grados

El programa hace un ajuste a los caracteres en el momento de hacer el reconocimiento


por lo que tolera las inclinaciones laterales hasta 40 grados como se muestra en la figura 4.21a,
sin embargo al llegar a los 45 grados empieza a tener problemas ya que los caracteres dentro
de la imagen empiezan a distorsionarse y alejarse más de lo permitido a los patrones que se
encuentran en la base de datos. Sin embargo un automóvil que se encuentre esperando para
que la aguja se levante su grado de inclinación de la diagonal que forma no es mayor a 45
grados ya que de lo contrario no podría ocupar el espacio determinado para dicha espera.

Figura 4.22 Inclinación haría arriba: a) 30 grados y b) 40 grados

La inclinación hacia arriba es otro factor que distorsiona el reconocimiento. Como se


muestra en la figura 4.22 los caracteres se estiran y es posible que no puedan reconocerse. La
figura 4.22a muestra que el sistema puede reconocer los caracteres hasta una inclinación de 30
grados ya que el ajuste que se hace alcanza a reacomodar los caracteres, sin embargo cuando
llega a 40 grados como se observa en la figura 4.22b no muestra resultados satisfactorios ya

56
que elimina los guiones y distorsiona el resultado. Una mayor inclinación provocaría un mayor
margen de error debido a que también aumentaría la incidencia de la luz solar en la placa, por
lo tanto provoca fallas como se menciona más adelante.

Figura 4.23 Doble inclinación

Hasta este momento se han planteado inclinaciones en un solo sentido, y se obtuvieron


resultados positivos de tolerancia hasta los 40 grados, sin embargo cuando se presentan
inclinación es hacia arriba y laterales al mismo tiempo esa tolerancia disminuye como se
muestra en la imagen 4.23. La inclinación es de 20 grados hacia arriba y 20 grados hacia la
lateral, a pesar de ser la mitad de tolerancia, el sistema no pudo leer ningún código debido a
que la segmentacion está basada en rectas verticales y esas separaciones no se presentan en la
imagen, Aunque la posición de la placa es muy irregular se debe presentar los alcances del
sistema en el momento de la segmentacion.

4.5.3 Distancia

La distancia es un elemento que modifica el código de forma general. Como se muestra


en la imagen 4.24 el sistema funciona satisfactoriamente cuando la placa se encuentra a 40 cm
de distancia pero conforme se va alejando el código se va haciendo más pequeño y al
momento de que el sistema hace el ajuste estira el caracter, por lo que distorsiona el
reconocimiento.
El sistema tiene un margen de éxito de 40 a 55 centímetros. Estos 15 centímetros puede
parecer muy poco pero si se considera que la cámara que se usó para esta aplicación es de 1.3
megapíxeles, que relativamente es un valor muy bajo, las capacidades de distancia que puede

57
tolerar el sistema es proporcional a la cantidad de la resolución que ofrece la cámara, ya que
con una mayor resolución, la forma de los pixeles no sufre una distorsión significativa.

Figura 4.24 Distancia: a) 40 cm y b) 55cm.

4.5.4 Suciedad

Uno de los problemas que se pueden presentar en el reconocimiento es que la placa se


encuentre con suciedad como se muestra en la figura 4.25. En la figura 4.25a se muestra una
placa con menor suciedad en donde los caracteres no están del todo modificados pero hay
factores como en los números 7 y 8 que no muestran una separación porque tienen una
mancha en medio por lo que el subsistema de segmentación lo considera un solo carácter por
lo que cuando se realiza el reconocimiento no se encuentra el combinado en la base de datos,
ya que la suciedad distorsiona el resultado de la segmentacion.

Por otra parte en la figura 4.25b se muestra una suciedad en mayor cantidad que tiene un
resultado más negativo debido a que la suciedad cubre el color negro de los caracteres en la
placa por lo que en el proceso de umbralización o binarización no lo considera como color
negro y lo convierte en blanco teniendo como resultado un código distorsionado que el sistema
no puede reconocer.

58
Figura 4.25 Suciedad en cantidad: a) menor y b) mayor.

4.5.5 Luz

La luz es un factor que influye mucho en el sistema debido a que puede mejorar o
distorsionar el resultado del reconocimiento de patrones. Es importante realizar estos estudios
debido a que se debe determinar si el programa será funcional a plena luz del día y en la noche
al usar una lámpara integrada al sistema. En la figura 4.26 se presenta un caso en que la placa
está a oscuras y el sistema tiene una lámpara de luz blanca que no genera mucho sombreado y
tiene resultados satisfactorios debido a que no se pierde el valor dentro de la umbralización.
Esto significa que con estudios más específicos sobre la luz blanca el sistema es viable aunque
sea de noche

Figura 4.26 Luz blanca

59
El problema que presenta la iluminación es cuando se intensifica en un carácter como es
el caso que muestra la figura 4.27. La luz blanca se concentra en los caracteres del centro del
código por lo que en el proceso de umbralización el sistema considera que el color en esa área
es blanco por lo que elimina esos caracteres en la etapa de pre-procesamiento teniendo un
resultado erróneo en el reconocimiento.

Figura 4.27 Luz blanca concentrada.

El problema con la luz puede ser la concentración de la luz y también la sombra


generada por la misma como se muestra en la figura 4.28. La luz incide en la lateral izquierda
donde la etapa de umbralización lo considera como blanco por lo que elimina esos caracteres
pero la misma luz concentrada en un lado crea sombra en el otro por lo que dicha sombra se
mezcla con el color negro y el sistema no puede identificar que es código y cual no,
considerándolo una mancha negra en general.

Figura 4.28 Contraste de luz.

60
En la figura 4.28 se mostró los problemas que causa una sombra intensificada pero
cuando es de forma clara como se observa en 4.29 se demuestra que el sistema no necesita una
gran cantidad de luz para poder funcionar ni que cualquier tipo de sombra puede causar
distorsiones en la etapa de umbralización.

Figura 4.29 Sombra clara

61

S-ar putea să vă placă și