detecciÓn de matrÍculas mediante … · resumen en este proyecto ... turador de eventos de la...

76
FACULTAD DE INFORMÁTICA INGENIERÍA SUPERIOR INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA Y SISTEMAS PROYECTO FINAL DE CARRERA DETECCIÓN DE MATRÍCULAS MEDIANTE CARACTERÍSTICAS BINARIAS LOCALES (LBP) AUTOR JULIO SOLER DEL POZO TUTOR ALBERTO RUIZ GARCÍA Junio de 2009

Upload: dodiep

Post on 25-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

FACULTAD DE INFORMAacuteTICAINGENIERIacuteA SUPERIOR INFORMAacuteTICA

DEPARTAMENTO DE INFORMAacuteTICA Y SISTEMAS

PROYECTO FINAL DE CARRERA

DETECCIOacuteN DE MATRIacuteCULASMEDIANTE CARACTERIacuteSTICAS

BINARIAS LOCALES (LBP)

AUTOR

JULIO SOLER DEL POZO

TUTOR

ALBERTO RUIZ GARCIacuteA

Junio de 2009

Resumen

En este proyecto abordamos el anaacutelisis disentildeo y desarrollo de un detector de matriacuteculas de

automoacutevil El objetivo final de este trabajo es crear un sistema que reconozca en tiempo real

la existencia de una placa de matriacutecula independientemente del tamantildeo y rotacioacuten que pueda

tener y determinar cuales son los diacutegitos de los que consta El sistema tratado en este proyecto

aborda las teacutecnicas y meacutetodos para detectar la regioacuten de la posible matriacutecula y los diacutegitos que

la componen En el anaacutelisis disentildeo y desarrollo del sistema se ha trabajado con la teacutecnica LBP

para el tratamiento de patrones con caracteriacutesticas locales y posteriormente con un clasificador

de contornos para detectar los diacutegitos correctos Durante el desarrollo las pruebas han sido re-

alizadas tanto con imaacutegenes estaacuteticas como con viacutedeos

En concreto para el desarrollo de la aplicacioacuten hemos usado el framework de procesado

de imaacutegenes QVision basado en el lenguaje de programacioacuten C++ y las libreriacuteas QT4 IPP y

OpenGL Tambieacuten se ha hecho uso del lenguaje para procesamiento matemaacutetico Octave

Palabras Clave Visioacuten por computador reconocimiento automaacutetico de matriacuteculas re-

conocimiento de formas reconocimiento de diacutegitos OCR

3

Iacutendice general

CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS 13

11 Introduccioacuten 13

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial 13

112 Aspectos matemaacuteticos de los sistemas RAPM 15

113 Aspectos fiacutesicos en los sistemas RAPM 15

12 Estado del arte 16

13 Organizacioacuten del documento 18

CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS 21

21 Objetivos y alcance del proyecto 21

22 Queacute no es objetivo del proyecto 22

23 Plan de trabajo 22

CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS 25

31 Teacutecnicas Utilizadas 25

311 Local Binary Patterns (LBP) 25

312 Clasificacioacuten mediante pseudoinversa 27

313 Obtencioacuten de los vectores de propiedades 28

314 Obtencioacuten del contorno de los diacutegitos 29

315 Teacutecnica de binarizacioacuten de Otsu 30

32 Herramientas Utilizadas 32

5

IacuteNDICE GENERAL IacuteNDICE GENERAL

321 Eleccioacuten del Lenguaje 32

322 QVision 33

323 Intelreg Integrated Perfomance Primitives IPP 34

324 QT Library 34

325 Octave 35

CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO 37

41 Estructura del Proyecto 37

42 Construccioacuten de viacutedeos de entrenamiento 38

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

44 Construccioacuten del clasificador 43

441 Generacioacuten del fichero de propiedades 43

442 Construccioacuten del clasificador en Octave 45

443 Aplicacioacuten del clasificador 47

45 Localizacioacuten de los diacutegitos de la matriacutecula 50

451 Binarizacioacuten de la imagen 50

452 Obtencioacuten del contorno de diacutegitos 55

453 OCR (Optical Character Recognition) 57

CAPIacuteTULO 5 CONCLUSIONES 63

51 Una vista atraacutes 63

52 Dificultades y limitaciones 63

53 Viacuteas futuras 64

54 Objetivos cumplidos 64

CAPIacuteTULO A MANUAL DE USUARIO 67

A1 Ejecucioacuten del programa 67

CAPIacuteTULO B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN 69

B1 Meacutetodo basado en bordes 69

6

IacuteNDICE GENERAL IacuteNDICE GENERAL

B2 Buacutesqueda iterativa 70

B3 Media 70

B4 Maacuteximo y miacutenimo 70

B5 Otras teacutecnicas 70

CAPIacuteTULO C TRANSFORMADA DE FOURIER 71

C1 Propiedades de la Transformada de Fourier 71

C2 Optimizacioacuten de la Transformada de Fourier 73

7

IacuteNDICE GENERAL IacuteNDICE GENERAL

8

Lista de Figuras

41 Controles en modo graacutefico del Trigger 39

42 Coordenadas de los puntos del ROI 42

43 ROI de barrido de la imagen 43

44 Parrilla de RBIrsquos que cubren la imagen 44

45 RBIrsquos candidatos a placa de matriacutecula 49

46 Los dos mejores candidatos 49

47 Resultado de imagen binarizada 52

48 Representacioacuten de poliliacuteneas 52

49 Aplicacioacuten de IPE con aacuterea igual a cero 53

410 Aplicacioacuten de IPE con aacuterea mayor que cero 54

411 Nueva zona de trabajo 55

412 Contornos maacutes cercanos al centro del ROI candidato 56

413 Contornos no deseados 57

414 Obtencioacuten de contornos final 58

415 Obtencioacuten de contornos ampliado 59

9

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

Resumen

En este proyecto abordamos el anaacutelisis disentildeo y desarrollo de un detector de matriacuteculas de

automoacutevil El objetivo final de este trabajo es crear un sistema que reconozca en tiempo real

la existencia de una placa de matriacutecula independientemente del tamantildeo y rotacioacuten que pueda

tener y determinar cuales son los diacutegitos de los que consta El sistema tratado en este proyecto

aborda las teacutecnicas y meacutetodos para detectar la regioacuten de la posible matriacutecula y los diacutegitos que

la componen En el anaacutelisis disentildeo y desarrollo del sistema se ha trabajado con la teacutecnica LBP

para el tratamiento de patrones con caracteriacutesticas locales y posteriormente con un clasificador

de contornos para detectar los diacutegitos correctos Durante el desarrollo las pruebas han sido re-

alizadas tanto con imaacutegenes estaacuteticas como con viacutedeos

En concreto para el desarrollo de la aplicacioacuten hemos usado el framework de procesado

de imaacutegenes QVision basado en el lenguaje de programacioacuten C++ y las libreriacuteas QT4 IPP y

OpenGL Tambieacuten se ha hecho uso del lenguaje para procesamiento matemaacutetico Octave

Palabras Clave Visioacuten por computador reconocimiento automaacutetico de matriacuteculas re-

conocimiento de formas reconocimiento de diacutegitos OCR

3

Iacutendice general

CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS 13

11 Introduccioacuten 13

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial 13

112 Aspectos matemaacuteticos de los sistemas RAPM 15

113 Aspectos fiacutesicos en los sistemas RAPM 15

12 Estado del arte 16

13 Organizacioacuten del documento 18

CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS 21

21 Objetivos y alcance del proyecto 21

22 Queacute no es objetivo del proyecto 22

23 Plan de trabajo 22

CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS 25

31 Teacutecnicas Utilizadas 25

311 Local Binary Patterns (LBP) 25

312 Clasificacioacuten mediante pseudoinversa 27

313 Obtencioacuten de los vectores de propiedades 28

314 Obtencioacuten del contorno de los diacutegitos 29

315 Teacutecnica de binarizacioacuten de Otsu 30

32 Herramientas Utilizadas 32

5

IacuteNDICE GENERAL IacuteNDICE GENERAL

321 Eleccioacuten del Lenguaje 32

322 QVision 33

323 Intelreg Integrated Perfomance Primitives IPP 34

324 QT Library 34

325 Octave 35

CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO 37

41 Estructura del Proyecto 37

42 Construccioacuten de viacutedeos de entrenamiento 38

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

44 Construccioacuten del clasificador 43

441 Generacioacuten del fichero de propiedades 43

442 Construccioacuten del clasificador en Octave 45

443 Aplicacioacuten del clasificador 47

45 Localizacioacuten de los diacutegitos de la matriacutecula 50

451 Binarizacioacuten de la imagen 50

452 Obtencioacuten del contorno de diacutegitos 55

453 OCR (Optical Character Recognition) 57

CAPIacuteTULO 5 CONCLUSIONES 63

51 Una vista atraacutes 63

52 Dificultades y limitaciones 63

53 Viacuteas futuras 64

54 Objetivos cumplidos 64

CAPIacuteTULO A MANUAL DE USUARIO 67

A1 Ejecucioacuten del programa 67

CAPIacuteTULO B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN 69

B1 Meacutetodo basado en bordes 69

6

IacuteNDICE GENERAL IacuteNDICE GENERAL

B2 Buacutesqueda iterativa 70

B3 Media 70

B4 Maacuteximo y miacutenimo 70

B5 Otras teacutecnicas 70

CAPIacuteTULO C TRANSFORMADA DE FOURIER 71

C1 Propiedades de la Transformada de Fourier 71

C2 Optimizacioacuten de la Transformada de Fourier 73

7

IacuteNDICE GENERAL IacuteNDICE GENERAL

8

Lista de Figuras

41 Controles en modo graacutefico del Trigger 39

42 Coordenadas de los puntos del ROI 42

43 ROI de barrido de la imagen 43

44 Parrilla de RBIrsquos que cubren la imagen 44

45 RBIrsquos candidatos a placa de matriacutecula 49

46 Los dos mejores candidatos 49

47 Resultado de imagen binarizada 52

48 Representacioacuten de poliliacuteneas 52

49 Aplicacioacuten de IPE con aacuterea igual a cero 53

410 Aplicacioacuten de IPE con aacuterea mayor que cero 54

411 Nueva zona de trabajo 55

412 Contornos maacutes cercanos al centro del ROI candidato 56

413 Contornos no deseados 57

414 Obtencioacuten de contornos final 58

415 Obtencioacuten de contornos ampliado 59

9

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

Iacutendice general

CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS 13

11 Introduccioacuten 13

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial 13

112 Aspectos matemaacuteticos de los sistemas RAPM 15

113 Aspectos fiacutesicos en los sistemas RAPM 15

12 Estado del arte 16

13 Organizacioacuten del documento 18

CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS 21

21 Objetivos y alcance del proyecto 21

22 Queacute no es objetivo del proyecto 22

23 Plan de trabajo 22

CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS 25

31 Teacutecnicas Utilizadas 25

311 Local Binary Patterns (LBP) 25

312 Clasificacioacuten mediante pseudoinversa 27

313 Obtencioacuten de los vectores de propiedades 28

314 Obtencioacuten del contorno de los diacutegitos 29

315 Teacutecnica de binarizacioacuten de Otsu 30

32 Herramientas Utilizadas 32

5

IacuteNDICE GENERAL IacuteNDICE GENERAL

321 Eleccioacuten del Lenguaje 32

322 QVision 33

323 Intelreg Integrated Perfomance Primitives IPP 34

324 QT Library 34

325 Octave 35

CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO 37

41 Estructura del Proyecto 37

42 Construccioacuten de viacutedeos de entrenamiento 38

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

44 Construccioacuten del clasificador 43

441 Generacioacuten del fichero de propiedades 43

442 Construccioacuten del clasificador en Octave 45

443 Aplicacioacuten del clasificador 47

45 Localizacioacuten de los diacutegitos de la matriacutecula 50

451 Binarizacioacuten de la imagen 50

452 Obtencioacuten del contorno de diacutegitos 55

453 OCR (Optical Character Recognition) 57

CAPIacuteTULO 5 CONCLUSIONES 63

51 Una vista atraacutes 63

52 Dificultades y limitaciones 63

53 Viacuteas futuras 64

54 Objetivos cumplidos 64

CAPIacuteTULO A MANUAL DE USUARIO 67

A1 Ejecucioacuten del programa 67

CAPIacuteTULO B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN 69

B1 Meacutetodo basado en bordes 69

6

IacuteNDICE GENERAL IacuteNDICE GENERAL

B2 Buacutesqueda iterativa 70

B3 Media 70

B4 Maacuteximo y miacutenimo 70

B5 Otras teacutecnicas 70

CAPIacuteTULO C TRANSFORMADA DE FOURIER 71

