• No se han encontrado resultados

APLICACIÓN DE LAS MÁQUINAS DE SOPORTE VECTORIAL PARA EL RECONOCIMIENTO DE MATRÍCULAS

N/A
N/A
Protected

Academic year: 2021

Share "APLICACIÓN DE LAS MÁQUINAS DE SOPORTE VECTORIAL PARA EL RECONOCIMIENTO DE MATRÍCULAS"

Copied!
109
0
0

Texto completo

(1)

PROYECTO FIN DE CARRERA

APLICACIÓN DE LAS MÁQUINAS

DE SOPORTE VECTORIAL PARA EL

RECONOCIMIENTO DE MATRÍCULAS

AUTOR: ESTHER GUTIÉRREZ ALONSO MADRID, Junio 2007

UNIVERSIDAD PONTIFICIA COMILLAS

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)

INGENIERO INDUSTRIAL

(2)

Autorizada la entrega del proyecto al alumno:

Esther Gutiérrez Alonso

LOS DIRECTORES DEL PROYECTO

Eugenio Sánchez Úbeda

Fdo: Fecha:

Ana Berzosa Muñoz

Fdo: Fecha:

Vº Bº del Coordinador de Proyectos

Tomás Gómez San Román

Fdo: Fecha:

(3)

APLICACIÓN DE LAS MÁQUINAS DE SOPORTE VECTORIAL

PARA EL RECONOCIMIENTO DE MATRÍCULAS

Autor: Gutiérrez Alonso, Esther.

Directores: Sánchez Úbeda, Eugenio; Berzosa Muñoz, Ana.

Entidad Colaboradora: ICAI – Universidad Pontificia Comillas.

RESUMEN DEL PROYECTO

En la actualidad, el reconocimiento automático de matrículas tiene numerosas aplicaciones: identificar vehículos robados, realizar automáticamente el pago en peajes, controlar el acceso en los aparcamientos, etc. Habitualmente, el reconocimiento se basa en técnicas de Inteligencia Artificial, siendo el método más utilizado el de las redes neuronales. Éstas han demostrado tener una buena capacidad para identificar matrículas, pero no resultan fiables al 100%.

Como alternativa al empleo de redes neuronales artificiales para realizar el reconocimiento, es posible utilizar otro tipo de técnicas de Inteligencia Artificial. En concreto, las Máquinas de Soporte Vectorial (también conocidas como SVM) han demostrado ser superiores en muchos campos como, por ejemplo, el del reconocimiento facial. Destacan por su gran versatilidad y por sus prestaciones.

Son un método de clasificación que se basa en encontrar el mejor hiperplano que separa dos conjuntos de datos pertenecientes a dos clases distintas. Para ello, se maximiza la distancia al punto más cercano de cada clase con el fin de obtener el menor error de generalización. Para hallar la frontera de separación, es necesario resolver un problema de optimización usando técnicas de programación cuadrática. A partir del hiperplano ajustado, se pueden clasificar nuevos datos en una de las dos categorías.

Además, la SVM permite la separación de datos no linealmente separables, transformando los datos de entrada a un espacio de mayor dimensión conocido como espacio de características en el que sí pueden ser separados mediante un hiperplano. La

transformación se realiza mediante unas funciones denominadas núcleo o kernels. Modificando distintos parámetros de las SVM se pueden obtener diferentes tipos de fronteras de separación. Habitualmente, las SVM se emplean para clasificación binaria. Para implementar las SVM, se ha utilizado una librería de Matlab específicamente desarrollada para trabajar con ellas.

(4)

En el reconocimiento de matrículas se tienen más de dos clases, puesto que cada letra y cada número a reconocer representan una categoría distinta. Para realizar dicha clasificación, es necesario resolver tantos problemas binarios como clases haya que identificar. En cada uno de ellos se considera una clase positiva y el resto negativas. Para ello, se ha desarrollado una aplicación que permite emplear las SVM de clasificación binaria con datos de más de dos clases.

Antes de estudiar el comportamiento de las SVM en el reconocimiento de matrículas, se ha partido de un caso sencillo en el que se estudia la clasificación de tres tipos de figuras para poder analizar con mayor facilidad la capacidad de las SVM en la identificación de imágenes. Para ello, se ha realizado un generador de imágenes sintéticas que representan distintos símbolos. Las imágenes se tratan como matrices de números en las que el valor de cada elemento se corresponde con el color de cada píxel. Una de las dificultades del problema del reconocimiento de matrículas reside en encontrar, a partir de dichas matrices, unas variables adecuadas que ayuden a identificar cada carácter.

Se ha estudiado el porcentaje de error cometido al clasificar las distintas imágenes utilizando distintos tipos de variables y para diferentes parámetros de la SVM. Para ello, se parte de un conjunto de datos denominado de aprendizaje con los que se obtiene el hiperplano de separación. El error se calcula clasificando otro conjunto de datos (conjunto de test o evaluación) y comparando su clase real con la que determina la SVM. Se ha podido comprobar que la capacidad de reconocimiento de la SVM depende en gran medida del tipo de variables empleadas y de los parámetros que permiten obtener distintos tipos de hiperplanos. Ajustando adecuadamente dichos parámetros, se ha llegado a conseguir un porcentaje de acierto del 100% en el caso de que las imágenes no estén contaminadas con ruido. Con niveles elevados de ruido, se obtienen porcentajes de error inferiores al 15%.

Para la clasificación de las matrículas, se ha desarrollado previamente un generador de imágenes sintéticas (en escala de grises) que representan distintos caracteres que pueden aparecer en una matrícula real (letras y números). Para ello se han simulado efectos como que la matrícula pueda estar parcialmente doblada o inclinada, que la imagen capturada por la cámara sea poco nítida o que haya habido errores en el proceso de segmentación de la matrícula y los caracteres aparezcan desplazados.

