UNIVERSIDAD TECNOLÓGICA METROPOLITANA ESCUELA DE INFORMÁTICA RECONOCIMIENTO AUTOMÁTICO DE PATENTES DE VEHICULOS USANDO REDES NEURONALES.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "UNIVERSIDAD TECNOLÓGICA METROPOLITANA ESCUELA DE INFORMÁTICA RECONOCIMIENTO AUTOMÁTICO DE PATENTES DE VEHICULOS USANDO REDES NEURONALES."

Transcripción

1 UNIVERSIDAD TECNOLÓGICA METROPOLITANA ESCUELA DE INFORMÁTICA RECONOCIMIENTO AUTOMÁTICO DE PATENTES DE VEHICULOS USANDO REDES NEURONALES. TRABAJO DE TÍTULO PARA OPTAR AL TÍTULO DE INGENIERO CIVIL EN COMPUTACIÓN MENCIÓN INFORMÁTICA. PROFESOR GUÍA: Matías Valdenegro Toro. Cristián Manuel Rodríguez Opazo SANTIAGO

2 Nota: Firma y Timbre Autoridad Responsable

3 Resumen Resumen.

4 Abstract Abstract.

5 Agradecimientos Madre, tú con mi padre son el pilar fundamental de este proceso que finaliza con este trabajo. Sin ustedes nada de esto seria posible. Tú constancia y dedicación desde los inicios, esos donde yo no queria estudiar y solo gastaba mi tiempo en ocio, hasta ahora último como olvidar las maratonicas noches de estudio con mis compañeros y tú siempre estabas ahí con algo para matar el hambre. Siempre haz sido el hombro donde lloró mis pensa y los brazos para celebrar mis triunfos. Padre, Tú empeño, constancia y sacrificios por mi y mis hermanos al igual que los de mi madre. Siempre han sido y seran mi objeto de motivación y admiración, muchas veces cuando las fuerzas ya no estaban o el sentimiento de desazón cada vez que el año se alargaba más de la cuentas estabas ahí para darme un abrazo, un beso y un consejo. Ese consejo impagable que me entragabas desde niño en esas caminatas eternas y hoy me llevan a buscar horizontes cada día mas lejanos. Viejos muchas gracias por todo, ésto es tanto mio como de ustedes les debo lo que soy.

6 Índice general 1. Antecedentes Generales Motivación Objetivos Objetivo General Objetivos Específicos Alcances y Limitaciones Alcances Limitaciones Estado del arte Reconocimiento automático de patentes de vehículos Redes Neuronales Marco Teórico Fundamentos del color Modelos del color Visión artificial Dispositivos de captura Representación de imágenes digitales Segmentación Descripción Aplicaciones Redes Neuronales

7 3.4. GPU computing CUDA OpenCL Diseño de sistemas de reconocimiento de patentes Deteccion de bordes Algoritmo Canny Obtención del gradiente Supresión no máxima al resultado del gradiente Histéresis de umbral a la supresión no máxima Detección y extracción de la patente Ventanas de la transformada de Hough Transformada de Hough Windowed Hough Transform Segmentación de los caracteres Reconocimiento de caracteres Red Neuronal Proceso de entrenamiento Resultados y Pruebas Experimentales Proceso de detección de bordes Proceso de detección y extracción de la patente Proceso de segmentación de los caracteres Proceso de reconocimiento de caracteres Conclusiones y Trabajo Futuro Conclusiones Trabajos futuros

8 10.Implementación Códigos

9 Índice de figuras 3.1. Modelo RGB Espectro electromagnético con la longitud de onda en metros Diagrama de bloques mostrando el proceso completo de la visión artificial Convención de ejes utilizada para la representación de imágenes digitales Demostración de segmentación Segmentación en movimiento Modelo de GPGPU Diseño del sistema de reconocimiento de patentes Imagen de prueba en su estado original (a) y en escala de grises (b) Núcleos Gaussianos Ventana de convolución y su ubicación en la imagen para el procesamiento de un píxel Píxel resultante aplicando operación de convolución Imágenes suavizadas con los diferentes núcleos Gaussianos Gráfica de tiempos al realizar la suavización Gaussiana con distintas imágenes

10 4.7. (a) Región de la imagen I de dimensiones 3x3 donde i j es el píxel perteneciente a la zona de estudio; (b) Núcleo usado para obtener G x en el píxel central de la región 3x3; (c) Núcleo usado para obtener G y en el mismo píxel; Estos núcleos son denominados operadores de Sobel Imágenes que representan la magnitud (a) y el ángulo (b) de cada píxel luego de aplicar el operador de Sobel sobre la imagen suavizada por el filtro Gaussiano con el núcleo 4.2a Imágenes que representan la magnitud (a) y el ángulo (b) de cada píxel luego de aplicar el operador de Sobel sobre la imagen suavizada por el filtro Gaussiano con el núcleo 4.2b Gráfica de tiempos con las distintas imágenes y plataforma, al realizar el calculo del gradiente con el operador de Sobel Ángulos con respecto al píxel en estudio Gráfica de tiempos con las distintas imágenes y plataforma, al realizar la supresión no máxima al resultado del gradiente Imágenes que representan el calculo de la supresión no máxima al resultado del gradiente con los diferentes resultados del gradiente Imágenes que representan el calculo de la histéresis de umbral a la supresión no máxima con los diferentes resultados de la supresión no máxima Gráfica de tiempos con las distintas imágenes y plataforma, al realizar la histéresis de umbral a la supresión no máxima al resultado del gradiente Diagrama de dimensiones de la imagen División del plano de parámetros para su uso en la transformada de Hough Imagen de las celdas de acumulación Rectángulo centrado en el origen del sistema de coordenadas

11 5.5. La imagen del espacio de Hough de un rectángulo centrado en el origen del sistema de coordenadas Ventana en forma de anillo Ventana usada en este trabajo Diagrama de margenes de la ventana propuesta Transformada de hough de ejemplo para el reconocimiento Patente en gris y binario (a) Proyección vertical; (b) Proyección horizontal Caracteres de la patente separados Representación de una neurona real Neurona Artificial Función de activación escalón Neurona artificial con el bias agregado a los pesos Red neuronal Feed-forward Representación de la red neuronal en el computador Función de activación sigmoidal Proceso de entrenamiento con algoritmos genéticos Gen de entrenamiento Imagen de ejemplo de bordes bien definidos Primer set de imágenes de ejemplo de las pruebas realizadas por el proceso de detección de bordes Segundo set de imágenes de ejemplo de las pruebas realizadas por el proceso de detección de bordes Correcta detección y extracción de la patente, de la imagen Primer set de imágenes de ejemplo de las pruebas realizadas por el proceso de detección y extracción de la patente Primer set de imágenes de ejemplo de las pruebas realizadas por el proceso de detección y extraccion de la patente

12 8.7. Ejemplo de un correcto proceso de segmentación, usando la imagen Ejemplo de una mala segmentación de caracteres Grafico de E.C.M. vs Tiempo Grafico de error por carácter Sombra en la patente

13 Lista de codigos 7.1. Entrenamiento de una neurona Definición de la clase ProcesadorCanny Código que invoca al kernel gauss de OpenCL Kernel Gaussian blur en OpenCL C Código que invoca al kernel sobel de OpenCL Kernel Sobel en OpenCL C Definición de la clase HoughTransform Código que invoca al kernel Hough de OpenCL Kernel acumulador Hough en OpenCL C Código que determina si el acumulador de Hough es un rectángulo Código proceso de entrnamiento Inicialización de pesos Crear Población Inicializar la población Mutaciones Definicion de la clase RedNeuronal Código Forward pass

14 Introducción

15 1 CAPÍTULO 1 Antecedentes Generales 1.1. Motivación El reconocimiento de vehículos por la patente es una forma de identificación automática de vehículos, la cual puede ayudar a la detección de vehículos que hayan cometido faltas a las leyes de transito, también puede ser usada para la seguridad en sistemas donde sea necesario identificar el vehículo tales como estacionamiento concesionados o zonas restringidas para civiles, asimismo calcular flujo de vehículos en una zona de la ciudad y esencialmente en todo lo que tenga relación con los sistemas de tráfico inteligente. Sin embargo lo más importante es que su implementación cubre mi motivación personal, la que se centra en cultivar mi conocimiento sobre visión artificial, la computación paralela usando GPU y el reconocimiento de patrones con herramientas relacionadas a la inteligencia artificial.

16 1.2. Objetivos Objetivos Objetivo General Diseñar e implementar un sistema para identificar automáticamente vehículos por la patente usando redes neuronales Objetivos Específicos Diseñar e implementar el proceso de extracción de zonas importantes para la identificación automática del vehículo. Diseñar una red neuronal para el reconocimiento de letras y números, en un ambiente no controlado. Implementar el procesamiento de imagenes en la GPU, usando OpenCL. Medir la tasa de fiabilidad del sistema Alcances y Limitaciones Alcances En este proyecto se contempla la realización de un sistema capaz de procesar una imagen de un ambiente no controlado, en el cual se identificará el vehículo que esta circulando por una vía en estudio Limitaciones El proyecto no considera la creación de un pórtico para la posición invariante de una cámara de vídeo; sin embargo, se pretende hacer sugerencias al ángulo y altura que mejor resultados se obtuvieron para la identificación de los vehículos. Dentro de una imagen no habrá un grupo de autos, ya que se pretende analizar individualmente cada vía de una avenida, calle, autopista o carretera.

17 1.3. Alcances y Limitaciones 3 No se estudiará la posibilidad de ocupar un espectro electromagnético mayor al visible por el ojo humano, debido a la imposibilidad de ser implementada debido al costo que esto implica en aparatos tecnológicos para la adquisición de un vídeo en un espectro distinto al visible. No se tiene contemplado que el sistema funcione en momentos de oscuridad, debido a la dificultad que presenta la luminosidad de los focos los cuales podrían encandilar la cámara.

18 4 CAPÍTULO 2 Estado del arte 2.1. Reconocimiento automático de patentes de vehículos El reconocimiento de patentes es un subproblema del reconocimiento óptico de caracteres en sus siglas en ingles (OCR), según Ordóñez [6] en su trabajo sobre el estado del arte de OCR, éste comenzo a desarrollarse en 1929 por Tauschek el cual obtuvo una patente en Alemania por su sistema OCR, la máquina de Tauschek era un dispositivo mecánico que utilizaba plantillas. Un foto-detector era colocado de modo que cuando la plantilla y el carácter que se reconocería estuvieran alineados, una luz era dirigida hacia ellos. Posteriormente en 1933 Handel obtuvo su propia patente en EEUU, es importante mencionar que Tauschek también obtuvo una patente por su método en EEUU. Los ingenieros de RCA en 1949 trabajarón en el primer prototipo de tipo computacional para el reconocimiento óptico de caracteres con la intención de ayudar a los veteranos ciegos del gobierno de los EE.UU., pero en vez de solo convertir los caracteres impresos a lenguaje de máquina, el dispositivo convierte los caracteres reconocidos, en lenguaje de máquina y luego es deletreado a través

19 2.1. Reconocimiento automático de patentes de vehículos 5 del sistema de sonido del equipo. El proyecto resultó ser demasiado caro y no se continuo trabajando en el después de las pruebas. En 1950, David H. Shepard, un criptoanalista de la agencia de seguridad de las fuerzas armadas de los Estados Unidos, abordó el problema de convertir mensajes impresos en lenguaje de máquina para el tratamiento informático, por lo que construyo, Gismo, una máquina para realizar aquello, Shepar hizo algunas publicaciones sobre este sistema en el Washington Daily News el 27 de abril de 1951 y en el New York Times el 26 de diciembre de 1953 después de que su patente fuera concebida en EE.UU., Shepard fundó Intelligent Machines Research Corporation (IMR), comenzando a fabricar el primero de varios sistemas de OCR usados para operaciones comerciales. Mientras que Gismo y los últimos sistemas de IMR, utilizaron análisis de imagen, en comparación con el carácter que emparejaba, pudiendo aceptar una cierta variación de la fuente. Gismo estaba limitado a los registros verticales, mientras que los reconocedores posteriores de la compañía IMR, analizaban caracteres en cualquier parte del campo de exploración, una necesidad práctica en documentos del mundo real. El primer sistema comercial fue instalado en Readers Digest en El segundo sistema fue vendido a los Standard Oil Company de California para la lectura de impresiones en tarjetas de crédito para propósitos de facturación. Otros sistemas vendidos por el IMR durante la década de 1950 incluyeron un escáner de página a la fuerza area de los Estados Unidos para la lectura y transmisión de mensajes escritos a máquina por teletipo. IBM y otras empresas fueron licenciadas más adelante con las patentes del OCR de Shepard. Cerca de 1965 de Reader s Digest y RCA colaboraron para construir un lector de documentos diseñado para digitalizar los números de serie de cupones de Reader s Digest. La fuente usada en los documentos que fueron impresos por una impresora de tambor RCA con el OCR-A de la fuente. El lector se conecta directamente a un ordenador RCA 301 (el que fue uno de los primeros equipos de estado sólido ). Este lector fue seguido por un lector de documentos especializados instalados en TWA donde el lector procesaba el stock de entradas de la linea

20 2.1. Reconocimiento automático de patentes de vehículos 6 área. Los lectores de documentos procesaban a un ritmo de documentos por minuto, y se comprobaban cada documento, rechazando los que no era capaz de procesar correctamente. En 1974 Ray Kurzweil creó la compañía Kurzweil Computer Products, Inc. y desarrollo el primer sistema de reconocimiento óptico de caracteres omnifont 1. Decidió que la mejor aplicación de esta tecnología sería crear una máquina de lectura para ciegos, que permita a los ciegos tener un computador para la lectura del texto en voz alta. El 13 de enero de 1976, el producto terminado con éxito se dio a conocer durante una conferencia de prensa, encabezada por Kurzweil y los dirigentes de la Federación Nacional de Ciegos. No es hasta alrededor de 1976 con la rama de desarrollo científico de la policía de Reino Unido, según [7, 8], donde se comienza a buscar la forma de ocupar los conceptos de OCR para el reconocimiento de vehículos, quien comenzó a desarrollar un sistema de reconocimiento automático de vehículos por la patente, El prototipo del sistema comenzó a funcionar en 1979, Los sistemas de ensayo fueron desplegados en la carretera A1 y en el túnel Dartford, debido a esto, el primer arresto de un auto gracias a éste sistema se realizo en Posterior a las investigación de la rama de desarrollo científico de la policía de Reino Unido, surgió interés de organizaciones privadas sobre este conocimiento de los cuales no se encuentra información disponible a la opinión publica. Sin embargo el autor ha tenido acceso a algunas publicaciones como la de Parisi en 1998 [9] donde se realizan cinco pasos fundamentales, los cuales son: preprocesamiento de la imagen, detección de la ubicación y extracción de la patente, localización y segmentación de los caracteres, el reconocimiento de los caracteres y la validación de las patentes. Lo más cautivante de este trabajo es que se usaron: redes neuronales para el reconocimiento de los caracteres, técnicas de procesamiento paralelo para producir un speedup en el reconocimiento de caracteres, un Pentium Pro PC 200MHZ y Matlab para poner aprueba el algoritmo, alcan- 1 Omnifont: Un término de uso común en relación con los softwares de OCR. El reconocimiento omnifont se refiere a la capacidad de los programas informáticos, para que lea (o reconozca) prácticamente cualquier fuente que mantienen formas características bastante estándar.

