RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

65
RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES TRABAJO PROFESIONAL EN INGENIERÍA EN INFORMÁTICA Laboratorio de Sistemas Inteligentes Facultad de Ingeniería Universidad de Buenos Aires Alumno: Pablo David ROMANO Directores: Prof. Dr. Ramón GARCIA MARTINEZ Prof. M. Ing. Hernán MERLINO Diciembre 2007

Transcript of RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Page 1: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

RECONOCIMIENTO DE PATENTES DE

AUTOMÓVILES

TRABAJO PROFESIONAL EN INGENIERÍA ENINFORMÁTICA

Laboratorio de Sistemas InteligentesFacultad de Ingeniería

Universidad de Buenos Aires

Alumno: Pablo David ROMANO

Directores: Prof. Dr. Ramón GARCIA MARTINEZProf. M. Ing. Hernán MERLINO

Diciembre 2007

Page 2: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

i

Índice

1. Introducción...................................................................................................... 12. Estado la Tecnología ....................................................................................... 2

2.1. Procesamiento de información.................................................................. 22.2. Señal......................................................................................................... 22.3. Espacios ................................................................................................... 2

2.3.1. Espacios de color............................................................................... 32.4. Transformadas.......................................................................................... 4

2.4.1. Transformadas geométricas .............................................................. 42.4.1.1. Transformada de Hough............................................................. 4

2.5. Operaciones sobre imágenes ................................................................... 62.5.1. Interpolación ...................................................................................... 62.5.2. Composición ...................................................................................... 72.5.3. Segmentación.................................................................................... 7

2.6. Procesamiento de señales........................................................................ 82.6.1. Procesamiento señales digitales........................................................ 8

2.6.1.1. Procesamiento de imágenes bidimensionales............................ 82.6.2. Procesamiento de video .................................................................... 9

2.7. Filtrado de imágenes................................................................................. 92.8. Localización de las sub-imágenes de interés dentro de una imagen...... 102.9. Inteligencia artificial................................................................................. 11

2.9.1. Redes neuronales............................................................................ 122.9.1.1. Tipo de aprendizaje .................................................................. 12

2.9.1.1.1. Supervisado.......................................................................... 122.9.1.1.2. No supervisado..................................................................... 132.9.1.1.3. Por refuerzo.......................................................................... 13

2.10. Reconocimiento de Patrones .............................................................. 133. Problema........................................................................................................ 154. Esbozo de la solución .................................................................................... 16

4.1. Uso de redes neuronales ........................................................................ 175. Plan de trabajo ............................................................................................... 186. Solución alcanzada ........................................................................................ 19

6.1. Casos exitosos........................................................................................ 196.2. Imagen tomada muy cerca...................................................................... 216.3. Errores en la red ..................................................................................... 226.4. Errores en la localización ........................................................................ 23

7. Conclusiones.................................................................................................. 258. Referencias .................................................................................................... 26A. Metodología ................................................................................................... 29

A.1. Requerimientos....................................................................................... 30A.2. Limitaciones actuales.............................................................................. 31A.3. Subsistemas ........................................................................................... 32

A.3.1. Subsistema de entrenamiento ......................................................... 32A.3.2. Subsistema de reconocimiento ........................................................ 32

A.4. Arquitectura............................................................................................. 33

Page 3: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

ii

A.4.1. Arquitectura de la nueva aplicación ................................................. 33A.4.2. Arquitectura del sistema actual ........................................................ 34

A.5. Análisis.................................................................................................... 35A.5.1. Casos de Uso .................................................................................. 35

A.5.1.1. Cargar Red ............................................................................... 36A.5.1.2. Guardar Red............................................................................. 37A.5.1.3. Entrenar .................................................................................... 38A.5.1.4. Buscar Patente ......................................................................... 39

A.5.2. Diagrama de secuencia ................................................................... 40A.5.2.1. Cargar Red ............................................................................... 40A.5.2.2. Guardar Red............................................................................. 41A.5.2.3. Entrenar .................................................................................... 42A.5.2.4. Buscar Patente ......................................................................... 43

A.5.3. Diagrama de Clases ........................................................................ 44A.5.3.1. Diagrama de clases propias de la aplicación............................ 44

A.5.3.1.1. ImageFilter ........................................................................... 44A.5.3.1.2. Helpers................................................................................. 45

A.5.3.2. Diagrama de clases del modulo AForge para la implementaciónde las redes neuronales ............................................................................. 46

A.5.3.2.1. IActivationFunction............................................................... 46A.5.3.2.2. Network ................................................................................ 47A.5.3.2.3. Layer .................................................................................... 48A.5.3.2.4. Neuron ................................................................................. 49A.5.3.2.5. ISupervisedLearning ............................................................ 50A.5.3.2.6. IUnsupervisedLearning y SOMLearning............................... 51

A.6. Codificación ............................................................................................ 52A.7. Implementación....................................................................................... 53

A.7.1. Pantallas .......................................................................................... 53A.7.1.1. Pantalla Principal ...................................................................... 53A.7.1.2. Pantalla Entrenamiento ............................................................ 54A.7.1.3. Pantalla Entrenar ...................................................................... 54A.7.1.4. Pantalla Buscar Patente ........................................................... 55

A.8. Pruebas................................................................................................... 56A.8.1. Plan de pruebas............................................................................... 56A.8.2. Documento de diseño de la prueba ................................................. 56A.8.3. Especificación de los casos de prueba ............................................ 57A.8.4. Especificaciones del procedimiento de prueba................................ 58A.8.5. Informe de los casos de prueba ejecutados .................................... 59A.8.6. Informe de la prueba........................................................................ 61

A.9. Mantenimiento ........................................................................................ 62

Page 4: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

1

1. Introducción

El reconocimiento de patentes de automóviles - LPR (License Plate Recognition)por sus siglas en ingles – es una tecnología de procesamiento de imágenes usadapara identificar vehículos por su patente, esta tecnología es usada en muchasaplicaciones relacionadas con la seguridad y el tráfico.

El siguiente trabajo está orientado al análisis de las tecnologías de localización yreconocimiento de patentes de automóviles. Se hará una introducción general alos temas sobre los cuales se desarrollaran las ideas posteriores para luegointroducirse en el estado actual de la cuestión marcando sus alcances y losobjetivos pendientes.

Se busca mediante el uso novedoso de viejas y nuevas herramientas resolver elproblema del reconocimiento de patentes de automóviles automáticamente sinintervención humana con un nivel de acierto mayor al que el mercado actualpuede ofrecer.

Page 5: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

2

2. Estado la Tecnología

2.1. Procesamiento de información

El procesamiento de información es el cambio (procesamiento) de la informaciónde cualquier manera perceptible por un observador. Como tal, es un proceso quedescribe todo lo que pasa (cambia) en el universo, desde la caída de una piedra(un cambio de posición) hasta la impresión de un archivo de texto desde un mediodigital. En el segundo caso, un procesador de información está cambiando laforma en que se presenta el archivo de texto. El procesamiento de informaciónpuede ser definido más específicamente en los términos de Claude E. Shannoncomo “la conversión de información latente en información manifiesta” [Shannon,Claude E., 1948]

2.2. Señal

En los campos de las comunicaciones, el procesamiento de señales y la ingenieríaeléctrica, una señal es cualquier valor que varia con el tiempo, sin embargo estadefinición es insuficiente en muchos casos y, en su lugar, se dice que una señal escualquier valor que varia en función de una variable independiente.

En el campo de la teoría de la información se define “señal” como un mensajecodificado, esto es, la secuencia de estados en un canal de comunicación queconforman un mensaje. [Shannon, Claude E., 1948]

Las señales pueden ser clasificadas de varias formas. La distinción más comúnsobre el espacio en el que la función esta definidas, más específicamente si estees discreto (digitales) o continuo (analógicas). Las señales discretas son llamadascomúnmente series. Las señales continuas son llamadas de esta forma inclusocuando la señal no sea continua, por ejemplo una onda cuadrada.

2.3. Espacios

Un espacio es un conjunto con propiedades particulares y, generalmente, conoperadores, como pueden ser los de adición o multiplicación.

Los espacios vectoriales y específicamente el espacio Euclidiano pueden servistos como generalizaciones del sistema de coordenadas Euclidiano. Un casoconcreto es la medida de distancias, que es abstraída en el concepto de espaciométrico [Enciclopedia Británica Online, 2005].

El espacio tridimensional es al que más comúnmente se hace referencia, sinembargo un espacio no necesariamente debe tener tres dimensiones para existir,puede tener cero (un punto), una (una línea), dos (un plano), más de tres, finitas oinfinitas [Enciclopedia Británica Online, 2005].

Los matemáticos usualmente estudian estructuras generales que se sostienenmás allá del número de dimensiones de los espacios.

Page 6: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

3

2.3.1. Espacios de color

Un espacio de color es un modelo matemático abstracto que describe el modo enque los colores pueden ser representados por una secuencia finita (tupla) denúmeros, típicamente como tres o cuatro valores, también llamados componentesde color; retomando la definición de espacio, el conjunto son valores querepresentan en forma abstracta colores, este conjunto es finito, por lo tanto loscolores que puede representar un espacio de color también lo son [Fairchild, MarkD., 1998].

Este mapa compara cuanto del espectro de color (el ovalo grande en el fondo)cubre cada espacio de color. El ProPhoto RGB cubre la mayor parte del espectro,Adobe RGB es el segundo más extenso, y sRGB es el más pequeño. También semuestran los límites de la impresora Epson 2200 [Adobe, 2007].

Page 7: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

4

2.4. Transformadas