Utilizando el simulador desarrollado, se han generado del orden de 1000 ejemplos de caracteres, estudiándose por separado los números y las letras. Cada imagen tiene un

(5)

tamaño de 15x15 píxeles, con 256 tonos de gris para cada píxel. Además de utilizar directamente estos datos como variables de entrada, se han utilizado otras variables derivadas para ayudar a la clasificación, así como preprocesados previos como la transformación de la imagen a blanco y negro puros. Entre las variables derivadas se han considerado las obtenidas al calcular histogramas, diferencias con imágenes patrón, diferentes reescalados, etc.

Para el caso de los números, se ha logrado un error mínimo de un 8,6% de las imágenes del conjunto de test, mientras que para las letras se ha alcanzado un 11,3%. Estos porcentajes son reducidos sobre todo considerando el elevado número de clases a reconocer, especialmente en el caso de las letras. Además, gracias a haber utilizado imágenes sintéticas, se ha podido analizar el efecto independiente que tienen las posibles deformaciones de las matrículas en los errores de clasificación, siendo el reconocimiento especialmente sensible a las traslaciones de los caracteres.

Imágenes reales

Imágenes sintéticas correctamente reconocidas

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

Imágenes reales

Imágenes sintéticas correctamente reconocidas

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

(6)

NUMBER PLATE RECOGNITION USING SUPPORT VECTOR

MACHINES

Automatic Number Plate Recognition can be applied at present for many purposes: identification of stolen vehicles, automatic toll payments, access control for car parks, etc. Recognition is usually based on Artificial Intelligence techniques, being neuronal networks the method most often used. These networks have shown a good capacity for recognizing number plates, although they are not 100% reliable.

Other Artificial Intelligence techniques can be applied as an alternative to artificial neuronal networks for recognition purposes. Specifically, Support Vector Machines (or SVMs) have demonstrated to be superior in many areas such as facial recognition and they stand out due to their high versatility and features.

They represent a method of classification based on finding the best hyperplane for separating two sets of data, each of a different class. For this aim, it is necessary to maximize the distance to the nearest point of each class of data, in order to minimize the generalisation error. To obtain the boundary of separation, a problem of optimization has to be solved, applying quadratic programming techniques. With the adjusted hyperplane, it is possible to classify new data within one of the two categories. Moreover, SVMs permit the separation of data that are not linearly separable, transforming input data into a larger space known as feature space which enables it to be separated via the hyperplane. This transformation is done through functions known as kernels. It is possible to obtain different types of separation boundaries by modifying the parameters of the SVM. Support Vector Machines are usually used for binary classification.

A Matlab toolbox specially developed to work with SVMs has been employed to implement them.

In the number plate recognition, more than two data classes are present, since each letter and number to be recognized represent a different category. For this classification, it is necessary to resolve as many binary problems as there are classes to identify. Within each one, there is one positive class while the rest are negative. With that purpose, an application has been developed to employ binary SVMs classification with more than two classes of data.

Prior to studying the behaviour of SVMs for the recognition of number plates, a simple case was presented, studying the classification of three types of figures in order to more

(7)

easily analyse the SVM capacity for the identification of images. To this end, a generator of synthetic images representing different symbols was employed. The images were treated as matrices of numbers in which the value of each element represents the colour of each pixel. One of the difficulties of the problem of number plate recognition lies in finding adequate variables from such matrices that help to identify each character.

The percentage of error occurring in the classification of images using different types of variables and for different SVM parameters was studied. For this purpose, a set of data known as training data was used to obtain the hyperplane of separation. The error is calculated by classifying another data set (test data) and comparing its real class versus the one determined by the SVM. It was verified that the SVM’s recognition capacity depends to a great extent on the type of variables employed and the parameters that allow to obtain different types of hyperplanes. Once such parameters are adjusted, a success level of 100% is reached when images are not contaminated with noise. With high noise levels, error percentages under 15% are obtained.

For number plates classification, a generator of synthetic images (in a spectrum of greys) representing different real characters of plates (letters and numbers) was developed. For that, different effects were simulated: the number plate could be partially bent or inclined, the image caught by the camera is not sharp or errors appeared in the number plate’s segmentation process and characters are wrongly placed.

By using the developed simulator, around 1000 examples of characters were generated, separately studying numbers and letters. Each image has a size of 15x15 pixels, with 256 shades of grey for each pixel. Besides the direct utilization of these data as input variables, other derived ones were used to facilitate the classification, as well as previous images processing such the character transformation into pure black and white. Between the derived variables, some as those obtained when calculating histograms, differences with pattern images or several figure sizes were considered.

For numbers, the minimum error reached was 8.6% of the images tested, while that for letters was 11.3%. These percentages are low especially if we consider the high number of data classes to be recognized, particularly in the case of letters. Moreover, the utilization of synthetic images allowed the analysis of the independent effect that number plate deformations could have in classification errors, being the recognition especially sensitive to wrong placed characters.

(8)

Real images

Synthetic images correctly recognized

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

Real images

Synthetic images correctly recognized

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

5 1 0 1 5

2 4 6 8 1 0 1 2 1 4

(9)

Índice

1 INTRODUCCIÓN ... 2

1.1 Reconocimiento automático de matrículas... 2

1.2 Objetivos del proyecto ... 4

1.3 Metodología ... 4

2 INTRODUCCIÓN A LAS MÁQUINAS DE SOPORTE VECTORIAL... 6

2.1 Máquinas de soporte vectorial para clasificación binaria ... 7