C1 Propiedades de la Transformada de Fourier 71

C2 Optimizacioacuten de la Transformada de Fourier 73

7

IacuteNDICE GENERAL IacuteNDICE GENERAL

8

Lista de Figuras

41 Controles en modo graacutefico del Trigger 39

42 Coordenadas de los puntos del ROI 42

43 ROI de barrido de la imagen 43

44 Parrilla de RBIrsquos que cubren la imagen 44

45 RBIrsquos candidatos a placa de matriacutecula 49

46 Los dos mejores candidatos 49

47 Resultado de imagen binarizada 52

48 Representacioacuten de poliliacuteneas 52

49 Aplicacioacuten de IPE con aacuterea igual a cero 53

410 Aplicacioacuten de IPE con aacuterea mayor que cero 54

411 Nueva zona de trabajo 55

412 Contornos maacutes cercanos al centro del ROI candidato 56

413 Contornos no deseados 57

414 Obtencioacuten de contornos final 58

415 Obtencioacuten de contornos ampliado 59

9

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

IacuteNDICE GENERAL IacuteNDICE GENERAL

321 Eleccioacuten del Lenguaje 32

322 QVision 33

323 Intelreg Integrated Perfomance Primitives IPP 34

324 QT Library 34

325 Octave 35

CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO 37

41 Estructura del Proyecto 37

42 Construccioacuten de viacutedeos de entrenamiento 38

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

44 Construccioacuten del clasificador 43

441 Generacioacuten del fichero de propiedades 43

442 Construccioacuten del clasificador en Octave 45

443 Aplicacioacuten del clasificador 47

45 Localizacioacuten de los diacutegitos de la matriacutecula 50

451 Binarizacioacuten de la imagen 50

452 Obtencioacuten del contorno de diacutegitos 55

453 OCR (Optical Character Recognition) 57

CAPIacuteTULO 5 CONCLUSIONES 63

51 Una vista atraacutes 63

52 Dificultades y limitaciones 63

53 Viacuteas futuras 64

54 Objetivos cumplidos 64

CAPIacuteTULO A MANUAL DE USUARIO 67

A1 Ejecucioacuten del programa 67

CAPIacuteTULO B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN 69

B1 Meacutetodo basado en bordes 69

6

IacuteNDICE GENERAL IacuteNDICE GENERAL

B2 Buacutesqueda iterativa 70

B3 Media 70

B4 Maacuteximo y miacutenimo 70

B5 Otras teacutecnicas 70

CAPIacuteTULO C TRANSFORMADA DE FOURIER 71

C1 Propiedades de la Transformada de Fourier 71

C2 Optimizacioacuten de la Transformada de Fourier 73

7

IacuteNDICE GENERAL IacuteNDICE GENERAL

8

Lista de Figuras

41 Controles en modo graacutefico del Trigger 39

42 Coordenadas de los puntos del ROI 42

43 ROI de barrido de la imagen 43

44 Parrilla de RBIrsquos que cubren la imagen 44

45 RBIrsquos candidatos a placa de matriacutecula 49

46 Los dos mejores candidatos 49

47 Resultado de imagen binarizada 52

48 Representacioacuten de poliliacuteneas 52

49 Aplicacioacuten de IPE con aacuterea igual a cero 53

410 Aplicacioacuten de IPE con aacuterea mayor que cero 54

411 Nueva zona de trabajo 55

412 Contornos maacutes cercanos al centro del ROI candidato 56

413 Contornos no deseados 57

414 Obtencioacuten de contornos final 58

415 Obtencioacuten de contornos ampliado 59

9

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

IacuteNDICE GENERAL IacuteNDICE GENERAL

B2 Buacutesqueda iterativa 70

B3 Media 70

B4 Maacuteximo y miacutenimo 70

B5 Otras teacutecnicas 70

CAPIacuteTULO C TRANSFORMADA DE FOURIER 71

C1 Propiedades de la Transformada de Fourier 71

C2 Optimizacioacuten de la Transformada de Fourier 73

7

IacuteNDICE GENERAL IacuteNDICE GENERAL

8

Lista de Figuras

41 Controles en modo graacutefico del Trigger 39

42 Coordenadas de los puntos del ROI 42

43 ROI de barrido de la imagen 43

44 Parrilla de RBIrsquos que cubren la imagen 44

45 RBIrsquos candidatos a placa de matriacutecula 49

46 Los dos mejores candidatos 49

47 Resultado de imagen binarizada 52

48 Representacioacuten de poliliacuteneas 52

49 Aplicacioacuten de IPE con aacuterea igual a cero 53

410 Aplicacioacuten de IPE con aacuterea mayor que cero 54

411 Nueva zona de trabajo 55

412 Contornos maacutes cercanos al centro del ROI candidato 56

413 Contornos no deseados 57

414 Obtencioacuten de contornos final 58

415 Obtencioacuten de contornos ampliado 59

9

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

IacuteNDICE GENERAL IacuteNDICE GENERAL

8

Lista de Figuras

41 Controles en modo graacutefico del Trigger 39

42 Coordenadas de los puntos del ROI 42

43 ROI de barrido de la imagen 43

44 Parrilla de RBIrsquos que cubren la imagen 44

45 RBIrsquos candidatos a placa de matriacutecula 49

46 Los dos mejores candidatos 49

47 Resultado de imagen binarizada 52

48 Representacioacuten de poliliacuteneas 52

49 Aplicacioacuten de IPE con aacuterea igual a cero 53

410 Aplicacioacuten de IPE con aacuterea mayor que cero 54

411 Nueva zona de trabajo 55

412 Contornos maacutes cercanos al centro del ROI candidato 56

413 Contornos no deseados 57

414 Obtencioacuten de contornos final 58

415 Obtencioacuten de contornos ampliado 59

9

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

Lista de Figuras

41 Controles en modo graacutefico del Trigger 39

42 Coordenadas de los puntos del ROI 42

43 ROI de barrido de la imagen 43

44 Parrilla de RBIrsquos que cubren la imagen 44

45 RBIrsquos candidatos a placa de matriacutecula 49

46 Los dos mejores candidatos 49

47 Resultado de imagen binarizada 52

48 Representacioacuten de poliliacuteneas 52

49 Aplicacioacuten de IPE con aacuterea igual a cero 53

410 Aplicacioacuten de IPE con aacuterea mayor que cero 54

411 Nueva zona de trabajo 55

412 Contornos maacutes cercanos al centro del ROI candidato 56

413 Contornos no deseados 57

414 Obtencioacuten de contornos final 58

415 Obtencioacuten de contornos ampliado 59

9

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

LISTA DE FIGURAS LISTA DE FIGURAS

10

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

Lista de Tablas

41 Tasas de fallo del clasificador 47

11

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

12 LISTA DE TABLAS

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

1INTRODUCCIOacuteN Y REFERENCIAS

HISTOacuteRICAS

11 Introduccioacuten

El reconocimiento automaacutetico de placas de matriacuteculas (RAPM) mediante un sistema de

visioacuten artificial es un tema de indudable intereacutes comercial con numerosas aplicaciones como el

control de aparcamientos acceso a instalaciones tarificacioacuten de peajes caacutelculo de la velocidad

media entre puntos de una carretera etc

Los meacutetodos de reconocimiento toman una imagen fija (o una secuencia de ellas) localizan

en ella la placa que corresponde a la matriacutecula y proceden a la extraccioacuten y reconocimiento de

los caracteres que contiene

111 Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Arti-

ficial

Debido a la integracioacuten en masa de las tecnologiacuteas de la informacioacuten en todos los aspectos

de la vida moderna se produce la demanda de unos sistemas de informacioacuten para el proce-

13

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

14 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

samiento de datos respecto a los vehiacuteculos

Estos sistemas necesitan que los datos sean archivados o bien por un humano o bien por

un equipo especial el cual es capaz de reconocer vehiacuteculos por sus matriacuteculas en un entorno y

tiempo real y reflejar estos hechos de la realidad en el sistema de informacioacuten

Por ello varias teacutecnicas de reconocimiento han sido desarrolladas y los sistemas de re-

conocimiento de placas de matriacuteculas son usados hoy en diacutea en multitud de aplicaciones de

traacutefico y seguridad tales como parkings control de acceso o seguimiento de vehiacuteculos robados

En los parkings el reconocimiento de las placas de matriacutecula es usado para calcular la du-

racioacuten en la que el coche ha estado aparcado Cuando un vehiacuteculo llega a la entrada del parking

el nuacutemero de matriacutecula de la placa es automaacuteticamente reconocido y almacenado en la base de

datos Cuando el vehiacuteculo maacutes tarde sale del parking y llega a la puerta de salida el nuacutemero de

matriacutecula de la placa es nuevamente reconocido y comparado con el primero almacenado en la

base de datos La diferencia de tiempo es usada para calcular el coste del aparcamiento

Los sistemas de reconocimiento automaacutetico de matriacuteculas pueden ser usados en control de

accesos Por ejemplo esta tecnologiacutea es usada en algunas compantildeiacuteas para conceder el acceso

solo a vehiacuteculos del personal autorizado

En algunos paiacuteses estos sistemas de reconocimiento estaacuten instalados a lo largo de un aacuterea

de la ciudad para detectar y monitorizar el traacutefico de vehiacuteculos Cada vehiacuteculo es registrado en

una base de datos central y por ejemplo se pueden comparar con una lista negra de vehiacuteculos

robados o controlar la congestioacuten en accesos a la ciudad en las horas punta como se ha comen-

tado antes

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

11 Introduccioacuten 15

112 Aspectos matemaacuteticos de los sistemas RAPM

En la mayoriacutea de los casos los vehiacuteculos estaacuten identificados por sus nuacutemeros de matriacutecula

los cuales son faacutecilmente legibles por humanos pero no por maacutequinas Para las maacutequinas un

nuacutemero de matriacutecula de una placa es simplemente una mancha oscura que se encuentra dentro

de una regioacuten de una imagen con una intensidad y luminosidad determinadas Debido a esto

es necesario disentildear un sistema matemaacutetico robusto capaz de percibir y extraer lo que deseamos

de la imagen capturada

Estas funciones o disentildeos matemaacuteticos estaacuten implementados en lo que se llaman en ingleacutes

rdquoANRP Systemsrdquo (Sistemas de Reconocimiento Automaacutetico de Placas de Matriacutecula) y signifi-

can una transformacioacuten entre el entorno real que se percibe y los sistemas de informacioacuten que

necesitamos para guardar y manejar toda esa informacioacuten

El disentildeo de estos sistemas es uno de de los campos de investigacioacuten en aacutereas como la

Inteligencia Artificial la Visioacuten por Computador el Reconocimiento de Patrones y las Redes

Neuronales

113 Aspectos fiacutesicos en los sistemas RAPM

Los sistemas de reconocimiento automaacutetico de placas de matriacuteculas son conjuntos de hard-

ware y software que procesan una sentildeal que se convierte en una representacioacuten graacutefica tal como

imaacutegenes estaacuteticas o secuencias de ellas y reconocen los caracteres de la placa

El hardware baacutesico de estos sistemas es una caacutemara un procesador de imaacutegenes un cap-

turador de eventos de la caacutemara y una unidad de almacenamiento y comunicacioacuten En nuestro

proyecto nos hemos basado en viacutedeos con imaacutegenes de coches en los que podemos ver sus ma-

triacuteculas

Los viacutedeos han sido grabados en condiciones ambientales normales de diacutea e intentado eli-

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

16 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

minar el mayor ruido posible en las imaacutegenes Lo ideal para condiciones extremas y con serios

problemas de visibilidad normal seriacutea de disponer de caacutemaras especiales preparadas para tal

actividad como las caacutemaras de infrarrojos que son mucho mejores para atacar estos propoacutesitos

y conseguir mejores resultados Esto es debido a que la iluminacioacuten por infrarrojos provoca la

reflexioacuten de la luz en la placa de matriacutecula que estaacute hecha de un material especial lo que provoca

una iluminacioacuten distinta en esa zona de la imagen con respecto al resto de la misma provocando

que sea maacutes faacutecil su deteccioacuten

12 Estado del arte

Un caso particular del uso de estos sistemas que estamos comentando es el implementado en

Londres para el control de la Tasa por Congestioacuten de la empresa Transport For London (TFL)

[4] y que cuenta con unas 250 caacutemaras a lo largo del aacuterea que delimita la zona de congestioacuten

Mediante este sistema se sabe los coches que han circulado y controlan el pago de las tasas

Se utilizan dos tipos de caacutemaras las que captan imaacutegenes en color y las que captan en blan-

co y negro Las primeras se utilizan para situar al vehiacuteculo en su contexto de alrededor mientras

que las segundas se utilizan para captar la matriacutecula del vehiacuteculo