En su forma más general una transformada es una faceta de las funcionesmatemáticas; el termino “mapeo” es usado muchas veces como un sinónimo detransformada. Una transformada puede ser una función reversible de un conjuntoX a si mismo o de X a Y. El término transformada generalmente hace referencia afunciones donde el interés está puesto en los aspectos geométricos [Halmos, PaulR., 1993].

2.4.1. Transformadas geométricas

En matemáticas, una transformada geométrica es cualquiera de un diferenteconjunto de funciones geométricas, como ser la rotación, la reflexión o latranslación entre otras. Estas pueden ser llevadas a cabo en el espacio Euclidiano,particularmente en los de dos y tres dimensiones. También hay operaciones quepueden ser llevadas a cabo usando algebra lineal o matrices [Halmos, Paul R.,1993].

Antes Después

Las imágenes muestran una transformada no linear aplicada a un plano.

2.4.1.1. Transformada de Hough

La transformada de Hough es una técnica de extracción de características usadaen el procesamiento de imágenes digitales. La transformada clásica identificalíneas en la imagen, pero se ha extendido para identificar la posición de imágenesarbitrarias. La transformada usada universalmente hoy en día fue inventada porRichard Duda y Peter Hart en 1972 y la llamaron “Transformada de Houghgeneralizada” por la transformada clásica patentada en 1962 por Paul Hough.

La transformada fue popularizada en 1981 gracias al artículo titulado“Generalizando la transformada de Hough para detectar formas arbitrarias” escritopor Dana H. Ballard.

Page 8: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

5

El éxito de esta transformada (en su forma más general) se debe a que permiteencontrar una forma aunque esta haya sido ampliada, reducida y/o rotada en untiempo computacionalmente aceptable [Gonzalez, R. C. & Woods, R. E., 1993].

La transformada clásica transforma cada punto en pares de coordenadas (θ, ρ) que representan líneas (la cantidad de líneas a las que se transforma depende delas necesidades particulares) que pasan por ese punto [Duda, Richard O. & Hart,Peter E., 1972].

Esta imagen muestra el resultado de la transformada de Hough aplicada a unaimagen compuesta por dos líneas gruesas. Los ejes de la matriz que serepresentó gráficamente en la imagen de la derecha son “Distancia desde elorigen” en el eje vertical y “Angulo” en el horizontal.

Cada punto fue transformado en varias líneas, cada una de estas líneas es unpunto en la imagen de la derecha, las líneas que pasan por pocos puntos quedande un color gris oscuro, mientras que las que pasan por más puntos son másbrillantes. Los dos puntos más brillantes que aparecen en la imagen transformadarepresentan a las dos líneas de la imagen original.

Si se ve con detenimiento se verá que no son puntos sino más bien pequeñosóvalos rellenos, esto se debe a que las líneas originales son gruesas, es decir,están compuestas de varias líneas, cada punto dentro del ovalo representa a cadauna de esas líneas que componen a la línea gruesa original.

Page 9: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

6

En estas imágenes se puede ver la transformada de Hough de tres puntos a seislíneas cada uno, se puede observar que cada línea queda definida por el ángulo yla distancia al origen.

También se puede ver que hay un par de coordenadas (ángulo, distancia alorigen) que se repite aproximadamente (la distancia varia entre 81.2 y 80.5) en lostres puntos, esta línea, aproximadamente, pasa por los tres puntos.

2.5. Operaciones sobre imágenes

2.5.1. Interpolación

Interpolación es un termino que viene de inter que significa entre y polación queproviene de la palabra polo, nodo o punto. De esta forma interpolación escualquier forma de cálculo mediante la cual se obtiene un punto entre dos puntosexistentes [Schatzman, Michelle, 2002].

Hay varios métodos para hacer esto, muchos de ellos buscan una función que seajuste a la información y luego la evalúan en el punto deseado. Esto no excluyeotras formas, como pueden ser las estadísticas, como métodos validos paraobtener información interpolada [Schatzman, Michelle, 2002].

La forma más simple de interpolación es tomar el promedio entre dos puntosadyacentes para obtener un valor en el medio. Esta operación es idéntica a lainterpolación lineal evaluada en el centro [Schatzman, Michelle, 2002].

Page 10: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

7

2.5.2. Composición

La composición es el proceso de combinación de múltiples imágenes para obteneruna imagen final. Este proceso se usa ampliamente en películas, animaciones, etc[T. Porter & T. Duff, 1984].

Las operaciones más comunes de composición son la diferencia y la unión; estoes una “resta” o una “suma” respectivamente entre dos o más imágenes.

2.5.3. Segmentación

El proceso de segmentación hace referencia al particionado de una región oconjunto (los píxeles de una imagen por ejemplo) en múltiples regiones. El objetivode la segmentación es simplificar y/o cambiar la representación de la región paraobtener algo más significativo y simple de analizar [Shapiro, Linda G. & Stockman,George C., 2001].

La segmentación de imágenes es usada típicamente para localizar objetos ybordes (líneas, curvas, etc.) en imágenes.

El resultado de la segmentación de imágenes es un conjunto de regiones quecolectivamente cubren la imagen original entera, o un conjunto de contornosextraídos de la imagen. Cada píxel en cada región comparte característicassimilares como color, intensidad o textura respecto de los demás píxel en la mismaregión. Los píxeles en regiones adyacentes tienen grandes diferencias respecto delas mismas características [Shapiro, Linda G. & Stockman, George C., 2001].

Algunas de las aplicaciones prácticas de la segmentación de imágenes son:

● Médicas● Ubicación de tumores y otras patologías● Medición de volúmenes de tejido● Cirugía asistida por computadora● Diagnósticos● Planeamiento de tratamientos● Estudio de la estructura anatómica● Localización de objetos en imágenes satelitales (rutas, bosques, etc.)● Reconocimiento de caras● Sistemas automáticos de control de trafico

Muchas técnicas y algoritmos de uso general fueron desarrolladas para lasegmentación de imágenes. Ya que no hay una solución general para el problemade segmentación estas técnicas suelen ser combinadas con conocimiento propiodel dominio para poder resolver con éxito problemas concretos [Shapiro, Linda G.& Stockman, George C., 2001].

Algunos de los métodos más comunes de segmentación son:

● Métodos de clusterización

Page 11: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

8

● Métodos basados en histogramas● Métodos de región creciente● Métodos de particionado de grafos● Métodos basados en modelos● Métodos multiescala● Métodos semi-automáticos● Métodos con redes neuronales

2.6. Procesamiento de señales

El procesamiento de señales es el análisis, interpretación y manipulación deseñales. Las señales pueden ser sonoras, imágenes, biológicas (unelectrocardiograma por ejemplo), de radar o de cualquier otro tipo. El proceso deseñales incluye el almacenamiento, la reconstrucción, extracción decaracterísticas particulares, eliminación de ruido, compresión, etc.

Dependiendo de la naturaleza de la señal hay varios tipos de procesos. Porejemplo, si la señal es analógica y sonora es común aplicarle procesos deamplificación y filtrado en los equipos de audio, o de modulación y demodulaciónen las telecomunicaciones.

2.6.1. Procesamiento señales digitales

El procesamiento de señales digitales (DSP por sus siglas en ingles), es el estudiode las señales en una representación digital y los métodos de procesamiento quea estas se les aplican. El DSP y el procesamiento de señales analógicas soncampos contenidos dentro del procesamiento de señales. A su vez el DSP incluyea otros campos, como ser el procesamiento de señales de audio, radar, sensores,lumínicas, habla, imagen, comunicaciones, biomédicas, etc., siempre luego de unpre-proceso analógico-digital [Porat, Boaz].

Es muy común que se requiera una salida analógica en vez de la digital queprovee este tipo de proceso, por esta razón es habitual efectuar un post-procesodigital-analógico.

Los algoritmos requeridos para efectuar DSP pueden ser llevados a cabo porcomputadoras especializadas compuestas por microprocesadores especializadosllamados procesadores de señales digitales (cuyas siglas en ingles también sonDSP), estos procesadores procesan señales en tiempo real [Porat, Boaz].

2.6.1.1. Procesamiento de imágenes bidimensionales

Se define el procesamiento de imágenes como cualquier tipo de procesamiento deinformación en el cual la entrada es una imagen, como ser una fotografía o framesde un video; la salida no es necesariamente una imagen, puede ser por ejemplouna serie de características de la imagen. [John C. Russ, 2006] La mayoría de lastécnicas de procesamiento de imágenes consisten en tratar a la imagen como unaseñal bidimensional y aplicarle técnicas estándar de procesamiento de señales.[Steven W. Smith, 1997]

Page 12: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

9

Algunas de las operaciones más comunes en el procesamiento de imágenes son[Ian T. Young, Jan J. Gerbrands & Lucas J. Van Vliet, 1995]:

● Transformaciones geométricas, como ser el cambio de tamaño o larotación.

● Correcciones de color, como pueden ser las de brillo, contraste otransformación a otro espacio de colores.

● Composición de varias imágenes, las operaciones pueden ser de unión,diferencia, etc.

● Recuperación de información a través de la interpolación.● Segmentación de la imagen en regiones.

Este campo no está restricto a las imágenes bidimensionales sino que tambiéntrabaja sobre un conjunto de imágenes. Al trabajar sobre un video se le agregauna dimensión temporal al conjunto de imágenes. [Wang, Yao, Jörn Ostermann &Ya-Qin Zhang, 2002]

2.6.2. Procesamiento de video

El procesamiento de video es una extensión del procesamiento de imágenesbidimensionales; consiste, al igual que el procesamiento de imágenes, en aplicarcualquier técnica de procesamiento de información a una señal digital paraobtener una salida, la única diferencia está en la naturaleza de la señal de entradaa la que se le agrega una tercera dimensión, el tiempo, de esta forma la señalpasa de tener a dos dimensiones a tener tres, si se fija la tercera dimensión setiene una imagen, al incorporar el tiempo se tiene una secuencia de imágenes y elprocesamiento puede ser a fijando la coordenada tiempo (sobre cada imagenaplicando cualquiera de las técnicas antes mencionadas por ejemplo) y luegoprocesar las salidas individuales, o puede ser sobre más de una imagensimultáneamente (por ejemplo para detectar movimiento).