21 2.2. Redes Neuronales 7 zado un 98.7 % de efectividad en el reconocimiento de caracteres. Pero debemos recordar que este trabajo se realizo con fotos de vehículos. En el 2003 Rahman [10] realiza una publicación sobre el reconocimiento de patentes de vehículos en tiempo real con el especial interés en los vídeos de vigilancia, ocupando una red neuronal y agregando dos pasos más al realizado por Parisi que son la captura de la imagen y la detección de la presencia de un vehículo. Se programo en C++, lastimamente de este trabajo no se sabe la eficiencia. En el 2005 Bremananth y su equipo [11] realizan una publicación en IETE Journal of Research presentando una nueva metodología para el reconocimiento de licencias de vehículos, obteniendo como resultado un % de acierto y con una demora de 19,86 segundos en reconocer la patente. En el 2008 Sulehria [12] nos muestra distintas técnicas para el reconocimiento de la patente Feed-Forward Neural Networks, Hough Transform, Back-Propagation Networks y el método de la máxima entropía, el que mejor se comporta en su estudio es back-propagatión mostrando un 95 % de efectividad. En la actualidad el estudio para el reconocimiento de patentes tiene bastante adeptos, cada año siguen llegando más técnicas y formas de realizar un reconocimiento eficaz y eficiente centrando sus esfuerzos en reconocer caracteres más complejos como son las patentes Asiáticas y de paises Arabes, aún que se han conseguido excelentes propuestas aún queda trabajo que realizar y sobre todo para la detección de patentes de vehículos en tiempo real Redes Neuronales El interés por las redes neuronales nace en 1943 gracias al trabajo de McCulloch y Pitts [13], donde propusieron neuronas en la forma de dispositivos binarios, En lo que era un intento por crear una abstracción de la propiedades de las neuronas biológicas conocidas en esa fecha. El trabajo posterior de Hebb [14], el cual estaba basado en modelos matemáticos que intentaban capturar el concepto de aprendizaje por refuerzo o asociación,

22 2.2. Redes Neuronales 8 definió en 1949 dos conceptos muy importantes y fundamentales que han pesado en el campo de las redes neuronales, basándose en investigaciones psicofisiológicas: El aprendizaje se localiza en las sinapsis o conexiones entre las neuronas. La información se representan en el cerebro mediante un conjunto de neuronas activas o inactivas. Entre los años 1935 y 1955 Von Neumann y Turing discutían los aspectos necesarios para crear un tipo de procesamiento de información parecido al del cerebro humano. En 1962 un entusiasta investigador, Frank Rosenblantt [15], propone una maquina de aprendizaje la cual causo una revolución entre los investigadores de la teoría de reconocimiento de patrones. La razón del gran interés de dichas máquinas llamadas perceptrones fue el desarrollo de las demostraciones matemáticas, que concluían que cuando un perceptrón es entrenado por conjuntos de entrenamiento linealmente separable, convergen a una solución en un número finito de iteraciones. En 1969 Minsky y Papert [16], usando demostraciones matemáticas probaron que el perceptrón no era capaz de resolver problemas relativamente fáciles, tales como el aprendizaje de una función no-lineal, Esto demostró que el perceptrón era muy débil, dado que las funciones no-lineales son extensamente empleadas en computación y en los problemas del mundo real. Lo cual provocó una caída en picada de las investigaciones y una época gris para las redes neuronales. En 1974 Werbos en su tesis de Ph.D [17] introduce la idea general del aprendizaje con back-propagation el cual consiste en un algoritmo de aprendizaje más robusto y potente a los empleados hasta entonces basado en la retropropagación de los errores generados en los nodos de la capa de salida de un perceptrón multicapa, aunque pasarán años hasta que su uso se popularice. En 1980 Kunihiko Fukushima [18] desarrolló un modelo neuronal para el reconocimiento de patrones visuales.

23 2.2. Redes Neuronales 9 En 1982 John Hopfield [19] introduce otro tipo de redes basadas en la idea de la función energía, un nuevo camino en la comprensión del comportamiento de las redes recurrentes con conexiones sinápticas simétricas. En 1985 [20] este mismo investigador provocó el renacimiento de las redes neuronales con su libro: Computación neuronal de decisiones en problemas de optimización. En 1986 Rumelhart, Hinton y Williams [21] [22] popularizan el uso del algoritmo de back-propagation. Rumelhart y McClelland [23] publican Parallel Distributed Processing: Explorations in the Microstructures of Cognition. En 1988 Linsker [24] describe un nuevo principio para redes autoorganizativas. Broomhead y Lowe [25] describen el uso de funciones de base radial. En 1989 Mead publica [26] Analog VLSI and Neural Systems que proporciona una mezcla de conceptos entre la neurobiología y la tecnología VLSI. En la década de los 1990s la necesidad de crear soluciones a problemas complejos donde las técnicas tradicionales poco pueden hacer, las redes neuronales artificiales son las vías más extendidas, sin olvidar los intentos de enlazar la Lógica Difusa (Fuzzy Logic) con las redes neuronales. En la actualidad gracias a diversos grupos de investigación repartidos por universidades de todo el mundo, las redes neuronales han alcanzado una madurez muy aceptable y se usan en todo tipo de aplicaciones entre las que se pueden citar: Reconocimiento de patrones, voz y vídeo. Compresión de imágenes. Estudio y predicción de sucesos muy complejos (ej. La bolsa). Aplicaciones de apoyo a la medicina.

24 10 CAPÍTULO 3 Marco Teórico El presente capitulo tiene el objetivo de presentar las técnicas de procesamiento de imágenes e inteligencia artificial que son utilizadas actualmente en el reconocimiento automático de vehículos a través de la patente, comenzando por explicar qué es la visión artificial, cómo se representa una imagen en el computador y los fundamentos del color. Luego se pondrá énfasis en las técnicas de detección de cambios en una secuencia de imágenes, por la importancia que ésta tiene para el problema en cuestión. A continuación se realizará una descripción de las técnicas de procesamiento de imágenes ocupadas en la actualidad como, la extracción de bordes y regiones, descripción de lineas y contornos, etc. Después se efectuará una breve explicación de las herramientas de inteligencia artificial que se ocuparán en este trabajo, como son las redes neuronales para el reconocimiento de patrones. Por último se llevará a cabo un recuento de las técnicas de programación usando la GPU con las cuales se desea realizar el procesamiento de las imagenes, haciendo mención de la tecnología CUDA y OpenCL.

25 3.1. Fundamentos del color Fundamentos del color Como se comento anteriormente, los colores pertenecen a un rango de ondas electromagnéticas que percibe el ojo humano. Es por esto que el color por si mismo no existe ni es una característica independiente del objeto en observación. Por el contrario, el color forma parte del proceso de percepción del objeto, y por ende, resulta una apreciación subjetiva del observador. El color que le atribuimos a los objetos surge cuando su superficie refleja una parte del espectro de la luz blanca que impacta sobre ella y absorbe el resto, esto se puede apreciar cuando la luz solar atraviesa un prisma de cristal, generando los siete colores básicos del espectro visible. Desde el punto de vista del ojo humano, todos los colores son visto como combinaciones variables de los tres colores primarios: rojo, verde y azul. Con el fin de su estandarización, la CIE (Comisión Internationale de l EclaIrage) asigno en 1931 los siguientes valores de longitudes de onda a los colores primarios: azul= nm, verde=546.1 nm y rojo=700nm. Al mezclar los colores primarios podemos obtener los 3 colores secundarios los cuales son magenta (rojo y azul), cyan (verde y azul) y amarillo (rojo y verde). La combinación de los colores secundarios y primarios se obtienen el color blanco. El uso del color en el procesamiento de imágenes juega un papel importante debido a que en el análisis de imágenes el color es un potente descriptor que a menudo simplifica la identificación y extracción de objetos de una escena Modelos del color El propósito de un modelo de color es facilitar la especificación de los colores de alguna forma estándar. Existen variados tipos de modelos de color los cuales están orientados hacia el hardware o hacia aplicaciones. Los modelos mas comunes orientados al hardware son RGB, CMY y YIQ, en tanto los que más se utilizan para el procesamiento de imágenes son RGB, HSV y HSL. A continuación se

26 3.1. Fundamentos del color 12 explican las características básicas del modelo RGB. Modelo RGB El modelo Red Green Blue (RGB) se basa en el sistema de coordenadas cartesianas en 3-D, donde cada eje representa uno de los colores primarios. Las imágenes que utilizan este modelo, pueden reproducir en la pantalla hasta 16.7 millones de colores, ya que tendremos 3 canales y 8 bits para presentar 255 valores. Es por esto que si el plano cartesiano esta conformado por los vectores antes señalados (R,G,B), se entiende que si se desea representar los colores en un píxel se tienen los siguientes básicos casos: para los colores primarios rojo=(255,0,0), verde=(0,255,0) y azul=(0,0,255), la representación de los colores secundarios son magenta=(255,0,255), cyan=(0,255,255) y amarillo=(255,255,0), para la escala de grises se genera un vector que va desde el negro=(0,0,0) al blanco=(255,255,255). Es por aquello que nace el cubo mostrado en la Figura 3.1 donde las distintas combinaciones de los colores primarios (RGB) de [0,255] crean los 16,7 millones de colores. Figura 3.1: Modelo RGB Para leer más sobre los distintos tipos de modelos de color el autor recomienda ver el capitulo 5 del libro de Gonzalo Pajares M. [4] o el libro Color image processing and applications [27]

27 3.2. Visión artificial Visión artificial La visión es la capacidad que tienen los animales para interpretar nuestro entorno gracias a los rayos de luz, teniendo en cuenta el espectro electromagnético (Figura ) que puede el ojo percibir. Gracias a éste concepto se entiende que la visión artificial es El intento por dotar a las máquinas de un sistema de visión [4], para lograr éste objetivo existe un proceso general que se puede sintetizar en la Figura 3.2, en la que las cajas representan datos y las burbujas procesos. Se parte de la escena tridimensional y se termina con la aplicación de interés Dispositivos de captura Es importante señalar que para la adquisición de imágenes digitales se requiere de un elemento que sea sensible a una determinada banda del espectro de energía electromagnético (Figura 3.3), que produzca una señal eléctrica de salida proporcional al nivel de energía incidente en cualquier instante de tiempo y que sea capaz de digitalizar estas señales eléctricas, para convertirlas en píxeles. Figura 3.3: Espectro electromagnético con la longitud de onda en metros 1 El campo visual representado en la imagen es el del ser humano, hay animales que tienen otro campo visual.

28 3.2. Visión artificial 14 Figura 3.2: Diagrama de bloques mostrando el proceso completo de la visión artificial

29 3.2. Visión artificial Representación de imágenes digitales De las definiciones de imágenes digitales expuestas en diferentes textos la más representativa para el autor es la de [4] donde define que el término imagen se refiere a una función de intensidad bidimensional, que en la literatura en general, se representa indistintamente, dependiendo del contexto y nomenclatura utilizada por los métodos originales, como f(x, y), donde x e y son las coordenadas espaciales y el valor f en cualquier punto (x, y) es proporcional a la intensidad o nivel de gris de la imagen en ese punto. Figura 3.4: Convención de ejes utilizada para la representación de imágenes digitales Segmentación La segmentación es habitualmente considerada como una etapa de pre - procesamiento de la imagen por el cual se extrae de la imagen cierta información subyacente para su posterior uso (Figura 3.5). El objetivo de la segmentación es simplificar la descripción de la imagen, está basada en dos principios fundamentales: discontinuidad (bordes) y similitud (regiones). Por lo tanto la segmentación se

30 3.2. Visión artificial 16 ocupa tanto para la localización de objetos como para encontrar limites de éstos dentro de una imagen. Tanto la detección de bordes como la de regiones implican una manipulación de la imagen original, que supone en definitiva una transformación de la imagen original, de forma que los valores de los píxeles originales son modificados mediante ciertas funciones de transformación u operadores. Figura 3.5: Demostración de segmentación Existen métodos de segmentación con los que se obtienen muy buenos resultados cuando el objeto u objetos esta en movimiento, los cuales tratan discernir en que zonas de la imagen se a producido movimiento. Sin embargo la segmentación de objetos en movimiento para cualquier tipo de entorno y condición es un problema complejo de resolver. Figura 3.6: Segmentación en movimiento La mayor parte de métodos de segmentación de objetos en movimiento existentes actualmente utilizan o bien la información temporal de las imágenes o bien

31 3.2. Visión artificial 17 su información espacial. Básicamente, éstas pueden agruparse en cuatro grandes grupos los cuales son: 1. Utilización de una imagen de fondo para comparar. 2. Métodos estadísticos para una reconstrucción mas robusta del fondo. 3. Diferencias temporales en píxeles de dos o más frames consecutivos. 4. Técnicas basadas en flujo ópticos Descripción Una vez detectados los bordes o regiones, como elementos de interés, comienza el siguiente paso lógico, la descripción consiste en extraer propiedad o atributos para su uso en las aplicaciones. Se puede diferenciar entre descriptores de bordes, cuyo objetivo es la identificación de los bordes mediante el ajuste de rectas, curvas, funciones polinómicas, códigos encadenados, etc. y descriptores de regiones, que buscan obtener propiedades tales como color, textura, superficie, nivel de intensidad, etc Aplicaciones Según Gonzalo Pajares y Jesús de la Cruz [4], existen cuatro grandes áreas de aplicación de la visión artificial: Obtención de la distancia de los objetos en la escena tridimensional y estructura tridimensional Detección de objetos en movimiento. Reconocimiento de patrones y formas. Reconocimiento de objetos tridimensionales.

32 3.3. Redes Neuronales Redes Neuronales Las redes de neuronas artificiales (RNA) son un paradigma de aprendizaje y procesamiento automático inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexión de neuronas en una red que colabora para producir un estímulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales. Las redes neuronales artificiales tienen muchas ventajas debido a que están basadas en la estructura del sistema nervioso, principalmente el cerebro. Aprendizaje: Las RNA tienen la habilidad de aprender mediante una etapa que se llama etapa de aprendizaje. Esta consiste en proporcionar a la RNA datos como entrada a su vez que se le indica cuál es la salida esperada. Auto organización: Una RNA crea su propia representación de la información en su interior, liberando al usuario de ésto. Tolerancia a fallos: Debido a que una RNA almacena la información de forma redundante, ésta puede seguir respondiendo de manera aceptable aun si se daña parcialmente. Flexibilidad: Una RNA puede manejar cambios no importantes en la información de entrada, como señales con ruido u otros cambios en la entrada (por ejemplo si la información de entrada es la imagen de un objeto, la respuesta correspondiente no sufre cambios si la imagen cambia un poco su brillo o el objeto cambia ligeramente). Tiempo real: La estructura de una RNA es paralela, por lo cual si esto es implementado con computadoras o en dispositivos electrónicos especiales, se pueden obtener respuestas en tiempo real. Existe una extensa literatura sobre redes neuronales sin embargo para entender más los inicios y la forma de ocupar redes neuronales para el reconocimiento de