Las imaacutegenes captadas se mandan de forma continua al sistema central que memoriza la

fecha y el instante en el que se captoacute la imagen Las imaacutegenes en color y en mono se almacenan

junto la fecha y hora como copia de seguridad por si se da el caso de necesitar comparar la

informacioacuten obtenida

Las imaacutegenes captadas que pertenecen a conductores fraudulentos se verifican de forma

manual en la base de datos y en caso de confirmarse el fraude se tramita la multa correspondi-

ente

Tambieacuten podemos encontrar un ejemplo similar para el control de la congestioacuten en la ciudad

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

12 Estado del arte 17

Noruega de Trondhein done se utiliza el reconocimiento automaacutetico de matriacuteculas para contro-

lar los vehiacuteculos que acceden a ciertas aacutereas de la ciudad y descontarles de su tarjeta electroacutenica

las tasas de circulacioacuten

Sistemas similares para el control de congestioacuten mediante reconocimiento automaacutetico de

matriacuteculas lo podemos encontrar tambieacuten en ciudades como Goterborg (Suecia) Copenague

(Dinamarca) Bristol (Reino Unido) Edimburgo (Escocia) Roma y Geacutenova (Italia) Helsinki

(Finlandia) Hong Kong y Singapur [2]

A pesar de existir software comercial el reconocimiento automaacutetico de matriacuteculas es un

tema que estaacute siendo muy investigado Los sistemas comerciales en uso en la actualidad pueden

obtener tasas de acierto superiores al 95 en entornos controlados En entornos en los que las

condiciones de iluminacioacuten no estaacuten controladas o variacutea el tamantildeo orientacioacuten o perspectiva de

la placa la tasa de acierto se reduce hasta el 75

En el reconocimiento automaacutetico de matriacuteculas podemos diferenciar dos fases

1 Localizacioacuten de la placa dentro de la imagen paso criacutetico para la posterior identificacioacuten

2 Reconocimiento y validacioacuten de los caracteres de la matriacutecula

Los meacutetodos para localizar la placa de la matriacutecula son variados Una primera aproximacioacuten

muy utilizada es la de realizar una buacutesqueda por liacuteneas de modo que se evaluacutea la posibilidad

de que cada liacutenea horizontal forme parte de la matriacutecula para posteriormente buscar una zona

de la imagen con una alta concentracioacuten de estas liacuteneas Una vez hecho esto se buscariacutean los

liacutemites laterales

Se pueden encontrar muchas variantes de esta teacutecnica como por ejemplo usando anaacutelisis

frecuencial en [1] o correlacioacuten maacutexima como en [6]

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

18 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

Otras teacutecnicas hacen uso de buacutesquedas bidimensionales en las que se extraen una serie de

caracteriacutesticas para cada piacutexel calculadas en funcioacuten de su entorno mediante gradientes densi-

dad etc Con estas propiedades se construye una red neuronal multicapa para decidir por cada

piacutexel si pertenece o no a la matriacutecula algo que podemos ver en [15] Encontraacutendonos tambieacuten

con Algoritmos Geneacuteticos como en [10] para la localizacioacuten de la matriacutecula y algoritmos que

usan operadores morfoloacutegicos como en [5]

Para la deteccioacuten y validacioacuten de los diacutegitos de la matriacutecula hay varios meacutetodos para segmen-

tar y reconocer caracteres En [6] se realiza una segmentacioacuten parcial para separar los diacutegitos de

la placa y despueacutes dividirlos seguacuten se van reconociendo Se suelen usar redes neuronales para

realizar este reconocimiento bien con los diacutegitos directamente o mediante una transformacioacuten

previa [15]

13 Organizacioacuten del documento

La documentacioacuten de este Proyecto de Fin de Carrera estaacute dividida en cinco secciones

principales La primera de ellas Introduccioacuten y Referencias histoacutericas tiene por objeto la con-

textualizacioacuten de la aplicacioacuten dentro del campo de la visioacuten por computador y la informaacutetica

graacutefica y se introducen problemas que surgen de forma breve y las teacutecnicas que podemos en-

contrar

La seccioacuten de Anaacutelisis de Objetivos comienza con un repaso sobre los elementos que son

objetivo de este proyecto y los que no lo son Tambieacuten define el plan de trabajo repartiendo en

fases el desarrollo de estos objetivos

En el capiacutetulo de Teacutecnicas y Herramientas se definen los meacutetodos de uso frecuente dentro

de todos los campos que tratamos y las herramientas que vamos a utilizar durante el desarrollo

del proyecto

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

13 Organizacioacuten del documento 19

El cuarto capiacutetulo se centra en el disentildeo y la resolucioacuten de la aplicacioacuten Abarca un comple-

to estudio del disentildeo e implementacioacuten

Para finalizar se incluye un capiacutetulo de Conclusiones resumiendo los objetivos cumplidos

y los logros alcanzados asiacute como las posibles viacuteas futuras que podriacutean seguirse a partir del

presente Proyecto de Fin de Carrera

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

20 CAPIacuteTULO 1 INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

2ANAacuteLISIS Y OBJETIVOS

21 Objetivos y alcance del proyecto

El objetivo del proyecto es desarrollar un sistema de reconocimiento de los diacutegitos de una

placa de matriacutecula de un automoacutevil utilizando para ello las teacutecnicas y herramientas que maacutes se

adapten a este propoacutesito y que permitan hacerlo de una manera faacutecil y coacutemoda

Maacutes concretamente los objetivos del proyecto son

Realizar a traveacutes de viacutedeos que contienen placas de matriacuteculas una base de viacutedeos de

prueba para entrenamiento utilizados para realizar el aprendizaje

Encontrar y estudiar un meacutetodo con resultados aceptables para la correcta localizacioacuten de

la zona de la placa de la matriacutecula

Construir un sistema que permita obtener los ROIrsquos de cada imagen mediante unas ciertas

condiciones y sus vectores de propiedades asociados

Crear un sistema de aprendizaje con la ayuda de la base de viacutedeos ya obtenida anterior-

mente en donde indicamos queacute es una posible matriacutecula y queacute no

Construir un clasificador que permita decidir si una zona de la imagen pertenece o no a

una posible regioacuten de la placa a partir del sistema anterior

21

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

22 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

Generar un sistema que dada una posible regioacuten de la imagen donde puede encontrarse la

matriacutecula permita determinar los diacutegitos de la misma

Reconocer los diacutegitos de la matriacutecula que hemos extraiacutedo anteriormente mediante un

sistema OCR

22 Queacute no es objetivo del proyecto

Construir un sistema graacutefico para la visualizacioacuten de viacutedeos e imaacutegenes ya que esto viene

dado por el framework de QVision

Intentar localizar en la imagen dos o maacutes placas de matriacuteculas tan soacutelo nos limitaremos

a encontrar una

Optimizar y disminuir el tiempo de procesamiento

23 Plan de trabajo

El plan de trabajo se ha dividido en las siguientes fases

FASE 1

Estudio del modelo teoacuterico

Aprendizaje de QVision QT4 e IPP

FASE 2

Generacioacuten de los viacutedeos de entrenamiento a partir de unos dados

Generacioacuten de los viacutedeos de prueba que se utilizaraacuten en la fase de validacioacuten

FASE 3

Generacioacuten de los ficheros de ROIrsquos de cada uno de los viacutedeos

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

23 Plan de trabajo 23

Generacioacuten de los ficheros de propiedades de LBP asociados a los ROIrsquos anteriormente

obtenidos

FASE 4

Creacioacuten del clasificador con el lenguaje Octave

Integracioacuten del coacutedigo Octave en el sistema para utilizar externamente el clasificador

FASE 5

Eliminacioacuten de contornos no vaacutelidos dentro de la regioacuten de la posible imagen

Localizacioacuten de diacutegitos de la placa y su reconocimiento mediante OCR con Octave

FASE 6

Evaluacioacuten y validacioacuten

Documentacioacuten

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

24 CAPIacuteTULO 2 ANAacuteLISIS Y OBJETIVOS

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

3TEacuteCNICAS Y HERRAMIENTAS

UTILIZADAS

31 Teacutecnicas Utilizadas

El uso de las teacutecnicas y herramientas utilizadas que vamos a comentar en esta seccioacuten es

debido a la simplicidad y comodidad que nos proporcionan a la hora de realizar el sistema que

queremos construir y su faacutecil uso y rapidez

311 Local Binary Patterns (LBP)

La teacutecnica utilizada para la localizacioacuten de la zona de la placa de la matriacutecula es LBP (Local

Binary Patterns)

La teacutecnica LBP fue adoptada en sus comienzos para el reconocimiento y deteccioacuten de caras

y el reconocimiento de expresiones faciales con excelentes resultados siendo desarrollada maacutes

tarde como el primer meacutetodo para el reconocimiento de texturas usado en la deteccioacuten del

movimiento de objetos en tiempo real como lo publicado en [12]

25

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

26 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Quizaacutes las propiedades maacutes importantes del operador LBP en aplicaciones del mundo real

es su tolerancia contra los cambios de iluminacioacuten e invarianza contra cambios de nivel de gris

y su simplicidad computacional que permite analizar imaacutegenes en configuraciones de tiempo

real

El operador de anaacutelisis de textura LBP estaacute definido como una medida invariante a la escala

de grises derivado de una definicioacuten general de la textura en una vecindad local La propuesta

original [8] comienza umbralizando una vecindad de P (Pgt1) piacutexeles espaciados en un radio R

(Rgt0) utilizando como umbral el valor del piacutexel del centro esto genera una vecindad binarizada

y por lo tanto un patroacuten que es interpretado como un nuacutemero binario B Si las coordenadas del

centro son (00) las coordenadas de los piacutexeles vecinos estaacuten dadas por

(minusR sen(2πp

P) R cos(

2πp

P)) (31)

De la foacutermula anterior se deduce una vecindad circular de los piacutexeles mencionados pero

para hacerlo maacutes faacutecil a la hora de los caacutelculos lo hacemos en forma de cuadriacutecula

Vamos a mostrar un ejemplo de como actuacutea este operador

5 4 3

4 3 1

2 0 3

rArr

1 1 1

1 X 0

0 0 1

lowast

1 2 4

128 X 8

64 32 16

=

1 2 4

128 X 0

0 0 16

LBP = 1 + 2 + 4 + 16 + 128 = 151

La presencia del patroacuten local B se registra en un histograma de ocurrencias H Vemos que

como mucho vamos a obtener 256 patrones distintos (de 0 a 255) dentro de cada caacutelculo de

LBP los cuales utilizaremos a la hora de construir el clasificador para discriminar matriacuteculas

dentro de la imagen

Es decir este operador etiqueta los piacutexeles de una imagen umbralizando una vecindad de

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

31 Teacutecnicas Utilizadas 27

3x3 respecto al valor del piacutexel central y considerando el resultado como un nuacutemero binario

Luego el histograma de las etiquetas puede utilizarse como descriptor de textura

Una variante de este operador es combinarlo con un operador de contraste Para guardar

informacioacuten sobre el contraste de la textura el valor LBP se combina con una simple medida

de contraste llamada C Este valor es calculado como la diferencia entre el promedio del nivel

de gris de todos aquellos piacutexeles a los que se les ha asignado un valor igual a 1 y aquellos a

los que se les ha asignado un valor igual a 0 como se puede ver seguacuten el modelo descrito en [14]

312 Clasificacioacuten mediante pseudoinversa

Para la clasificacioacuten utilizamos el meacutetodo de la pseudoinversa

Este meacutetodo de clasificacioacuten simple utiliza una matriz compuesta por vectores de propiedades

los cuales obtenemos mediante el operador LBP anteriormente comentado de 256 elementos

y el vector de clases a los que pertenece cada uno de los vectores anteriores para dar como

resultado un vector de pesos w

En el meacutetodo basado en la matriz pseudoinversa el vector de pesos se obtiene la siguiente

expresioacuten

w = X+c (32)

El vector c es un vector de dimensioacuten m y los elementos cj son las salidas esperadas para ca-

da muestra del conjunto de aprendizaje o como antes lo hemos mencionado la clase La matriz

X+ es la denominada matriz pseudoinversa de X y que se obtiene a partir de la matriz X como

X+ = (XTX)minus1XT y los elementos de la matriz X son los propios vectores de propiedades

Por suerte haciendo uso del lenguaje Octave (325) que explicamos en secciones siguientes

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

28 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

nos bastariacutea con usar la siguiente foacutermula

w = pinv(X) lowast c (33)

Pero existe una forma mucho maacutes raacutepida y eficiente para hacer el caacutelculo que nos devuelve

el mismo resultado mediante una operacioacuten de miacutenimos cuadrados y es de la siguiente manera