2.7. Filtrado de imágenes

El filtrado es un proceso indispensable en toda actividad que involucre el manejode imágenes. Este es el primer proceso que se le aplica a las imágenes e inclusomuchas veces se realiza en el mismo dispositivo que realiza la captura, porejemplo el filtro de Bayer se aplica en prácticamente todas las cámarasfotográficas digitales. [Sean McHugh, 2007] [Bryce E. Bayer, 1976]

Una posible clasificación de los filtros más utilizados en la actualidad puede ser lasiguiente:

● Filtros al espacio de color RGB y/o extracción de canales en esteespacio [Susstrunk, Buckley & Swen, 2005]

● Filtros al espacio de color HSL y/o extracción de canales en esteespacio [Foley, James D. & Andries van Dam, 1982]

● Binarización [Gonzalez, Rafael C. & Woods, Richard E., 2002]● Morfológicos [Robyn Owens, 2007]

Page 13: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

10

● Convolución y Correlación [M.B. Priestley, 1982]● Filtros aplicados entre dos imágenes (unión, diferencia, etc.)● Detección de bordes [Canny, J., 1986]

Los filtros permiten destacar características particulares de las imágenes ydescartar las partes no deseadas, por ejemplo si lo que buscamos es una patentede auto nos interesará mantener los pixels cercanos al blanco o al negro ydescartar los demás como ser los cercanos al azul, rojo o verde.

2.8. Localización de las sub-imágenes de interés dentro de unaimagen

La localización de sub-imágenes es un proceso que, como cualquier proceso deinformación, devuelve una serie de valores a partir de una entrada. En este casoen particular la entrada son dos imágenes o una imagen y ciertos parámetros quedefinen al conjunto de formas o imágenes que se van a buscar dentro de esta. Lasalida son valores que indican la posición de la forma o imagen buscada dentro dela imagen general. [Gonzalez, R.C. & Woods, R. E., 1993]

Todo método de localización de sub-imágenes requiere de uno o más filtrosprevios (Ver 1.2), que resalten las sub-imágenes candidatas, es muy comúnaplicar filtros de detección de bordes. [Gonzalez, R.C. and Woods, 2005]

Los métodos de localización no triviales deben ser independientes del tamaño yorientación de la sub-imagen buscada, para lograr esto se suelen utilizartransformadas.

Para localizar una sub-imagen se suelen usar puntos de interés [P. Montesinos, V.Gouet, R. Deriche, D. Pelé, 1999], los más comunes son:

Bordes

Esquinas

Blobs (conjunto de puntos unidos con características similares diferentes de suentorno, por ejemplo una forma blanca en un fondo negro).

Algunos de los algoritmos que permiten encontrar estos puntos de interés son:

Algoritmo Borde Esquina

Blob

Canny [Canny, J., 1986] X

Sobel [Sobel, I. & Feldman,G., 1968] X

Harris & Stephens /Plessey [C. Harris & M.Stephens, 1988]

X X

Page 14: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

11

SUSAN [S. M. Smith & J. M. Brady, 1997] X X

Shi & Tomasi [J. Shi & C. Tomasi, 1994] X

FAST [M. Trajkovic and M. Hedley, 1998] X

Laplaciano del Gausiano [L. Bretzner & T.Lindeberg, 1998] [T. Lindeberg, 1998] [D. G. Lowe,2004]

X X

Diferencia del Gausiano [L. Bretzner & T.Lindeberg, 1998] [T. Lindeberg, 1998] [D. G. Lowe,2004]

X X

Determinante del Hessiano [L. Bretzner & T.Lindeberg, 1998] [T. Lindeberg, 1998] [D. G. Lowe,2004]

X X

MSER [L. Bretzner & T. Lindeberg, 1998] [T.Lindeberg, 1998] [D. G. Lowe, 2004]

X

Grey-level blobs [L. Bretzner & T. Lindeberg, 1998][T. Lindeberg, 1998] [D. G. Lowe, 2004]

X

2.9. Inteligencia artificial

La definición moderna de inteligencia artificial – AI por sus siglas en ingles – es “elestudio y diseño de agentes inteligentes”, donde “agente inteligente” es un sistemaque percibe su entorno y toma acciones que maximizan sus oportunidades deéxito. [Russel, Stuart J. & Norving, Peter, 2003] o “la ciencia e ingeniería de hacermáquinas inteligentes” [McCarthy, John & Hayes, P. J., 1969]

Otros nombres para el campo fueron propuestos, como ser “inteligenciacomputacional” [Poole, David; Mackworth, Alan & Goebel, Randy, 1998],“inteligencia sintética” [Law, Diane, 1994] o “racionalidad computacional” [Russel,Stuart J. & Norving, Peter, 2003].

Los investigadores de AI usan herramientas e ideas de varios campos, estosincluyen a las ciencias de la computación, psicología, filosofía, neurociencias,ciencias cognitivas, lingüística, investigación operativa, economía, teoría decontrol, probabilidad, optimización y lógica [Russel, Stuart J. & Norving, Peter,2003].

Las investigaciones en AI también se solapan con otros desarrollos, como serrobótica, sistemas de control, data mining, logística, reconocimiento de voz,reconocimiento facial, etc.

Page 15: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

12

2.9.1. Redes neuronales

Entre los investigadores no hay una definición precisa sobre que es una redneuronal, pero la mayoría está de acuerdo en que involucra redes compuestas deelementos con procesamiento simple (neuronas), que pueden exhibir uncomportamiento complejo global, determinado por las conexiones entre loselementos que procesan y los datos de entrada.

La inspiración para este tipo de sistemas fue la observación del sistema nerviosocentral, las neuronas, los axones, dendritas y sinapsis.

En el modelo de las redes neuronales los nodos - comúnmente llamadosneuronas, neuronodos, elementos de proceso o unidades - están interconectadospara formar una red de nodos, esta es la razón por la cual se llama al modelo “redneuronal”.

Una red neuronal no requiere ser adaptativa, sin embargo para su uso práctico sela trabaja con algoritmos diseñados para alterar la fuerza (peso) de las conexionesentre las neuronas para alterar su comportamiento en busca de ciertos resultadosglobales [Lawrence, Jeanette, 1994].

Estas redes son similares a las redes neuronales biológicas en el sentido que lasneuronas operan colectivamente y en paralelo en vez de haber delineamientosclaros de subtareas a las que se asignan neuronas.

En términos más generales las redes neuronales son herramientas para elmodelado de datos, no lineales y estadísticas; también pueden ser usadas paramodelizar relaciones complejas entre entradas y salidas o para buscar patrones[Lawrence, Jeanette, 1994].

2.9.1.1. Tipo de aprendizaje

Hay tres paradigmas principales en el tipo de aprendizaje. Estos son: supervisado,no supervisado y por refuerzo.

2.9.1.1.1. Supervisado

En el aprendizaje supervisado se sabe con anticipación la salida esperada y sebusca que la salida de la red sea acorde a esta. El objetivo es usar después la redya entrenada con casos donde la salida no se conoce. En otras palabras se buscainferir la relación entre los datos entrada y salida.

Existe una función de “costo” que esta relacionada con el error entre el resultadoesperado y la salida de la red. Una función usada comúnmente es la diferenciaentre el resultado buscado y el obtenido elevado al cuadrado (para que siempresea positivo) sumado para cada caso de prueba. Otra función de costo es la degradiente descendente, si se la usa para un tipo de red llamado PerceptronMulticapa se obtiene el algoritmo Backpropagation.

Algunas aplicaciones de este tipo de aprendizaje son:

● Reconocimiento o clasificación de patrones - reconocimiento deescritura, reconocimiento de voz.

Page 16: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

13

● Regresión, también conocido como aproximación de funciones.● Identificación de objetos en visión por computadora.● OCR, reconocimiento de caracteres en textos digitalizados.● Detección de spam.

2.9.1.1.2. No supervisado

El aprendizaje no supervisado es cuando un modelo es ajustado segúnobservaciones. Se distingue del aprendizaje supervisado en el hecho de que nohay una salida a priori. En el aprendizaje no supervisado se recolecta un conjuntode datos que se usan como entrada, luego la red se va adaptando a la entradasegún algún criterio.

El aprendizaje no supervisado es útil también para la compresión de información:todo algoritmo de compresión de datos, ya sea explícitamente o implícitamente, sebasa en la distribución de probabilidades de un conjunto de entradas.

Otra forma de aprendizaje no supervisado es la clusterización (clasificación).

2.9.1.1.3. Por refuerzo

En el aprendizaje por refuerzo la información es obtenida del entorno, en unmomento particular el agente – un sistema que interactúa con este entorno –observa el estado del entorno usa esta información como sus datos de entrada.Según estos datos de entrada el agente efectúa una acción sobre el entorno quealtera su estado. Existe una función que traduce el estado del entorno en unpuntaje que el agente tratará de maximizar o minimizar, según el resultado de susacciones el agente irá decidiendo las acciones futuras a efectuar.

Este tipo de aprendizaje se usa para problemas de control, juegos y otras tareasde toma de decisiones secuenciales.

2.10. Reconocimiento de Patrones

El reconocimiento de patrones pertenece al área de la inteligencia artificial y elaprendizaje automático [Christopher M. Bishop, 2007], sus aplicaciones actualesson extremadamente amplias y abarcan áreas que van desde la geología hastalas ciencias médicas, en esta última tiene especial interés en los diagnósticosasistidos por computadora (CAD por sus siglas en ingles) [Dietrich Paulus &Joachim Hornegger, 1998].

