RECONOCIMIENTO DE PATENTES DE AUTOMÓVILES
Transcript of 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
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
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
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.
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.
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].
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.
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.
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].
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
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]
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]
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
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.
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.
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
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]
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.
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:
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
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
Reconocimiento de patentes de automóvil
19
6. Solución alcanzada
6.1. Casos exitosos
Reconocimiento de patentes de automóvil
20
Reconocimiento de patentes de automóvil
21
6.2. Imagen tomada muy cerca
Reconocimiento de patentes de automóvil
22
6.3. Errores en la red
Reconocimiento de patentes de automóvil
23
6.4. Errores en la localización
Reconocimiento de patentes de automóvil
24
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.
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
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
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
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).
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
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.
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.
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.
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
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
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.
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.
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.
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)
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)
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)
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)
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
)
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)
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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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
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 -
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
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
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
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
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.
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.