2.1.1 SVM lineal con margen máximo 7 2.1.2 SVM para la clasificación no lineal 12 2.1.3 SVM lineal con margen blando 14 2.2 Máquinas de soporte vectorial para clasificación multiclase... 17

2.3 Aplicación de las máquinas de soporte vectorial al reconocimiento de imágenes ... 17

3 GENERADOR DE IMÁGENES SINTÉTICAS ... 21

3.1 Clasificación de imágenes sin ruido ... 24

3.1.1 Resultados para el conjunto de variables 1 24 3.1.2 Resultados para el conjunto de variables 2 (histogramas horizontal y vertical) 31 3.1.3 Resultados para el conjunto de variables 3 34 3.1.4 Análisis de los resultados de la clasificación de símbolos sin ruido 37 3.2 Clasificación de imágenes con ruido ... 38

3.2.1 Resultados de la clasificación entrenando la SVM con imágenes del mismo porcentaje de ruido que el estudiado 39 3.2.1.1 Imágenes con un 5% de ruido ...39

3.2.1.2 Imágenes con un 15% de ruido ...40

3.2.1.3 Imágenes con un 25% de ruido ...41

3.2.2 Resultados de la clasificación entrenando la SVM con imágenes sin ruido 42 3.2.3 Comparación de los resultados obtenidos para datos de aprendizaje con ruido y sin ruido 43 3.2.4 Resultados de la clasificación conjunta de datos con diversos niveles de ruido 46 3.3 Análisis de los resultados de la clasificación de imágenes generadas sintéticamente ... 46

4 APLICACIÓN DE LAS SVM AL RECONOCIMIENTO DE MATRÍCULAS ... 50

4.1 Aplicación de las SVM al reconocimiento de números ... 51

(10)

4.1.1 Clasificación de números centrados en la imagen con distintos niveles de ruido 55

4.1.1.1 Resultados de la clasificación ...55

4.1.1.2 Análisis de los resultados de la clasificación de los números centrados en la imagen ...61

4.1.2 Clasificación de números deformados 62 4.1.2.1 Tipo de imágenes generadas ...62

4.1.2.2 Resultados de la clasificación ...64

4.1.2.3 Análisis de los resultados de números deformados...68

4.2 Aplicación de las SVM al reconocimiento de letras ... 69

4.2.1 Clasificación de letras con distintos niveles de ruido 69 4.2.1.1 Resultados obtenidos...69

4.2.1.2 Análisis de los resultados de la clasificación de las letras con distintos niveles de ruido ...73

4.2.2 Clasificación de letras deformadas 73 4.2.2.1 Resultados de la clasificación de letras deformadas...74

4.2.2.2 Análisis de los resultados de la clasificación de letras deformadas ...76

4.3 Análisis de los resultados de la clasificación de los caracteres de las matrículas ... 77

5 CONCLUSIONES... 79

5.1 Conclusiones sobre los resultados ... 79

5.2 Recomendaciones para futuros estudios ... 80

6 BIBLIOGRAFÍA... 82

6.1 Documentos ... 82

6.2 Direcciones de Internet ... 82

A TABLAS DE RESULTADOS DE LA CLASIFICACIÓN DE LAS LETRAS ... 85

B MANUAL DE USUARIO... 94

(11)

Índice de Figuras

Figura 1. Imagen de una matrícula borrosa... 2

Figura 2. Imagen de una matrícula mal iluminada. ... 2

Figura 3. Localización de la matrícula en la imagen del vehículo. ... 3

Figura 4. Segmentación de la imagen de una matrícula. ... 3

Figura 5. Separación de un conjunto de datos mediante SVM. ... 7

Figura 6. SVM con margen máximo (en negro están representados los vectores soporte)... 9

Figura 7. Ejemplo de clasificación con SVM de margen máximo... 11

Figura 8. Ejemplo de un conjunto de datos no linealmente separables. ... 12

Figura 9. Transformación de los datos de entrada a un espacio de mayor dimensión... 12

Figura 10. Fronteras de decisión obtenidas con una función núcleo gaussiana para σ=4 y σ=1.. 14

Figura 11. Clasificación con SVM de margen máximo de un conjunto de datos en el que existe un outlier. ... 15

Figura 12. Clasificación con SVM de margen blando... 16

Figura 13. Fronteras de decisión para distintos valores de C... 17

Figura 14. Tratamiento de la fotografía de una matrícula oscura... 18

Figura 15. Tratamiento de las imágenes y conversión en matrices. ... 18

Figura 16. Imágenes del conjunto de aprendizaje y valores de sus variables... 19

Figura 17. Frontera de decisión obtenida en la clasificación de las imágenes. ... 19

Figura 18. Representación de distintos símbolos obtenidos con el generador. ... 21

Figura 19. Imágenes con distinto nivel de ruido... 23

Figura 20. Imágenes no reconocidas por la SVM cuando σ = 10 y cuando σ = 20... 25

Figura 21. Valores de h(x) de las figuras de entrenamiento cuando σ= 1... 28

Figura 22. Valores de h(x) de las figuras que forman el conjunto de validación... 29

Figura 23. Valores de h(x) de las figuras de entrenamiento. ... 30

Figura 24. Valores de h(x) de las figuras que forman el conjunto de validación... 30

Figura 25. Valores de h(x) de las figuras que forman el conjunto de aprendizaje para σ = 10. .... 32

Figura 26. Valores de h(x) de las figuras que forman el conjunto de validación σ = 10. ... 33

Figura 27. Valores de h(x) de las figuras que forman el conjunto de validación para σ = 1. ... 33

Figura 28. Fronteras de decisión obtenidas para la variable 3 y σ = 3 para símbolos sin ruido. .. 34