El reconocimiento de patrones busca clasificar datos de entrada en conjuntos deestos con características similares. [Christopher M. Bishop, 2007]

Entre las aplicaciones del reconocimiento de patrones se encuentran elreconocimiento de voz, la clasificación de documentos, el reconocimiento deescritura, el reconocimiento de caras humanas y muchos otros.

Si para efectuar esta tarea se utilizan redes neuronales el aprendizaje puede sersupervisado o no supervisado [Christopher M. Bishop, 2007], siendo el primero en

Page 17: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

14

el cual se conoce la clasificación de la información a priori y se usa para entrenaral sistema.

La mayor ventaja de las redes neuronales sobre los otros métodos dereconocimiento es su habilidad para ser usadas en casi cualquier contexto de lamisma forma dejando que la red “aprenda” sobre los datos de entrada. [SergiosTheodoridis & Konstantinos Koutroumbas, 2006]

El uso de redes neuronales para este tipo de tareas se difundió rápidamente enlos últimos años con el auge de la informática y el incremento en la velocidad delos procesadores. [Phiroz Bhagat, 2005]

Uno de los algoritmos más utilizados en el aprendizaje supervisado es elBackpropagation sobre redes perceptron multi-capa. [Anderson, James A., 1995]

De los no supervisados el SOM (Self Organizing Map) es muy útil para este tipo detareas. [Kohonen, T., 1995]

Page 18: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

15

3. Problema

En varias industrias de seguridad y de control de acceso (playas deestacionamiento, detección de infracciones) es deseable contar con un métodoautomático de identificar vehículos en forma automática sin necesidad de instalaren ellos ningún dispositivo especial.

En particular las grandes playas de estacionamiento automatizadas tienen unespecial interés en contar con esta posibilidad, toda vez que ello le permitiríadisminuir considerablemente el riesgo de hurto de vehículos al proveer un sencilloy eficiente medio de control adicional. Un sistema de esta naturaleza debe ser losuficientemente confiable como para constituir un control creíble, y al mismotiempo debe ser rápido para no interferir con la operación normal de la playa.

Existen playas de estacionamiento de gran movimiento de vehículos, connumerosas entradas y salidas (ej. Alto Avellaneda) en las que si bien no se cobrael servicio, se entregan tickets de entrada que se controlan a la salida con laexclusiva finalidad de disminuir el riesgo de hurto o robo.

Page 19: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

16

4. Esbozo de la solución

La solución que se plantea al punto 3 es identificar a los vehículos por su patentemediante un sistema que capture una imagen de la misma al momento de entrar osalir y relacione la patente con el ticket evitando de esta forma el hurto de losvehículos.

Para lograr esto se deben resolver los siguientes puntos:

a) Captura de la imagen

b) Localización de la patente en la imagen

c) Extracción de los caracteres

d) Reconocimiento de los caracteres

Captura de la imagen:

Se hará usando una cámara infrarroja, luces infrarrojas y un sensor de presión enel piso, cuando el vehículo lo active frente a la barrera de entrada o salida secapturará la foto. Se optó por el uso de cámaras y luces infrarrojas ya que sonindependientes de la luz ambiental e incluso permiten sacar fotos en la oscuridad.

Localización de la patente:

Se hará usando una serie de filtros sobre la imagen como ser, corrección de brilloy contraste, binarización usando Threshold calibrado a las imágenes obtenidas.Luego se usará la transformada de Hough con modificaciones particulares paraeste problema en particular, mediante esta transformada modificada se buscarandos líneas con características particulares: distancia mínima y máxima entre ellas,ángulo mínimo y máximo de rotación y diferenciando la superior de la inferior (lospuntos de la superior son blancos con negro debajo mientras que los de la inferiorson blancos con negro arriba). De esta forma se encontrará el límite superior einferior de la patente independientemente de su ubicación, tamaño o rotación.Luego se buscaran las líneas verticales dentro de esta franja usando la mismatransformada pero modificada para líneas verticales.

Extracción de caracteres:

Se hará mediante un algoritmo de camino mínimo entre la parte superior y lainferior de la franja, donde los pixels blancos son los que incrementan el largo delcamino. Este algoritmo será modificado según las características de los caracteres(ancho sobre todo), para que los caminos encontrados sean la separación de loscaracteres.

Reconocimiento de los caracteres:

Page 20: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

17

Se hará mediante una red neuronal donde los valores de entrada serán unmuestreo del carácter obtenido en el paso anterior, el tamaño de este se ajustarápara balancear de la mejor manera posible la tasa de éxito con el tiempo deproceso.

Se usaran dos redes neuronales, una para las letras y otra para los númeroslogrando de esta forma una tasa mayor de acierto usando información particulardel problema (los primeros tres caracteres son letras y los siguientes tresnúmeros).

Se probará con una Backpropagation y una SOM modificada para que cadaneurona recuerde cual es el carácter que representa, según los resultados seelegirá la más adecuada.

4.1. Uso de redes neuronales

Se optó por el uso de redes neuronales en vez de los métodos vectorialestradicionales ya que las redes neuronales:

● Soportan incertidumbre, informan “en cuanto se parece” el carácter deentrada respecto a uno aprendido previamente, son menos propensas aerror por las variaciones en la iluminación y ángulo de captura

● En el entrenamiento extraen las características relevantes de loscaracteres y descartan las más variables haciendo más efectivo elreconocimiento

● “Aprenden” del lote de prueba que se les provee evitando el trabajomanual de ajuste inicial en cada estacionamiento al instalar

Page 21: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

18

5. Plan de trabajo

Etapas y tiempos

1 Obtención de datos de prueba (imágenes) 1 Mes

2 Estudio de algoritmos y filtros para análisis localización de lapatente 2 Semanas

3 Implementación de los algoritmos resultantes de la etapa 2 1 Mes

4 Ensayo y refinamiento de los algoritmos de la etapa 3 enbase a los datos de prueba 2 Meses

5 Estudio de algoritmos para extracción de caracteres 1 Semana

6 Implementación del algoritmo resultante de la etapa 5 2 Semanas

7 Estudio de redes neuronales para reconocimiento decaracteres 2 Semanas

8 Implementación de la red resultante de la etapa 7 2 Semanas

9 Entrenamiento de la red y refinamiento en base a los datosde prueba 1 Mes

10 Integración 2 Semanas

Tiempo total: 7 Meses

Page 22: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

19

6. Solución alcanzada

6.1. Casos exitosos

Page 23: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

20

Page 24: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

21

6.2. Imagen tomada muy cerca

Page 25: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

22

6.3. Errores en la red

Page 26: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

23

6.4. Errores en la localización

Page 27: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

24

Page 28: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

25

7. Conclusiones

Durante el transcurso del desarrollo varias cosas se hicieron evidentes, para elóptimo funcionamiento de un sistema de estas características son necesariasvarias condiciones básicas.

En primer lugar tener condiciones de luminosidad controladas es una gran ventaja(como puede lograrse con cámaras y luces infrarrojas), esto permite un sistemaque funcione con la misma tasa de aciertos independientemente de lascondiciones ambientales, las interferencias por las luces del mismo automóvil, elsol, etc.

En segundo lugar tener una posición fija para la cámara facilita mucho lalocalización de la patente, esto permite un ajuste mucho más fino de losparámetros que en este sistema se dejaron muy flexible. La variación de lasdimensiones de la patente toleradas es muy amplia, un ajuste más finoaprovechando las condiciones controladas incrementaría la tasa de éxito en formasustancial.

La elección de la transformada de Hough para la primera aproximación de lalocalización fue un gran acierto, esta permitió una clara mejora en la performancey la tasa de éxito del sistema.

Respecto al tipo de red para el reconocimiento de los caracteres se concluyó quelo mejor era una red SOM, varias pruebas con redes Backpropagation mostraronresultados poco satisfactorios.

Para concluir se puede observar que los tiempos de respuesta son aceptablespara el fin original, en el caso de utilizarse el sistema para un peaje o algún otropunto de gran cantidad de tráfico se vuelve necesario encarar el desarrollo coneste requerimiento muy presente y, probablemente, utilizar lenguajes de más bajonivel.

Page 29: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

26

8. Referencias

Adobe, 2007. “A Color Managed Raw Workflow - From Camera to Final Print”http://www.adobe.com/digitalimag/pdfs/color_managed_raw_workflow.pdf. Páginavigente al 20 de mayo de 2007.

Anderson, James A., 1995. “An Introduction to Neural Networks”. ISBN 0-262-01144-1.

Bryce E. Bayer. 1976. “Bayer Color imaging array”. US3971065

C. Harris & M. Stephens, 1988. “A combined corner and edge detector”. Cuartaconferencia Alvey Vision. Páginas 147-151.http://www.csse.uwa.edu.au/~pk/research/matlabfns/Spatial/Docs/Harris/A_Combined_Corner_and_Edge_Detector.pdf. Página vigente al 12/05/2007

Canny, J., 1986. “A Computational Approach To Edge Detection”, IEEE Trans.Pattern Analysis and Machine Intelligence.

Christopher M. Bishop, 2007. “Pattern Recognition and Machine Learning”,Springer, ISBN 0-387-31073-8

D. G. Lowe, 2004. “Distinctive Image Features from Scale-Invariant Keypoints”.International Journal of Computer Vision 60. Páginas 91-110

Dietrich Paulus & Joachim Hornegger, 1998 “Applied Pattern Recognition” 2ndedition, Vieweg. ISBN 3-528-15558-2