33 3.4. GPU computing 19 patrones o letras el autor recomienda leer [3], por otro lado en la universidad de Stanford Andre Ng 2 realiza un excelente curso on-line de machine learning 3 donde explica distintas formas de clasificación de variables y dedica unos cuantos capitulos a redes neuronales con una visión amplia y muy bien explicado usando Octave para comprobar las teorias GPU computing GPU computing, o GPGPU del ingles (General-Purpose Computing on Graphics Processing Units), es el uso de la GPU (unidad de procesamiento gráfico) para realizar operaciones de cálculo científico o técnico de propósito general. El modelo empleado para esta tecnología se basa en el uso combinado de la CPU y GPU en un sistema de coprocesamiento heterogéneo. La parte de menor carga computacional es ejecutada en la CPU y las partes de mayor carga computacional se aceleran en la GPU. Para el usuario, la aplicación simplemente se ejecuta más rápido porque utiliza la gran capacidad de la GPU para multiplicar el rendimiento. Figura 3.7: Modelo de GPGPU A lo largo de los años, las GPU han evolucionado hasta alcanzar los TERA- FLOPS de rendimiento en las operaciones de cálculo de coma flotante. NVIDIA 2 ang/ 3

34 3.4. GPU computing 20 revolucionó la GPGPU y aceleró el mundo de la informática durante los años con la introducción de su arquitectura de cálculo paralelo masivo CU- DA. Esta arquitectura consta de cientos de núcleos de procesamiento que operan de forma conjunta para manejar los datos de la aplicación a mayor velocidad. Según NVIDIA el éxito de las GPGPU en los últimos años reside en la facilidad del modelo de programación paralela asociado a CUDA. En este modelo, el desarrollador de modifica la aplicación para asignar a la GPU los problemas más complejos desde el punto de vista computacional. El resto de la aplicación permanece en la CPU. Asignar una función a la GPU implica reescribir ésta para aprovechar el paralelismo del procesador gráfico. El programador se encarga de lanzar decenas de miles de procesos (threads) de forma simultánea. El hardware de la GPU maneja estos procesos y programa su ejecución CUDA CUDA del ingles (Compute Unified Device Architecture) que hace referencia tanto a un compilador como a un conjunto de herramientas de desarrollo creadas por NVIDIA que permiten a los programadores usar una variación del lenguaje de programación C para codificar algoritmos en GPUs de NVIDIA. CUDA intenta explotar las ventajas de las GPUs frente a las CPUs de propósito general utilizando el paralelismo que ofrecen sus múltiples núcleos, permitiendo el lanzamiento de un altísimo número de hilos simultáneos. Por ello, si una aplicación está diseñada utilizando numerosos hilos que realizan tareas independientes (que es lo que hacen las GPUs al procesar gráficos, su tarea natural), una GPU podrá ofrecer un gran rendimiento en campos que podrían ir desde la biología computacional a la criptografía. Funciona en todas las GPUs NVIDIA de la serie de chip G80 en adelante, incluyendo GeForce, Quadro y la línea Tesla. En estos momentos, CUDA y su correspondiente modelo de cálculo paralelo se utilizan en más de 1000 aplicaciones y en cerca de 1000 artículos de investigación publicados.

35 3.4. GPU computing OpenCL OpenCL [28] es el primer estándar abierto, libre de regalías para múltiples plataformas, la programación paralela de los procesadores modernos que se encuentran en las computadoras personales, servidores y portátiles y dispositivos embebidos. OpenCL (Open Computing Language) mejora considerablemente la velocidad y capacidad de respuesta para una amplia gama de aplicaciones en el mercado numerosas categorías de juegos y entretenimiento a los programas científicos y médicos. Consta de una interfaz de programación de aplicaciones y de un lenguaje de programación.los cuales juntos permiten crear aplicaciones con paralelismo a nivel de datos y de tareas que pueden ejecutarse tanto en unidades centrales de procesamiento como unidades de procesamiento gráfico. El lenguaje está basado en C99, eliminando cierta funcionalidad y extendiéndolo con operaciones vectoriales. OpenCL está siendo creado por el Grupo Khronos con la participación de muchas empresas líderes en la industria e instituciones, incluyendo 3DLABS, Activision Blizzard, AMD, Apple, ARM, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, Fujitsu, General Electric, Graphic Remedy, HI, IBM, Intel, Imagination Technologies, Los Alamos National Laboratory, Motorola, Movidius, Nokia, NVIDIA, Petapath, QNX, Qualcomm, RapidMind, Samsung, algas, S3, ST Microelectronics, Takumi, Texas Instruments, Toshiba y Vivante.

36 3.5. Diseño de sistemas de reconocimiento de patentes Diseño de sistemas de reconocimiento de patentes Imagen de Entrada Detección de Bordes Detección y extracción de la patente Segmentación de caracteres Reconocimiento caracteres Caracteres de la patente Figura 3.8: Diseño del sistema de reconocimiento de patentes El diseño con el cual se realiza este trabajo proviene del estudio realizado de los papers [29] [9] [30] [10] [31] [11] [32] en los cuales se realizan procesos como: 1. El procesamiento de la imagen: En el cual se realiza la detección de bordes y/o la mejora de la imagen en cuestión, existen varias técnicas para mejorar la imagen y obtener una imagen de bordes. Sin embargo en este trabajo se realiza el procesamiento de Canny el cual se explica en detalle en el Capitulo 4.

37 3.5. Diseño de sistemas de reconocimiento de patentes La extracción de la patente: En este proceso se realiza la detección de la patente y su posterior extracción, para la detección de la patente existen distintas maneras de realizar este proceso; usando operaciones morfológicas (erosión, dilatación, binarización) con descriptores para caracterizar la región de interés o el uso de la transformada de Hough para la detección del rectángulo de la patente. En este trabajo se usa el método de la transformada de Hough el cual se explica con detalle en el Capitulo 5 de este trabajo. 3. La segmentación de los caracteres: Este proceso se encarga de separar cada caracter de la patente para luego ser extraídos de la imagen, habitualmente esto se lleva acabo realizando operaciones sobre el histograma de la imagen de la patente binarizada, como se explica en el Capitulo 6 4. El reconocimiento de los caracteres: Su objetivo es poder determinar que caracteres son los que se encuentran en la patente del vehiculo, para lo cual existen muchos metodos de clasificación la herramienta usada en este trabajo son redes neuronales las cuales se explican en el Capitulo 7 como se muestra en la Figura 3.8 estas tareas tienen una interdependencia en un sentido, lo que significa que el output de un proceso es el input del proceso que sigue, esto genera que algún error en alguno de los procesos puede producir un resultado indeseado en todo el sistema.

38 24 CAPÍTULO 4 Deteccion de bordes Es fundamental para poder realizar la detección y extracción de la patente el tener una imagen de bordes, ya que gracias a ella se puede realizar el método de la transformada de Hough con el cual se detecta la patente. En este capitulo se explican los pasos para obtener una imagen de bordes a través del algoritmo de Canny, y se realizan benchmarks a los tiempos de ejecución en C++ y en OpenCL Algoritmo Canny El algoritmo de Canny se fundamenta en la teoría de operadores de la primera derivada el cual comprende de tres pasos: Obtención del gradiente (magnitud y ángulo en cada píxel). Adelgazamiento del ancho de los bordes obtenidos con el gradiente hasta lograr bordes de un píxel de ancho, se conoce como supresión no máxima. Histéresis de umbral al resultado de la supresión no máxima. Se explica el algoritmo de Canny utilizando la Figura 4.1a como imagen modelo a la cual se le debe aplicar una transformación a escala de grises antes de poder ser usada Figura 4.1b. Esta transformación se realiza ocupando el framework OpenCV el cual selecciona cada pixel I p de la imagen con sus componentes RGB y estos

39 4.1. Algoritmo Canny 25 (a) Original. (b) Escala de grises. Figura 4.1: Imagen de prueba en su estado original (a) y en escala de grises (b) les aplica la ecuación 4.1, donde I pr es el componente rojo, I pg es el componente verde, I pb es el componente azul de la imagen de entrada y G[x] es el pixel de salida en escala de grises. G[x] = I pr I pg I pb (4.1)

40 4.1. Algoritmo Canny Obtención del gradiente. Para la obtención del gradiente, lo primero que se realiza según la literatura [4] es la aplicación de un filtro Gaussiano a la imagen en escala de grises 4.1b, ya que los operadores de gradiente en general tienen el efecto de magnificar el ruido subyacente en la imagen. Sin embargo es importante tener cuidado con que núcleo Gaussiano se aplica este filtro ya que se puede realizar un suavizado excesivo y perder información valiosa. H(i, j) = 1 x 2 +y 2 2πσ 2 e 2σ 2 (4.2) El calculo del núcleo Gaussiano 2-D, de media 0 y desviación estándar σ se calcula con la ecuación 4.2, debido a los infinitos valores que puede tener σ existen algunas recomendaciones de núcleos Gaussianos para realizar el suavizado de la imagen como son los núcleos expuestos en [33] y [34] los que se puede apreciar en la Figura 4.2a y Figura 4.2b respectivamente (a) (b) Figura 4.2: Núcleos Gaussianos. f 0 (x, y) = f g = M 1 N 1 M=0 N=0 f(x m, y n)g(m, n) (4.3) Para realizar la suavización Gaussiana se debe realizar una convolución entre la imagen y el núcleo Gaussiano. Se entiende por convolución a una función, que de forma lineal y continua transforma una señal de entrada en una nueva señal de salida, para aquello se ocupa la ecuación 4.3, la cual se explica de forma más

41 4.1. Algoritmo Canny 27 sencilla en la Figura 4.3 y 4.4, donde la mascara de convolución en este caso es uno de los núcleo Gaussianos expuestos anteriormente. Imagen de entrada Ventana de convolución Mascara de convolución x Figura 4.3: Ventana de convolución y su ubicación en la imagen para el procesamiento de un píxel. Imagen de Salida Nuevo Pixel = Figura 4.4: Píxel resultante aplicando operación de convolución.

42 4.1. Algoritmo Canny 28 El resultado al aplicar esta convolución con los distintos núcleos se muestra en la Figura 4.5. (a) Núcleo 4.2a. (b) Núcleo 4.2b. Figura 4.5: Imágenes suavizadas con los diferentes núcleos Gaussianos Al implementar la suavización Gaussiana en OpenCL (Códigos 10.2, 10.3) y en C++, aunque se obtiene un speedup de 1.35 en promedio no representa una mejora significativa debido al tiempo que consume OpenCL en enviar y recibir la imagen desde la CPU hacia y desde la GPU respectivamente.

43 4.1. Algoritmo Canny 29 Figura 4.6: Gráfica de tiempos al realizar la suavización Gaussiana con distintas imágenes. Luego de tener la imagen suavizada, comienza el proceso de calcular el gradiente y el ángulo de cada píxel. En la literatura se define un gradiente en el píxel (x, y) como un vector bidimensional dado por la ecuación 4.4, siendo un vector perpendicular al borde. G[f(x, y)] = G x G y = x f(x, y) y f(x, y) (4.4) Donde el vector G apunta en la dirección de variación máxima de f en el píxel (x, y) por unidad de distancia con la magnitud y dirección dadas por: G = G 2 x + G 2 y ; φ(x, y) = tan 1 G y G x (4.5) Si definimos I como la imagen de entrada, en este caso la imagen suavizada por el filtro Gaussiano y utilizamos los operadores de Sobel para calcular una aproximación de la derivada 4.4, los cuales consisten en la convolución de la imagen con dos núcleos de 3x3, un núcleo para los cambios horizontales 4.7b y otro para los verticales 4.7c. Al aplicar la convolución obtenemos que G x = (i 3 + 2i 6 + i 9 ) (i 1 + 2i 4 + i 7 )

44 4.1. Algoritmo Canny 30 G y = (i 7 + 2i 8 + i 9 ) (i 1 + 2i 2 + i 3 ) i 1 i 2 i 3 i 4 i 5 i 6 i 7 i 8 i (a) (b) (c) Figura 4.7: (a) Región de la imagen I de dimensiones 3x3 donde i j es el píxel perteneciente a la zona de estudio; (b) Núcleo usado para obtener G x en el píxel central de la región 3x3; (c) Núcleo usado para obtener G y en el mismo píxel; Estos núcleos son denominados operadores de Sobel El resultado al aplicar Sobel para obtener G x y G y para calcular el gradiente G y el ángulo φ(x, y) con los distintos kernels expuestos en este trabajo se pueden observar en las Figuras 4.8a, 4.9a y 4.8b, 4.9b respectivamente. Al aplicar los operadores de Sobel en la imagen suavizada por los distintos núcleos Figura 4.2. Se obtiene los siguientes resultados.

45 4.1. Algoritmo Canny 31 (a) Gradiente (b) Angulo Figura 4.8: Imágenes que representan la magnitud (a) y el ángulo (b) de cada píxel luego de aplicar el operador de Sobel sobre la imagen suavizada por el filtro Gaussiano con el núcleo 4.2a

46 4.1. Algoritmo Canny 32 (a) Gradiente (b) Angulo Figura 4.9: Imágenes que representan la magnitud (a) y el ángulo (b) de cada píxel luego de aplicar el operador de Sobel sobre la imagen suavizada por el filtro Gaussiano con el núcleo 4.2b La diferencia de tiempo de ejecución al realizar el calculo del gradiente a través del operador de Sobel, entre la ejecución en la GPU con OpenCL (Codigos 10.4 y 10.5) y en la CPU con C++, se puede observar, en la Figura 4.6 que existe una diferencia significativa entre OpenCL y C++ en esta tarea con un speedup de 4.5.

47 4.1. Algoritmo Canny 33 Figura 4.10: Gráfica de tiempos con las distintas imágenes y plataforma, al realizar el calculo del gradiente con el operador de Sobel Supresión no máxima al resultado del gradiente. Con E m y E α como entradas, donde E m es la imagen de la magnitud del gradiente y E α es la imagen del ángulo del gradiente, y una nueva imagen I N como salida, se consideran las cuatro direcciones d1, d2, d3 y d4 identificadas por la orientación 0, 45, 90 y 135. Con respecto al eje horizontal como muestra la Figura X Figura 4.11: Ángulos con respecto al píxel en estudio.