Figura 29. Fronteras de decisión obtenidas para la variable 3 y σ = 20 para símbolos sin ruido... 36

Figura 30. Fronteras de decisión obtenidas para la variable 3 y σ = 10 para símbolos sin ruido... 36

Figura 31. Ejemplo de figuras utilizadas para entrenar la SVM. ... 39

Figura 32. Fronteras de decisión para el conjunto de variables 3 y σ = 2. ... 40

(12)

Figura 33. Imágenes de una circunferencia, de una vertical y de una horizontal con un 15%

de ruido. ... 40

Figura 34. Valores de h(x) para cada figura utilizada en el entrenamiento de la SVM. ... 41

Figura 35. Símbolos con un 25% de ruido... 42

Figura 36. Error cometido en función del ruido para cada conjunto de variables. ... 42

Figura 37. Comparación de los resultados para el conjunto de variables 1. ... 43

Figura 38. Comparación de los resultados para el conjunto de variables 2. ... 44

Figura 39. Comparación de los resultados para el conjunto de variables 3. ... 44

Figura 40. Imágenes de una recta vertical y de una circunferencia clasificadas como círculos. . 45

Figura 41. Porcentaje de error en función del ruido para distintos valores de σ... 47

Figura 42. Ejemplo de las imágenes de números y letras empleadas en la clasificación... 50

Figura 43. Fotografías reales de matrículas. ... 50

Figura 44. Imágenes de dos números con distinto número de píxeles. ... 52

Figura 45. Imagen original e imagen modificada con la función imresize... 52

Figura 46. Número antes de realizar un tratamiento de la imagen... 53

Figura 47. Histograma de los colores de la imagen. ... 53

Figura 48. Figura tratada. ... 54

Figura 49. Imágenes patrón empleadas en la clasificación de números. ... 54

Figura 50. Ejemplo de dos figuras pertenecientes a la misma clase. ... 55

Figura 51. Imágenes con ruido empleadas en la clasificación... 55

Figura 52. Imagen de 15x15 píxeles e imagen correspondiente de 3x3... 58

Figura 53. Comparación de los resultados obtenidos para el conjunto nº 4, el nº 5 y la combinación de ambos. ... 61

Figura 54. Porcentaje de error cometido para cada conjunto de variables en función del ruido... 62

Figura 55. Imagen rotada con la función imrotate e imagen corregida. ... 63

Figura 56. Ejemplos de imágenes desplazadas. ... 63

Figura 57. Ejemplo de imágenes dobladas horizontalmente... 63

Figura 58. Ejemplo de imágenes dobladas verticalmente... 64

Figura 59. Ejemplo de imágenes deformadas con ruido... 64

Figura 60. Números clasificados incorrectamente cuando se utilizan como variables los histogramas... 66

Figura 61. Imágenes que representan el número 6 mal clasificadas. ... 67

Figura 62. Imágenes mal clasificadas... 67

Figura 63. Porcentaje de error cometido para cada conjunto de variables... 68

Figura 64. Imágenes patrón empleadas en la clasificación de las letras. ... 69

Figura 65. Histograma del porcentaje de imágenes indeterminadas de cada tipo de letra. ... 70

Figura 66. Histograma del porcentaje de imágenes incorrectamente clasificadas de cada letra.. 70

(13)

Figura 67. Imágenes con un 20% de ruido mal clasificadas empleando el conjunto de variables nº5... 71 Figura 68. Histograma del porcentaje de imágenes incorrectamente clasificadas de cada letra

para el conjunto nº4. ... 71 Figura 69. Histograma del porcentaje de imágenes incorrectamente clasificadas de cada letra

para el conjunto nº5. ... 72 Figura 70. Comparación del porcentaje de letras incorrectamente clasificadas tomando 500 y

750 imágenes de aprendizaje... 72 Figura 71. Porcentaje de error cometido para cada conjunto de variables al variar el ruido. ... 73 Figura 72. Ejemplos de figuras mal clasificadas al utilizar los elementos de la matriz como

variables. ... 75 Figura 73. Histograma de las figuras giradas mal clasificadas para los distintos ángulos de

giro. ... 76 Figura 74. Número de figuras no reconocidas para cada letra y cada conjunto de variables. ... 76 Figura 75. Error en función del ruido en la clasificación de las letras y de los números... 77

(14)

Índice de Tablas

Tabla 1. Resultados de la clasificación utilizando el conjunto de variables 1 para distintos

valores de σ y de C... 25

Tabla 2. Número de vectores soporte de cada modelo sobre un conjunto de entrenamiento de 90 ejemplos... 26

Tabla 3. Resultados de la clasificación utilizando el conjunto de variables 2 para distintos valores de σ. ... 31

Tabla 4. Número de vectores soporte de los tres modelos para el conjunto de variables 2 y C=100000, sobre un conjunto de entrenamiento de 90 ejemplos... 32

Tabla 5. Número de vectores soporte de los tres modelos para el conjunto de variables 3... 37

Tabla 6. Comparación de los resultados obtenidos con el conjunto de variables 1 y 3. ... 38

Tabla 7. Resultados de la clasificación de símbolos con un 5% de ruido. ... 39

Tabla 8. Resultados de la clasificación de símbolos con un 15% de ruido. ... 40

Tabla 9. Resultados de la clasificación de símbolos con un 25% de ruido. ... 42

Tabla 10. Resultados de la clasificación de un conjunto de datos con distintos niveles de ruido... 46

Tabla 11. Resultados de la clasificación de números con un 20% de ruido empleando el conjunto de variables nº 4. ... 56

Tabla 12. Resultados de la clasificación de números con un 40% de ruido empleando el conjunto de variables nº 2. ... 57