Duda, Richard O. & Hart, Peter E., 1971. “Use of the Hough transformation todetect lines and curves in pictures” http://www.ai.sri.com/pubs/files/tn036-duda71.pdf

Enciclopedia Británica Online, 2005. Enciclopedia Británica Online accedida el 12de Junio de 2005. http://www.britannica.com/

Fairchild, Mark D., 1998. “Color Appearance Models”, Addison-Wesley, Reading,MA. ISBN 0-201-63464-3

Foley, James D. & Andries van Dam, 1982. “Fundamentals of Interactive ComputerGraphics”, Addison-Wesley. ISBN 0-201-14468-9.

Gonzalez, R. C. & Woods, R. E., 1993, “Digital Image Processing”, Prentice Hall.

Gonzalez, Rafael C. & Woods, Richard E., 2002. “Thresholding in Digital ImageProcessing”, Pearson Education. Páginas 595–611 ISBN 81-7808-629-8

Halmos, Paul R., 1993. “Finite-Dimensional Vector Spaces”, Springer-Verlag. ISBN0-387-90093-4

Page 30: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

27

Ian T. Young, Jan J. Gerbrands & Lucas J. Van Vliet, 1995 “Fundamentals ofImage Processing” ISBN 90-75691-01-7

J. Shi and C. Tomasi, 1994. “Good Features to Track”. Novena conferencia delIEEE sobre Computer Vision and Pattern Recognition.

John C. Russ, 2006. “The Image Processing Handbook”. ISBN 0849372542 (2006)

Kohonen, T., 1995. “Self-Organizing Maps”, Springer. ISBN 3-540-67921-9, ISSN0720-678X

L. Bretzner & T. Lindeberg, 1998. “Feature Tracking with Automatic Selection ofSpatial Scales”. Computer Vision and Image Understanding. Páginas 385-392

Law, Diane, 1994. “Searle, Subsymbolic Functionalism and Synthetic Intelligence”

Lawrence, Jeanette, 1994. “Introduction to Neural Networks”, California ScientificSoftware Press. ISBN 1-883157-00-5

M. Trajkovic and M. Hedley, 1998. “Fast corner detection”. Image and VisionComputing. Páginas 75-87.

M. B. Priestley, 1982. “Spectral analysis and time series”. London, New York :Academic Press.

McCarthy, John & Hayes, P. J., 1969. “Some philosophical problems from thestandpoint of artificial intelligence”, Machine Intelligence 4: Páginas 463-502

P. Montesinos, V. Gouet, R. Deriche, D. Pelé, 1999. “Differential Invariants forColor Images”.http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MONTESSINOS/cv_online.html. Página vigente al 12/05/2007

Phiroz Bhagat, 2005. “Pattern Recognition in Industry”, Elsevier. ISBN 0-08-044538-1

Poole, David; Mackworth, Alan & Goebel, Randy, 1998. “ComputationalIntelligence: A Logical Approach”, Oxford University Press

Porat, Boaz “A Course in Digital Signal Processing”, Wiley, ISBN 0471149616

Robyn Owens, 2007. “Mathematical Morphology”, de las lecturas Computer Visionhttp://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT3/node3.html. Página vigente al 12/05/2007

Russel, Stuart J. & Norving, Peter, 2003. “http://aima.cs.berkeley.edu/ArtificialIntelligence: A Modern Approach” Segunda edición, Upper Saddle River, NJ:Prentice Hall, ISBN 0-13-790395-2

Page 31: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

28

S. M. Smith & J. M. Brady, 1997. “SUSAN - a new approach to low level imageprocessing”. International Journal of Computer Vision 23. Páginas 45-78.

Schatzman, Michelle, 2002. “Numerical Analysis: A Mathematical Introduction.”Clarendon Press, Oxford. ISBN 0-19-850279-6.

Sean McHugh, 2007. “Tutorials – Digital Camera Sensors”http://www.cambridgeincolour.com/tutorials/sensors.htm. Página vigente al12/05/2007

Sergios Theodoridis & Konstantinos Koutroumbas, 2006. “Pattern Recognition”,Tercera edición, Elsevier. ISBN 0-12-369531-7.

Shannon, Claude E., 1948. “A mathematical theory of communication”. BellSystem Technical Journal, vol. 27, páginas. 379-423, 623-656

Shapiro, Linda G. & Stockman, George C., 2001. “Computer Vision”, New Jersey,Prentice-Hall, ISBN 0-13-030796-3

Sobel, I. & Feldman,G., 1968 “A 3x3 Isotropic Gradient Operator for ImageProcessing”, presentado en la conferencia Stanford Artificial Project

Steven W. Smith, 1997. The Scientist and Engineer's Guide to Digital SignalProcessing. ISBN 0-9660176-3-3

Susstrunk, Buckley & Swen, 2005. “Standard RGB Color Spaces”.http://infoscience.epfl.ch/getfile.py?mode=best&recid=34089 Página vigente al12/05/20007

T. Lindeberg, 1998. “Feature detection with automatic scale selection”.International Journal of Computer Vision 30. Páginas 77-116.

T. Porter & T. Duff, 1984. “Compositing Digital Images”

Wang, Yao, Jörn Ostermann & Ya-Qin Zhang, 2002 “Video Processing andCommunications” Signal Processing Series. Upper Saddle River, N.J.: PrenticeHall ISBN 0130175471

Page 32: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

29

A. Metodología

En este capítulo se describe la metodología empleada en el desarrollo de laaplicación.

Se enumeran los requerimientos (sección A.1) y se habla de las limitacionesactuales (sección A.2).

Luego se descompone al sistema en dos subsistemas (sección A.3), uno deentrenamiento (sección A.3.1) y otro productivo (sección A.3.2).

Se define la arquitectura (sección A.4), comparando la propuesta (sección A.4.1)con la actual (sección A.4.2).

Se hace el análisis del sistema (sección A.5) mediante casos de uso (secciónA.5.1) y se muestra el diagrama de secuencia del proceso principal (secciónA.5.2). Se definen las clases mediante diagramas (sección A.5.3) tanto propias dela aplicación (sección A.5.3.1) como del modulo externo utilizado (sección A.5.3.2)indicando las modificaciones que se le realizaron.

Se aborda la codificación de la solución (sección 0) y se trabaja sobre suimplementación (sección 0) describiendo sus pantallas (sección A.7.1).

Luego se cubre la etapa de pruebas (sección A.8) estableciendo un plan depruebas (sección A.8.1), documentando el diseño de cada prueba (sección A.8.2),especificando los casos de prueba (sección A.8.3), los procedimientos (secciónA.8.4), se confecciona un informe de los casos de prueba ejecutados (secciónA.8.5), así como un informe de la prueba (sección A.8.6).

Finalmente se describe el plan de mantenimiento (sección A.9).

Page 33: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

30

A.1. Requerimientos

La aplicación debe permitir:

● Identificar el 80% de los caracteres de las patentes de automóvil● Efectuar la identificación en menos de 2 segundos● Tolerar cambios en el ángulo y distancia de la captura de la foto● Reentrenar las redes para lograr mayores tasas de éxito a medida que

se consiguen nuevos lotes de prueba● Almacenar y recuperar las redes para su futuro uso

Page 34: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

31

A.2. Limitaciones actuales

El modo de trabajo actual consiste en la lectura humana de la patente y su registroen el ticket de ingreso al estacionamiento y su comprobación al momento de lasalida.

Este proceso es costoso en tiempo y recursos ya que requiere de una personadedicada exclusivamente a esta tarea.

Esta forma de operar provee un tiempo de identificación superior a los 20segundos por automóvil y limita la capacidad operativa del estacionamiento enlas horas pico.

Al momento de finalizado este trabajo profesional no existe en el país un sistemacapaz de identificar los numero patentes de los automóviles en unestacionamiento con una tasa de éxito acorde a las expectativas del mercado.

Page 35: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

32

A.3. Subsistemas

El sistema descrito está compuesto de dos subsistemas.

A.3.1. Subsistema de entrenamiento

Este subsistema recibe las características de configuración de la red (parámetrosiniciales de las redes neuronales SOM) y el lote de imágenes con suscorrespondientes salidas.

Su salida consiste en dos archivos que contienen una red neuronal entrenadacada uno; uno es para letras “redLetras” y otro para números “redNumeros”. Estasredes son la entrada del subsistema de identificación, se instalan en este últimocopiando estos archivos en el directorio de la aplicación. Este proceso es idénticoal mantenimiento (sección A.9A.8).

A.3.2. Subsistema de reconocimiento

Este subsistema corresponde a la etapa productiva del sistema, la entrada es unaimagen de un automóvil, el sistema procesa la imagen y, utilizando las redes delsubsistema de entrenamiento, devuelve los caracteres que componen la patentedel automóvil.

Por tratarse de un trabajo profesional se unificó la interfaz de usuario de los dossubsistemas para poder observar el funcionamiento global más fácilmente.

Page 36: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

33

A.4. Arquitectura

A.4.1. Arquitectura de la nueva aplicación

Como se describió anteriormente el sistema está compuesto por dos subsistemas.Él de entrenamiento debe ser ejecutado en una PC con gran poder deprocesamiento, el subsistema de reconocimiento tiene una complejidad menor yrequiere menor poder de procesamiento. Este diseño fue concebido para disminuirlos costos del sistema ya que la salida del primer subsistema puede ser utilizadaen todos los subsistemas de reconocimiento que se desee sin necesidad de volvera generarla.

Para el subsistema de entrenamiento se requieren la siguiente arquitectura:Hardware:

Pentium Core2 duo 1.6ghz (puede disminuirse a costa de un mayor tiempo de proceso)

1gb de Ram (puede disminuirse a costa de un mayor tiempo de proceso)

500mb de espacio libre para la aplicación

Software:

Windows (XP en adelante)

.Net Framework 2.0

Para el subsistema reconocimiento se requieren la siguiente arquitectura:Hardware:

Pentium IV 3ghz (puede disminuirse a costa de un mayor tiempo de proceso)

1gb de Ram (puede disminuirse a costa de un mayor tiempo de proceso)

Cámara IP de video o cámara fotográfica y placa capturadora de video

Sensor de presión (se usa como disparador del proceso de reconocimiento, este sensor estáinstalado actualmente ya que se usa para emitir el ticket de ingreso y levantar la barrera)

Software:

Windows (XP en adelante)

.Net Framework 2.0

Aclaración:

Una sola máquina puede atender más de una barrera, la cantidad de barreras quepuede atender depende del caudal de automóviles y la capacidad deprocesamiento de la máquina.

Page 37: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

34

A.4.2. Arquitectura del sistema actualActualmente la arquitectura del estacionamiento consiste en:Hardware:

Pentium I

128mb de Ram

Lector de código de barras (se lee el ticket al momento de salir)

Software:

DOS

Sistema para el control de tiempo de estacionamiento y cálculo del costo delestacionamiento.

Aclaración:

Este sistema se conservará, solo se efectuará un paso previó a la apertura de labarrera donde se verificará la correspondencia del ticket y la patenteautomáticamente.

Referencia:

Estacionamiento situado en M. T. Alvear 350

Page 38: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

35

A.5. Análisis

A.5.1. Casos de Uso

En la siguiente figura se presentan los casos de uso del sistema desde un enfoquede alta abstracción. Estos corresponden a las acciones que el operador (actor)realiza sobre el sistema.

udUse Case Model

Operador

Cargar Red

Guardar Red

Entrenar

Buscar Patente

Page 39: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

36

A.5.1.1. Cargar RedImplica la carga desde un medio externo a la aplicación de la red para su uso.

ud Cargar Red

Construir red

Obtener datos red

Operador

Inicializar red

Antes de poder cargar los datos es necesario construir la red, ya sea la de letrascomo la de números, luego se procede a la obtención de los datos y finalmente seinicializa la red con los datos obtenidos.

Page 40: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

37

A.5.1.2. Guardar Red

Implica el guardado en un medio externo a la aplicación de la red para su futurouso.

udGuardar Red

Operador

Extraer datos red

Crear repositorio

datos

Persistir datos red

La primera tarea que se efectúa al guardar los datos es extraerlos de la red, ya sela de letras como la de números, luego se crea el repositorio de datos y finalmentelos datos son persistidos en este.

Page 41: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

38

A.5.1.3. Entrenar

Implica la ejecución del proceso de entrenamiento de la red mediante un lote depruebas.

udEntrenar

Operador

Inicializar

entrenamiento

Obtener lote

imagenes

Entrenar cada

imagen

La primera tarea es la inicialización del entrenamiento, esto implica la inicializaciónde la red y los parámetros de entrenamiento. Luego se obtiene el lote de imágenesque se usaran para entrenar, finalmente se entrena la red, ya se la de letras comola de números.

Page 42: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

39

A.5.1.4. Buscar Patente

Implica el uso de la red neuronal cargada o entrenada para la identificación de loscaracteres en la patente.

udBuscar Patente

Operador

Aplicar filtros

Localizar patente

Reconocer patente

Para buscar la patente se debe comenzar aplicando los filtros a la imagen, luegose procede a localizar la patente y finalmente se reconoce la patente localizada(sección 4)

Page 43: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

40

A.5.2. Diagrama de secuencia

A.5.2.1. Cargar Red

sd

Carg

ar

Red

Data

Help

er

Opera

dor

File

Pers

istH

elp

er

reader:

Bin

ary

Reader

Dis

tanceN

etw

ork

LoadN

etw

ork

s

arc

hiv

o:=

OpenR

ead(A

ppD

om

ain

.CurrentD

om

ain

.Base

Directo

ry+

"\\redLetras"

)

Bin

ary

Reader(arc

hiv

o)

LoadN

etw

ork

(netw

ork

Letras,

reader)

neuro

nsC

ount:=

ReadIn

t32

inputC

ount:=

ReadIn

t32

netw

ork

Letras:

=D

ista

nceN

etw

ork

(inputs

Count,

neuro

nsC

ount)

*Carg

arN

euro

na(n

euro

na,re

ader)

cara

cte

r:=

ReadC

har

*Carg

arP

eso

s(neuro

na,re

ader)

peso

:=R

eadD

ouble

Clo

se

Netw

ork

Letras(

netw

ork

Letras)

Page 44: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

41

A.5.2.2. Guardar Redsd

Carg

ar

Red

Data

Help

er

Opera

dor

File

Pers

istH

elp

er

reader:

Bin

ary

Reader

Dis

tanceN

etw

ork

LoadN

etw

ork

s

arc

hiv

o:=

OpenR

ead(A

ppD

om

ain

.CurrentD

om

ain

.Base

Directo

ry+

"\\redLetras"

)

Bin

ary

Reader(arc

hiv

o)

LoadN

etw

ork

(netw

ork

Letras,

reader)

neuro

nsC

ount:=

ReadIn

t32

inputC

ount:=

ReadIn

t32

netw

ork

Letras:

=D

ista

nce

Netw

ork

(inputs

Count,

neuro

nsC

ount)

*Carg

arN

euro

na(n

euro

na,re

ader)

cara

cte

r:=

ReadC

har

*Carg

arP

eso

s(neuro

na,re

ader)

peso

:=R

eadD

ouble

Clo

se

Netw

ork

Letras(

netw

ork

Letras)

Page 45: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

42

A.5.2.3. Entrenarsd

Carg

ar

Red

Data

Help

er

Opera

dor

File

Pers

istH

elp

er

reader:

Bin

ary

Reader

Dis

tanceN

etw

ork

LoadN

etw

ork

s

arc

hiv

o:=

OpenR

ead(A

ppD

om

ain

.CurrentD

om

ain

.Base

Directo

ry+

"\\redLetras"

)

Bin

ary

Reader(arc

hiv

o)

LoadN

etw

ork

(netw

ork

Letras,

reader)

neuro

nsC

ount:=

ReadIn

t32

inputC

ount:=

ReadIn

t32

netw

ork

Letras:

=D

ista

nce

Netw

ork

(inputs

Count,

neuro

nsC

ount)

*Carg

arN

euro

na(n

euro

na,re

ader)

cara

cte

r:=

ReadC

har

*Carg

arP

eso

s(neuro

na,re

ader)

peso

:=R

eadD

ouble

Clo

se

Netw

ork

Letras(

netw

ork

Letras)

Page 46: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

43

A.5.2.4. Buscar Patentesd

Buscar

Pate

nte

BuscarP

ate

nte

AForg

e.Im

agin

g.Im

age

filterG

rayS

cale

Y:A

Forg

e.Im

agin

g.F

ilte

rs.G

rays

cale

YfilterG

am

ma:A

Forg

e.Im

agin

g.F

ilte

rs.G

am

maC

orr

ection

filterT

hre

shold

:AForg

e.Im

agin

g.F

ilte

rs.T

hre

shold

imagen:=

Form

atIm

age(im

agen)

imagen:=

Apply

(im

agen)

imagen:=

Apply

(im

agen)

imagen:=

Apply

(im

agen)

imagenT

ransf

orm

ada:=

transf

orm

adaD

eH

ough(im

agen,true)

maxim

os:

=obte

nerM

axim

os(

imagenT

ransf

orm

ada,1,80,20,null,null,true)

obte

nerR

ect

angulo

(p,angle

,im

agen.H

eig

ht,

imagen.W

idth

,outm

inX

,outm

axX

,outm

inY

,outm

axY

)

imagenT

ransf

orm

ada2:=

transf

orm

adaD

eH

ough(im

agen,0,im

agen.W

idth

,yM

in,yM

ax,

fals

e)

maxim

os2

:=obte

nerM

axi

mos(

imagenT

ransf

orm

ada2,1,angle

2,6,null,null,fa

lse)

reto

rno:=

Reco

nocer(im

agen,m

axim

os,

maxim

os2

)

Page 47: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

44

A.5.3. Diagrama de Clases

A continuación se presentan los diagramas de clases fundamentales del proyectoacompañado de una descripción de cada una de éstas:

A.5.3.1. Diagrama de clases propias de la aplicación

A.5.3.1.1. ImageFilter

cdReconocimientoDePatentes

ImageFilter

# h: int

# w: int

# mask: int[][]

+ ImageFilter(int, int)

+ ImageFilter(int, int, int[][])

+ Apply(Bitmap) : void

LinearBestFitAdjust

+ LinearBestFitAdjust(int, int)

+ LinearBestFitAdjust(int, int, int[][])

+ Apply(Bitmap) : void

HistogramEqualization

+ HistogramEqualization(int, int)

+ HistogramEqualization(int, int, int[][])

+ Apply(Bitmap) : void

GrayScaleConverter

+ GrayScaleConverter(int, int)

+ GrayScaleConverter(int, int, int[][])

+ Apply(Bitmap) : void

LinearBestFitAdjust, GrayScaleConverter e HistogramEqualization son tres clasesque heredan e implementan ImageFilter (clase abstracta), todas ellas proveenfiltros para que se aplican sobre la clase Bitmap del Framework (.Net Framework2.0)

Page 48: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

45

A.5.3.1.2. Helpers

cdReconocimientoDePatentes

RecongnitionHelper

- _constErrorMaximo: double = Helpers.Persist...

+ «property» _errorMaximo() : double

+ ReconocerLetra(Image, double*) : string

+ ReconocerLetra(Image, Image*, double*) : string

+ ReconocerNumero(Image, double*) : string