w = Xc (34)

para obtener el vector w de pesos [13]

La comparacioacuten en tiempo de ejecucioacuten de las dos instrucciones anteriores es de 7 veces

maacutes raacutepido la ejecucioacuten con rdquordquo que con rdquopinvrdquo

313 Obtencioacuten de los vectores de propiedades

Aunque entraremos con maacutes en detalle en el capiacutetulo de anaacutelisis y resolucioacuten vamos a co-

mentar brevemente como obtenemos esos vectores de propiedades que son necesarios para el

clasificador

Sobre la imagen construimos una parrilla de ROIrsquos (Regioacuten Of Interest) de un tamantildeo de

200x50 piacutexeles separados 25 piacutexeles cada uno tanto en x como en y Para cada uno de esos

ROIrsquos aplicamos el operador LBP (311) que nos daraacute el vector de propiedades de 256 valores

obteniendo una cantidad considerable de vectores por cada imagen a estudiar con los que cons-

truiremos la matriz para obtener la pseudoinversa y obtener el vector w de pesos asociados

El motivo de usar estos tamantildeos para trabajar es debido a que tras hacer las pertinentes

pruebas se generaba una cantidad considerable de muestras de vectores de propiedades LBP

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

31 Teacutecnicas Utilizadas 29

con las que conseguiriacuteamos mejores resultados Cuanta maacutes informacioacuten tengamos para el en-

trenamiento mejor resultado daraacute el clasificador

Estamos hablando del orden de unos 25000 vectores de propiedades que utilizamos para

entrenar el clasificador y del orden de 460 vectores de propiedades por frame procesado

314 Obtencioacuten del contorno de los diacutegitos

Una vez localizada la zona de la posible placa de matriacutecula hemos de obtener los contornos

de los diacutegitos que la componen

Para ello la teacutecnica que se ha seguido es la siguiente

Se binariza la imagen utilizando funciones para tal efecto de la libreriacutea IPP (323) la cual

calcula automaacuteticamente un umbral h de binarizado poniendo a valor 0 los piacutexeles menores

que ese umbral h y a 255 los mayores a ese umbral

La teacutecnica que sigue es la propuesta por Otsu la cual explicamos en el siguiente subaparta-

do (315)

Tras eso y tambieacuten mediante funciones propias de QVision (322) y la libreriacutea IPP (323)

obtendremos los contornos alrededor de las zonas negras quedaacutendonos soacutelo con los bordes ex-

ternos

Eliminamos todas las regiones obtenidas que sean muy pequentildeas o demasiado grandes Para

hacer esta discriminacioacuten se utiliza una teacutecnica que explicamos en el capiacutetulo de rdquoDisentildeo y Re-

solucioacutenrdquo y que consiste baacutesicamente en obtener los dos contornos maacutes cercanos al centro del

ROI que nos indica la regioacuten de la placa que en teoriacutea y seguacuten se ha comprobado suele coincidir

con el centro de la placa de la matriacutecula

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

30 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Se calcula el alto y ancho maacuteximo de cada una de estas dos siluetas con un margen antildeadido

y se elimina todo lo que esteacute fuera de esos liacutemites

315 Teacutecnica de binarizacioacuten de Otsu

Una de las teacutecnicas maacutes sencillas en segmentacioacuten es la umbralizacioacuten Dentro de eacutesta aacuterea

encontramos varios algoritmos como los mencionados en el Anexo B pero el que mejor resul-

tados obtiene y el que vamos a utilizar en la resolucioacuten del proyecto es el meacutetodo Otsu ([9] [11])

Si entendemos una imagen como una funcioacuten de dos dimensiones f(x y) = G Donde G

estaraacute en el rango [0256] Los piacutexeles con valor de gris se representan como fi y el nuacutemero de

piacutexeles como N La probabilidad de ocurrencia seraacute

pi =fiN

(35)

Si solo hay dos niveles se llama binarizacioacuten en esta caso los piacutexeles son divididos en

dos clases C1 con niveles de gris [1 t] y C2 [t+1 256] Entonces la distribucioacuten de

probabilidad de los niveles de gris para las dos clases son

C1 =p1

ω1(t)

ptω1(t)

(36)

C2 =pt+1

ω2(t)

p256

ω2(t)(37)

donde

ω1(t) =tsumi=1

pi (38)

ω2(t) =256sumi=t+1

pi (39)

Y la media para C1 y C2 son

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

31 Teacutecnicas Utilizadas 31

micro1 =tsumi=1

i middot piω1(t)

(310)

micro2 =256sumi=t+1

i middot piω2(t)

(311)

Si definimos microT como la intensidad media de toda la imagen Se demuestra que

ω1 middot micro1 + ω2 middot micro2 = microT (312)

ω1 + ω2 = 1 (313)

Otsu [9] definioacute la variancia (medida de la dispersioacuten de valores en este caso se trata de la

dispersioacuten de los niveles de gris) entre clases de una imagen umbralizada como

σ2B = ω1 middot (micro1 minus microT )2 + ω2 middot (micro2 minus microT )2 (314)

para calcular el valor umbral de forma que la dispersioacuten dentro de cada segmento sea lo maacutes

pequentildea posible pero al mismo tiempo la dispersioacuten sea lo maacutes alta posible entre segmentos

diferentes

Para dos niveles el umbral oacuteptimo tlowast se elige de manera que σ2B sea maacutexima

tlowast = Maximo(σ2B(t)) (315)

Traducido esto sobre las imaacutegenes y en forma de pseudocoacutedigo el algoritmo trabajariacutea de la

siguiente manera

1 Calculamos el valor del piacutexel mayor y del menor

2 Obtenemos el histograma de la imagen

3 Calculamos la Csum como xF(x) para x = 0 hasta 255

donde x es el iacutendice y F(x) su valor

4 Calculamos N = F(x) para x = 0 hasta 255

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

32 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

5 Para todos los valores del histograma

51 N1 = F(x) Sumatorio desde cero hasta el iacutendice actual

52 N2 = N - N1

53 Sum = xf(x) sumatorio valor histograma de cero hasta

el iacutendice actual

54 M1 = CsumN1

55 M2 = (Sum-Csum)N2

56 b = N1N2(M1 - M2)(M1 - M2)

6 Nos quedamos con el iacutendice del mayor Sb

La importancia del meacutetodo de Otsu radica en que es automaacutetico es decir no necesita super-

visioacuten humana ni informacioacuten previa de la imagen antes de su procesamiento

32 Herramientas Utilizadas

321 Eleccioacuten del Lenguaje

La eleccioacuten del lenguaje a usar veniacutea ya impuesta por el hecho de tener que realizar el

Proyecto con el framework QVision (322) del cual hablaremos con maacutes detalle en las si-

guientes secciones por lo que la mayoriacutea de la praacutectica ha sido realizada con el lenguaje de

programacioacuten C++

C++ es un lenguaje imperativo orientado a objetos de propoacutesito general basado en C al que

se han antildeadido nuevos tipos de datos clases plantillas mecanismo de excepciones sistema de

espacios de nombres funciones inline sobrecarga de operadores referencias operadores para

manejo de memoria persistente y algunas utilidades adicionales de libreriacutea

Entre las caracteriacutesticas de este lenguaje encontramos

Programacioacuten orientada a objetos La posibilidad de orientar la programacioacuten a objetos per-

mite al programador disentildear aplicaciones desde un punto de vista maacutes cercano a la vida

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

32 Herramientas Utilizadas 33

real Ademaacutes permite la reutilizacioacuten del coacutedigo de una manera maacutes loacutegica y productiva

Portabilidad Un coacutedigo escrito en C++ puede ser compilado en casi todo tipo de ordenadores

y sistemas operativos sin hacer apenas cambios

Brevedad El coacutedigo escrito en C++ es muy corto en comparacioacuten con otros lenguajes sobre

todo porque en este lenguaje es preferible el uso de caracteres especiales que las palabras

clave

Programacioacuten modular Un cuerpo de aplicacioacuten en C puede estar hecho con varios ficheros

de coacutedigo fuente que son compilados por separado y despueacutes unidos Ademaacutes esta ca-

racteriacutestica permite unir coacutedigo en C con coacutedigo producido en otros lenguajes de progra-

macioacuten como Ensamblador o el propio C

Velocidad El coacutedigo resultante de una compilacioacuten en C++ es muy eficiente gracias a su ca-

pacidad de actuar como lenguaje de alto y bajo nivel

Es una extensioacuten del lenguaje C que ha experimentado una mejora considerable y un eacutexito

en las aplicaciones ya que muchos sistemas operativos compiladores e inteacuterpretes han sido

escritos en C++ (el propio Windows y Java)

322 QVision

La herramienta base de este proyecto es QVision un framework de prototipado raacutepido de

aplicaciones graacuteficas de proceso de imagen desarrollado por el departamento de Ingenieriacutea y

Tecnologiacutea de Computadores (DiTEC) y usado por el Departamento de Informaacutetica y Sis-

temas (DIS) dentro del Grupo de Investigacioacuten rdquoPercepcioacuten Artificial y Reconocimiento de

Patronesrdquo(PARP) de la Facultad de Informaacutetica de la Universidad de Murcia

De las caracteriacutesticas maacutes importantes de QVision podemos resaltar las siguientes

Eficiencia computacional al estar basado en IPP QT4 y OpenGL

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

34 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

Versatilidad en fuentes de imagen al estar basado en MPlayer y MEncoder Caacutemaras

USB Firewire DV tarjetas de TV viacutedeos con casi cualquier codec DVDs rtsp http

imaacutegenes jpgpnm

Paralelismo multihilo para CPUs multicore

QVision estaacute desarrollado sobre la libreriacutea QT en la que entraremos maacutes en detalle en su

seccioacuten (324)

323 Intelreg Integrated Perfomance Primitives IPP

Las rdquoIntelreg Integrated Perfomance Primitivesrdquo (IPP) es un conjunto de libreriacuteas de Intel que

implementan diferentes funciones de procesamiento de imaacutegenes Estaacute optimizada para proce-

sadores de Intel aunque funcionan con cualquier procesador compatible con Pentium

En QVision podemos encontrar el Paquete QVIPP que contiene funciones de procesamiento

de imagen a bajo nivel y que estaacute basado en las libreriacuteas IPP de Intel

Baacutesicamente estaacute disentildeado como un rdquoC++ wrapperrdquo de las IPP ofreciendo funciones anaacutelo-

gas en nombre y utilidad a las de esta libreriacutea implementando las funciones maacutes comunes

siendo faacutecilmente ampliable con nuevas seguacuten se van necesitando

324 QT Library

Qt es una amplia plataforma de desarrollo que incluye clases libreriacuteas y herramientas para

la produccioacuten de aplicaciones de interfaz graacutefica en C++ que pueden operar en varias platafor-

mas

Baacutesicamente es un conjunto de clases en C++ que nos permitiraacuten utilizar elementos baacutesicos

como Listas Rectaacutengulos Poliliacuteneas etc de una manera raacutepida y eficaz

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

32 Herramientas Utilizadas 35

325 Octave

GNU Octave es un lenguaje de alto nivel inicialmente pensado para la computacioacuten numeacuteri-

ca

Octave tiene una gran cantidad de herramientas para resolver problemas de aacutelgebra numeacuteri-

ca comunes encontrar las soluciones de ecuaciones no lineales realizar integrales de funciones

ordinarias manipular polinomios e integrar ecuaciones diferenciales ordinarias y ecuaciones

diferenciales algebraicas Es faacutecil de extender y modificar a traveacutes de funciones definidas por el

usuario escritas en el propio lenguaje de Octave o utilizando moacutedulos cargados dinaacutemicamente

escritos en otros lenguajes como C C++ Fortran etc

Para nuestro propoacutesito Octave nos construye un clasificador para la fase de aprendizaje de

la localizacioacuten de la zona de la placa de la matriacutecula y posteriormente lo usaremos a la hora de

generar el sistema OCR para la deteccioacuten y clasificacioacuten de los diacutegitos de la matriacutecula

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

36 CAPIacuteTULO 3 TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

4DISENtildeO Y RESOLUCIOacuteN DEL

PROYECTO

41 Estructura del Proyecto

El proyecto quedariacutea divido en varios moacutedulos para mayor simplicidad Vamos a ir vieacutendo-

los

El primer moacutedulo consistiriacutea en la generacioacuten de los viacutedeos que vamos a utilizar para la fase

de aprendizaje Se podriacutea haber utilizado directamente estos viacutedeos pero para maacutes comodidad

los hemos modificado un poco Es baacutesicamente un capturador de frames para hacer viacutedeos con

los frames que deseemos de otros viacutedeos

El segundo moacutedulo consiste en la generacioacuten de los ficheros que contienen los ROIrsquos que