Tabla 13. Resultados de la clasificación de números con un 40% de ruido empleando el conjunto de variables nº 4. ... 57

Tabla 14. . Resultados de la clasificación de números con un 40% de ruido empleando el conjunto de variables nº 5. ... 58

Tabla 15. Resultados de la clasificación de números con un 40% de ruido empleando los elementos de matrices 3x3. ... 59

Tabla 16. Resultados de la clasificación para números con un 70% de ruido empleando el conjunto de variables nº 2. ... 59

Tabla 17. Resultados de la clasificación para números con un 70% de ruido empleando el conjunto de variables nº 4. ... 60

Tabla 18. Resultados de la clasificación para números con un 70% de ruido empleando el conjunto de variables nº 5. ... 60

Tabla 19. Resultados de la clasificación para números con un 70% de ruido empleando los conjuntos 4 y 5. ... 61

Tabla 20. Clasificación realizada por la SVM para cada número. ... 65

Tabla 21. Clasificación realizada por la SVM para cada número. ... 66

(15)

Tabla 22. Imágenes no reconocidas por la SVM para cada tipo de deformación. ... 68 Tabla 23. Imágenes no reconocidas por la SVM para cada tipo de deformación. ... 74 Tabla 24. Imágenes no reconocidas por la SVM para cada tipo de deformación. ... 75 Tabla 25. Resultados de la clasificación de imágenes con un 20% de ruido empleando los

histogramas de la matriz en blanco y negro... 85 Tabla 26. Resultados de la clasificación de imágenes con un 40% de ruido empleando los

elementos de la matriz en blanco y negro. ... 86 Tabla 27. Resultados de la clasificación de imágenes con un 40% de ruido empleando los

histogramas de la matriz en blanco y negro... 87 Tabla 28. Resultados de la clasificación de imágenes con un 40% de ruido empleando el

conjunto de variables nº 5. ... 88 Tabla 29. Resultados de la clasificación de imágenes con un 70% de ruido empleando los

elementos de la matriz en blanco y negro. ... 89 Tabla 30. Resultados de la clasificación de imágenes con un 70% de ruido empleando los

histogramas de la matriz en blanco y negro... 90 Tabla 31. Resultados de la clasificación de imágenes con un 70% de ruido empleando el

conjunto de variables n º5. ... 91 Tabla 32. Resultados de la clasificación de imágenes con un 70% de ruido empleando el

conjunto de variables nº 5 y un 750 imágenes de aprendizaje... 92

(16)

1

Introducción

(17)

1 Introducción

1.1 Reconocimiento automático de matrículas

Detectar los automóviles que cometen una infracción de tráfico, identificar vehículos robados, realizar automáticamente el pago en peajes o controlar el acceso en los aparcamientos es posible gracias al reconocimiento automático de matrículas. Éste combina la aplicación de técnicas de tratamiento de imágenes con técnicas de reconocimiento de patrones, típicamente basadas en Inteligencia Artificial.

En la actualidad, existen distintos métodos para el reconocimiento automático de matrículas (también conocido como ANPR: Automatic Number Plate Recognition). Éstos están basados fundamentalmente en redes neuronales, aunque no resultan fiables al 100%. Los casos en los que suelen fallar en mayor medida se producen cuando:

- Los caracteres no son suficientemente nítidos debido a suciedad en la matrícula o porque algún objeto obstaculiza la visión.

- La resolución de la fotografía es mala o la imagen está desenfocada y los caracteres aparecen borrosos (Figura 1).

Figura 1. Imagen de una matrícula borrosa.

- La iluminación no es la adecuada (Figura 2).

Figura 2. Imagen de una matrícula mal iluminada.

Como alternativa al empleo de redes neuronales artificiales para realizar el reconocimiento, es posible utilizar otro tipo de técnicas de Inteligencia Artificial. En concreto, las máquinas de soporte vectorial (también conocidas como SVM) han demostrado ser superiores en muchos campos, especialmente en el del reconocimiento facial. Una de las ventajas que presentan las SVM frente a las redes neuronales es su capacidad para minimizar el error de generalización (ver el capítulo 2).

(18)

Además, resultan mucho más versátiles debido a los parámetros que se pueden ajustar y que permiten optimizar la clasificación. Por estas razones, las SVM podrían ser una buena solución en el reconocimiento de matrículas, incluso en situaciones en las que otros clasificadores presentan un alto porcentaje de error.

La primera etapa del reconocimiento de matrículas es realizar una fotografía del vehículo. Una vez capturada la imagen, es necesario localizar la matrícula dentro de dicha imagen y aislarla (Figura 3).

Figura 3. Localización de la matrícula en la imagen del vehículo.

A continuación, utilizando un segmentador se divide la fotografía de la matrícula en los diferentes caracteres que la forman como se puede observar en la Figura 4.

Figura 4. Segmentación de la imagen de una matrícula.

Los procesos de localización y segmentación se realizan combinando técnicas estadísticas (basadas en el análisis de histogramas) y de tratamiento de imágenes para obtener una imagen en blanco y negro puros.

Una vez segmentada la matrícula, se identifican los diferentes caracteres que la forman, reconociendo cada uno de ellos por separado. Este proceso se realiza normalmente utilizando un modelo de clasificación que, a partir de la información de la imagen, decide el carácter al que corresponde. En el proyecto que nos ocupa, esta clasificación se va a realizar utilizando SVM.

(19)

1.2 Objetivos del proyecto

Los objetivos de este proyecto son los siguientes:

- Estudiar y determinar las ventajas e inconvenientes de las máquinas de soporte vectorial en procesos de clasificación y su aplicación al reconocimiento de imágenes.

- Desarrollar un prototipo que permita aplicar las SVM al reconocimiento de matrículas.