+ ReconocerNumero(Image, Image*, double*) : string

+ Reconocer(Image, List<Image>*, List<Image>*, Char[]*, Decimal[]*) : void

DataHelper

+ SaveNetworks() : void

+ LoadNetworks() : void

- SaveNetwork(Network, BinaryWriter) : void

- LoadNetwork(DistanceNetwork*, BinaryReader) : void

PersistHelper

- _networkNumeros: DistanceNetwork= null

- _networkLetras: DistanceNetwork

+ «property» NetworkNumeros() : DistanceNetwork

+ «property» NetworkLetras() : DistanceNetwork

DataHelper es la clase encargada de la persistencia a largo plazo de las redes.

PersistHelper es la clase encargada de la persistencia a corto plazo de las redes,es decir, mientras la aplicación se está ejecutando.

RecongnitionHelper es la clase encargada de reconocer letras o númerosindividuales u obtener los seis caracteres que componen a una patente. Estosmétodos también devuelven el porcentaje de similitud entre el/los caracteres quese ingresaron y el carácter devuelto, este valor es similar a un índice de confianzasobre el resultado emitido.

Page 49: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

46

A.5.3.2. Diagrama de clases del modulo AForge para laimplementación de las redes neuronales

A.5.3.2.1. IActivationFunction

cd Neuro

BipolarSigmoidFunction

- alpha: double = 2

+ «property» Alpha() : double

+ BipolarSigmoidFunction()

+ BipolarSigmoidFunction(double)

+ Function(double) : double

+ Derivative(double) : double

+ Derivative2(double) : double

«interface»

IActivationFunction

+ Function(double) : double

+ Derivative(double) : double

+ Derivative2(double) : double

SigmoidFunction

- alpha: double = 2

+ «property» Alpha() : double

+ SigmoidFunction()

+ SigmoidFunction(double)

+ Function(double) : double

+ Derivative(double) : double

+ Derivative2(double) : double

ThresholdFunction

+ ThresholdFunction()

+ Function(double) : double

+ Derivative(double) : double

+ Derivative2(double) : double

Estas son las clases que implementan las distintas funciones de activación, todasimplementan la interfase IActivationFunction.

Page 50: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

47

A.5.3.2.2. Network

cdNeuro

ActivationNetwork

+ «indexer» this(int) : ActivationLayer

+ ActivationNetwork(IActivationFunction, int, int[])

DistanceNetwork

+ «indexer» this(int) : DistanceLayer

+ DistanceNetwork(int, int)

+ GetWinner() : int

+ GetWinners(int) : List<KeyValuePair<int, double>>

+ GetSalidaPonderada(int, int) : char

Network

# inputsCount: int

# layersCount: int

# layers: Layer[]

# output: double[]

+ «property» InputsCount() : int

+ «property» LayersCount() : int

+ «property» Output() : double[]

+ «indexer» this(int) : Layer

# Network(int, int)

+ Compute(double[]) : double[]

+ Randomize() : void

ActivationNetwork y DistanceNetwork son las clases que implementan las redes,como se puede ver ambas heredan de Network que contiene una colección deLayer (capas) que se describe en 2.1.2.3.

Page 51: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

48

A.5.3.2.3. Layer

cd Neuro

ActivationLayer

+ «indexer» this(int) : ActivationNeuron

+ ActivationLayer(int, int, IActivationFunction)

DistanceLayer

+ «indexer» this(int) : DistanceNeuron

+ DistanceLayer(int, int)

Layer

# inputsCount: int = 0

# neuronsCount: int = 0

# neurons: Neuron[]

# output: double[]

+ «property» InputsCount() : int

+ «property» NeuronsCount() : int

+ «property» Output() : double[]

+ «indexer» this(int) : Neuron

# Layer(int, int)

+ Compute(double[]) : double[]

+ Randomize() : void

Network

# inputsCount: int

# layersCount: int

# layers: Layer[]

# output: double[]

+ «property» InputsCount() : int

+ «property» LayersCount() : int

+ «property» Output() : double[]

+ «indexer» this(int) : Layer

# Network(int, int)

+ Compute(double[]) : double[]

+ Randomize() : void

ActivationLayer y DistanceLayer son las clases que implementan las capas, comose puede ver que ambas heredan de Layer, a su vez Layer está contenida enNetwork y contiene una colección de Neuron que se describe en 2.1.2.4.

Page 52: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

49

A.5.3.2.4. Neuron

cdNeuro

«interface»

IActivationFunction

+ Function(double) : double

+ Derivative(double) : double

+ Derivative2(double) : double

Layer

# inputsCount: int = 0

# neuronsCount: int = 0

# neurons: Neuron[]

# output: double[]

+ «property» InputsCount() : int

+ «property» NeuronsCount() : int

+ «property» Output() : double[]

+ «indexer» this(int) : Neuron

# Layer(int, int)

+ Compute(double[]) : double[]

+ Randomize() : void

ActivationNeuron

# threshold: double = 0.0f

# function: IActivationFunction = null

+ «property» Threshold() : double

+ «property» ActivationFunction() : IActivationFunction

+ ActivationNeuron(int, IActivationFunction)

+ Randomize() : void

+ Compute(double[]) : double

DistanceNeuron

+ DistanceNeuron(int)

+ Compute(double[]) : double

Neuron

# inputsCount: int = 0

# weights: double[] = null

# output: double = 0

# rand: Random = newRandom( (in...

# randRange: DoubleRange = newDoubleRange...

- _salida: char = '?'

+ «property» RandGenerator() : Random

+ «property» RandRange() : DoubleRange

+ «property» InputsCount() : int

+ «property» Output() : double

+ «indexer» this(int) : double

+ Neuron(int)

+ Randomize() : void

+ Compute(double[]) : double

+ «property» Salida() : char

En el nivel atómico se encuentra Neuron (neurona), implementada porActivationNeuron y DistanceNeuron.

ActivationNeuron contiene una IActivationFunction (descripta en 2.1.2.1). Elmétodo fundamental de Neuron es Compute (abstracto), mediante el cual seevalúa la salida de la neurona.

Neuron está contenida en Layer (descripta en 2.1.2.3)

Es importante notar que a Neuron se le agregó la propiedad Salida que es elcarácter que representa al neurona (ver 2.1.2.6).

Page 53: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

50

A.5.3.2.5. ISupervisedLearning

cdLearning

BackPropagationLearning

- network: ActivationNetwork

- learningRate: double = 0.1

- momentum: double = 0.0

- neuronErrors: double[][] = null

- weightsUpdates: double[][][] = null

- thresholdsUpdates: double[][] = null

+ «property» LearningRate() : double

+ «property» Momentum() : double

+ BackPropagationLearning(ActivationNetwork)

+ Run(double[], double[]) : double

+ RunEpoch(double[][], double[][]) : double

- CalculateError(double[]) : double

- CalculateUpdates(double[]) : void

- UpdateNetwork() : void

DeltaRuleLearning

- network: ActivationNetwork

- learningRate: double = 0.1

+ «property» LearningRate() : double

+ DeltaRuleLearning(ActivationNetwork)

+ Run(double[], double[]) : double

+ RunEpoch(double[][], double[][]) : double

«interface»

ISupervisedLearning

+ Run(double[], double[]) : double

+ RunEpoch(double[][], double[][]) : double

PerceptronLearning

- network: ActivationNetwork

- learningRate: double = 0.1

+ «property» LearningRate() : double

+ PerceptronLearning(ActivationNetwork)

+ Run(double[], double[]) : double

+ RunEpoch(double[][], double[][]) : double

BackpropagationLearning, DeltaRuleLearning y PerceptronLearning se utilizaronen la etapa de inicial de investigación pero fueron descartadas por SOMLearning(descripta en 2.1.2.6) ya que con esta última se obtuvieron mejores resultados.

Como se ve las tres clases implementan ISupervisedLearning.

Page 54: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

51

A.5.3.2.6. IUnsupervisedLearning y SOMLearning

cd Learning

ElasticNetworkLearning

- network: DistanceNetwork

- distance: double[]

- learningRate: double = 0.1

- learningRadius: double = 0.5

- squaredRadius2: double = 2 * 7 * 7

+ «property» LearningRate() : double

+ «property» LearningRadius() : double

+ ElasticNetworkLearning(DistanceNetwork)

+ Run(double[]) : double

+ RunEpoch(double[][]) : double

«interface»

IUnsupervisedLearning

+ Run(double[]) : double

+ RunEpoch(double[][]) : double

SOMLearning

- network: DistanceNetwork

- width: int

- height: int

- learningRate: double = 0.1

- learningRadius: double = 7

- squaredRadius2: double = 2 * 7 * 7

+ «property» LearningRate() : double

+ «property» LearningRadius() : double

+ SOMLearning(DistanceNetwork)

+ SOMLearning(DistanceNetwork, int, int)

+ Run(InputDePrueba) : double

+ RunEpoch(InputDePrueba[]) : double

InputDePrueba

- _inputs: double[]

- _caracter: char

+ «property» Inputs() : double[]

+ «property» Caracter() : char

ElasticNetworkLearning implementa IUnsupervisedLearning, SOMLearningtambién implementaba esta clase originalmente, sin embargo se cambiaron losparámetros de entrada a las funciones Run y RunEpoch en SOMLearning y sedejó de implementar IUnsupervisedLearning para poder identificar el carácterclusterizado por la red. Para efectuar este mapeo entre la neurona y el carácterclusterizado se implementó la clase InputDePrueba que contiene el parámetrooriginal (double[]) y el carácter mapeado permitiendo que SOMLearning se loinforme a las neuronas Neuron y en la etapa de reconocimiento estas lo puedaninformar mediante Salida (ver 2.1.2.4).

Page 55: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

52