48 4.1. Algoritmo Canny 34 Se realizan los siguientes pasos, para todo píxel de la imagen E: (a) Encontrar la dirección d k que mejor se aproxima a la dirección E α (i, j). (b) Si E m (i, j) es mas pequeño que al menos uno de sus 4 vecinos en la dirección d k al píxel (i, j) de I N se le asigna el valor 0, I N = 0 (supresión); de otro modo I N (i, j) = E m (i, j). La salida es una imagen con los bordes adelgazados, como se muestran en la Figura Al realizar el proceso de supresión no máxima al resultado del gradiente con las distintas plataformas como son la GPU con OpenCL y en la CPU con C++. Se puede observar en la Figura 4.12 que existe una diferencia aceptable entre los tiempos de ejecución en OpenCL y C++ obteniendo un speedup promedio de Figura 4.12: Gráfica de tiempos con las distintas imágenes y plataforma, al realizar la supresión no máxima al resultado del gradiente.

49 4.1. Algoritmo Canny 35 (a) Supresión no máxima con gradiente 4.8a. (b) Supresión no máxima con gradiente 4.9a. Figura 4.13: Imágenes que representan el calculo de la supresión no máxima al resultado del gradiente con los diferentes resultados del gradiente.

50 4.1. Algoritmo Canny Histéresis de umbral a la supresión no máxima. La salida I N (i, j) suele contener máximos locales creados por el ruido. Para solucionar esto, se podría eliminar los píxeles por debajo de un determinado umbral, pero esto presenta dos problemas. (a) Si se elige un umbral bajo con la intención de capturar bordes verdaderos pero con un valor pequeño en magnitud del gradiente, algunos píxeles de ruido serán también aceptados como válidos (falsos bordes). (b) Los valores de bordes verdaderos pueden fluctuar por encima y por debajo del umbral, lo que produce un fragmentado del borde. Una solución a estos problemas es realizar la histéresis de umbral a la supresión no máxima, en el cual se consideran dos umbrales ( el primero más grande que el segundo ), donde para cada píxel diferente a 0 se observa si la magnitud del gradiente es mayor al primer umbral si es así se sospecha que es un píxel de borde, y este es marcado inmediatamente. Luego se analizan los píxeles que están conectados (vecindad) a este píxel de borde y de los píxeles de la vecindad que tenga un valor mayor que el segundo umbral también son seleccionados como píxeles de bordes y son marcados como tal inmediatamente. El resultado de este proceso se muestra en la Figura 4.14.

51 4.1. Algoritmo Canny 37 (a) Histéresis de umbral con supresión no máxima 4.13a (b) Histéresis de umbral con supresión no máxima 4.13b Figura 4.14: Imágenes que representan el calculo de la histéresis de umbral a la supresión no máxima con los diferentes resultados de la supresión no máxima. Al realizar la histerisis de umbral se puede apreciar en la Figura 4.15 que el tiempo de ejecución en C++ es menor que en OpenCL y esto se debe a la cantidad de operaciones lógicas que se realizan en este algoritmo.

52 4.1. Algoritmo Canny 38 Figura 4.15: Gráfica de tiempos con las distintas imágenes y plataforma, al realizar la histéresis de umbral a la supresión no máxima al resultado del gradiente.

53 39 CAPÍTULO 5 Detección y extracción de la patente 5.1. Ventanas de la transformada de Hough Ya que se tiene la imagen de bordes, el siguiente paso es encontrar la patente para aquello se usa un método llamado Windowed Hough Transform (transformada de Hough por ventanas) propuesto por Jung y Schramn [35] en el 2004, donde exponen una forma de detectar rectángulos con dimensiones previamente conocidas ocupando la transformada de Hough, para ocupar este metodo se debe partir bajo el supuesto de que el rectángulo tiene ciertas dimensiones es por aquello que es necesario que las patentes tengan una dimensión estándar, para resolver esta limitación del algoritmo se entiende que las dimensiones de la patente son parte de la configuración del sistema y se recomienda ocupar la misma camará a una cierta distancia D del vehiculo y con esto podemos asegurar que las patentes tendran aproximadamente las mismas dimensiones en pixeles como muestra la Figura 5.1.

54 5.1. Ventanas de la transformada de Hough 40 Figura 5.1: Diagrama de dimensiones de la imagen Transformada de Hough Se trata de un método expuesto por Hough en 1962 [36] para encontrar la ecuación de una linea que pasa por un conjunto de n puntos en el plano xy. Una línea que une una secuencia de puntos o píxeles puede expresarse de la forma, y = ax + b (5.1) el objetivo es evaluar o encontrar los parámetros a y b, ya que los valores de x e y vienen dados por la posición del píxel ha analizar.

55 5.1. Ventanas de la transformada de Hough 41 Figura 5.2: División del plano de parámetros para su uso en la transformada de Hough Si se analiza un píxel o punto (x i, y i ), existe un número infinito de líneas que pasan por dicho punto y que satisfacen todas las ecuaciones y i = ax i + b para valores variables de a y b. Si se escribe la ecuación como b = x i a + y i y se considera el espacio de parámetros (o espacio de Hough) ab tendríamos la ecuación de una única línea para un valor fijo de (x i, y i ). Un segundo punto (x j, y j ) tendrá también una línea en el espacio de parámetros asociada y esta línea interceptará con la línea asociada a (x i, y i ) en (a, b ) donde claramente a es la pendiente y b la altura a la que la recta que contiene a los dos puntos (x i, y i ) y (x j, y j ) corta el eje xy. En base aquello se subdivide el espacio de parámetros en la llamada matriz de acumulación, como se muestra en la Figura 5.2, donde (a max, a min ) y (b max, b min ) son los intervalos dentro de los cuales estarán la pendiente y la ordenada. La matriz de acumulación A(i, j) tienen una correspondencia con las coordenadas (a j, b j ), esta celdas se inicializan en cero. Para cada píxel de la imagen, se toma un a y se calcula b correspondiente usando la ecuación b = x i a+y i. Los valores de b obtenidos se redondean al valor más cercano del eje b de las celdas de acumulación. Si al tomar a p obtenemos b q tendremos A(p, q) = A(p, q) + 1 tal que p y q son la posición del píxel en estudio

56 5.1. Ventanas de la transformada de Hough 42 Figura 5.3: Imagen de las celdas de acumulación, luego de terminar ese proceso la celda de acumulación pueden ser representadas por una imagen en escala de grises como muestra la imagen 5.3, en todos los píxeles de la imagen buscamos los máximos locales en las celdas de acumulación A(i, j) para determinar las rectas con sus respectivas ecuaciones. Un problema importante surge a la hora de ocupar la ecuación y = ax+b para representar una recta y es que tanto la pendiente como la ordenada en el origen se acercan al infinito cuando la recta se aproxima a posiciones verticales. Es por aquello que Duda y Hart [37] proponen una forma de evitar ese problema el cual consiste en utilizar la representación normal de la recta en coordenadas polares, dada por x cos Θ + y sen Θ = ρ (5.2), debido a esto el espacio de parámetros viene determinado por Θ y ρ. Esto posibilita barrer todo el rango de valores para el ángulo Θ desde 180 a 180.

57 5.1. Ventanas de la transformada de Hough Windowed Hough Transform Como explica [35]. Si se considera un rectángulo con vértices P 1 = (x 1, y 1 ), P 2 = (x 2, y 2 ), P 3 = (x 3, y 3 ) y P 4 = (x 4, y 4 ), con P 1P 2 y P 3P 4 siendo lados paralelos con un largo a, como también P 2P 3 y P 4P 1 con largo b. También, se asume que las coordenadas tienen origen en el centro del rectángulo como muestra la Figura 5.4. Figura 5.4: Rectángulo centrado en el origen del sistema de coordenadas. La imagen del rectángulo en el espacio de Hough se muestra en la Figura 5.5, y como es de esperarse se obtienen 4 máximos locales etiquetados como H 1 = (ρ 1, Θ 1 ), H 2 = (ρ 2, Θ 2 ), H 3 = (ρ 3, Θ 3 ) y H 4 = (ρ 4, Θ 4 )

58 5.1. Ventanas de la transformada de Hough 44 H 1 a/2 H 2 b/2 -b/2 -a/2 H 4 H 3 Figura 5.5: La imagen del espacio de Hough de un rectángulo centrado en el origen del sistema de coordenadas. Se puede observar que estos 4 máximos locales satisfacen unas especificas relaciones geométricas: 1. Estos aparecen en pares, el primero de estos esta formado por los máximos H 1 y H 2 donde Θ = α 1, el segundo esta formado por los máximos H 3 y H 4 donde Θ = α Dos máximos pertenecientes a el mismo par son simétricos con respecto al eje Θ, ρ 1 + ρ 2 = 0 y ρ 3 + ρ 4 = 0 3. Los dos pares están separados por un Θ = 90 en el eje Θ, α 1 α 2 = 90.

59 5.1. Ventanas de la transformada de Hough La altura de dos máximos pertenecientes al mismo par son idénticos y representan el largo de las lineas respectivas A(ρ 1, Θ 1 ) = A(ρ 2, Θ 2 ) = b y A(ρ 3, Θ 3 ) = A(ρ 4, Θ 4 ) = a. 5. La distancia vertical (del eje ρ) entre dos máximos dentro de cada par es exactamente los lados del rectángulo, ρ 1 ρ 2 = a y ρ 3 ρ 4 = b. Es importante recalcar que las relaciones 1, 2 y 3 son las más robustas en presencia de otra estructura y son las más fuertemente exploradas en [35]. El algoritmo propuesto por [35] tiene como idea básica el buscar en cada píxel (x, y) un rectangulo con ciertas dimensiones para aquello se ejecuta la transformada de Hough en una cierta zona o ventana de la imagen de bordes, esta ventana esta centrada en (x, y) donde se buscan los máximos locales de la transformada de Hough, y se usan las condiciones mencionadas anteriormente para determinar si en esa ventan existe un rectángulo centrado en (x, y). Figura 5.6: Ventana en forma de anillo. Por lo cual ellos proponen genera un anillo de búsqueda con el que se recorre la imagen con la finalidad de encontrar rectángulos en cualquier dirección, como se ve el la Figura 5.6. La ventana debe considerar que debe ser lo suficientemente larga para contener todos los píxeles de borde del rectangulo y por otro lado debe ser lo más chica posible para evitar los bordes pertenecientes a otras estructuras o el ruido propio de la imagen de bordes. Como la intención de este trabajo es reconocer patentes de vehículos y en su amplia mayoría estas están dispuestas de forma horizontal, como se observa en el caso de ejemplo 4.1b, se decidide ocupar una ventana como la que se muestra en la Figura 5.7.

60 5.1. Ventanas de la transformada de Hough 46 Figura 5.7: Ventana usada en este trabajo Donde la linea roja y verde son el borde externo e interno respectivamente de la ventana propuesta. Esta ventana se configura dependiendo de las dimensiones de la patente como anteriormente se menciono, a estas dimensiones se les da una distancia ɛ para soportar un margen de error como se muestra en la Figura 5.8 donde α y β son la posición de origen en el pixel (x i, y i ) respectivamente: δ = α + width + 2 ɛ γ = β + height + 2 ɛ σ = α + ɛ ω = β + ɛ λ = width ɛ ν = height ɛ y lo que se analiza es lo que esta entre la linea roja y verde.

61 5.1. Ventanas de la transformada de Hough 47 Figura 5.8: Diagrama de margenes de la ventana propuesta. En la búsqueda de los máximos locales se realizan tres procesos, los cuales son: 1. Se comienza por realizar una preselección recorriendo toda la matriz de acumulación eligiendo como posibles máximos locales todas aquellas celdas donde la acumulación sea mayor al 40 % del alto de la ventana, lo que se puede representar con la ecuación 5.3 donde H v es el alto de la ventan. A(ρ, Θ) > 0.4 H v (5.3) 2. Luego se comparan los máximos locales posibles entre ellos, A(ρ 1, Θ 1 ) con A(ρ 2, Θ 2 ) dejando el que tenga mayor valor de A(ρ, Θ) (cantidad de puntos de acumulación), donde la localidad de estudio esta determinada por un rango en el eje ρ, talque ρ 1 ρ 2 < 10, con esto dejamos los máximos locales que tengan la misma cantidad de acumulación y pertenezcan al mismo rango. 3. Por ultimo de los máximos locales que quedan se seleccionan agrupando todos los que pertenezcan a la misma localidad pero tienen la misma cantidad de acumulación a ellos se les promedia el ángulo con la finalidad de tener solo un máximo, la localidad se define como ρ 1 ρ 2 < 10. Gracias a esto podemos encontrar m máximos locales como ejemplifica la Figura 5.3, el siguiente paso es encontrar 4 máximos que cumplan las condiciones antes nombradas. Para tal propósito se realizan los pasos propuestos por [35] donde todos los máximos son analizados y los máximos son apareados si cumplen con las siguientes condiciones:

62 5.1. Ventanas de la transformada de Hough 48 Θ = Θ i Θ j < T Θ (5.4) ρ = ρ i + ρ j < T ρ (5.5) C(ρ i, Θ i ) C(ρ j, Θ j ) < T L C(ρ i, Θ i ) + C(ρ j, Θ j 2 (5.6) Donde T Θ es el umbral angular y determina si los máximos H i y H j son lineas paralelas ( Θ i Θ j ). T ρ es el umbral de distancia y se usa para analizar si dos lineas H i y H j son simétricas con respecto al eje Θ ( ρ i ρ j ). T L es el umbral de normalización y determina si los segmentos de lineas correspondientes a los máximos H i y H j tienen aproximadamente el mismo largo ( C(ρ i, Θ i ) C(ρ j, Θ j ) ). Cada par de máximos H i y H j que satisfacen las ecuaciones 5.4, 5.5 y 5.6 generan un nuevo dato al cual se le llama máximo extendido P k = (±ξ k, α k ), donde α k = 1 2 (Θ i + Θ j ) (5.7) ξ k = 1 2 ρ i ρ j (5.8) Hay que hacer notar que P k solo esta codificando la información sobre ambos máximos locales H i y H j, ya que Θ i α k, Θ j α k, ρ i ξ k y ρ j ξ k. Luego de que se tienen todos los máximos extendidos se procede a comparar todos éstos en forma de pares P k y P l. Seleccionando todos los que correspondas a par de lineas paralelas ortogonales. Por lo que un rectángulo es detectado si α = α k α l 90 < T α (5.9) Donde T α es el umbral angular que determina si el par de lineas P k y P l son ortogonales.

63 5.1. Ventanas de la transformada de Hough 49 Finalmente los vértices del rectángulo detectado son obtenidos a través de la intersección de los dos pares de lineas paralelas. La orientación del rectángulo viene dado por α k y el tamaño de los lados por 2ξ k y 2ξ l. Para explicar de mejor manera todo el procedimiento descrito se realizara todos los pasos con respecto a la siguiente transformada de hough Figura 5.9 manteniendo la siguiente configuración T θ = 3, T ρ = 3, T L = 0.4 y T α = 3 donde: Figura 5.9: Transformada de hough de ejemplo para el reconocimiento. H 1 ( 68, 0) = 45, H 2 ( 24, 89) = 117, H 3 (24, 89) = 136 y H 4 ( 69, 0) = 48. Se comienza calculando las ecuaciones 5.4, 5.5 y 5.6 para cada combinación de maximos. 1. Si Θ12 = Falso. 2. Si Θ13 = Falso. 3. Si Θ14 = Verdadero. 4. Si ρ14 = Verdadero. 5. Si C(Θ14,ρ 14 ) = ( ) = Verdadero. 6. Si Θ23 = Verdadero.

64 5.1. Ventanas de la transformada de Hough Si ρ23 = Verdadero. 8. Si C(Θ23,ρ 23 ) = ( ) = Verdadero. 9. Si Θ24 = Falso. 10. Si Θ34 = Falso. Los pares de máximos que satisfacien las ecuaciones son H 14 y H 23, el siguiente paso es calcular los máximos extendidos. α k = 1 (0 + 0) = 0 2 ξ k = = 69 2 α l = 1 ( ) = 89 2 ξ l = = 24 2 Procedemos a determinar si las dos lineas paralelas agrupadas son ortogonales con las otras dos. α = = 1 < 3 Verdadero, por lo que se ha encontrado un rectangulo con vertices que se pueden determinar sabiendo que α = 354, β = 152, δ = 494 y γ = 202 por lo cual el centro del rectangulo es ( , ) = (424, 177) por lo que vertices del rectangulo son. v 1 ( , ) = (356, 153) v 2 ( , ) = (356, 201) v 3 ( , ) = (493, 153) v 4 ( , ) = (493, 201) El procedimiento con el cual se detectan los rectángulos puede generar rectángulos duplicados debido a los umbrales de tolerancia T Θ, T ρ, T α y T L. Por lo que para poder determinar donde se encuentra el rectángulo se promedian todas las variables a considerar.

65 51 CAPÍTULO 6 Segmentación de los caracteres Ya que la patente se ha localizado, el paso que sigue es detectar y separar los caracteres, para aquello se realiza lo que en la literatura se denomina proyección horizontal y vertical. Se entiende por proyección el calculo de la cantidad de píxeles negros pertenecientes a cada fila en el caso de la proyección vertical y la cantidad de píxeles negros en cada columna para el caso de la proyección horizontal, por lo que para realizar la operación de proyección se debe transformar la imagen de la patente P, Figura 6.1a, la cual está en valores de grises a una imagen binaria B, Figura 6.1b, para esto se realiza un threshold binario, el cual consiste en seleccionar un umbral µ y realizar la ecuación 6.1 en cada píxel. 0 para P i,j µ B i,j = 255 para P i,j > µ (6.1) (a) Patente en escala de grises (b) Patente en binario Figura 6.1: Patente en gris y binario

66 52 Luego de tener la imagen binarizada Figura 6.1b, se realiza el proceso de proyección vertical el cual se puede apreciar en la Figura 6.2a como la gráfica adjunta a la imagen de la patente, la cual representa la cantidad de puntos negros contados para cada fila. La intención luego de tener la proyección vertical es identificar la zona donde se encuentra los caracteres de la patente, para aquello se realizan los siguientes pasos propuestos por el autor: 1. Considerar como inicio de los caracteres de la patente (He 1 ) Cuando la diferencia entre una fila F i con otra fila F j donde j = i+1 sea menor o igual a Considerar como fin de los caracteres de la patente (He 2 ) cuando la cantidad de pixeles negros sea menor a Cortar la imagen con tal de quedarse con todo lo que este entre He 1 y He 2. El resultado de este proceso se observa en la imagen de la patente que se encuentra en la Figura 6.2b, a la que acompaña su correspondiente proyección horizontal. (a) (b) Figura 6.2: (a) Proyección vertical; (b) Proyección horizontal

67 53 Por ultimo se debe extraer los caracteres de la patente y para aquello se comparan todos los datos del vector de proyección horizontal, etiquetando las zonas de la iamgen que tienen pixeles negros con un 1 y los que tienen solo pixeles blancos con un 0. Se calcula la distancia en pixeles de las zonas etequitadas con un 1 y se ordenan de mayor a menor con respecto a la distancia antes calculada posteriormente se seleccionan las 6 zonas que tengan la mayor distancia, debido a la cantidad de caracteres que tiene una patente y se extraen de la imagen binarizada Figura 6.3 para ser entregadas al proceso de reconocimiento de caracteres. Figura 6.3: Caracteres de la patente separados.

68 54 CAPÍTULO 7 Reconocimiento de caracteres El ultimo proceso en el sistema de reconocimiento de patentes de autos, es el de reconocer los caracteres de la patente. Existen variadas formas de reconocer caracteres como son métodos estadísticos, estimación de la población, k nearest neighboors, redes neuronales, redes Bayesianas, etc. En este trabajo se usan redes neuronales debido al interés del autor por conocer el funcionamiento de esta herramienta Red Neuronal Al explicar como funciona una red neuronal es necesario entender primero como funciona una neurona por si sola o también llamada perceptron simple, ya que las redes neuronales se basan en la interconexión de ellas. Una neurona es la unidad básica de una red neuronal artificial su representación y funcionamiento se concibe a través del funcionamiento del cerebro donde las dendritas son los dispositivos de entradas de la neurona la que puede recibir como entrada la salida de otra neurona, la neurona también tiene una salida llamada axón y esta es usada para enviar la señal de salida a otra neurona o enviar un mensaje a otras neuronas y por ultimo la neurona tiene un núcleo donde se realiza el procesamiento de las señales de entrada para determinar que salida es

69 7.1. Red Neuronal 55 Figura 7.1: Representacio n de una neurona real enviada a las otras neuronas con las que esta conectada a trave s de la sinapsis, como muestran la imagen 7.1. Por lo que la representacio n de una neurona artificial hace un sı mil con una neurona real, ya que tiene una serie de entradas ~x = {x1, x2,..., xn } conectadas a trave s de un estilo de dendritas al nu cleo, estas dendritas o conexiones tienen un peso asociado wi dependiendo de la importancia que tenga la informacio n es el valor del peso (a mayor importancia ma s grande el peso de la conexio n) estos pesos pueden ser representados al igual que las entradas como un vector w ~ = {w1, w2,..., wn }, en el nu cleo se realiza el procesamiento de las entradas para obtener una salida y como muestra la Figura 7.2. Figura 7.2: Neurona Artificial El procesamiento realizado por la neurona en el nu cleo consiste en primero el calculo de lo que se conoce como neta lo que se hace ponderando los datos de

70 7.1. Red Neuronal 56 entrada con los pesos respectivos que tiene cada una de las conexiones como se muestra en la ecuación 7.1, y luego a neta se le aplica una función de activación f que determinar cual es la salida y de la neurona, una de la más sencilla funciones de activación para clasificación es la escalonada que consiste es que si el valor de neta es mayor o igual a cierto umbral θ la salida y = 1 en otro caso y = 0 como muestra la Figura 7.3. neta = n w i x i (7.1) i= Figura 7.3: Función de activación escalón Ya que el umbral θ también conocido como bias no es conocido se puede agregar esta constante como un peso w 0 y generar una entrada x 0 = 1 dejando la ecuación 7.1 de la siguiente forma neta = n w i x i (7.2) i=0

71 7.1. Red Neuronal 57 Figura 7.4: Neurona artificial con el bias agregado a los pesos Ya que los pesos junto el umbral de activación ya agregado a neta no están ajustados para el proceso que debe realizar la neurona sea predicción o clasificación de variables se realiza un proceso de entrenamiento el cual consiste en ajustar los pesos dependiendo del error entre la salida obtenida y la salida deseada como se muestra en el Algoritmo Asignar pesos a l e a t o r i o s A p l i c a r un v e c t o r de entrada y obtener l a s a l i d a 4 c o r r e s p o n d i e n t e con l o s pasos e x p l i c a d o s anteriormente Si l a s a l i d a obtenida es d i s t i n t a a l a s a l i d a deseada 6 Error = S a l i d a d e s e a d a S a l i d a o b t e n i d a 7 P e s o i = P e s o i + Error * Entrada i ; Para todo i 8 Volver a l paso 2. Codigo 7.1: Entrenamiento de una neurona Una red neuronal consiste en un conjunto de neuronas organizadas en capas e interconectadas, existen muchos tipos de redes neuronales la que se estudia y se ocupa en este trabajo es el modelo de redes neuronales feed-forward la mayormente estudiada en la ciencia y utilizada en diversos campos de aplicación, como se muestra en Figura 7.5 la señal de entrada viaja solamente en un sentido, por lo tanto lo que ocurre en una neurona no interactúa con las neuronas de la misma capa.

72 7.1. Red Neuronal 58 Figura 7.5: Red neuronal Feed-forward El modelo feed-forward es una arquitectura multicapa de neuronas la cual se usa como toda red neuronal debido a la posibilidad de ser usada con patrones no linealmente separables como el caso de XOR, ya que como explica [5] la neurona artificial desde que se comenzó a estudiar en la década del 60 se descubrió que esta herramienta era capaz de resolver muchos problemas bastante difíciles, pero otros problemas, los cuales aparentaban debían ser bastante sencillos simplemente para la neurona artificial le era imposible de resolver. En este trabajo se usan tres capas una de entrada, de salida y una oculta para cada red neuronal. La manera de representar cada red neuronal en el computador que se a usa en este trabajo es a través de una matriz de adyacencia donde la matriz guarda el peso de la interacción entre la capa i con la capa i + 1, como se muestra en la Figura 7.6. Sebe debe notar que aunque existen recomendaciones sobre la cantidad de capas y neuronas ocultas que debe tener una red neuronal no existe una metodología para determinar correctamente los parámetros de la red y asegurarnos de un correcto funcionamiento.

73 7.1. Red Neuronal 59 Figura 7.6: Representación de la red neuronal en el computador.

74 7.1. Red Neuronal 60 La ecuación para calcular la salida de cada neurona se calcula con el siguiente n neta w ij x i = neta jk donde k es la neurona en la capa oculta o de salida i=0 que se le desea calcular la salida y j es la capa en la que se encuentra, la función de activación que se ocupa en este trabajo es una función sigmoidal que sigue la ecuación y forma que se observa en la Figura Figura 7.7: Función de activación sigmoidal La red neuronal que se ha diseñado para cada letra, consiste en 360 datos de entrada que es la cantidad de píxeles que tiene la imagen de la letra estandarizada, 36 neuronas ocultas y una neurona de salida.

75 7.2. Proceso de entrenamiento Proceso de entrenamiento Existen variadas formas para entrenar una red neuronal la más normalmente usada [5],[3],[38] es el método de Backpropagation sin embargo en este trabajo se ha usado algoritmos genéticos, los algoritmos genéticos son unos de los métodos basados en la biología al igual que las redes neuronales. Esta técnica pretende capturar los mecanismos de adaptación de las especies al ambiente en que viven, favoreciendo a la evolución y la supervivencia de los individuos mejor adaptados permitiendo su reproducción y el descarte de los más débiles. Para realizar esta metodología es importante definir los siguientes elementos : Población: Subconjunto de soluciones factibles del problema que se están evaluando actualmente. Sea P (t) = x t 1,..., x t n la población en el instante t. La población representa al conjunto de individuos sobrevivientes de la especie. Gen: Un individuo o elemento de la población. Cada elemento x t i representa una solución potencial del problema. El gen debe ser diseñado de modo de modelar la estructura de la solución del problema y ser capaz de resolverlo. También se conocen como cromosoma o genotipo. El gen que se utiliza para el entrenamiento de la red neuronal es una matriz tridimensional de los pesos por cada conexión entre capas, que se representa en la Figura 7.9

76 7.2. Proceso de entrenamiento 62 Entradas de set de training Generar Población Inicial Evaluación Función Objetivo Criterio de optimización alcanzado? SI Mejor Individuo NO Selección Mutación Figura 7.8: Proceso de entrenamiento con algoritmos genéticos.

77 7.2. Proceso de entrenamiento 63 NUMERO DE NEURONAS EN CAPA L PESOS NUMERO DE CAPAS - 1 NUMERO DE NEURONAS EN CAPA L+1 Figura 7.9: Gen de entrenamiento Fitness: Es la función que mide la adaptación del individuo y se utiliza para evaluar la calidad del gen. Por lo que para generar el mejor gen o cromosoma nos basamos en minimizar el error cuadrático medio que se genera al. 1 2 n n (D i O i ) 2 (7.3) i Donde D es la salida i deseada, O es la salida i obtenida. Operadores genéticos: Son los operadores que permiten reproducir la población a partir de la población actual. Para poder reproducir la población de entrenamiento solo se realizan mutaciones eligiendo de forma aleatoria cualquier peso y sumándole a este peso un numero aleatorio entre [ 1, 1] esto se repite una cantidad de veces aleatorias para cada gen. Debido a los problemas de frecuencia que ofrece C++ en su generador de números aleatorios rand() de la librería estándar, se utiliza Mersenne Twister [39],un algoritmo de generación de números aleatorios creado en 1998 por Matsumoto y Nishimura el cual fue diseñado con la intención de mejorar todas la deficiencias que tienen los otros algoritmos, se ha

78 7.2. Proceso de entrenamiento 64 comprobado que el periodo de repetición es bastante grande: La población inicial con la que se comienza a realizar el proceso de entrenamiento tiene inicialmente todos los pesos en forma aleatoria, se ejecuta la red neuronal y se calcula el error cuadrático medio de los 21 genes iniciales, los tres que tengan menor error cuadrático medio (fitness), se seleccionan y mutan hasta obtener el menor error cuadrático medio o que sea menor a cierto ɛ. El proceso de entrenamiento demoró en promedio 1 hora y 30 minutos por cada red neuronal que se debió entrenar, ya que existe una red neuronal por cada letra entrenada con el set de entrenamiento con la letra que le corresponde con su salida en verdad (1) y con todas las demás letras con su salida en falso (0).

79 65 CAPÍTULO 8 Resultados y Pruebas Experimentales Como se ha explicado en el marco teorico el sistema de reconocimiento desarrollado comprende de 4 procesos detección de bordes, detección y extracción de la patente, segmentación de los caracteres, reconocimiento de los caracteres y porsupuesto la salida de cada uno de los procesos es la entrada de otro, como se muestra en la Figura 3.8. Por aquello que los experimentos realizados se hacen evaluando cada uno de los procesos por separado para determinar si cada proceso cumple con las expectativas del sistema completo y luego poniendo a prueba el funcionamiento del sistema completol, para determinar la efectividad del sistema usando un set de pruebas de 65 imágenes de vehiculos. Para realizar estas pruebas se utiliza un computador con procesador AMD Phenom II X Ghz, 4 GB de memoria RAM, tarjeta de video MSI Geforce GT460. El set de pruebas y entrenamiento en su mayoria fue extraido del set que publica Marco Mora en su pagina web 1 para la detección de patentes. 1

80 8.1. Proceso de detección de bordes Proceso de detección de bordes En el proceso de detección de bordes el resultado esperado es tener como salida una imagen con los bordes del rectángulo de la patente bien definidos, como se muestra en la Figura 8.1, para que el siguiente proceso pueda detectar donde se encuentra la patente. Al momento de realizar el experimento con el set de pruebas los resultados fueron malos ya que el 63 % del set de prueba al ser procesadas por los algoritmos no detectaron los bordes de la patente, como se muestra en los set de ejemplos 8.2b y 8.3b, por lo que en los siguientes procesos el sistema no sería capaz de detectar 41 imagenes de un total de 65, reduciendo el set de prueba a 24 para los procesos siguientes. Pero al realizar una mejora del proceso de detección de bordes, como se muestra en el set de ejempos 8.2c y 8.3c se logro que el 95 % de las imagenes del set se les detectó los bordes de la zona de interés.

81 8.1. Proceso de detección de bordes 67 (a) Imagen original (b) Imagen de bordes. Figura 8.1: Imagen de ejemplo de bordes bien definidos.

82 8.1. Proceso de deteccio n de bordes 68 (a) Imagen original de ejemplo 1. (b) Imagen de bordes utilizando la suavizacio n gaussiana. (c) Imagen de bordes sin utilizar la suavizacio n gaussiana. Figura 8.2: Primer set de ima genes de ejemplo de las pruebas realizadas por el proceso de deteccio n de bordes

83 8.1. Proceso de detección de bordes 69 (a) Imagen original de ejemplo 2. (b) Imagen de bordes utilizando la suavización gaussiana. (c) Imagen de bordes sin utilizar la suavización gaussiana. Figura 8.3: Segundo set de imágenes de ejemplo de las pruebas realizadas por el proceso de detección de bordes

84 8.2. Proceso de detección y extracción de la patente Proceso de detección y extracción de la patente. En el proceso de detección y extracción de la patente el resultado esperado es tener como salida la patente del vehículo, como se muestra en la Figura 8.4, para que el proceso siguiente segmente y extraiga los caracteres de la patente, considerando como set de prueba solo los que cumplieron con el proceso anterior, lo que implica que de las 62 patentes a detectar solo 4 el sistema no pudo detectar la patente, como se muestran en las Figuras 8.5 y 8.6. La eficiencia del proceso es de un 93 % de efectividad y es importante notar que el proceso es bastante lento, ya que demora más de 9 min en detectar y extrar la patente. Figura 8.4: Correcta detección y extracción de la patente, de la imagen 8.1

85 8.2. Proceso de detección y extracción de la patente. 71 (a) Imagen de Ejemplo 1. (b) Imagen de bordes Figura 8.5: Primer set de imágenes de ejemplo de las pruebas realizadas por el proceso de detección y extracción de la patente

86 8.3. Proceso de segmentación de los caracteres 72 (a) Imagen de Ejemplo 2. (b) Imagen de bordes. Figura 8.6: Primer set de imágenes de ejemplo de las pruebas realizadas por el proceso de detección y extraccion de la patente 8.3. Proceso de segmentación de los caracteres En el proceso de segmentación de los caracteres se espera que con el set de pruebas acotado por los 2 procesos anteriores se pueden extraer los 6 caracteres de la patente de forma independiente, como se muestra Figura 8.7. En el caso de las 58 patentes detectadas y extraídas por el proceso anterior el sistema fue capaz de segmentar los caracteres de 50 patentes lo que representa una efectividad de un 86 %. Los problemas por los cuales no se pudo segmentar la patente es debido al

87 8.3. Proceso de segmentación de los caracteres 73 ruido que se produce entre dos letras o numeros, un perno o barro puede producir pixeles negros en el proceso de threshold por lo cual al momento de segmentar la imagen este proceso considera que todo el bloque es una letra como se muestra en la Figura 8.8 en el caso de BV y 27. Figura 8.7: Ejemplo de un correcto proceso de segmentación, usando la imagen 8.4

88 8.4. Proceso de reconocimiento de caracteres 74 Figura 8.8: Ejemplo de una mala segmentación de caracteres 8.4. Proceso de reconocimiento de caracteres En el proceso de entrenar la red neuronal el error cuadratico medio evoluciono como se muestra en la Figura 8.9

89 8.4. Proceso de reconocimiento de caracteres Entrenamiento letra Entrenamiento letra ECM 0.2 ECM Tiempo (seg) Tiempo (seg) 0.2 Entrenamiento letra Entrenamiento letra D ECM 0.1 ECM Tiempo (seg) Tiempo (seg) 0.05 Entrenamiento letra S ECM Tiempo (seg) Figura 8.9: Grafico de E.C.M. vs Tiempo En el proceso de reconocimiento de los caracteres se realizan pruebas individuales para cada carácter y para la patente completa donde se espera que el carácter sea correctamente detectado por la red neuronal y se separan las pruebas ya que se pretende determinar que porcentaje de los carácter es detectado correctamente y cuanto es el porcentaje de patentes que pudo detectar la red neurona correctamente.

90 8.4. Proceso de reconocimiento de caracteres 76 Figura 8.10: Grafico de error por carácter Al realizar el proceso de reconocimiento de caracteres a la patente segmentada en la Figura 8.7. Se puede apreciar en el Cuadro 8.1 las salidas de cada neurona (filas) para cada caracter de la patente (columnas), donde marcado en amarillo

91 8.4. Proceso de reconocimiento de caracteres 77 esta el valor más alto de todas las salidas, el cual es considerado por el proceso como el valor de ese caracter de la patente. En este proceso el resultado de las pruebas con las 50 patentes ya segmentadas cuadro 8.2, donde en amarillo están las letras de la patente y en blanco el caracter que el proceso reconoció. Cuadro 8.1: Tabla de resultados para cada red neuronal. Se debe notar que de las 300 caracteres a reconocer, el sistema reconoció de forma correcta 239 lo que equivale a un % de efectividad. Por otro lado de las 50 patentes a las cuales se pudo realizar todos los procesamientos previos de forma correcta el proceso de reconocimiento solo reconoció un 42 % (21) de ellas. Todas estas pruebas se resumen en que el sistema en su totalidad con un set de pruebas de 65 imágenes solo reconoció 21 de forma correcta lo que equivale a un 32 % de eficacia.

92 8.4. Proceso de reconocimiento de caracteres 78 Cuadro 8.2: Resultado de pruebas

Capítulo 3. 3. Marco Teórico.

Capítulo 3. 3. Marco Teórico. Capítulo 3 3. Marco Teórico. La visión artificial o visión por computador se define como un área multidisciplinar que pretende, en cierta medida, reproducir artificialmente el sentido de la vista mediante

Más detalles

CAPÍTULO 2 PROCESAMIENTO DIGITAL DE IMÁGENES

CAPÍTULO 2 PROCESAMIENTO DIGITAL DE IMÁGENES CAPÍTULO PROCESAMIENTO DIGITAL DE IMÁGENES En este capítulo se presentan de manera breve, una explicación de la visión, las imágenes digitales y como son capturadas por medios electrónicos, el campo encargado

Más detalles

En este capitulo se presentan los métodos y algoritmos utilizados para el desarrollo del

En este capitulo se presentan los métodos y algoritmos utilizados para el desarrollo del 33 En este capitulo se presentan los métodos y algoritmos utilizados para el desarrollo del sistema de procesamiento de imágenes para controlar un robot manipulador y se describen en la forma como serán

Más detalles

Capítulo 2. Las Redes Neuronales Artificiales

Capítulo 2. Las Redes Neuronales Artificiales Capítulo 2. Las Redes Neuronales Artificiales 13 Capitulo 2. Las Redes Neuronales Artificiales 2.1 Definición Redes Neuronales Artificiales El construir una computadora que sea capaz de aprender, y de

Más detalles

Tema 4:Segmentación de imágenes

Tema 4:Segmentación de imágenes Tema 4:Segmentación de imágenes La segmentación de imágenes divide la imagen en sus partes constituyentes hasta un nivel de subdivisión en el que se aíslen las regiones u objetos de interés. Los algoritmos

Más detalles

Capítulo III Procesamiento Digital de Imágenes

Capítulo III Procesamiento Digital de Imágenes Capítulo III Procesamiento Digital de Imágenes Contenido Introducción al Procesamiento digital de imágenes Orígenes del procesamiento digital de imágenes. Aplicaciones del Procesamiento de Imágenes Componentes

Más detalles

Tema 1.- Introducción a la Visión Artificial

Tema 1.- Introducción a la Visión Artificial Tema 1.- Introducción a la Visión Artificial Visión Artificial Avanzada Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad

Más detalles

Fundamentos de la Visión Artificial. Prof. Dr. Francisco Gómez Rodríguez Prof. Manuel J. Domínguez Morales 1

Fundamentos de la Visión Artificial. Prof. Dr. Francisco Gómez Rodríguez Prof. Manuel J. Domínguez Morales 1 Fundamentos de la Visión Artificial Prof. Dr. Francisco Gómez Rodríguez Prof. Manuel J. Domínguez Morales 1 Índice 1. Introducción a lavisión Artificial 2. Adquisición y representación de imágenes 3. Filtrado

Más detalles

Arquitecturas GPU v. 2013

Arquitecturas GPU v. 2013 v. 2013 Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image,

Más detalles

En las estructuras de datos, muchas de las implementaciones o mapeos de problemas, sus

En las estructuras de datos, muchas de las implementaciones o mapeos de problemas, sus 1 Introducción. En las estructuras de datos, muchas de las implementaciones o mapeos de problemas, sus soluciones o procesos, se basan en matrices binarias. Existen varios métodos y algoritmos que trabajan

Más detalles

8 PROCESAMIENTO DIGITAL DE IMÁGENES USANDO MATLAB & SIMULINK RA-MA

8 PROCESAMIENTO DIGITAL DE IMÁGENES USANDO MATLAB & SIMULINK RA-MA ÍNDICE PRÓLOGO...19 CAPÍTULO 1. INTRODUCCIÓN...25 1.1 SISTEMA DE VISIÓN Y PROCESAMIENTO DE IMÁGENES...25 1.2 PROCESAMIENTO DIGITAL DE IMÁGENES...26 1.3 RELACIONES BÁSICAS ENTRE PÍXELES...27 1.3.1 Vecinos

Más detalles

Sistemas de Sensación Segmentación, Reconocimiento y Clasificación de Objetos. CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides

Sistemas de Sensación Segmentación, Reconocimiento y Clasificación de Objetos. CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides Sistemas de Sensación Segmentación, Reconocimiento y Clasificación de Objetos CI-2657 Robótica M.Sc. Kryscia Ramírez Benavides Introducción La visión artificial, también conocida como visión por computador

Más detalles

RECONOCIMIENTO AUTOMATICO DE MATRICULAS

RECONOCIMIENTO AUTOMATICO DE MATRICULAS RECONOCIMIENTO AUTOMATICO DE MATRICULAS Carlos Parra Ramos Universidad Carlos III de Madrid Madrid, España 2006 David Regajo Rodríguez Universidad Carlos III de Madrid Madrid, España 2006 100030583@alumnos.uc3m.es

Más detalles

Edwin Chiguano, Nathaly Moreno, Luis Corrales. Facultad de Ingeniería Eléctrica y Electrónica, EPN Quito, Ecuador

Edwin Chiguano, Nathaly Moreno, Luis Corrales. Facultad de Ingeniería Eléctrica y Electrónica, EPN Quito, Ecuador Diseño e implementación de un sistema traductor de lenguaje de señas de manos a un lenguaje de texto mediante visión artificial en un ambiente controlado Edwin Chiguano, Nathaly Moreno, Luis Corrales Facultad

Más detalles

Capítulo 1. Introducción. 1.1. Antecedentes

Capítulo 1. Introducción. 1.1. Antecedentes Capítulo 1. Introducción En este capítulo se presenta una descripción general del problema a investigar y el enfoque con el que se aborda. Se establece la necesidad de incorporar técnicas de análisis novedosas

Más detalles

MODULO DE NI-VISION DE LABVIEW GUÍA DE INICIO JONATHAN EDUARDO CRUZ ORTIZ

MODULO DE NI-VISION DE LABVIEW GUÍA DE INICIO JONATHAN EDUARDO CRUZ ORTIZ MODULO DE NI-VISION DE LABVIEW GUÍA DE INICIO JONATHAN EDUARDO CRUZ ORTIZ UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS FACULTAD TECNOLÓGICA TECNOLOGÍA EN ELECTRÓNICA INGENIERÍA EN CONTROL Índice general

Más detalles

APLICACIÓN DE TÉCNICAS DE IMAGEN ARTIFICIAL Y REDES NEURONALES PARA EL SEGUIMIENTO DEL REMONTE DE FAUNA PISCÍCOLA

APLICACIÓN DE TÉCNICAS DE IMAGEN ARTIFICIAL Y REDES NEURONALES PARA EL SEGUIMIENTO DEL REMONTE DE FAUNA PISCÍCOLA Curso sobre Técnicas de Visualización CEH-CEDEX, 10 junio de 2011 APLICACIÓN DE TÉCNICAS DE IMAGEN ARTIFICIAL Y REDES NEURONALES PARA EL SEGUIMIENTO DEL REMONTE DE FAUNA PISCÍCOLA Aplicación de técnicas

Más detalles

El problema de la mayoría de las personas e instituciones, es la conservación de sus

El problema de la mayoría de las personas e instituciones, es la conservación de sus 2 1.1 Introducción. El problema de la mayoría de las personas e instituciones, es la conservación de sus documentos escritos, especialmente cuando éstos tienen un siglo de antigüedad. Es por esto que se

Más detalles

MICRODISEÑO CURRICULAR Ingeniería de Sistemas. Créditos TPS TIS TPT TIT

MICRODISEÑO CURRICULAR Ingeniería de Sistemas. Créditos TPS TIS TPT TIT 1. IDENTIFICACIÓN Asignatura Visión Artificial Área Nivel IV Código Pensum Correquisito(s) Prerrequisito(s) Créditos TPS TIS TPT TIT 2. JUSTIFICACIÓN. La visión artificial es una de las disciplinas de

Más detalles

Visión. Sesión 4: Búsqueda y tracking de modelos 2D en imágenes. Departamento CCIA http://www.jtech.ua.es/vision/2011/

Visión. Sesión 4: Búsqueda y tracking de modelos 2D en imágenes. Departamento CCIA http://www.jtech.ua.es/vision/2011/ Visión Sesión 4: Búsqueda y tracking de modelos 2D en imágenes Departamento CCIA http://www.jtech.ua.es/vision/2011/ Hoy Detección de aristas Transformada de Hough Componentes conectadas Alineación de

Más detalles

CAPÍTULO 5: MODELADO DEL IDS CON REDES NEURONALES

CAPÍTULO 5: MODELADO DEL IDS CON REDES NEURONALES Capítulo 5 Modelado y Simulación del IDS 35 CAPÍTULO 5: MODELADO DEL IDS CON REDES NEURONALES En este capítulo se describe la preparación de los datos para servir como entradas al IDS y la simulación de

Más detalles

Capítulo 2. Técnicas de procesamiento digital de imágenes y reconocimiento de patrones.

Capítulo 2. Técnicas de procesamiento digital de imágenes y reconocimiento de patrones. Capítulo 2. Técnicas de procesamiento digital de imágenes y reconocimiento de patrones. 2.1 Revisión sistema reconocimiento caracteres [9]: Un sistema de reconocimiento típicamente esta conformado por

Más detalles

TECNO2 año O7. Color Digital. Tratamiento Digital del Color. Problemas para la cuantificación del color. Modelos y sistemas de color

TECNO2 año O7. Color Digital. Tratamiento Digital del Color. Problemas para la cuantificación del color. Modelos y sistemas de color año O7 Color Digital links www.fotonostra.com/grafico/profundidadbit.htm http://www.apple.com/es/pro/ Bibliografía Harald Küppers: Fundamentos de la teoría de los colores. Agfa: Introducción a la digitalización.

Más detalles

Acerca del Libro. Información básica. Título: Visión Artificial y Procesamiento Digital de Imágenes usando Matlab Autor: Iván Danilo García Santillán

Acerca del Libro. Información básica. Título: Visión Artificial y Procesamiento Digital de Imágenes usando Matlab Autor: Iván Danilo García Santillán Acerca del Libro Información básica Título: Visión Artificial y Procesamiento Digital de Imágenes usando Matlab Autor: Iván Danilo García Santillán ISBN: 978-9942-01-790-1. 8 capítulos. 133 páginas. Ibarra

Más detalles

Modelo de aplicaciones CUDA

Modelo de aplicaciones CUDA Modelo de aplicaciones CUDA Utilización de GPGPUs: las placas gráficas se utilizan en el contexto de una CPU: host (CPU) + uno o varios device o GPUs Procesadores masivamente paralelos equipados con muchas

Más detalles

Procesamiento Digital De Imágenes

Procesamiento Digital De Imágenes Introducción 1 Procesamiento Digital De Imágenes El término procesamiento digital de imágenes versa sobre la manipulación y análisis de imágenes por computadora Se utiliza mayormente para extraer/revelar

Más detalles

GUADALINEX Y EL DISEÑO ASISTIDO POR ORDENADOR: INTRODUCCIÓN A QCAD Pablo E. Romero Carrillo

GUADALINEX Y EL DISEÑO ASISTIDO POR ORDENADOR: INTRODUCCIÓN A QCAD Pablo E. Romero Carrillo GUADALINEX Y EL DISEÑO ASISTIDO POR ORDENADOR: INTRODUCCIÓN A QCAD Pablo E. Romero Carrillo 1 INTRODUCCIÓN En este apasionante mundo del software libre, el código abierto y la Web 2.0, no podían faltar

Más detalles

Técnicas Clásicas de Segmentación de Imagen

Técnicas Clásicas de Segmentación de Imagen Técnicas Clásicas de Segmentación de Imagen Marcos Martín 21 de mayo de 2002 1. Introducción El primer paso en cualquier proceso de análisis de imagen es la segmentación. Mediante la segmentación vamos

Más detalles

Capítulo 5. Diseño del modelo de indexación de imágenes basado en una ontología

Capítulo 5. Diseño del modelo de indexación de imágenes basado en una ontología Capítulo 5. Diseño del modelo de indexación de imágenes basado en una ontología Como se vio anteriormente, en el Capítulo se analizaron las características de diversos métodos de representación de imágenes

Más detalles

SISTEMA DE VISION ARTIFICIAL PARA RECONOCIMIENTO DE OBJETOS APLICADO A UN BRAZO ROBÓTICO

SISTEMA DE VISION ARTIFICIAL PARA RECONOCIMIENTO DE OBJETOS APLICADO A UN BRAZO ROBÓTICO PROCESAMIENTO DIGITAL DE IMÁGENES Dr. Johnson Garzón SISTEMA DE VISION ARTIFICIAL PARA RECONOCIMIENTO DE OBJETOS APLICADO A UN BRAZO ROBÓTICO Realizado por : Carlos Pillajo Introducción En este proyecto,

Más detalles

Capítulo 6 Filtrado en el Dominio de la Frecuencia

Capítulo 6 Filtrado en el Dominio de la Frecuencia Capítulo 6 Filtrado en el Dominio de la Frecuencia...39 6. Método en el Dominio de la Frecuencia...39 6. Filtros Espaciales en la frecuencia...40 6.. Convolución Lineal y la Transformada Discreta de Fourier...45

Más detalles

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS Denominación de la materia INGENIERIA DE COMPUTADORAS N créditos ECTS = 36 carácter = MIXTA Ubicación dentro del plan de estudios y duración La materia Ingeniería de Computadoras está formada por 6 asignaturas

Más detalles

Visión de alto nivel:

Visión de alto nivel: UNIVERSIDAD DE MURCIA FACULTAD DE INFORMÁTICA SISTEMAS Y PROYECTOS INFORMÁTICOS Visión de alto nivel: Interpretación de dibujos de líneas mediante comparación de grafos Autor: Ginés García Mateos Profesor

Más detalles

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013 FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS CNCA Abril 2013 6. COMPUTACIÓN DE ALTO RENDIMIENTO Ricardo Román DEFINICIÓN High Performance Computing - Computación de Alto Rendimiento Técnicas, investigación

Más detalles

Reconocimiento de imágenes

Reconocimiento de imágenes Capítulo 4 Reconocimiento de imágenes En la actualidad, el reconocimiento de imágenes es una herramienta de gran utilidad en el área de control y automatización. Varias empresas usan el reconocimiento

Más detalles

INTRODUCCIÓN. Dado a que internamente la computadora trabaja con datos en binario, texto, imágenes y sonidos deben traducirse a este formato.

INTRODUCCIÓN. Dado a que internamente la computadora trabaja con datos en binario, texto, imágenes y sonidos deben traducirse a este formato. INTRODUCCIÓN La comunicación consta de lenguaje, imágenes y sonido. Las computadoras prefieren el tratamiento de la información en binario. Nosotros la del lenguaje natural. INTRODUCCIÓN Antes, el procesamiento

Más detalles

La nueva arquitectura del paquete AMORE (A MORE Flexible Neural Network)

La nueva arquitectura del paquete AMORE (A MORE Flexible Neural Network) La nueva arquitectura del paquete AMORE (A MORE Flexible Neural Network) III Jornadas de Usuarios de R Javier Alfonso Cendón, Manuel Castejón Limas, Joaquín Ordieres Mere, Camino Fernández Llamas Índice

Más detalles

CLUSTERING MAPAS AUTOORGANIZATIVOS (KOHONEN) (RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN)

CLUSTERING MAPAS AUTOORGANIZATIVOS (KOHONEN) (RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN) CLASIFICACIÓN NO SUPERVISADA CLUSTERING Y MAPAS AUTOORGANIZATIVOS (KOHONEN) (RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN) info@clustering.50webs.com Indice INTRODUCCIÓN 3 RESUMEN DEL CONTENIDO 3 APRENDIZAJE

Más detalles

APÉNDICE C Vision Toolkit: Funciones

APÉNDICE C Vision Toolkit: Funciones APÉNDICE C Vision Toolkit: Funciones En la figura B.2 se muestran las funciones de Vision que se encuentran en el diagrama de bloques. Dentro de las funciones de Vision se agregan las opciones para realizar

Más detalles

Generalidades de MultiSpec Descripción del programa

Generalidades de MultiSpec Descripción del programa Generalidades de MultiSpec Descripción del programa MultiSpec es un programa originalmente implementado para computadoras Macintosh, pero actualmente está disponible para computadoras personales que utilizan

Más detalles

Clasificación de Música por Genero Utilizando Redes Neuronales Artificiales. Elkin García, Germán Mancera, Jorge Pacheco

Clasificación de Música por Genero Utilizando Redes Neuronales Artificiales. Elkin García, Germán Mancera, Jorge Pacheco Clasificación de Música por Genero Utilizando Redes Neuronales Artificiales Elkin García, Germán Mancera, Jorge Pacheco Presentación Los autores han desarrollado un método de clasificación de música a

Más detalles

La definición de digital es toda información representada por una serie de pulsos eléctricos discretos basados en un sistema binario (ceros y unos).

La definición de digital es toda información representada por una serie de pulsos eléctricos discretos basados en un sistema binario (ceros y unos). Tratamiento de la Imagen Digital Qué es la imagen digital? La definición de digital es toda información representada por una serie de pulsos eléctricos discretos basados en un sistema binario (ceros y

Más detalles

Introducción a Sistemas de Información Geográfica (Resumen)

Introducción a Sistemas de Información Geográfica (Resumen) Introducción a Sistemas de Información Geográfica (Resumen) Existen términos que creemos exclusivos de los sistemas GIS, pero que anteriormente han sido acuñados por grandes personajes, como es el caso

Más detalles

Capítulo II La Imagen Digital

Capítulo II La Imagen Digital Definición Clasificación de las imágenes digitales Imágenes Vectoriales Imágenes Ráster Formatos de Imágenes Ráster TIFF BMP GIF JPEG PNG Tipos de Imágenes Digitales RGB Indexadas Escala de grises Binarias

Más detalles

Detección de bordes en una imagen.

Detección de bordes en una imagen. Detección de bordes en una imagen. Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática OBJETIVOS: Utilizar distintas máscaras empleadas para

Más detalles

Tema 6: Morfología. Primera parte

Tema 6: Morfología. Primera parte Tema 6: Morfología Primera parte Morfología La morfología matemática se basa en operaciones de teoría de conjuntos. En el caso de imágenes binarias, los conjuntos tratados son subconjuntos de Z 2 y en

Más detalles

Que el estudiante sepa aplicar las principales técnicas que sirven para resaltar características en imágenes

Que el estudiante sepa aplicar las principales técnicas que sirven para resaltar características en imágenes 1 Facultad: Ingeniería. Escuela: Biomédica Asignatura: Imágenes Médicas Realce de Características Objetivos Que el estudiante sepa aplicar las principales técnicas que sirven para resaltar características

Más detalles

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Universidad Nacional de Quilmes Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005 Filtrado Espacial Introducción El filtrado espacial es la operación que se aplica a una imagen para resaltar o atenuar detalles espaciales con el fin de mejorar la interpretación visual o facilitar un

Más detalles

UNIDAD 5 Procesamiento Digital de imágenes

UNIDAD 5 Procesamiento Digital de imágenes UNIDAD 5 Procesamiento Digital de imágenes LA IMAGEN Al igual que los órganos humanos de percepción (los ojos), existen dispositivos que se encargan de transformar señales externas como la luz, en información

Más detalles

Tratamiento de la Imagen Digital

Tratamiento de la Imagen Digital Tratamiento de la Imagen Digital Qué es la imagen digital? La definición de digital es toda información representada por una serie de pulsos electricos discretos basados en un sistema binario (ceros y

Más detalles

Programa de la asignatura. Horas. ASIGNATURA: Visión Artificial

Programa de la asignatura. Horas. ASIGNATURA: Visión Artificial ASIGNATURA: Visión Artificial Código: 126213031 Titulación: Ingeniero Técnico Industrial, esp. Electrónica Industrial Curso: 3º Profesor(es) responsable(s): - Miguel Pinzolas Prado - Juan López Coronado

Más detalles

Proyecto Fin de Carrera

Proyecto Fin de Carrera Proyecto Fin de Carrera Reconocimiento de acciones humanas en secuencias de vídeo Autor Pedro José Monforte Sánchez Director Carlos Orrite Uruñuela Escuela de Ingeniería y Arquitectura 2012 Repositorio

Más detalles

TEMA 0 INTRODUCCIÓN A LA VISIÓN ARTIFICIAL

TEMA 0 INTRODUCCIÓN A LA VISIÓN ARTIFICIAL TEMA 0 INTRODUCCIÓN A LA VISIÓN ARTIFICIAL QUÉ ES LA VISIÓN ARTIFICIAL (V.A.)? La V.A. consiste en... el proceso de obtención, caracterización e interpretación de la información a partir de imágenes. La

Más detalles

CAPÍTULO 3 Programación en LabVIEW

CAPÍTULO 3 Programación en LabVIEW CAPÍTULO 3 Programación en LabVIEW 3.1 Conexión física de los elementos Para capturar todas las señales provenientes de los sensores se utilizó una tarjeta de adquisición de datos de National Instruments,

Más detalles

Capítulo 3. dependen de él son, por ejemplo, la voz, una onda de radio, un electrocardiograma, etc. El

Capítulo 3. dependen de él son, por ejemplo, la voz, una onda de radio, un electrocardiograma, etc. El Capítulo 3 Procesamiento digital de señales mioeléctricas Las señales se representan matemáticamente como funciones de una o más variables independientes. La variable independiente más común es el tiempo,

Más detalles

VERIFICACIÓN DE FIRMAS DE NCR APTRA

VERIFICACIÓN DE FIRMAS DE NCR APTRA VERIFICACIÓN DE FIRMAS DE NCR APTRA La imagen es todo. Proteja la suya. Primera línea de defensa frente al fraude de firmas Usted tiene una presión constante para reducir los costos de los procesamientos

Más detalles

TEMA 9 RECTIFICACIÓN DE IMÁGENES

TEMA 9 RECTIFICACIÓN DE IMÁGENES TEMA 9 RECTIFICACIÓN DE IMÁGENES 9.1- Introducción En fotogrametría aérea cuando el terreno es llano y la toma es nadiral, el fotograma resultante es homotético con el terreno y por lo tanto un plano a

Más detalles

El monitoreo de una variable física requiere supervisión permanente de señales que

El monitoreo de una variable física requiere supervisión permanente de señales que Capítulo 1 Marco Contextual 1.1. Formulación del problema 1.1.1. Definición del problema El monitoreo de una variable física requiere supervisión permanente de señales que varían con el tiempo. Tal información,

Más detalles

Tema 3. MODELOS. 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas biológicos.

Tema 3. MODELOS. 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas biológicos. Tema 3. MODELOS 011 0 01 01 FUNDAMENTOS 1. Modelos computacionales. 2. Computación y Neurociencia. CONTENIDOS 2.1 Apoyo Informático a la investigación experimental. 2.2 Modelos del cerebro: A. Realistas

Más detalles

Profundidad tonal. Es el número de grises que tiene una imagen entre la densidad máxima y la densidad mínima.

Profundidad tonal. Es el número de grises que tiene una imagen entre la densidad máxima y la densidad mínima. Profundidad tonal Profundidad tonal Es el número de grises que tiene una imagen entre la densidad máxima y la densidad mínima. En una imagen digital la mínima unidad de información espacial es el píxel.

Más detalles

Capitulo 3: Color, aplicación en Illustrator

Capitulo 3: Color, aplicación en Illustrator Capitulo 3: Color, aplicación en Illustrator La aplicación de colores a las ilustraciones es una tarea habitual en Adobe Illustrator, que requiere un cierto grado de conocimiento sobre los modos y los

Más detalles

Procesado de Imagen para Reconocimiento de Huellas Digitales

Procesado de Imagen para Reconocimiento de Huellas Digitales Procesado de Imagen para Reconocimiento de Huellas Digitales Técnicas Avanzadas de Procesado de Imagen Marcos Ortega Hortas 1 Introducción (I) Identificación por huella dactilar, o fingerprint en inglés,

Más detalles

Deep Learning y Big Data

Deep Learning y Big Data y Eduardo Morales, Enrique Sucar INAOE (INAOE) 1 / 40 Contenido 1 2 (INAOE) 2 / 40 El poder tener una computadora que modele el mundo lo suficientemente bien como para exhibir inteligencia ha sido el foco

Más detalles

Tipografía, color e imágenes. [12.1] Cómo estudiar este tema? [12.3] El color aditivo y el color sustractivo

Tipografía, color e imágenes. [12.1] Cómo estudiar este tema? [12.3] El color aditivo y el color sustractivo Tipografía, color e imágenes [12.1] Cómo estudiar este tema? [12.2] Tipos y fuentes [12.3] El color aditivo y el color sustractivo [12.4] El sistema pantone [12.5] Creación, edición y obtención de imágenes

Más detalles

CLASIFICACIÓN DE IMÁGENES

CLASIFICACIÓN DE IMÁGENES CLASIFICACIÓN DE IMÁGENES Cesar Juárez Megías I.T.T. Imagen y sonido Carlos III de Madrid 100061832@alumnos.uc3m.es OBJETIVO. El objetivo principal de nuestro programa se basaría en la clasificación de

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

VISION ARTIFICIAL APOYADA EN SISTEMAS HÍBRIDOS NEURO-SIMBÓLICOS

VISION ARTIFICIAL APOYADA EN SISTEMAS HÍBRIDOS NEURO-SIMBÓLICOS VISION ARTIFICIAL APOYADA EN SISTEMAS HÍBRIDOS NEURO-SIMBÓLICOS Dr. Gerardo Reyes Salgado Profesor-Investigador / Instituto Tecnológico de Cuautla gerardo.reyes@itcuautla.edu.mx www.itcuautla.edu.mx 1

Más detalles

Revista del Centro de Investigación. Universidad La Salle ISSN: 1405-6690 revista.ci@ulsa.mx Universidad La Salle México

Revista del Centro de Investigación. Universidad La Salle ISSN: 1405-6690 revista.ci@ulsa.mx Universidad La Salle México Revista del Centro de Investigación. Universidad La Salle ISSN: 1405-6690 revista.ci@ulsa.mx Universidad La Salle México Gómez Ramírez, Eduardo Maestría en ciencias en el área de cibernética. Un logro

Más detalles

Visión Artificial. Por Elisabeth Pérez

Visión Artificial. Por Elisabeth Pérez Visión Artificial Por Elisabeth Pérez Indice Qué es la Visión Artificial? Visión Artificial Diversos nombres Áreas de Aplicación Visión Artificial en Sistemas de Calidad Los pasos a tener en cuenta Áreas

Más detalles

CONFERENCIA REALIDAD AUMENTADA. Ingeniero CARLOS ENRIQUE ORTIZ RANGEL carlos.ortiz@tecnomovilidad.com

CONFERENCIA REALIDAD AUMENTADA. Ingeniero CARLOS ENRIQUE ORTIZ RANGEL carlos.ortiz@tecnomovilidad.com CONFERENCIA REALIDAD AUMENTADA Ingeniero CARLOS ENRIQUE ORTIZ RANGEL carlos.ortiz@tecnomovilidad.com Bogotá, Septiembre 2012 OBJETIVO GENERAL El objetivo es presentar un recorrido actualizado por las diferentes

Más detalles

MC ENRIQUE MARTINEZ PEÑA. Maestría en Ingeniería. Introducción al PDI Representación de la imagen Operaciones básicas con imágenes

MC ENRIQUE MARTINEZ PEÑA. Maestría en Ingeniería. Introducción al PDI Representación de la imagen Operaciones básicas con imágenes Maestría en Ingeniería Procesamiento Digital de Imágenes Contenido Introducción al PDI Representación de la imagen Operaciones básicas con imágenes 2 1 Inteligencia artificial La inteligencia artificial

Más detalles

Programación Gráfica. Conceptos Básicos

Programación Gráfica. Conceptos Básicos 2013 1 Procesamiento de Imágenes. Es el campo que trata con métodos, técnicas, y algoritmos para manipulación, realce e interpretación de imágenes. Graficación por Computadora. Es la disciplina concerniente

Más detalles

102784 [20380] Visió per Computador Prueba 1 (2015) [A] Teoría (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada)

102784 [20380] Visió per Computador Prueba 1 (2015) [A] Teoría (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada) 102784 [20380] Visió per Computador Prueba 1 (2015) [A] Teoría (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada) 1. El gap del silicio es de 1.11eV (salto energético entre banda de valencia

Más detalles

I SEMANA ELECTRONICA REDES NEURONALES

I SEMANA ELECTRONICA REDES NEURONALES UNIVERSIDAD NACIONAL SAN ANTONIO ABAD A DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA I SEMANA ELECTRONICA REDES NEURONALES Ing. Avid idromán González Se trata de una nueva forma de computación

Más detalles

Sistemas de gestión de video. Indice

Sistemas de gestión de video. Indice 168 Sistemas de gestión de video Un aspecto importante del sistema de videovigilancia es la gestión de video para la visualización, grabación, reproducción y almacenamiento en directo. Si el sistema está

Más detalles

Electrónica Digital II

Electrónica Digital II Electrónica Digital II M. C. Felipe Santiago Espinosa Aplicaciones de los FPLDs Octubre / 2014 Aplicaciones de los FPLDs Los primeros FPLDs se usaron para hacer partes de diseños que no correspondían a

Más detalles

Capítulo 2 Silueta. Figura 2.1 Tetera capturada por la cámara con la silueta resaltada

Capítulo 2 Silueta. Figura 2.1 Tetera capturada por la cámara con la silueta resaltada Capítulo 2 Silueta 2.1 Silueta La silueta de un objeto es muy importante porque es lo que nos da las pistas visuales de cómo es que está formado, nos dice dónde están sus límites y ayuda a diferenciar

Más detalles

AutoCAD, Herramientas 2D CONTENIDO

AutoCAD, Herramientas 2D CONTENIDO CONTENIDO HOJA TÉCNICA... 3 INTRODUCCIÓN... 4 GENERALIDADES DEL AUTOCAD... 5 COMO UTILIZAR ESTE MANUAL... 5 PARTE 1: PREPARACIÓN... 7 1.- CONOCIENDO EL COMPUTADOR:... 7 1.1.- COMPONENTE FÍSICO:... 8 1.2.-

Más detalles

VISIÓN ARTIFICIAL IMAGEN GRISES IMAGEN BINARIA 155 BLANCO 1 UMBRAL = 100 NEGRO

VISIÓN ARTIFICIAL IMAGEN GRISES IMAGEN BINARIA 155 BLANCO 1 UMBRAL = 100 NEGRO VISIÓN ARTIFICIAL CONCEPTOS GENERALES Se puede definir la Visión Artificial como un campo de la Inteligencia Artificial que, mediante la utilización de las técnicas adecuadas, permite la obtención, procesamiento

Más detalles

SISTEMAS DE TRATAMIENTO DE IMAGENES DE USO INDUSTRIAL

SISTEMAS DE TRATAMIENTO DE IMAGENES DE USO INDUSTRIAL SISTEMAS DE TRATAMIENTO DE IMAGENES DE USO INDUSTRIAL Series CVS & MVS Alltronics Peru SAC Julio CSR Sept. 2009 INTRODUCCION La sofisticación de los procesos industriales exige de equipos cada vez más

Más detalles

MEJORA DE LA IMAGEN EN EL DOMINIO DE LA FRECUENCIA: TRANSFORMADA DE FOURIER

MEJORA DE LA IMAGEN EN EL DOMINIO DE LA FRECUENCIA: TRANSFORMADA DE FOURIER MEJORA DE LA IMAGEN EN EL DOMINIO DE LA FRECUENCIA: TRANSFORMADA DE FOURIER M.C. CAROLINA ROCÍO SÁNCHEZ PÉREZ 01 DE ABRIL DE 2011 Operaciones en el dominio de la frecuencia Una imagen digital es una representación

Más detalles

Capítulo 3. Diseño y Arquitectura del Sistema

Capítulo 3. Diseño y Arquitectura del Sistema Capítulo 3. Diseño y Arquitectura del Sistema 3.1 Resumen En este capítulo se explicara el diseño y arquitectura del sistema propuesto para este proyecto de Tesis. Se hará una breve explicación del propósito

Más detalles

CAPITULO 6 SISTEMA DE DETECCION DE INTRUSOS

CAPITULO 6 SISTEMA DE DETECCION DE INTRUSOS Capitulo 6. Sistema de Detección de Intrusos con Redes Neuronales. 69 CAPITULO 6 SISTEMA DE DETECCION DE INTRUSOS USANDO REDES NEURONALES. En este capítulo se realiza la preparación adecuada de toda la

Más detalles

Introducción a las imágenes digitales

Introducción a las imágenes digitales Introducción a las imágenes digitales Segunda parte Topología Digital El proceso de digitalización Una imagen natural capturada con una cámara, un telescopio, un microscopio o cualquier otro tipo de instrumento

Más detalles

9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de decisión.

9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de decisión. TEMA 9 TÉCNICAS DE INTELIGENCIA ARTIFICIAL PARA EL ANÁLISIS DE LA INFORMACIÓN CONTABLE 9.1.Los sistemas expertos. 9.2.Las redes neuronales artificiales. 9.3.Sistemas de inducción de reglas y árboles de

Más detalles

GUÍA PARA UN ESCANEO ÓPTIMO

GUÍA PARA UN ESCANEO ÓPTIMO Condiciones para obtener un buen escaneo Los factores que intervienen en el proceso de escaneo son ambientales, propios de la configuración y calibración del escáner así como del objeto a escanear. El

Más detalles

LA COMPUTADORA Parte 1

LA COMPUTADORA Parte 1 LA COMPUTADORA Parte 1 Contacto Hora: M (109) 4:00 pm- 6:00 pm V (109) 4:00 pm- 6:00 pm Profesor: Andrés Arcia Cubículo en el CEMISID. Teléfono: 2402914. e-mail: amoret@ula.ve Consultas: V 2 pm 4 pm Evaluación

Más detalles

Inteligencia Artificial

Inteligencia Artificial Inteligencia Artificial Practica 2. (5 semanas) Rubén Cárdenes Almeida Redes neuronales. Introducción Las Redes Neuronales Artificiales (RNA) están inspiradas en la biología, esto significa que están formadas

Más detalles

FUNDAMENTOS DE INFORMATICA

FUNDAMENTOS DE INFORMATICA FUNDAMENTOS DE INFORMATICA TEMAS QUE SE TRATARÁN: Arquitectura Interna Sistemas Operativos Programación en Visual Basic Bases de Datos Redes e Internet 1 FUNDAMENTOS DE INFORMATICA Tema 1: Arquitectura

Más detalles

ASIGNATURA DE GRADO: VISIÓN ARTIFICIAL

ASIGNATURA DE GRADO: VISIÓN ARTIFICIAL ASIGNATURA DE GRADO: VISIÓN ARTIFICIAL Curso 2015/2016 (Código:71014046) 1.PRESENTACIÓN DE LA ASIGNATURA Esta asignatura pretende ofrecer al alumno una panorámica del problema de la percepción visual a

Más detalles

Detección de bordes: metodos lineales de cálculo de gradientesk, etc. Detección de bordes. Métodos basados en operadores lineales de gradiente

Detección de bordes: metodos lineales de cálculo de gradientesk, etc. Detección de bordes. Métodos basados en operadores lineales de gradiente Detección de bordes Métodos basados en operadores lineales de gradiente 1 Bordes Variaciones fuertes de la intensidad que corresponden a las fronteras de los objetos visualizados Métodos basados en el

Más detalles

FILTRADO DE IMÁGENES

FILTRADO DE IMÁGENES FILTRADO DE IMÁGENES 1 INDICE RUIDO Qué es el ruido? Tipos de ruido TECNICAS DE FILTRADO EN DOMINIO ESPACIAL Promediado de imágenes Filtros de orden Filtros de medias DOMINIO FRECUENCIAL FUNCIONES EN MATLAB

Más detalles

Unidad V: Integración

Unidad V: Integración Unidad V: Integración 5.1 Introducción La integración es un concepto fundamental de las matemáticas avanzadas, especialmente en los campos del cálculo y del análisis matemático. Básicamente, una integral

Más detalles

Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala

Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala 1. Introducción Los procesadores con dos núcleos existen actualmente, y los procesadores de cuatro están insertándose en el mercado lentamente,

Más detalles

Procesamiento de imágenes en GPUs mediante CUDA. I. Introducción. Indice de contenidos

Procesamiento de imágenes en GPUs mediante CUDA. I. Introducción. Indice de contenidos Procesamiento de imágenes en GPUs mediante CUDA Manuel Ujaldón Martínez Nvidia CUDA Fellow Departamento de Arquitectura de Computadores Universidad de Málaga Indice de contenidos 1. Introducción. [2] 2.

Más detalles

Redes Neuronales Artificiales y sus Aplicaciones

Redes Neuronales Artificiales y sus Aplicaciones Redes Neuronales Artificiales y sus Aplicaciones Profesorado Departamento Programa de Doctorado Créditos 3 Nº de Plazas 2. La asignatura 2. Objetivos de la asignatura 3. Contenidos 4. Metodología de trabajo

Más detalles

SISTEMA DE INSPECCION BASADO EN VISION ARTIFICIAL APLICADO A UN PROCESO INDUSTRIAL

SISTEMA DE INSPECCION BASADO EN VISION ARTIFICIAL APLICADO A UN PROCESO INDUSTRIAL UNIVERSIDAD DON BOSCO FACULTAD DE INGENIERIA ESCUELA DE ELECTRÓNICA SISTEMA DE INSPECCION BASADO EN VISION ARTIFICIAL APLICADO A UN PROCESO INDUSTRIAL ALUMNOS: PEDRO ERNESTO ORTEGA MARROQUIN EMERSON FRANCISCO

Más detalles