- Desarrollar un generador automático de imágenes sintéticas para alimentar al reconocedor.

- Evaluar los resultados obtenidos tanto en un caso sintético como en un caso real, discutiendo ventajas e inconvenientes del enfoque propuesto.

1.3 Metodología

El entorno de programación que se ha utilizada es Matlab. La ventaja que proporciona es que posee una librería destinada a la manipulación y el procesado de imágenes (la Image Processing Toolbox). Las funciones que contiene permiten trabajar fácilmente con el elevado número de fotografías que se han tenido que manejar para la realización de este proyecto.

Para implementar las máquinas de soporte vectorial se ha usado una librería de Matlab desarrollada por la Universidad de Southampton disponible en la página Web www.isis.ecs.soton.ac.uk/resources/svminfo/.

Se han desarrollado un conjunto de funciones que permiten aplicar esta librería al reconocimiento de imágenes para, posteriormente, poder llevar a cabo las simulaciones necesarias para cumplir con los objetivos del proyecto.

En este proyecto primero se ha estudiado la aplicación de las SVM a la identificación de figuras sencillas para analizar su capacidad de reconocer imágenes. Posteriormente, se han empleado para el reconocimiento de los caracteres de las matrículas.

(20)

2

Introducción a las Máquinas de

Soporte Vectorial

(21)

2 Introducción a las máquinas de soporte vectorial

Las máquinas de soporte vectorial surgieron como un método de clasificación basado en la teoría de minimización del riesgo estructural de Vapnik. En la actualidad, tienen numerosas aplicaciones debido a su versatilidad y a sus prestaciones. Las SVM se han utilizado con éxito en campos como la recuperación de información, la categorización de textos, el reconocimiento de escritura o la clasificación de imágenes.

Para poder clasificar con las máquinas de soporte vectorial, se comienza realizando una etapa de aprendizaje. Consiste en encontrar el hiperplano h(x) = 0 que mejor separe un conjunto de datos X ∈ ℜd según la clase Y ∈ {-1,1} a la que pertenecen. Dicho hiperplano se corresponde con el que maximiza la distancia al punto más próximo de cada clase, por lo tanto, estará a la misma distancia de los ejemplos más cercanos entre ellos de cada categoría.

Según la teoría de Vapnik, el separador lineal que maximiza el margen (2 veces la distancia al punto más próximo de cada clase) es el que nos da la mayor capacidad de generalización, es decir, la capacidad de distinguir características comunes de los datos de cada clase que permitan clasificar imágenes que no sean las del conjunto de entrenamiento.

Para hallarlo, es necesario resolver un problema de optimización usando técnicas de programación cuadrática.

A los datos que se utilizan para hallar la frontera de decisión (el hiperplano), se les conoce como vectores de entrenamiento o de aprendizaje.

A partir de unos datos de entrada xi, las SVM nos proporcionarán su clase según la regla de clasificación f(xi) = signo(h(xi)).

(22)

Clase 1

Clase 2

Hiperplano separador

Margen Clase 1

Clase 2

Hiperplano separador

Margen

Figura 5. Separación de un conjunto de datos mediante SVM.

Tras la fase de aprendizaje, se comprueba el error cometido tomando otra muestra de datos (denominados conjunto de test o validación) y comparando la salida que obtenemos con su clase real.

De una muestra de datos se suele tomar habitualmente un 75% como vectores de aprendizaje y el 25% restante se utiliza para poder comprobar la fiabilidad de la frontera de decisión obtenida.

2.1 Máquinas de soporte vectorial para clasificación binaria

En los procesos de clasificación binaria sólo existen 2 clases: una es considerada como la positiva (y = 1) y la otra como la negativa (y = -1). Puede ocurrir que los datos no sean linealmente separables o que exista un cierto nivel de ruido. Según esto se pueden emplear distintos tipos de SVM: SVM lineal con margen máximo, SVM para la clasificación no lineal o SVM con margen blando.

2.1.1 SVM lineal con margen máximo

Sólo se debe emplear cuando los datos son linealmente separables, es decir, cuando se puede usar como frontera de decisión un hiperplano h(x) tal que:

0 )

( = +b=

h x ωTx

donde ω y x∈ ℜd, siendo d la dimensión del espacio de entrada.

(23)

Supongamos que se tiene un conjunto de n datos linealmente separables {(x1, y1), (x2,y2),…, (xn, yn)} donde xi∈ ℜd e yi ={-1,1}. Entonces, según el lado en el que se encuentren respecto del hiperplano, se cumplirá:

>0 +b

T

xi

ω , para yi = 1, i = 1,…, n

<0 +b

T

xi

ω , para yi = −1, i = 1,…, n

Estas 2 ecuaciones pueden reducirse a:

0 ) ( +b >

yi ωTxi , i = 1,…, n

Para la resolución del problema, se considera que los puntos más cercanos al hiperplano, denominados vectores soporte, cumplen:

1 ) (xi =

h , para yi = 1

1 ) (xi =

h , para yi =−1

Por tanto, como no puede haber datos del conjunto de aprendizaje dentro del margen, la ecuación yi(ωTxi +b)>0 quedaría:

1 )

( +b

yi ωTxi , i = 1,…, n

La distancia dist(h,x) de un punto a un hiperplano es:

ω x) (x) ,

(h h

dist =

Como se ha visto, los puntos más cercanos al hiperplano cumplen ( ) =1

xxxx

h , por lo que su distancia al hiperplano sería:

x) ω1 ,