A.6. Codificación

La codificación se entrega en el CD que acompaña este trabajo profesional, paraesta se utilizó el lenguaje C# (.Net Framework 2.0) y como repositorio de datos seutilizaron archivos binarios con formato propio.

Page 56: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

53

A.7. Implementación

A continuación de muestran las pantallas del sistema

A.7.1. Pantallas

A.7.1.1. Pantalla Principal

Pantalla principal que permite acceder a las distintas funcionalidades delprograma.

Page 57: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

54

A.7.1.2. Pantalla Entrenamiento

Esta pantalla permite cargar el lote de imágenes para usar en el entrenamiento.

A.7.1.3. Pantalla Entrenar

Esta pantalla permite seleccionar las características de la red y ejecutar elentrenamiento, en la barra se puede ir viendo el progreso.

Page 58: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

55

A.7.1.4. Pantalla Buscar Patente

En esta pantalla se puede seleccionar la imagen a reconocer y ejecutar el procesode reconocimiento.

Se pueden observar:

● Los limites de la patente encontrados por la aplicación como líneas rojassobre la imagen

● El rectángulo extraído de la imagen que forman estos limites (imagen aprocesar) luego de aplicarle los filtros

● Los caracteres extraídos de la imagen a procesar● Los caracteres a los que más se asemejan en la red (neuronas

ganadoras)● El porcentaje de acierto de cada carácter● El Nº de patente reconocido

Page 59: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

56

A.8. Pruebas

A.8.1. Plan de pruebas

Objetivo de la prueba Detectar errores de programación yfuncionamiento en el sistema

Objetos a probar ● Entrenamiento

● Guardar Red

● Buscar Patente

● Cargar Red

Características a probar Funcionamiento de cada uno de los procesospara un conjunto de tareas definido a tal fin.

La prueba se realizará en entorno Windows.

Características a no probar No se probará la performance o velocidad dela herramienta.

Cantidad de casos de prueba

A.8.2. Documento de diseño de la prueba

Procedimiento depruebas

Las pruebas serán llevadas a cabo de acuerdo a lodescripto en la sección A.8.4 (Especificación delprocedimiento de prueba) registrándose las anomalíasobservadas.

Métodos de pruebaa utilizar

Se utilizará el método de caja negra, adivinación deerrores, para poder así determinar las posibles fallas delsistema.

Criterio para laaprobación de las

pruebas

Los criterios para la aprobación de las pruebas serealizarán de acuerdo a la siguiente tabla:

Excelente: Cuando el resultado obtenido luego derealizada la prueba es idéntico al resultado citado en lasección A.8.3 - Especificación de los casos de prueba.

Muy bueno: Cuando el resultado obtenido luego derealizada la prueba es parecido al resultado citado en lasección A.7.3 - Especificación de los casos de prueba.

Bueno: Cuando el resultado obtenido luego de realizada laprueba no fue el resultado citado en la sección A.7.3 -

Page 60: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

57

Especificación de los casos de prueba, pero no haprovocado anomalías en el funcionamiento de laherramienta.

Regular: Cuando el resultado obtenido luego de realizadala prueba no fue el resultado citado en la sección A.7.3 -Especificación de los casos de prueba, pero ha provocadoanomalías en el funcionamiento del programa.

Malo: Cuando el resultado obtenido luego de realizada laprueba no fue el resultado citado en la sección A.7.3 -Especificación de los casos de prueba, pero ha provocadoanomalías en el funcionamiento del programa tales comola salida del sistema o “colgarse”.

A.8.3. Especificación de los casos de prueba

Ítem Objetivo Acción Entrada Resultado Esperado

1 Entrenar sin habercargado una red nihaber entrenadopreviamente

EjecutarEntrenar Red

Lote deprueba

El entrenador creauna red para letras yotra para números ylas entrena

2 Entrenar habiendocargado una red

EjecutarEntrenar Red

Lote deprueba

El entrenadorreemplaza las redesde números y letraspor nuevas redesentrenadas

3 Entrenar habiendoentrenadopreviamente

EjecutarEntrenar Red

Lote deprueba

El entrenadorreemplaza las redesde números y letraspor nuevas redesentrenadas

4 Guardar una redsin haberentrenado nicargado

EjecutarGuardar Red

----------------- Se debe informar alusuario y no intentarguardar la red

5 Guardar una redluego de entrenar

EjecutarGuardar Red

----------------- Se debe guardar lared

6 Cargar una redluego de haber

Ejecutar ----------------- Se debe cargar la red

Page 61: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

58

guardado Cargar Red

7 Cargar una red sinhaber guardadopreviamente

EjecutarCargar Red

----------------- Se debe informar alusuario y no intentarcargar la red

8 Cargar una redhabiendoentrenadopreviamente

EjecutarCargar Red

Lote deprueba paraelentrenamientoprevio

Se deben reemplazarlas redes entrenadaspor las cargadas

9 Reconocer sinhaber cargado nientrenado una red

EjecutarBuscarPatente

Imagen Se debe informar alusuario y no intentarbuscar la patente

10 Reconocerhabiendoentrenado

EjecutarBuscarPatente

Imagen Se busca la patente

11 Reconocerhabiendo cargadouna red

EjecutarBuscarPatente

Imagen Se busca la patente

A.8.4. Especificaciones del procedimiento de prueba

Ítem Objetivo Acción Entrada Resultado Esperado

1 Entrenar sin habercargado una red nihaber entrenadopreviamente

EjecutarEntrenar Red

Lote deprueba

El entrenador creauna red para letras yotra para números ylas entrena

2 Entrenar habiendocargado una red

EjecutarEntrenar Red

Lote deprueba

El entrenadorreemplaza las redesde números y letraspor nuevas redesentrenadas

3 Entrenar habiendoentrenadopreviamente

EjecutarEntrenar Red

Lote deprueba

El entrenadorreemplaza las redesde números y letraspor nuevas redesentrenadas

4 Guardar una red Ejecutar ----------------- Se debe informar al

Page 62: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

59

sin haberentrenado nicargado

Guardar Red usuario y no intentarguardar la red

5 Guardar una redluego de entrenar

EjecutarGuardar Red

----------------- Se debe guardar lared

6 Cargar una redluego de haberguardado

EjecutarCargar Red

----------------- Se debe cargar la red

7 Cargar una red sinhaber guardadopreviamente

EjecutarCargar Red

----------------- Se debe informar alusuario y no intentarcargar la red

8 Cargar una redhabiendoentrenadopreviamente

EjecutarCargar Red

Lote deprueba paraelentrenamientoprevio

Se deben reemplazarlas redes entrenadaspor las cargadas

9 Reconocer sinhaber cargado nientrenado una red

EjecutarBuscarPatente

Imagen Se debe informar alusuario y no intentarbuscar la patente

10 Reconocerhabiendoentrenado

EjecutarBuscarPatente

Imagen Se busca la patente

11 Reconocerhabiendo cargadouna red

EjecutarBuscarPatente

Imagen Se busca la patente

A.8.5. Informe de los casos de prueba ejecutados

Ítem Objetivo Acción Entrada ResultadoEsperado

ResultadoObtenido

1 Entrenar sinhaber cargadouna red nihaberentrenadopreviamente

EjecutarEntrenarRed

Lote deprueba

El entrenadorcrea una redpara letras yotra paranúmeros y lasentrena

Excelente

2 Entrenar Ejecutar Lote de El entrenador Excelente

Page 63: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

60

habiendocargado unared

EntrenarRed

prueba reemplaza lasredes denúmeros yletras pornuevas redesentrenadas

3 Entrenarhabiendoentrenadopreviamente

EjecutarEntrenarRed

Lote deprueba

El entrenadorreemplaza lasredes denúmeros yletras pornuevas redesentrenadas

Excelente

4 Guardar unared sin haberentrenado nicargado

EjecutarGuardarRed

----------------- Se debeinformar alusuario y nointentar guardarla red

Excelente

5 Guardar unared luego deentrenar

EjecutarGuardarRed

----------------- Se debeguardar la red

Excelente

6 Cargar una redluego de haberguardado

EjecutarCargarRed

----------------- Se debe cargarla red

Excelente

7 Cargar una redsin haberguardadopreviamente

EjecutarCargarRed

----------------- Se debeinformar alusuario y nointentar cargarla red

Excelente

8 Cargar una redhabiendoentrenadopreviamente

EjecutarCargarRed

Lote deprueba paraelentrenamientoprevio

Se debenreemplazar lasredesentrenadas porlas cargadas

Excelente

9 Reconocer sinhaber cargadoni entrenadouna red

EjecutarBuscarPatente

Imagen Se debeinformar alusuario y nointentar buscarla patente

Excelente

Page 64: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

61

10 Reconocerhabiendoentrenado

EjecutarBuscarPatente

Imagen Se busca lapatente

Excelente

11 Reconocerhabiendocargado unared

EjecutarBuscarPatente

Imagen Se busca lapatente

Excelente

A.8.6. Informe de la prueba

El banco de pruebas funcionó de acuerdo a lo esperado al ser sometido a laspruebas descriptas en las secciones anteriores.

Page 65: RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES

Reconocimiento de patentes de automóvil

62

A.9. Mantenimiento

Se debe efectuar mantenimiento cuando la tasa de acierto de la red caiga pordebajo de un umbral especificado.

El mantenimiento se realiza exactamente igual que el entrenamiento inicial(sección A.3.1), se obtiene un lote de imágenes con sus respectivas salidas y selas ingresa al subsistema de entrenamiento especificando las características de lared. Una vez que se obtienen las redes de salida se las instala en los subsistemasde reconocimiento.

La instalación consiste en reemplazar los archivos “redLetras” y “redNumeros” enel directorio de la aplicación.