encierran la zona de la placa de la matriacutecula y que nos serviraacuten posteriormente para entrenar el

clasificador indicando queacute es una zona de placa y queacute no

El tercer moacutedulo es para obtener el fichero con los vectores de propiedades (313) mediante

el operador LBP (311) con los que se construiraacute el clasificador y en el que se hace uso de los

ROIrsquos anteriormente obtenidos que indican la zona de la matriacutecula

37

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

38 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

El cuarto moacutedulo una vez construido el clasificador y obtenido el vector de pesos w se

encarga de obtener el ROI que mejor define la zona de la placa de la matriacutecula haciendo uso del

clasificador

El uacuteltimo moacutedulo consiste en obtener los contornos de los diacutegitos de la placa de la matriacutecula

apoyaacutendonos en el ROI obtenido anteriormente y que si todo ha ido correcto deberaacute estar enci-

ma o muy cerca de la matriacutecula y posteriormente el reconocimiento de los mismos (453)

42 Construccioacuten de viacutedeos de entrenamiento

En el servidor de httpperceptioninfumes podemos encontrar una serie de

viacutedeos que contienen secuencias de imaacutegenes con vehiacuteculos en los que se ve perfectamente la

placa de la matriacutecula Unos viacutedeos han sido tomados desde la izquierda y otros desde la derecha

y grabados a 30 frames por segundo

Para el proyecto nos bastaba con tomar un frame de cada posible matriacutecula para construir el

clasificador ya que de un frame a otro de una misma matriacutecula apenas se apreciaba diferencia

y seriacutea tener informacioacuten sobrante

Por ello se pensoacute en automatizar la captura de frames de viacutedeos para poder construir clasi-

ficadores utilizando cualquier viacutedeo que deseemos utilizar

Construido bajo QVision (322) como casi todos los demaacutes moacutedulos eacuteste contiene un tri-

gger el cual se activa pulsando el botoacuten de rdquoGuardar Framerdquo y al dispararse captura el frame

actual que se estaacute mostrando y lo inserta en otro viacutedeo que se estaacute generando internamente

el cual es el obtenido al final y con el que trabajaremos maacutes adelante Podemos ver esto en la

imagen 41

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

42 Construccioacuten de viacutedeos de entrenamiento 39

Figura 41 Controles en modo graacutefico del Trigger

Por defecto guarda el viacutedeo resultante con el nombre de rdquoFramesmpgrdquo y tiene un valor de

Frame Por Segundo (FPS) de 25 pero lo ideal seriacutea indicarle otro nombre para evitar proble-

mas si queremos generar maacutes de un viacutedeo y en nuestro caso y para nuestro uso lo que hemos

utilizado para generar los viacutedeos es usar un valor de FPS de 1

Cabe destacar tambieacuten que independientemente del formato de entrada y el tamantildeo los

viacutedeos se van a guardar siempre con un tamantildeo de 720 piacutexeles de ancho por 576 piacutexeles de alto

que seraacuten las dimensiones con las que trabajaremos a lo largo de todo el desarrollo del proyecto

El nuacutemero de FPS puede ser cambiado en tiempo de ejecucioacuten del programa posteriormente

y puede variar entre 1 y 25 frames por segundo

El formato de salida del viacutedeo creado es YUV4MPEG2 el cual estaacute disentildeado para contener

frames no comprimidos de viacutedeo YCbCr formateado como datos YCbCr 420 YCbCr 422

o YCbCr 444 cuyo propoacutesito es codificar como en MPEG-2 Sobre las siglas rdquoYUVrdquo en su

nombre esto deriva de que el espacio de color YCbCr es confundido con el espacio de color

YUV usado en aplicaciones basadas en formato PAL como televisioacuten analoacutegica y cintas de

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

40 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

viacutedeo

YCbCr es un espacio de color utilizado en sistemas de fotografiacutea y viacutedeo digital y define el

color en teacuterminos de un componente de luminancia y dos de crominancia

Y representa la luminancia y se encuentra en el rango de 0 a 255

Cb y Cr representan la crominancia los colores azul y rojo respectivamente Se encuen-

tran en el rango -128 a 127 con signo oacute 0 a 255 sin signo

Hemos de antildeadirle para la correcta creacioacuten del viacutedeo la cabecera de YUV4MPEG2 si-

guiendo la siguiente instruccioacuten

bool writeYUV4MPEG2Header( QFile ampfile

const int cols

const int rows

const int fps

)

la cual tiene los siguientes paraacutemetros

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

cols El nuacutemero de columnas que el viacutedeo deberiacutea tener

rows El nuacutemero de filas que el viacutedeo deberiacutea tener

fps El nuacutemero de frames por segundo que tendraacute la secuencia de viacutedeo

Para insertar los distintos frames que componen el viacutedeo utilizamos la siguiente instruccioacuten

de QVision (322)

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

43 Obtencioacuten de los ROIrsquos de las matriacuteculas 41

bool writeYUV4MPEG2Frame( QFile ampfile

const QVImagelt uChar 3 gt imageRGB

)

y que en este caso tiene la siguiente entrada

file Objeto que apunta al fichero de viacutedeo Debe estar previamente creado y abierto cuando

recibe los argumentos de la creacioacuten de la cabecera

imageRGB El objeto de imagen RGB a almacenar en el viacutedeo

43 Obtencioacuten de los ROIrsquos de las matriacuteculas

Una vez hemos obtenido los viacutedeos anteriores para el entrenamiento y el aprendizaje hemos

de obtener el ROI donde se encuentra la matriacutecula para implementar el clasificador posterior-

mente

Puede haber viacutedeos en la web para estos propoacutesitos pero queriacuteamos construir esta herrami-

enta de etiquetado de ROIs para nuestro uso

Este proceso de obtencioacuten de los ROIrsquos es manual y lo uacutenico que hacemos es ir mostrando

las imaacutegenes que forman el viacutedeo seleccionamos del menuacute de herramientas del entorno graacutefico

de QVision (322) la opcioacuten de seleccionar ROI y marcamos la zona de la matriacutecula para en-

cuadrarla en un rectaacutengulo de borde de color rojo

Una vez creado el ROI al pasar de imagen se guarda automaacuteticamente en un fichero que

por defecto se llamaraacute rdquofileROIrdquo y que deberiacuteamos de darle un nombre al invocar al programa

para no confundirnos despueacutes

Este fichero tendraacute una liacutenea por cada imagen que contenga el viacutedeo y seguiraacute el siguiente

formato

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

42 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

ROI r1 r2 c1 c2

Los valores de estos paraacutemetros de salida son los siguientes

r1 Valor del piacutexel en la imagen de la coordenada y de la esquina superior izquierda del ROI

r2 Valor del piacutexel en la imagen de la coordenada y de la esquina inferior derecha del ROI

c1 Valor del piacutexel en la imagen de la coordenada x de la esquina superior izquierda del ROI

c2 Valor del piacutexel en la imagen de la coordenada x de la esquina inferior derecha del ROI

como bien queda descrito en la imagen 42

Figura 42 Coordenadas de los puntos del ROI

Para uno de los viacutedeos de entrenamiento podemos encontrarnos con un fichero de ROIrsquos

como el que sigue

ROI 140 270 167 419

ROI 277 407 368 646

ROI 284 361 3 174

ROI 306 392 200 470

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

44 Construccioacuten del clasificador 43

44 Construccioacuten del clasificador

441 Generacioacuten del fichero de propiedades

En esta primera parte de la construccioacuten del clasificador necesitamos generar el fichero de

propiedades mediante el operador LBP

Para ello por cada imagen o frame de los viacutedeos de entrenamiento hacemos lo siguiente

Se construye un ROI que llamaremos rdquoROI de barrido de la imagenrdquo (RBI) Este RBI tiene

un tamantildeo predefinido de 200 piacutexeles de ancho y 50 piacutexeles de alto Estas dimensiones han sido

establecidas con estos valores para poder obtener un nuacutemero considerable de muestras en la

imagen que a la hora de hacer el clasificador ajustaraacuten mejor los resultados obtenidos

Como vemos en la siguiente imagen (43) ese es el RBI que se obtiene en color blanco el

cual partiendo de la posicioacuten superior izquierda va a ir desplazaacutendose por filas y columnas con

un salto de 25 piacutexeles en el eje x cuando se arrastra por la fila y un salto de 25 piacutexeles en el eje

y cuando tiene que saltar a la siguiente fila Estos valores tienen que ver con lo explicado antes

para obtener un nuacutemero considerable de muestras en cada imagen

Figura 43 ROI de barrido de la imagen

Al final se obtendriacutea una parrilla de RBIrsquos como la mostrada en la figura 44

Ahora para cada RBI que obtenemos en la imagen le aplicamos el operador LBP (311)

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

44 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 44 Parrilla de RBIrsquos que cubren la imagen

para obtener sus propiedades pero etiquetando cada vector de propiedades con un label que

tendraacute valor -1 o 1 dependiendo de

Si el RBI no intersecciona absolutamente en ninguacuten punto con el ROI de la matriacutecula calcu-

lado anteriormente y almacenado en el fichero de ROIrsquos de ese viacutedeo el RBI quedaraacute etiquetado

a rdquo-1rdquo indicando esto que es una muestra no vaacutelida en la que no se encuentra la matriacutecula

Por el contrario si el RBI intersecciona con el ROI tenemos dos posibles opciones

Si el RBI intersecciona con el ROI como mucho en un valor rdquomin_discrdquo que es el dis-

criminante miacutenimo el cual por defecto estaacute establecido a un valor del 10 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo-1rdquo indicando que no es una

muestra vaacutelida No tenemos suficiente informacioacuten con tan soacutelo un 10 de los piacutexeles que in-

terseccionan para saber si es una zona de la posible placa o no

El otro caso es que el RBI interseccione en al menos un valor rdquomax_discrdquo que es el dis-

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

44 Construccioacuten del clasificador 45

criminante maacuteximo el cual por defecto estaacute establecido a un valor del 60 este vector de

propiedades LBP (311) asociado al RBI quedaraacute etiquetado a rdquo1rdquo indicando que puede ser un

posible candidato a una zona de la placa de la matriacutecula

Los demaacutes RBI que quedan entre rdquomin_discrdquo y rdquomax_discrdquo quedariacutean sin etiquetar y sin

aplicarles el operador LBP (311) debido a que no tenemos suficiente informacioacuten para saber

si es o no un posible candidato a placa de matriacutecula en la imagen pudiendo crear incongruen-

cias en el clasificador y empeorar los resultados

Estos dos paraacutemetros discriminantes estaacuten parametrizados en el sistema pudiendo darles el

valor que deseemos pero realizando los tests sobre el clasificador los predefinidos son los que

han dado un mejor resultado

Como muestra de ejemplo vemos el resultado de aplicar el operador LBP (311) al primer

RBI de la esquina superior izquierda de la imagen anteriormente mostrada

606 53 68 84 40 3 83 343 148 75 3 153 22 4 19 283 156 7 3 20 96 5 200 511 10 0 1 3 2 3 5 63 33 6

6 1 5 0 13 9 84 164 7 147 7 6 7 115 14 0 0 1 6 0 6 21 5 0 0 1 5 9 8 35 78 8 6 3 6 0 1 1 1 10 0 3 0 0 0 0 6 0

0 0 6 0 5 2 0 0 0 0 1 0 0 0 76 5 1 4 9 0 3 10 164 599 2 58 10 16 8 54 10 0 0 0 12 0 7 12 0 2 0 1 7 16 1 12

51 9 8 10 1 0 4 7 12 7 0 13 1 0 0 11 99 6 12 14 186 3 742 158 7 1 1 4 4 2 1 28 2 0 0 0 0 0 0 1 1 10 0 3 0 1

0 6 4 0 0 0 10 1 21 4 2 5 0 3 6 10 6 58 79 17 0 7 0 1 7 4 14 13 0 5 0 0 0 4 151 6 1 2 101 2 60 43 3 4 0 0 3

3 1 11 446 10 1 8 13 0 5 68 392 145 1 41 11 5 11 123 405 8 2 10 137 3 39 126 58 31 0 13 38 62 14 151

442 Construccioacuten del clasificador en Octave

Nuestro rdquoProblema de Clasificacioacutenrdquo viene dado por el hecho de que el sistema emite pares

(x c) seguacuten lo explicado anteriormente donde x isin R es el vector de propiedades (313) de LBP

(311) y c isin -11 indica la clase (positiva o negativa) a la que realmente pertenece

El objetivo es predecir la clase c de futuros vectores de propiedades x procedentes de

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

46 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

cualquier otro viacutedeo con el menor error posible a la hora de clasificar

Dado el problema de clasificacioacuten necesitamos de una rdquoFuncioacuten de Decisioacutenrdquo definida por