(h = dist

Para hallar la frontera de decisión que mejor separa un conjunto de puntos según las SVM (es decir, encontrar los valores de ω y b), se resuelve un problema de

(24)

optimización que consiste en maximizar la distancia dist(h,x) entre el hiperplano y el punto de entrenamiento más próximo:

Max

ω 1

Sujeto a: yi(ωTxi +b)≥1 i = 1,…, n

y = 1 0

) (x = h

1 ) (x = 1 h

= y

1 ) (x = h

ω 1

ω 1

y = 1 0

) (x = h

1 ) (x = 1 h

= y

1 ) (x = h

ω 1

ω 1

Figura 6. SVM con margen máximo (en negro están representados los vectores soporte).

Se puede demostrar que al minimizar ω 2 /2 se obtiene la misma solución que al maximizar 1/ω .

El problema se puede expresar en su formulación dual que es más fácil de resolver. Para ello, se utiliza la ecuación de Lagrange y las condiciones de Karush- Kuhn-Tucker:

( )

(

y b

)

b

L i T

n

i

i − +

+

=

=

xi

ω ω

ω 1

2 ) 1 , , (

1

2 α

α

xi

ω ω

ω

i n

i

yi

b

L α α

=

=

∂ =

1

) 0 , ,

(

0 ) 0

, , (

1

=

∂ =

= i

n

i

yi

b b

L ω α α

( )

(

1yi T +b

)

=0

i ω xi

α 1≤in

(25)

( )

(

1yi T +b

)

=0

i ω xi

α 1≤in

( )

(

1 yi ωTxi +b

)

0 1in

≥0

α

i 1≤in

Las condiciones de Karush-Kuhn-Tucker implican que, sólo en el caso en el que los datos no son vectores soporte,

α

i =0.

Sustituyendo en la ecuación de Lagrange, se obtiene la función objetivo de la formulación dual:

j

i x

x

ω T

j i j n

j i

i n

i

i y y

b

L

α α α α

=

=

=

1 ,

1 2

) 1 , , (

Maximizar j i jxiTxj

n

j i

i n

i

i y y

α α

α ∑

=

=

1 ,

1 2

1

Sujeto a 0

1

=

= i n

i

yi

α

≥0

α

i 1≤in

Al resolverlo, se obtiene la siguiente solución:

xi

ω i

n

i

yi

α

=

=

1

b y

b x

h i T

n

i i

T + = +

=

=

x x x

ω

α

i

1

) (

{ } { }

(

yi ωTxj yi ωTxj

)

b max 1 min 1

2 1

=

= +

=

En la ecuación del hiperplano se puede observar que éste sólo depende de los vectores soporte ya que el resto de los puntos cumplen α =0. Esto significa que si se volviera a calcular la frontera de decisión únicamente con los vectores soporte, se llegaría a la misma solución.

(26)

Ejemplo:

En la Figura 7 se muestra un ejemplo de clasificación con SVM de margen máximo. Los cuadrados simbolizan y = 1 y los círculos y = -1.

0 1 2 3 4 5 6 7 8

0 1 2 3 4 5 6 7

Figura 7. Ejemplo de clasificación con SVM de margen máximo.

Al resolver el problema de optimización con los datos de la figura se obtuvieron los siguientes resultados: b=−7,

α

( )4,2 =1,

α

( )4,4 =0.5 y

α

( )6,2 =1 (para el resto de los puntos α vale 0). Con estos valores se obtienen ω y h(x):

( )

4,2 1 0.5

( )

4,4 1 0.5 (6,2) (1,1)

1 1

1

=

⋅ +

⋅ +

=

=

= i

x

ω i

n

i

yi

α

7 )

(x = 1x1+ 2x2 +b=x1+x2

h

ω ω

Los vectores soporte son los puntos (4,2), (4,4) y (6,2) puesto que son los únicos para los que α no es nulo. La distancia de estos puntos al hiperplano es:

( )

2 1 1 1 ) 1

, (

2

2 + =

=

= ω x h x h

dist

Para conocer la clase a la que pertenece un vector cualquiera, se aplica la regla f(xi)= signo(h(xi)). Por ejemplo, la clase de un vector xi cuyas coordenadas son (3,2) sería:

1 1

) 7 2 3 ( ))