f Rn rarr R (41)

la cual es un procedimiento matemaacuteticoalgoriacutetmico que trata de distinguir dos tipos de objetos

Si f(x) gt 0 el objeto x se clasifica como rdquopositivordquo (c = +1) y si f(x) lt 0 se clasifica como

rdquonegativordquo (c = minus1) Los puntos que cumplen f(x) = 0 constituyen la hipersuperficie frontera

entre las dos regiones de decisioacuten

Como en nuestro caso hemos hecho pruebas con unos cinco ficheros de propiedades de

cinco viacutedeos distintos para elegir cual seriacutea el mejor conjunto de entrenamiento hemos juntado

los ficheros de cuatro en cuatro y usado como prueba el fichero que no usamos en cada caso

para ver que tasa de error se obteniacutea

Esto es para estimar la probabilidad de error mediante la teacutecnica conocida como rdquoLeave N

outrdquo

Estamos usando un clasificador simple que usa el meacutetodo de la pseudoinversa (312) para

calcular el vector de pesos w ya explicado en el capiacutetulo de Teacutecnicas y Herramientas utilizadas

(312) la funcioacuten de decisioacuten usando los vectores de propiedades x y el vector de peses w seraacute

fw(x) = w middot x = w1x1 + + + wnxn (42)

Cada propiedad xi se multiplica por su correspondiente coeficiente wi y se suman todos los

teacuterminos Intuitivamente la magnitud de cada peso indica la importancia relativa del atributo

correspondiente y su signo determina si contribuye a favor o en contra de la decisioacuten positiva

c = +1

En lugar de usar un teacutermino independientew0 expliacutecito que es necesario para que la frontera

pueda separarse del origen de coordenadas a veces es preferible conseguir el mismo efecto

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

44 Construccioacuten del clasificador 47

antildeadiendo a todos los vectores de propiedades una constante (por ejemplo 1) incluyendo asiacute a

w0 dentro de w

w middot x+ w0 = (w0 w1 w2 wn)(1 x1 x2 xn) (43)

De las pruebas antes mencionadas con los cinco ficheros de cinco viacutedeos con placas de

matriacuteculas que se grabaron para realizar el proyecto se obtuvieron las siguientes tasas de error

ENTRENAMIENTO PRUEBA TASA DE ERROR( )

Fichero 1234 5 226

Fichero 2345 1 542

Fichero 3451 2 085

Fichero 4512 3 094

Error Medio 235

Tabla 41 Tasas de fallo del clasificador

Podemos esperar que el error usando todos los vectores de propiedades de los cinco ficheros

estaraacute en torno al 235

443 Aplicacioacuten del clasificador

Generado ya nuestro vector de pesosw lo vamos a guardar en un fichero llamado rdquowvaluesrdquo

y que seraacute el que utilicemos a la hora de clasificar cualquier viacutedeo con matriacuteculas

Para cada imagen o frame del viacutedeo que queremos clasificar volvemos a construir el ROI

de barrido mencionado la seccioacuten de rdquoGeneracioacuten del fichero de propiedadesrdquo (441) Este RBI

lo vamos a ir desplazando con el mismo desplazamiento de 25 piacutexeles en el eje x y 25 piacutexeles

en el eje y y a cada RBI le aplicamos el operador LBP (311) generado para cada imagen un

conjunto de vectores de propiedades que vamos a guardar en un fichero

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

48 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Generado este fichero con todos los vectores de propiedades de cada RBI le toca el turno al

entorno Octave(325)

La integracioacuten del entorno Octave (325) en nuestro programa basado en QVision (322) lo

hemos hecho directamente mediante una llamada al sistema que se encarga de ejecutar Octave

(325) mediante fichero de texto que contiene la orden a ejecutar

En el programa Octave(325) hecho para la clasificacioacuten comprobamos que existe el fichero

de pesos w en caso negativo generaraacute uno y sino utilizaraacute el que encuentre en el directorio de

trabajo Esto se comprueba debido a que el clasificador lleva un tiempo en generarse y si ya lo

tenemos preparado nos ahorramos volver a generar el clasificador

Ahora coge el fichero anteriormente generado con los vectores de propiedades y le aplica a

cada vector x el vector de pesos w para calcular la clase asociada a cada vector La aplicacioacuten

de la operacioacuten wx da como resultado un valor positivo o negativo que nos vamos a guardar

tambieacuten en un fichero aparte y que llamaremos rdquovaloresCrdquo

El siguiente paso es usar el fichero de clases llamado rdquovaloresCrdquo para determinar cual es

el mejor RBI de los clasificados en nuestro caso el maacutes positivo o en su defecto (al no haber

ninguno positivo situacioacuten no deseable) el de mayor valor

En la imagen 45 obtenemos un conjunto de RBIrsquos candidatos a regioacuten de la placa de la

matriacutecula que han obtenido un valor mayor que 0 al aplicarle el clasificador

Es posible que al realizar la clasificacioacuten no obtengamos ninguacuten valor positivo como hemos

comentado antes pero nos quedamos igualmente con los dos RBIrsquos cuyos valores c son los dos

valores negativos maacutes rdquopositivosrdquo

Esta situacioacuten de no tener alguacuten candidato positivo podriacutea deberse al hecho de que no existe

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

44 Construccioacuten del clasificador 49

Figura 45 RBIrsquos candidatos a placa de matriacutecula

ninguna placa de matriacutecula en la imagen

Si nos quedamos el que obtiene un mejor valor de c al hacer la clasificacioacuten obtenemos en

color rojo el mejor RBI y en amarillo el segundo mejor lo cual queda mostrado en la figura 46

Figura 46 Los dos mejores candidatos

Destacar que al finalizar esta parte tenemos por separado pero relacionados los siguientes

ficheros

Fichero con los RBI en el formato rdquoROI r1 r2 c1 c2rdquo

Fichero con los vectores de propiedades LBP de cada RBI

Fichero con la clase asociada a cada RBI calculada por el clasificador

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

50 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

45 Localizacioacuten de los diacutegitos de la matriacutecula

451 Binarizacioacuten de la imagen

Una vez aplicado el clasificador para localizar la posible situacioacuten de la placa de la matriacutecu-

la tenemos que localizar los diacutegitos que la componen

Para esta tarea primeramente vamos a binarizar la imagen es decir la vamos a poner en

blanco (255) y negro (0) Para ello utilizamos funciones propias de IPP que permiten obtener el

umbral asociado a una imagen mediante el meacutetodo Otsu que ya comentamos 315

void ComputeThreshold_Otsu(

QVImageltuChar1gt image

uChar pThreshold

)

teniendo los siguientes paraacutemetros

image Imagen sobre la que queremos calcular el umbral

pThreshold Variable en la que se guardaraacute el valor del umbral

Resaltar que el valor soacutelo se calcula la zona de la imaacutegen donde se encuentra el ROI candida-

to a zona de matriacutecula lo cual nos daraacute un mejor resultado del umbral consiguiendo diferenciar

mucho mejor la zona de los diacutegitos de cualquier otra zona de la imagen completa

Obtenido este valor podemos pasar a binarizar la imagen cosa que haremos utilizando otra

funcioacuten de las IPP (323) que mostramos a continuacioacuten

void Threshold_LTValGTVal(

QVImageltuChar1gt origen

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

45 Localizacioacuten de los diacutegitos de la matriacutecula 51

QVImageltuChar1gt destino

uChar pThreshold

int value1

uChar pThreshold

int value2)

que utiliza los siguientes paraacutemetros

origen Imagen sobre la que vamos a binarizar

destino Imagen resultante binarizada

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value1 Valor al que pondremos la imagen y que esteacute por debajo del valor pThreshold

pThreshold Umbral que hemos obtenido anteriormente para binarizar

value2 Valor al que pondremos la imagen y que esteacute por encima del valor pThreshold

Ya tenemos binarizada la matriacutecula hecho importante para poder obtener de forma correcta

o al menos maacutes coacutemodamente los contornos que componen la imagen La imagen binarizada

(con un valor pThreshold de rdquo132rdquo) quedariacutea de la siguiente manera en la figura 47

Para obtener estos contornos volvemos a la libreriacutea IPP (323) con la que obtendremos una

lista de poliliacuteneas cada una de las cuales se corresponde a un contorno de la imagen y viene

dada por

QListltQVPolylinegt getConnectedSetBorderContoursThreshold(

QVImageltuChar1gt image

uChar pThreshold

)

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

52 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 47 Resultado de imagen binarizada

La representacioacuten como poliliacutenea permite obtener cualquier propiedad geomeacutetrica de las

figuras de la imagen sin excesivo coste computacional

Un ejemplo de poliliacutenea sobre la matriacutecula anterior seriacutea como el mostrado en la figura 48

Figura 48 Representacioacuten de poliliacuteneas

A veces interesa reducir el tamantildeo de un contorno eliminando puntos alineados y convir-

tieacutendolo en una poliliacutenea con una forma aproximadamente igual a la del contorno original El

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

45 Localizacioacuten de los diacutegitos de la matriacutecula 53

algoritmo IPE (Iterative Point Elimination) resuelve este problema y es el que aplicamos tam-

bieacuten en el programa y que nos ofrece el framework de QVision

La idea es calcular el aacuterea de error del triaacutengulo (perdido o ganado) al eliminar cada uno

de los puntos del contorno Se elimina el punto que genere menos error se recalculan sus dos

vecinos y se repite el proceso Cuando la eliminacioacuten de cualquier punto produzca un triaacutengulo

de error inaceptable detenemos el proceso

Con el paraacutemetro rdquoMinAreaIPErdquo podemos ajustar eacutesta aacuterea aunque se recomienda utilizar

un valor de 0 para obtener mejores resultados ya que sino el contorno se deforma a medida que

aumentamos eacutesta aacuterea Aparte de esto se lleva un control del nuacutemero de puntos de cada con-

torno para que no sea ni muy pequentildeo ni muy grande ya que es improbable que ahiacute se encuentre

un diacutegito de matriacutecula

Con un valor de 0 para el paraacutemetro MinAreaIPE obtenemos la figura 49

Figura 49 Aplicacioacuten de IPE con aacuterea igual a cero

algo muy diferente a si aplicamos un valor mayor de 0 para el aacuterea que quedariacutea como en

la figura 410

Una vez tenemos la lista de poliliacuteneas correctamente formada nos quedamos soacutelo con los

contornos externos de cualquier objeto desechando los internos que no nos interesan

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

54 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 410 Aplicacioacuten de IPE con aacuterea mayor que cero

Un dato importante que no hemos comentado auacuten es que el sistema desconoce totalmente

queacute tamantildeo tiene la posible placa de la matriacutecula No sabe a priori cuales son sus dimensiones

la uacutenica informacioacuten de la que dispone es de un ROI cercano a ella con lo que no sabe que

tamantildeo tienen tampoco los diacutegitos que la componen Hay que implementar alguacuten discriminador

de contornos para obtener los diacutegitos

El ROI que obtenemos del clasificador tiene unas dimensiones de 200x50 y en la mayoriacutea

de los casos suele estar sobre la zona de la matriacutecula casi centrado con ella Por ello la decisioacuten

que se ha tomado ha sido utilizar como regioacuten de trabajo a la hora de obtener los contornos

anteriores tan soacutelo la regioacuten que centrada en el ROI obtenido como el mejor candidato tiene

una altura de tres veces la del ROI y de ancho toda la imagen

Con estas medidas nos aseguramos de no dejarnos ninguacuten elemento de intereacutes fuera de nues-

tra regioacuten de trabajo Pero vamos a afinar un poco maacutes esta regioacuten

Graacuteficamente la regioacuten o el nuevo ROI de trabajo sobre la imagen seraacute la mostrada en la

figura 411

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

45 Localizacioacuten de los diacutegitos de la matriacutecula 55

Figura 411 Nueva zona de trabajo

452 Obtencioacuten del contorno de diacutegitos

Llegados a este punto lo que tenemos es una lista de contornos dados por poliliacuteneas pero

sin saber a queacute se corresponde cada una dentro de la imagen

Una manera de saber queacute poliliacutenea pertenece a cada contorno en la imagen binarizada es que

si partimos de lo comentado anteriormente de que el ROI candidato estaacute centrado en la zona

de la matriacutecula conocido este centro del ROI calculamos para cada poliliacutenea yendo punto a

punto cual se encuentra maacutes cercano a este centro del ROI

Calculadas todas las distancias nos quedamos con los dos contornos del aacuterea de trabajo

actual que maacutes cercanos se encuentren al centro Auacuten no sabemos queacute es un diacutegito y queacute no

por eso hay que seguir refinando un poco maacutes

Dados estos dos contornos calculamos sus dimensiones tanto el alto como el ancho Poste-

riormente nos quedamos con el ancho maacuteximo de cada uno de los contornos y el alto maacuteximo

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

56 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

lo que nos va a permitir construir una rdquocajardquo de ciertas dimensiones que utilizaremos para dis-

criminar al resto de los contornos

En la imagen 412 se han recuadrado los dos contornos maacutes cercanos al centro c y de donde

obtendremos la anchura y altura maacutexima

Figura 412 Contornos maacutes cercanos al centro del ROI candidato

Deacutemonos cuenta de que no todos los diacutegitos van a tener las mismas dimensiones en la ma-

triacutecula debido a la rotacioacuten de la placa de la matriacutecula en la imagen o ruido que se ha eliminado

anteriormente y que dificulte ver correctamente alguacuten diacutegito o su tamantildeo original Esto nos lleva

al problema generado anteriormente con la regioacuten de trabajo donde se localizaba la placa de la

matriacutecula

El discriminante de contornos va a consistir en que todos los contornos que sean maacutes pe-

quentildeos que un 90 de las dimensiones de la rdquocajardquo o mayores que un 110 de las dimensiones

de la rdquocajardquo queden excluidos y no se tengan en cuenta como diacutegitos candidatos de la placa de

la matriacutecula

Hecho esto deberiacutean quedarnos tan soacutelo los diacutegitos de la matriacutecula y puede que algunos

contornos que hayan superado la discriminacioacuten como por ejemplo la etiqueta de la Unioacuten Eu-

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

45 Localizacioacuten de los diacutegitos de la matriacutecula 57

ropea que suele acompantildear a los nuacutemeros de las matriacuteculas pero que no nos afectan

Este hecho lo podemos ver en la imagen 413

Figura 413 Contornos no deseados

Al final obtenemos una imagen como la de 414 para cada imagen del viacutedeo

o ampliado para maacutes detalle en la figura 415

453 OCR (Optical Character Recognition)

Llegado a este punto nos queda construir un reconocedor oacuteptico de caracteres rdquoOCRrdquo el

cual nos permitiraacute la clasificacioacuten de los contornos de diacutegitos obtenidos para obtener la matriacutecu-

la

El sistema seguido para construir este OCR es realizar un reconocedor de formas Esto no es

un problema trivial Si partimos de vectores de propiedades que son directamente los piacutexeles de

las imaacutegenes binarias que contienen las siluetas de las figuras la tarea de clasificacioacuten requeriraacute

conjuntos de aprendizaje de tamantildeo enorme para conseguir resultados aceptables La idea de

realizar un simple rdquosubmuestreordquo de las imaacutegenes puede conducir a una peacuterdida de detalle in-

admisible Es necesario un preprocesamiento adecuado de la informacioacuten original

Las siluetas son secuencias de puntos que podemos considerar como sentildeales complejas (para

rdquoempaquetarrdquo las dos coordenadas del plano en una uacutenica entidad matemaacutetica) perioacutedicas Esto

justifica una representacioacuten frecuencial unidimensional el contorno de una figura puede con-

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

58 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Figura 414 Obtencioacuten de contornos final

siderarse como la superposicioacuten de varios contornos baacutesicos de diferentes frecuencias (nuacutemero

de rdquooscilacionesrdquo en el recorrido completo)

En todo sistema de reconocimiento hay que especificar lo mejor posible el tipo de transfor-

maciones admisibles frente a las que las propiedades elegidas deben ser invariantes En este

caso deseamos distinguir formas de diacutegitos independientemente de su posicioacuten en el plano de

la rotacioacuten que hayan podido sufrir de su tamantildeo del punto de partida del contorno de la dis-

tancia concreta entre los puntos del contorno (siempre que esteacuten regularmente espaciados) y

por supuesto invariantes a pequentildeas deformaciones

Las componentes frecuenciales obtenidas directamente de la Transformada Discreta de Fouri-

er (C) del contorno Fi i = 0n minus 1 no son directamente invariantes a las anteriores transfor-

maciones Sin embargo es sencillo calcular propiedades derivadas di que siacute lo son

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

45 Localizacioacuten de los diacutegitos de la matriacutecula 59

Figura 415 Obtencioacuten de contornos ampliado

Para ello

Calculamos el valor absoluto de cada componente frecuencial eliminando la fase y por

tanto la dependencia del punto de partida y de la rotacioacuten de la figura ei = |Fi|

Juntamos la contribucioacuten positiva y negativa de cada frecuencia eprimei = ei + enminusi i =

1n2minus 1

Descartamos la frecuencia cero (valor medio de la sentildeal) que indica la posicioacuten del centro

de la figura

Dividimos todas las componentes por la de frecuencia 1 relacionada con el tamantildeo

global de la figura (elipse aproximadora) consiguiendo asiacute invarianza a escala di =

eprimei+1eprime1 parai = 1m

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

60 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

Nos quedamos con los descriptores de baja frecuencia consiguiendo asiacute invarianza a pe-

quentildeas deformaciones m = 10 o 15 por ejemplo El valor concreto de m dependeraacute de la

similitud de los nuacutemeros que deseamos distinguir Se puede ajustar observando la calidad

de la reconstruccioacuten de los contornos de intereacutes al eliminar diferente nuacutemero de compo-

nentes espectrales Pero con el nuacutemero de frecuencias definido es vaacutelido y suficiente para

distinguir los nuacutemeros

A la hora de clasificar los contornos utilizaremos el meacutetodo de rdquoMiacutenima distanciardquo Este

meacutetodo se aplicaraacute sobre los invariantes que hemos obtenido sobre una base de contornos y los

contornos que obtenemos en la imagen a estudiar

Para construir la base se han utilizado siluetas de diacutegitos pertenecientes a la base de viacutedeos

que tenemos Estas siluetas se han pasado a forma de poliliacutenea guardando en un fichero cada

uno de los puntos que la componen para posteriormente y utilizando Octave calcular los invari-

antes de cada diacutegito

Para cada contorno de los viacutedeos ocurre lo mismo se guardan en un fichero y se les calcula

sus invariantes

El meacutetodo de rdquoMiacutenima distanciardquo lo que hace es la resta de los vectores de invariantes de

los diacutegitos de la base con el vector de invariantes del contorno a clasificar se suman las restas

obtenidas entre cada par de vectores y obteniendo diez valores el diacutegito que obtenga menor

valor seraacute el elegido para representar al contorno en cuestioacuten como queda representado en la

siguiente foacutermula

nsumi=0

(Xi minusDi) (44)

Xi = Invariantes del diacutegito a clasificar

Di = Invariante del diacutegito de la base

n = Nuacutemero total de invariantes de cada diacutegito

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

45 Localizacioacuten de los diacutegitos de la matriacutecula 61

Cabe destacar que tan solo realizamos una clasificacioacuten de caracteres numeacutericos dejando a

un lado la clasificacioacuten alfabeacutetica de las letras de las matriacuteculas lo cual puede ser una viacutea futura

para el presente proyecto

Otro tema importante que se ha detectado durante las pruebas es que es necesario usar la

totalidad de los puntos de los contornos Anteriormente explicaacutebamos el algoritmo IPE para

eliminacioacuten de puntos innecesarios Por ello solo aplicaremos el algoritmo de eliminacioacuten para

realizar el dibujado graacutefico de los contornos pero no para el calculo de los contornos que luego

seraacuten usados en el OCR

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

62 CAPIacuteTULO 4 DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

5CONCLUSIONES

51 Una vista atraacutes

El objetivo inicial de este proyecto era crear un sistema capaz de obtener los contornos los

diacutegitos de una imagen en la que hay contenida una placa de matriacutecula de automoacutevil El sistema

desarrollado hace uso de entrada de viacutedeo en formato AVI o MPEG con secuencias de imaacute-

genes y tambieacuten funcionariacutea con imaacutegenes sueltas para llevar a cabo el reconocimiento

52 Dificultades y limitaciones

Algunas de las dificultades o limitaciones en el sistema que se han podido encontrar han

sido

Aparicioacuten de objetos delante de las placas de matriacuteculas como hierbas ramas arbustos

etc que podriacutean dificultar el reconocimiento de alguacuten diacutegito de la placa de la matriacutecula

Lo ideal es trabajar con viacutedeos de dimensiones de 720x576 para que se ajuste mejor a

todo el desarrollo del sistema a la hora de realizar las pruebas y evitar alteraciones en la

salida del sistema

63

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

64 CAPIacuteTULO 5 CONCLUSIONES

En algunas imaacutegenes o frames podriacutean encontrarse zonas de blanco tales como pasos de

cebra coches de color blanco-grisaacuteceo reflejos luminosos etc que pueden entorpecer la

correcta deteccioacuten de la placa al tener caracteriacutesticas muy similares

En la deteccioacuten de la placa de matriacutecula soacutelo vamos a poder detectar una placa de ma-

triacutecula En caso de que en una misma imagen aparecieran dos matriacuteculas el clasificador

se decantariacutea por una de ellas que seriacutea la que mejor se ajuste a la textura de placa de

matriacutecula que ha reconocido en el aprendizaje

53 Viacuteas futuras

Propondremos las siguientes viacuteas futuras para continuar con el trabajo desarrollado en este

proyecto de fin de carrera

Integracioacuten de Octave dentro del mismo programa realizando el clasificador con fun-

ciones de Octave pero en lenguaje CC++ para que la parte de la clasificacioacuten se ejecute

de manera maacutes raacutepida

Posibilidad de reconocimiento de maacutes de una placa de matriacutecula dentro de la imagen o

frame

Reconocimiento de los diacutegitos alfabeacuteticos de la matriacutecula dentro de la placa mostraacutendolos

en texto ascii haciendo uso de un OCR

Ampliacioacuten de la base de datos de viacutedeos introduciendo otros con maacutes dificultades para

la correcta localizacioacuten de la placa

Deteccioacuten y emborronamiento de la zona de la placa de la matriacutecula como medida de

privacidad

54 Objetivos cumplidos

En conclusioacuten consideramos que se han cumplido los objetivos propuestos en el proyecto

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

54 Objetivos cumplidos 65

Se ha generado una base de viacutedeos para las pruebas y entrenamientos

Se ha construido un meacutetodo que permite la correcta localizacioacuten de la zona de la placa de

la matriacutecula haciendo uso del clasificador construido

Se ha construido un sistema que permite obtener los ROIrsquos de cada imagen y sus vectores

de propiedades LBP asociados

Se ha construido un sistema que obtiene los contornos de los diacutegitos de la matriacutecula

Se ha construido un sistema que obtiene los diacutegitos numeacutericos de la matriacutecula

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

66 CAPIacuteTULO 5 CONCLUSIONES

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

AMANUAL DE USUARIO

A1 Ejecucioacuten del programa

En este apeacutendice vamos a mostrar un manual de uso del programa junto con las opciones

que podemos modificar utilizando paraacutemetros

La orden baacutesica de ejecucioacuten del sistema seriacutea

pfc-reconocedor --URL=rsquorsquoruta del videorsquorsquo

--Entreno=rsquorsquofichero de entrenamientorsquorsquo

Donde

URL Es la ruta del viacutedeo del que queremos obtener las matriacuteculas Tambieacuten podriacutea ser un

conjunto de imaacutegenes sueltas

Entreno Es la ruta del fichero que utilizaremos como entrenamiento para el aprendizaje del

clasificador

Los paraacutemetros configurables que tenemos y que podemos obtener con la opcioacuten rdquominusminushelprdquo

son los siguientes

67

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

68 APEacuteNDICE A MANUAL DE USUARIO

minusminusmax-worker-iterations=int (def -1) Establece el nuacutemero maacuteximo de iteracionesframes a

ejecutar

minusminusstats-enabled=bool Habilita las estadiacutesticas de CPU del worker

minusminusPR-file-name=text Nombre del fichero de Posibles ROIs (ROIS candidatos)

minusminusEntreno=text Nombre del fichero de entreno del clasificador

minusminusWRB=int (def 200) Ancho del rectaacutengulo de barrido RBI

minusminusHRB=int (def 50) Alto del rectaacutengulo de barrido RBI

minusminusSX=int (def 25) Offset en el eje X del rectaacutengulo de barrido (RBI)

minusminusSY=int (def 25) Offset en el eje Y del rectaacutengulo de barrido (RBI)

minusminusverbose=int (def 0) Mostrar mensajes por pantalla sobre el estado de la ejecucioacuten

minusminusthreshold=double (def 4) Umbral de LBP para el entorno del pixel central

minusminusMinAreaIPE=int (def 0) Area miacutenima para mantener puntos en el algoritmo IPE

minusminusminPoints=int (def 100) Miacutenim nuacutemero de puntos a mantener en el algoritmo IPE