( ( )

( =signo h =signo + − =− → yi =−

f xi xi

(27)

2.1.2 SVM para la clasificación no lineal

Puede ocurrir que los puntos no sean linealmente separables en el espacio de entrada, como se muestra en el ejemplo de la Figura 8.

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 8. Ejemplo de un conjunto de datos no linealmente separables.

Cuando esto sucede, existe la posibilidad de transformar los datos a un espacio ℑ de mayor dimensión (el espacio de características) en el que los puntos sí pueden ser separados por un hiperplano (Figura 9). Para ello, se utiliza una función Φ, tal que:

La frontera de decisión resultante en el espacio de entrada ya no será lineal.

Espacio de entrada Espacio de características Espacio de entrada Espacio de características

Figura 9. Transformación de los datos de entrada a un espacio de mayor dimensión.

Las funciones que se usan para poder realizar esta transformación se llaman funciones núcleo o kernels. Representan el producto vectorial en el espacio de características.

Φ: ℜD →ℑ ) (x xΦ

(28)

Si, por ejemplo, tuviéramos una transformación Φ de ℜ2 en ℜ3:

( ) (

1 2 22

)

2

1 2

1,x x , 2x x ,x

x =

Φ , el producto escalar <Φ(x),Φ(x)> en el espacio de características sería:

(

12, 2 1 2, 22

) (

12, 2 1 2, 22

) ( (

1, 2

) (

1, 2

) )

2 , 2

) ( ),

( Φ ′ >= ⋅ ′ ′ ′ ′ = ⋅ ′ ′ =< ′>

Φ

< x x x x x x x x x x T x x x x T x x

Por lo tanto, el producto escalar <Φ(x),Φ(x′)> en el espacio de características se puede calcular como <x,x′>2, es decir, a partir del producto escalar en el espacio de entrada. En este caso el kernel asociado al espacio de características es

( )

x,x =<x,x>2 .

K La función núcleo permite calcular el producto escalar

′ > Φ Φ

< (x), (x) sin tener que calcular la transformación Φ.

En las SVM de margen máximo, la solución que se obtenía era:

b y

h i T

n

i

i +

=

=

x x

x

α

i

1

) (

Para obtener la frontera de decisión para la SVM no lineal, se sustituye el producto vectorial del espacio de entrada xiTx por el del espacio de características que se corresponde con la función núcleo:

( )

b

K y

h i

n

i

i +

=

=

x x

x) i,

(

1

α

Entre las funciones núcleo más utilizadas destacan:

- La polinómica:

( ) (

T c

)

d

K x,x′ = xx′+ c∈ℜ, d∈ℵ

- La gaussiana:

( )

′ = 2

2

exp 2

,

σ

x x x

x

K σ >0

(29)

- La sigmoidal:

( ) (

s

(

'

)

r

)

K x,x′ =tanh xTx + s,r∈ℜ

Cuando se habla de kernel lineal se hace referencia al producto vectorial en el espacio de entrada que equivale a emplear la SVM de margen máximo:

( )

x x =xT x

K ,

Según el tipo de función núcleo y de los valores de sus parámetros, se pueden obtener distintas fronteras de decisión. En la Figura 10 se muestran fronteras obtenidas con una función gaussiana para el mismo conjunto de datos pero con dos valores de σ distintos.

=4

σ =4 σ =1

σ σ =1

Figura 10. Fronteras de decisión obtenidas con una función núcleo gaussiana para σ=4 y σ=1.

A partir de un conjunto de datos no se puede saber de antemano cuál será el mejor kernel y los mejores valores de sus parámetros para hallar el separador óptimo. Para conocer cuáles son los parámetros de la SVM más indicados se resuelve el problema para un conjunto de datos y con otro conjunto de test se analiza el error. La función que se usará para la clasificación será aquella con la que se consiga la menor cantidad de puntos incorrectamente clasificados.

Generalmente, la función gaussiana es la que permite conseguir los separadores que mejor se adaptan a los datos.

2.1.3 SVM lineal con margen blando

En algunos casos, puede existir ruido debido a errores en la recogida de datos o por la presencia de algún outlier (dato atípico). En este caso no es conveniente que la SVM se ajuste totalmente a los datos.

(30)

En la Figura 11 se observan dos conjuntos de datos y la frontera de decisión que se obtendría con la SVM de margen máximo. Cada conjunto está agrupado excepto por un punto que se encuentra muy próximo de los de la otra clase. Éste se puede corresponder con un dato atípico o que ha sido clasificado erróneamente. Este punto no debería ser considerado para hallar la frontera de decisión ya que al ser una excepción podría alterar los resultados deseados y nos llevaría a clasificar incorrectamente nuevos datos.

Figura 11. Clasificación con SVM de margen máximo de un conjunto de datos en el que existe un outlier.

La SVM tiene que ser más robusta para tener una mayor capacidad de generalización. Esto se consigue introduciendo unas variables de holgura ξ en el problema de optimización:

Minimizar

=

+ n

i i

T C

2 1

1 ξ

ω ω

Sujeto a: yiTxi +b)≥1−ξi 1≤in

ξi ≥0 1≤in

Siendo la formulación dual del problema la siguiente:

Maximizar

(

x ,i xj

)

2 1

1 , 1

K y

y j i j

n

j i

i n

i

i

α α

α ∑

=

=

Sujeto a: 0

1

=

= i

n

i

yiα

(31)

0≤αiC 1≤in

Las variables ξi permiten que las restricciones no se cumplan de manera estricta: puede haber datos que cumplan yih(x)<1. Si yih(x)<0, significa que x está en el lado incorrecto del hiperplano.

0 ) (x = h

1 ) (x = h

1 ) (x = h

1 ) ( 0<yhx <

0 ) ( <

hx y

ξ

< 1 1

0<ξ<

0 ) (x = h

1 ) (x = h

1 ) (x = h

1 ) ( 0<yhx <

0 ) ( <

hx y

ξ

< 1 1

0<ξ<

Figura 12. Clasificación con SVM de margen blando.

La única diferencia con la SVM de margen máximo está en que α no puede ser mayor que un valor C. Este parámetro permite controlar el número de errores de clasificación permitidos en la etapa de aprendizaje. Cuanto mayor es C menos ejemplos de entrenamiento serán mal clasificados. La SVM de margen máximo se corresponde con el caso en el que C=∞.

Los datos x para los que yh(x)=1 cumplen α <C, mientras que para los que 1

) ( <

h x

y , α =C. Todos ellos son considerados vectores soporte.

En la Figura 13 se puede observar un caso real en donde se ha ajustado un SVM con kernel lineal y varios valores de C. Los vectores soporte de este problema son:

- Para C = ∞: los vectores 9, 10 y 16.

- Para C = 2 y C = 0.2: los vectores 6, 9, 10 y 16.

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

de mutuo acuerdo y en igual de condiciones, otras veces de mutuo acuerdo pero en desigualdad porque no le queda más remedio a una de ellas (se encuentra en

[r]

Pliegue asimétrico mostrando una pizarrosidad de plano axial (martillo) en las pizarras del volcanismo ácido inicial del anticlinorio de Coto Vicario.. El martillo muestra la

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

Una de las partes más importantes en una aplicación de realidad aumentada, es acceder a la cámara del dispositivo para posteriormente poder mezclar esta imagen con los

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de