minusminuspThreshold=int (def 128) Umbral binarizacioacuten

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

BOTRAS TEacuteCNICAS DE

SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

Para el proyecto hemos utilizado la teacutecnica Otsu (315) que obtiene unos resultados exce-

lentes pero podriacuteamos haber utilizado otras teacutecnicas como alternativas ([7] y que presentamos

en este apeacutendice

B1 Meacutetodo basado en bordes

Los piacutexeles del borde tendraacuten histograma regular con equiprobabilidad de objeto y borde

donde soacutelo se considera el histograma de los piacutexeles del bordes del objeto de intereacutes

La deteccioacuten de bordes es omnidireccional Laplaciana Soacutelo se consideraraacuten piacutexeles cuya

Laplaciana sea menor que un cierto valor

69

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

70APEacuteNDICE B OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE

UMBRALIZACIOacuteN

B2 Buacutesqueda iterativa

Busca zonas del histograma coherentes desde el punto de vista de la media

Es oacuteptimo para el problema de binarizacioacuten de imaacutegenes minimizando el error medio cuadraacuteti-

co respecto a la media de cada poblacioacuten

B3 Media

Como su nombre indica esta teacutecnica consiste en calcular la media de todos los piacutexeles

B4 Maacuteximo y miacutenimo

Este algoritmo consiste en seguir estos tres pasos

1 Localizar el maacuteximo del histograma

2 Localizar el segundo maacuteximo se refiere al local

Maacuteximo producto del valor del histograma por distancia

3 Localizar el miacutenimo entre ellos

B5 Otras teacutecnicas

Miacutenima Varianza Maacutexima Correlacioacuten Maacutexima Entropiacutea Miacutenimo error de clasificacioacuten

Teacutecnicas basadas en loacutegica borrosa Meacutetodo de Chow-Kaneko Modelos basados en relajacioacuten

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

CTRANSFORMADA DE FOURIER

La transformada de Fourier se utiliza para pasar al laquodominio frecuencialraquo una sentildeal para asiacute

obtener informacioacuten que no es evidente en el laquodominio temporalraquo Se demuestra matemaacutetica-

mente que una sentildeal perioacutedica se puede descomponer en una suma de senos y cosenos formando

una base ortogonal de esta forma sentildeales como la voz o las ondas se pueden descomponer en

un sumatorio de sentildeales trigonomeacutetricas El conjunto de constantes que multiplican a cada fre-

cuencia forman el espectro de frecuencias

C1 Propiedades de la Transformada de Fourier

Vamos a comentar algunas de las propiedades de la Transformada de Fourier

Linealidad La transformada de la suma de varias sentildeales ponderadas se obtiene directamente

a partir de las transformadas de cada componente

z[α middot f(x) + β middot g(x)] = α middotz(ω) + β middotG(ω)

En el caso discreto la transformacioacuten puede expresarse simplemente como un producto

matriz vector (aunque no es computacionalmente tan eficiente como la FFT)

Separabilidad dimensional La transformada de una sentildeal multidimensional se puede calcular

mediante sucesivas transformaciones 1D P ej la transformada de una imagen se puede

71

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

72 APEacuteNDICE C TRANSFORMADA DE FOURIER

hacer calculando la transformada de todas las filas y luego la de todas las columnas resul-

tantes del paso anterior

Traslacioacuten Al desplazar la sentildeal en el espacio (lo que en el caso de una funcioacuten muestreada por

la suposicioacuten de periodicidad es equivalente a rdquorotarrdquo la lista de muestras) la transformada

soacutelo cambia su fase pero no el moacutedulo Es loacutegico porque la fase de la onda es relativa a la

situacioacuten maacutes o menos arbitraria del origen de coordenadas La energiacutea de las diferentes

componentes frecuenciales indicada por el moacutedulo de las coordenadas frecuenciales no

cambia

zf(xminus a) = eiaω middotz(ω)zminus1 middotz(ω minus φ) = eminusiφx middot f(x) (C1)

Escalado Al estirar la funcioacuten en el eje x su transformada no cambia maacutes que en un rdquoreajusterdquo

del tamantildeo de las frecuencias que teniacutea anteriormente

zf(ax) =1

|a|z(ω

a) (C2)

Rotacioacuten (en 2D) Debido a que cada componente F(u v) representa la contribucioacuten de una

onda plana en direccioacuten (u v) si rotamos una rdquoimagenrdquo la transformada rota exactamente

igual

Valor medio La frecuencia cero (componente constante) nos da la media de la sentildeal

F (0) = Ef(x) (C3)

Dualidad Las propiedades del operador F y de su inverso son esencialmente iguales El do-

minio espacial y frecuencial son intercambiables

f(x) minusrarrz z(ω) minusrarrz f(minust) (C4)

Parseval La transformacioacuten es ortonormal y por tanto preserva la normaintR

|f(x)|2dx =

intR

|z(ω)|2dω (C5)

Simetriacutea conjugada Si la sentildeal es real cada pareja de frecuencias contribuye a una componente

tipo coseno

z(minusω) = z(ω) (C6)

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

C2 Optimizacioacuten de la Transformada de Fourier 73

Periodicidad DFT Por el fenoacutemeno de aliasing la DFT es perioacutedica y las frecuencias negativas

se confunden con las positivas

zminusw = znminusω (C7)

C2 Optimizacioacuten de la Transformada de Fourier

En el entorno Octave hacemos uso de la Transformada de Fourier pero en su versioacuten Raacutepida

(FFT) [3] El algoritmo FFT lo uacutenico que busca es resolver de la manera maacutes eficiente posible

la siguiente expresioacuten

X[n] =1

N

Nminus1sumn=0

X[N ] middot eminusjkΩn (C8)

donde como sabemos

Ω = 2πN (C9)

La evaluacioacuten directa de este sumatorio implicaN2 multiplicaciones Haciendo una serie de

reordenaciones conseguiremos con la FFT reducirlo a N lowast Log2(N) operaciones

Primero se deben separar las muestras pares y las impares

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn +

N2minus1sumn=0

X[2N + 1] middot eminus(2n+1)jkΩn) (C10)

A continuacioacuten sacamos fuera de el sumatorio impar la exponencial eminusjkΩ

X[n] =1

N(

N2minus1sumn=0

X[2N ] middot eminus2jkΩn + eminusjkΩ +

N2minus1sumn=0

X[2N + 1] middot eminus2jkΩn) (C11)

Si paramos a observar esta expresioacuten podemos ver que si ponemos Y = FFT (x[0] x[2] x[4] x[Nminus

2]) y Z = FFT (x[1] x[3] x[5] x[N minus 1]) entonces

X[k] =1

2(Y [k] + eminusjkΩ middot Z[k]) si0 le k lt N2 (C12)

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

74 APEacuteNDICE C TRANSFORMADA DE FOURIER

X[k] =1

2(Y [k minusN2]minus eminusjkΩ middot Z[k minusN2]) siN2 le k lt N (C13)

El problema ha sido reducido al caacutelculo de dos FFTs de tamantildeo N2 y realizar N multiplica-

ciones complejas Repitiendo este proceso reiteradamente conseguimos extraer la transformada

de X

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

Bibliografiacutea

[1] B Borba C Vasconcelos M P de Albuquerque M P de Albuquerque I A Esquef and

J M de Seixas Localization of Brazilian Vehicles Plates Using Frequency Analysis In

SIBGRAPI page 408 2002

[2] M I Cano Tarruella Guiacutea sobre la implantacioacuten de una tasa por congestioacuten en Barcelona

Tesina Universidad Politeacutecnica de Cataluntildea 2004

[3] La web de Pacop Ingenieriacutea Explicacioacuten del algoritmo FFT httpwwwpacop

nettransformada-de-fourier-ffthtml

[4] Tasa de Congestioacuten en Londres Website httpwwwtflgovuk

[5] J M Loacutepez Fernandez J Gozaacutelez C Galindo and V Areacutevalo Reconocimiento automaacuteti-

co de matriacuteculas usando operadores morfoloacutegicos y muacuteltiples redes neuronales XXVII

Jornadas de Automaacutetica Universidad de Almeriacutea pages 627ndash632 2006

[6] R C Marques FNtilde Medeiros J L Silva and C M Laprano License Vehicle Plates

Localization Using Maxixum Correlation Structural Syntactic and Statistical Pattern

Recognition pages 470ndash476 2004

[7] R Martiacutenez de Dios Teacutecnicas de Segmentacioacuten Master en Automaacutetica Roboacutetica

y Telemaacutetica httpwwwesi2uses~jdediosasignaturasVision

html

[8] M P T Ojala and D Harwood A comparative study of texture measures with classi-

fication based on feature distributions Pattern Recognition Performance Evaluation of

Texture Measures with Classification Based on Kullback Discrimination of Distributions

pages 51ndash59 1994

[9] N Otsu A threshold selection method from gray level histograms IEEE Trans Systems

Man and Cybernetics 962ndash66 Mar 1979

75

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier

76 BIBLIOGRAFIacuteA

[10] J Parker and P Federl An Approach To Licence Plate Recognition 1996 http

hdlhandlenet188046439

[11] L M Pechuaacuten Uso de ontologiacuteas para guiar el proceso de segmentacioacuten de imaacutegenes

Proyecto Fin de Carrera 2007 httpdigitumumesxmluibitstream

102018611memoriapdf

[12] M Pietikaumlinen G Zhao A D o E Hadid and I E U of Oulu Local Binary Pattern

Approach to Computer Vision 2004

[13] A Ruiz Garciacutea Apuntes de las asignaturas de Sistemas de Percepcioacuten y Visioacuten por Com-

putadorUniversidad de Murcia Facultad de Informaacutetica 2009

[14] J J Ruiz Lendinez T J Rubio Campos and J M Lara Cabeza Extraccioacuten de pun-

tos de control mediante caracterizacioacuten textual en procesos de conflacioacuten vectorortoim-

agen 2007 httpwwwmappinginteractivocomplantilla-ante

aspid_articulo=1443

[15] N Vaacutezquez MNtildeakano and H Peacuterez-Meana Automatic System for localization and

recognition of vehicle plate number Applied Research and Technology pages 63ndash77

2002

  • INTRODUCCIOacuteN Y REFERENCIAS HISTOacuteRICAS
    • Introduccioacuten
      • Los sistemas RAPM como aplicacioacuten praacutectica de Inteligencia Artificial
      • Aspectos matemaacuteticos de los sistemas RAPM
      • Aspectos fiacutesicos en los sistemas RAPM
        • Estado del arte
        • Organizacioacuten del documento
          • ANAacuteLISIS Y OBJETIVOS
            • Objetivos y alcance del proyecto
            • Queacute no es objetivo del proyecto
            • Plan de trabajo
              • TEacuteCNICAS Y HERRAMIENTAS UTILIZADAS
                • Teacutecnicas Utilizadas
                  • Local Binary Patterns (LBP)
                  • Clasificacioacuten mediante pseudoinversa
                  • Obtencioacuten de los vectores de propiedades
                  • Obtencioacuten del contorno de los diacutegitos
                  • Teacutecnica de binarizacioacuten de Otsu
                    • Herramientas Utilizadas
                      • Eleccioacuten del Lenguaje
                      • QVision
                      • Intelreg Integrated Perfomance Primitives IPP
                      • QT Library
                      • Octave
                          • DISENtildeO Y RESOLUCIOacuteN DEL PROYECTO
                            • Estructura del Proyecto
                            • Construccioacuten de viacutedeos de entrenamiento
                            • Obtencioacuten de los ROIs de las matriacuteculas
                            • Construccioacuten del clasificador
                              • Generacioacuten del fichero de propiedades
                              • Construccioacuten del clasificador en Octave
                              • Aplicacioacuten del clasificador
                                • Localizacioacuten de los diacutegitos de la matriacutecula
                                  • Binarizacioacuten de la imagen
                                  • Obtencioacuten del contorno de diacutegitos
                                  • OCR (Optical Character Recognition)
                                      • CONCLUSIONES
                                        • Una vista atraacutes
                                        • Dificultades y limitaciones
                                        • Viacuteas futuras
                                        • Objetivos cumplidos
                                          • MANUAL DE USUARIO
                                            • Ejecucioacuten del programa
                                              • OTRAS TEacuteCNICAS DE SEGMENTACIOacuteN MEDIANTE UMBRALIZACIOacuteN
                                                • Meacutetodo basado en bordes
                                                • Buacutesqueda iterativa
                                                • Media
                                                • Maacuteximo y miacutenimo
                                                • Otras teacutecnicas
                                                  • TRANSFORMADA DE FOURIER
                                                    • Propiedades de la Transformada de Fourier
                                                    • Optimizacioacuten de la Transformada de Fourier