View
3
Download
0
Category
Preview:
Citation preview
PROYECTO FIN DE CARRERA
RECONOCIMIENTO DE IMÁGENES A
TRAVÉS DE SU CONTENIDO
AUTOR: Antonio Peralta Sáez MADRID, Junio 2009
UNIVERSIDAD PONTIFICIA COMILLAS
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA (ICAI)
INGENIERO EN INFORMÁTICA
Autorizada la entrega del proyecto del alumno/a: Antonio Peralta Sáez
EL DIRECTOR DEL PROYECTO Rafael Palacios Hielscher
Fdo.: …………………… Fecha: ……/ ……/ ……
Vº Bº del Coordinador de Proyectos David Contreras Bárcena
Fdo.: …………………… Fecha: ……/ ……/ ……
I
RESUMEN
Los buscadores de imágenes actuales, como Google images, se basan principalmente en el
nombre del archivo que contiene la imagen, en el nombre del enlace y en el texto que aparece
en la página donde se encuentra la imagen. Es decir que la búsqueda se basa en información
de tipo texto y no en información gráfica.
El objetivo de este proyecto es desarrollar algoritmos de tratamiento digital de imágenes
que permitan clasificar fotografías en base al contenido gráfico.
La idea para el desarrollo de este proyecto se basa en la creación de un conjunto de
imágenes para posteriormente segmentar la imagen, y extraer de ella objetos y fondos
conocidos, y clasificarlas de acuerdo a los elementos localizados.
En este proyecto se ha desarrollado tres algoritmos de alto nivel para el
reconocimiento de los siguientes elementos:
Imágenes con cielo. Imágenes con césped. Imágenes con caras.
Para la identificación de los dos primeros casos, se combina la información de dos
algoritmos de más bajo nivel que identifican el color y la textura. Para la identificación
del color, primero se realiza un estudio de las proyecciones RGB y HSV, en el cual se
analiza cual de los dos métodos es más apropiado.
Para la clasificación de un color se calcula el grado de pertenencia de un punto a
funciones de densidad FDP obtenidas experimentalmente a partir de imágenes reales.
Fig 3-Cielo25
Fig 1- Cesped8
Fig 2- Rostro3
II
La detección de las texturas se realiza mediante el análisis del histograma de la imagen
en escala de grises.
Por último, el algoritmo localizador de caras, se basa en la identificación previa de
los ojos, donde se aplican restricciones de tipo geométrico. A continuación se intenta
identificar una boca, en la parte inferior de los ojos centrado entre ambos. En caso de
localizar afirmativamente los ojos y la boca, en la geometría apropiada, la respuesta del
algoritmo será afirmativa.
A continuación se muestra algunos resultados obtenidos con los algoritmos cielos y
rostros, tras un análisis completo de la fotografía.
Todos estos algoritmos se desarrollan en matlab, debido a la gran capacidad de
cálculo matricial que ofrece y a la facilidad de trabajo con imágenes gracias a la Image
Precessing Toolbox.
Todos los algoritmos desarrollados han sido evaluados con una librería de imágenes
formada por fotografías de diversos contenidos, iluminación, ubicación geometría, etc.
Fig 5-Resultados del algoritmo
de cielo (verde indica
clasificado como cielo)
Fig 4- Resultado obtenido tras analizar la
fotografía con el algoritmo rotro.
III
ABSTRACT
The current search engine images, such as Google image, base their search on the
file name that contains the picture, link name, or the text of the website in which the
picture appears. In other words, they base their search on text information, and not on
graphic information.
The objective of this project is to develop digital image processing algorithms to
classify pictures in accordance with the graphic information.
The main idea of this project is to create a set of images, segment them, and extract
the familiar objects and backgrounds from the pictures, in order to classify them.
In this project, three high level algorithms have been developed to recognize the
following elements:
Image with sky Image whith grass Image whith face
The information of two low level algorithms, that indentify the color and the
texture, is combined to identify images with sky, and image with grass. A study of the
RGB and HSV projections is carried out to identify the color; this study analyzes which
method, RGB or HSV, is more appropriated.
The grade of membership of a point to a density function FDP (obtained
experimentally throw real images) is calculated to classify the color.
Fig 3-Cielo25
Fig 2- Cesped8
Fig 1- Rostro3
IV
The detection of textures is carried out by means of the analysis of the grey scale
image histogram.
Finally, the algorithm that locates faces applies geometric restrictions to identify the
eyes. After identifying the eyes, the algorithmic tries to identify the mouth under the
eyes, and centered between them. In the case of locating the eyes and mouth in the
correct geometry, the algorithm’s answer will be affirmative.
Next, the results of the sky and face algorithms are shown after a complete analysis
of the pictures.
All of these algorithms were developed in Matlab owing to its high capacity of
matrix calculation, and its facility of working with images due to the Image Processing
Toolbox.
Every one of the algorithms has been evaluated using an image library that consists
of pictures of several contents, illumination, geometric location, etc…
Fig 5- Result of sky algorithm
(green means classified as sky)
Fig 4- Result of the face algorithm.
V
1 Introducción y estado del arte .................................................................... - 1 -
1.1 Reconocimiento de caracteres. ............................................................... - 3 -
1.1.1 Introducción .......................................................................................... - 3 -
1.1.2 Arquitectura de reconocimiento de caracteres manuscritos ................. - 5 -
1.1.3 Extracción de características ................................................................ - 7 -
1.1.4 Comparación......................................................................................... - 8 -
1.1.5 Conclusiones ........................................................................................ - 9 -
1.2 Reconocimiento de firmas .................................................................... - 10 -
1.2.1 Introducción ........................................................................................ - 10 -
1.2.2 Verificación de firma off-line ............................................................. - 11 -
1.2.3 Descripción del sistema ...................................................................... - 12 -
1.2.4 Modelos HMM ................................................................................... - 18 -
1.2.5 Resultados obtenidos .......................................................................... - 19 -
1.2.6 Conclusiones ...................................................................................... - 21 -
1.3 Reconocimiento de rostros y expresiones faciales ............................... - 22 -
1.3.1 Introducción ........................................................................................ - 22 -
1.3.2 Descripción del sistema ...................................................................... - 22 -
1.3.3 Programa............................................................................................. - 30 -
1.3.4 Resultados .......................................................................................... - 31 -
2 Identificación de necesidades......................................................................... - 33 -
2.1 Introducción IDN ...................................................................................... - 33 -
2.2 Documento de concept del sistema............................................................ - 34 -
2.2.1 Objetivos del sistema .......................................................................... - 34 -
2.2.2 Alcance del sistema ............................................................................ - 35 -
2.2.3 Topología de usuario finales .............................................................. - 36 -
VI
2.2.4 Restricciones....................................................................................... - 36 -
3 Plan de gestión ............................................................................................ - 38 -
3.1 Descripción general del proyecto ............................................................. - 38 -
3.2 Diagrama de actividades a realizar .......................................................... - 39 -
3.3 Descripción detallada de las actividades .................................................. - 40 -
3.4 Diagrama del equipo de trabajo ............................................................... - 46 -
3.5 Descripción de actividades de cada integrante......................................... - 47 -
3.6 Estimación del esfuerzo de cada integrante .............................................. - 51 -
3.7 Presupuesto ............................................................................................... - 52 -
3.8 Planificación de las actividades ................................................................ - 53 -
4 Estudio de arquitectura ................................................................................. - 55 -
4.1 Introducción E-ARQ .................................................................................. - 55 -
4.2 Hardware/software del sistema actual ...................................................... - 57 -
4.3 Especificaciones de las aternativas. .......................................................... - 59 -
4.4 Evaluación de las alternativas .................................................................. - 65 -
4.4.1 Evaluación técnica .............................................................................. - 65 -
4.4.2 Evaluación económica ........................................................................ - 66 -
4.5 Selección de la alternativa ........................................................................ - 67 -
5. Reconocimiento de colores ............................................................................ - 69 -
5.1 Introducción .............................................................................................. - 69 -
5.2 Modelo RGB .............................................................................................. - 79 -
5.3 Modelo HSV .............................................................................................. - 81 -
5.4 Estudio RGB del Cielo .............................................................................. - 83 -
5.5 Estudio RGB del césped ............................................................................ - 88 -
5.6 Estudio RGB: cielo vs césped .................................................................... - 92 -
5.7 Conclusión RGB ........................................................................................ - 96 -
5.8 Estudio HSV: Cielo.................................................................................... - 98 -
VII
5.9 Estudio HS Césped .................................................................................. - 100 -
5.10 HS Cielo y Césped ................................................................................. - 101 -
5.11 Estudio de conflictos ............................................................................. - 102 -
5.11.1 Conflictos en RGB: interior ........................................................... - 102 -
5.11.2 Conflictos en RGB: fondo marino .................................................. - 107 -
5.11.3 Conflictos en HSV: interior ............................................................ - 111 -
5.11.4 Conflictos en HSV: fondo marino .................................................. - 112 -
5.12 Elección RGB o HSV ............................................................................. - 113 -
5.12.1 RGB ................................................................................................ - 114 -
5.12.2 HSV ................................................................................................ - 117 -
5.12.3 Conclusión ...................................................................................... - 119 -
5.13 Descripción del algoritmo. .................................................................... - 120 -
5.13.1 Algoritmo azul ................................................................................ - 120 -
1.13.1 Algoritmo verde ............................................................................. - 122 -
6. Reconocimiento de texturas ........................................................................ - 124 -
6.1 Introducción ............................................................................................ - 124 -
6.2 A través de su histograma ....................................................................... - 127 -
6.2.1 Textura lisa ....................................................................................... - 127 -
6.2.2 Textura binaria.................................................................................. - 135 -
6.2.3 Textura rugosa .................................................................................. - 142 -
6.3 Descripción del algoritmo textura........................................................... - 149 -
6.4Texturas a través de la función statxture[F1] ......................................... - 153 -
6.4.1 Textura lisa ....................................................................................... - 154 -
6.4.2 Textura binaria.................................................................................. - 155 -
6.4.3 Textura rugosa .................................................................................. - 156 -
7. Análisis combinado de color y texturas ..................................................... - 158 -
7.1 Descripción del algoritmo reconocimiento de cielo ............................... - 159 -
VIII
7.2 Descripción del algoritmo para reconocimiento de césped. ................... - 161 -
8. Detector caras .............................................................................................. - 163 -
8.1 Introducción ............................................................................................ - 163 -
8.2 YCbCr ...................................................................................................... - 164 -
8.3 Descripción algoritmo implementado ..................................................... - 166 -
8.3.1 Función rostro. .................................................................................. - 166 -
8.3.2 Función ojos ..................................................................................... - 167 -
8.3.3 Función labio .................................................................................... - 170 -
8.3.4 función Localizador (basado en geometrías) .................................... - 173 -
9. Pruebas ......................................................................................................... - 179 -
9.1 Evaluación del algoritmo de detección de cielo...................................... - 179 -
9.2 Evaluación del algoritmo de césped ....................................................... - 182 -
9.3 Pruebas del algoritmo de identificación textura ..................................... - 185 -
9.4 Detalles de evaluación del algoritmo de reconocimiento de cielo .......... - 187 -
9.5 Pruebas algoritmo reconocimiento ......................................................... - 193 -
Conclusiones ..................................................................................................... - 198 -
Algoritmos cielo y césped .............................................................................. - 198 -
Algoritmo de detección de rostros ................................................................. - 199 -
Bibliografía ....................................................................................................... - 200 -
Definiciones e imagenes ................................................................................ - 200 -
Libros de consulta ......................................................................................... - 202 -
Anexo A. Biblioteca imágenes cielo. ............................................................... - 203 -
Anexo B. Biblioteca imágenes césped. ........................................................... - 211 -
Anexo C. Biblioteca imágenes interior. ......................................................... - 216 -
Anexo D. Biblioteca imágenes submarinas ................................................... - 220 -
Anexo E. Biblioteca imágenes rostros. ........................................................... - 222 -
Anexo F. Código del algoritmo cielo .............................................................. - 228 -
IX
Anexo G. Codigo del algoritmo reconocimiento de caras. ........................... - 233 -
Reconocimiento de imágenes a través de su contenido
1
1 Introducción y estado del arte
Los buscadores de imágenes actuales, como Google images, se basan principalmente en el
nombre del archivo que contiene la imagen, en el nombre del enlace y en el texto que aparece
en la página donde se encuentra la imagen. Es decir que la búsqueda se basa en información
de texto y no en información gráfica.
En la actualidad, Google está desarrollando algoritmos basados en el contenido de las
imágenes reconociendo formas y analizando su parecido, para ello centran en un subconjunto
de las imágenes que Google ha catalogado, ya que el análisis y comparación de imágenes
digitales requiere de un coste computacional tremendo. Realizar esta labor para todas las
imágenes indexadas por el buscador sería una tarea casi imposible, a día de hoy.
El campo del procesamiento de imágenes está continuamente evolucionando.
Durante los últimos años ha habido un incremento significativo en el interés en
campos como morfología de imágenes, redes neuronales artificiales, procesamiento
de imágenes a color y/o en escalas de grises, compresión de datos de imágenes,
reconocimiento de imágenes y sistemas de análisis de imágenes basados en
conocimiento.
El reconocimiento es un atributo básico del ser humano, así como de
otros organismos vivos. Este reconocimiento es generado normalmente por medio de
patrones.[D1]
Entre las principales aplicaciones del reconocimiento de formas cabe destacar
las siguientes:
• Reconocimiento de caracteres. [D2]
• Análisis de documentos.
• Reconocimiento de firmas.[D3]
• Reconocimiento de huellas dactilares.
• Reconocimiento de piezas industriales.
• Reconocimiento de texturas.
• Detección de defectos para control de calidad.
Reconocimiento de imágenes a través de su contenido
2
• Reconocimiento de rostros y expresiones faciales.[D4]
A continuación se muestran a modo de introducción y de forma breve algunos
estudios realizado sobre estos temas. Estos mismos estudios sirven para visualizar como
se encuentra el estado del arte sobre estos temas en la actualidad.
Reconocimiento de imágenes a través de su contenido
3
1.1 Reconocimiento de caracteres.
1.1.1 Introducción
[D2] En la actualidad el desarrollo de sistemas de reconocimiento de escritura es
realizado casi en su totalidad, por empresas comerciales, quienes proponen el uso de
estilos de escritura predeterminados para que el reconocimiento sea válido, requiriendo
para ello del aprendizaje del estilo por parte del dibujante. Con lo mencionado
anteriormente se pretende hacer notar que los problemas en el área del reconocimiento
de escritura son numerosos, basta con que dos dibujantes distintos escriban la misma
palabra para comprobar que hay varias características que varían y que es preciso
considerar para lograr el reconocimiento. Por esto, el involucrar diversos algoritmos de
segmentación y extracción de características se vuelve necesario, sin embargo esto
mismo ocasiona un incremento considerable en el trabajo y en la experiencia requerida
para darle solución.
El estudio en ésta área no es algo reciente, ya desde los años setenta se han
realizado trabajos al respecto, y alrededor del mundo hay muchas personas dedicadas a
investigar un pequeño aspecto sobre el reconocimiento de caracteres, ya sea sobre
segmentación, reconocimiento de patrones, contexto, semántica, etc., entre muchas otras
áreas, que pueden a su vez dirigirse hacia alfabetos de distintos idiomas. En el idioma
español se han desarrollado pocos trabajos de este tipo, ya que la gran mayoría de las
soluciones comerciales se encuentran en inglés. El tema es extenso, pues comprende
desde la captura de la escritura, el estudio o diseño de los medios electrónicos para
realizarla, el análisis de los datos y la comunicación con el dibujante por medio de la
programación de interfaces, hasta la validación y comprobación de los resultados.
Considerando que existe una gran cantidad de métodos para realizar cada parte del
proceso, según el enfoque dado, se requiere sin duda del trabajo en equipo no sólo de
ingenieros, sino de personas de diversas disciplinas especializadas en áreas
relacionadas.
A continuación se describe un sistema de reconocimiento de caracteres por
regiones, en particular las cinco vocales. La captura se realiza mediante una tableta
Reconocimiento de imágenes a través de su contenido
4
digitalizadora, y los trazos de la escritura se guardan como imágenes en formato bmp. El
algoritmo se basa en una estrategia por regiones en el dominio de la imagen y brinda al
escritor/dibujante una mayor facilidad en la escritura, en cuanto a que se respeta la
personalidad de ella, pues no se requiere del uso de un estilo predeterminado. Los
resultados de la evaluación preliminar del algoritmo propuesto, sobre una pequeña base
de datos, mostraron una alta tasa de reconocimiento para las diferentes vocales. Con la
finalidad de situar el algoritmo propuesto dentro del contexto de la arquitectura general
de un sistema de reconocimiento de caracteres manuscritos. El diseño e implementación
del algoritmo, así como los resultados de la evaluación de su desempeño se presentan a
continuación.
Reconocimiento de imágenes a través de su contenido
5
1.1.2 Arquitectura de reconocimiento de caracteres manuscritos
La arquitectura de un sistema de reconocimiento de escritura manuscrita abarca
desde la captura de la imagen inicial de la escritura, hasta el reconocimiento de la
misma. El sistema se puede dividir de manera general en las secciones de pre-
procesamiento, reconocimiento, y post-procesamiento, tal como se encuentran divididos
la mayoría de los sistemas de reconocimiento de la escritura manuscrita. El diagrama de
la arquitectura para el reconocimiento de la escritura se muestra en la Fig. 1.
Fig 6- Diagrama a bloques del sistema
El proceso inicia con la adquisición de los datos mediante una tableta
digitalizadora. El escritor/dibujante utilizó la pluma incorporada y una interfaz gráfica
hecha en Matlab, con lo cual se obtuvieron trazos de hasta seis pixeles de ancho,
guardados como imágenes en formato bmp. El siguiente paso del proceso es el
preprocesamiento de la señal, que consiste de varias etapas. La señal de información
puede ser amplificada y filtrada para corregir defectos como la atenuación o el ruido. La
siguiente etapa de adecuación, a nivel píxel, puede incluir tratamientos tales como
adelgazamiento (thinning), suavizado (smoothing), esqueletonización (squeletonizing),
vectorización, etc. La aplicación de estos procesos se considera parte del pre-
procesamiento de la escritura, el cual incluye también a la segmentación. En este
sistema propuesto, solo se requirió de adelgazamiento y corrección de inclinación.
Reconocimiento de imágenes a través de su contenido
6
La segmentación de la escritura se realiza antes de la aplicación de los algoritmos
de reconocimiento, y se divide en dos tipos: externa e interna. En la segmentación
externa se realiza la separación de unidades de escritura, tales como caracteres o
palabras. Dado que varias letras pueden escribirse con un solo trazo en la escritura
cursiva, se requiere de algún reconocimiento previo a la separación. A este tipo de
segmentación que requiere reconocimiento se le llama segmentación interna. El sistema,
utiliza tanto segmentación externa, como interna. La segmentación externa, es útil para
separar en caracteres las palabras formadas por la unión de entre dos a seis vocales. El
método consiste en el barrido de la imagen de la palabra, para la determinación de
puntos máximos y mínimos. Además de secuencias de puntos mínimos, que indican la
presencia de un enlace, el cual es analizado para lo obtención del un corte central, que
separa a la vocal anterior de la siguiente. Aquí este tipo de segmentación es requerida,
debido a que la escritura analizada es enlazada y el reconocimiento se realiza carácter
por carácter, con la finalidad de que el diccionario sea reducido (sólo los caracteres del
abecedario).
Reconocimiento de imágenes a través de su contenido
7
1.1.3 Extracción de características
Las características extraídas de la imagen del carácter una vez aislado (después de
la segmentación), se basan en el análisis de la matriz que lo representa. Las primeras
características extraídas son las variaciones que la vocal presenta en las regiones
superior, inferior, izquierda y derecha. Estas variaciones se obtienen de las vocales
prototipo y se guardan como cinco funciones para cada región. Esas veinte funciones
forman parte de la base de datos, con la que posteriormente las funciones que genere la
vocal prueba (vocal desconocida) serán comparadas. Imágenes de vocales prototipo y
las funciones superiores generadas para cada imagen se muestran en la Fig. 2.
Una vez obtenidas todas las funciones para el carácter prueba (desconocido), se
realiza un proceso de normalización, que consiste en un ajuste de estas funciones,
debido a que su tamaño varía, además de que puede posicionarse en cualquier zona del
área de escritura. Es necesario entonces un proceso de escalamiento y alineación. La
alineación obtiene el inicio de la función prueba con lo cual se recorre la función de tal
forma que comience en la misma posición que los caracteres prototipo. El siguiente
paso es el escalamiento, que obtiene la longitud de la función prueba en x y en y, y
calcula los factores de escalamiento fx=drx/dpx y fy=dry/dpy, en donde drx y dry, dpx y
dpy son las máximas longitudes en x y en y de la función prototipo y prueba
respectivamente. Esos factores permitirán el escalamiento de la función prueba al
Fig 7-Imágenes prototipo y funciones superiores.
Reconocimiento de imágenes a través de su contenido
8
tamaño de la función prototipo. Con los procesos anteriores se pretende que la función
que se obtenga de la prueba sea lo más cercano a las características del prototipo
(tamaño y posición), de tal forma que al comparar sea más fácil el reconocimiento. Un
resultado de esa normalización se muestra en la Fig. 3.
Una vez obtenidas las funciones normalizadas, se sigue con la extracción de
características por regiones del carácter, cortes, ancho, puntos máximos, puntos
mínimos, densidad, inclinación, posición de inicio, posición de fin, características con
las que se forman vectores con parámetros ordenados, que se extraen tanto para los
caracteres prototipo, como para los prueba. Todos estos parámetros son obtenidos por
barridos optimizados sobre la imagen.
1.1.4 Comparación
Finalmente la comparación se realiza calculando las distancias geométricas entre el
vector obtenido para el carácter a reconocer y cada uno de los de la base de datos de
prototipos. Al obtener dichas distancias, se observa cual es la mínima y el carácter
prototipo relacionado con esa distancia mínima es asignado como el carácter
reconocido.
Fig 8- Normalización
Reconocimiento de imágenes a través de su contenido
9
1.1.5 Conclusiones
Para un buen reconocimiento de la escritura manuscrita se requiere del estudio de
una gran cantidad de variables. Aquí se ha descrito de manera general las funciones de
los diferentes elementos que conforman a un sistema de reconocimiento de escritura
manuscrita. De manera particular, se aboca a la problemática de reconocimiento de
caracteres manuscritos, y se propone un algoritmo sencillo para el reconocimiento de
vocales. El algoritmo está basado en una estrategia por regiones en el dominio de la
imagen. Los resultados de la evaluación preliminar del algoritmo arrojaron una tasa de
reconocimiento de las vocales superior al 97% lo que hace al algoritmo propuesto un
buen candidato para una aplicación real. Es importante mencionar que el algoritmo se
probo con una pequeña base de datos y que restaría entonces validar los resultados con
una base de datos más grande.
Reconocimiento de imágenes a través de su contenido
10
1.2 Reconocimiento de firmas
1.2.1 Introducción
[D3] En la sociedad actual, la seguridad se ha convertido en un tema prioritario. A
fin de garantizar la protección de los sistemas frente a una mala utilización voluntaria,
es necesario realizar un proceso de identificación y verificación de la identidad de cada
persona de modo seguro, pero a la vez sencillo y natural.
La Biometría facilita la identificación de cada individuo de forma unívoca mediante
la medición de diferentes características personales e intransferibles. Estas
características individuales pueden clasificarse entre características físicas, como por
ejemplo la huella dactilar, el iris o la retina; y características del comportamiento, como
la forma de hablar, escribir, firma o teclear.
Existe aún cierto reparo en la sociedad frente a los sistemas de identificación
biométrica basados en características físicas como las huellas, el iris o la retina, ya que
son asociados con cuestiones penales. En cambio, los sistemas basados en el
comportamiento, aunque proporcionan menor fiabilidad que los anteriores, son mejor
aceptados socialmente.
La Universidad Politécnica de Madrid, la Universidad Politécnica de Cataluña, la
Universidad de Valladolid y la Universidad del País Vasco participan conjuntamente, a
través de diferentes grupos de investigación en el Proyecto de Investigación titulado
“Aplicación de la Identificación de Personas mediante Multimodalidad Biométrica en
Entornos de Seguridad y Acceso Natural a Servicios de Información”. El primer
resultado de este esfuerzo común ha sido la creación de una Base de Datos Biométricos
Multimodal, que consta de huellas digitales, firmas manuscritas y voz, y que sirve de
base para el resto de tareas de investigación de los grupos participantes. El presente
artículo es consecuencia de los trabajos de investigación posteriores sobre firma
manuscrita a partir de dicha base de datos.
Reconocimiento de imágenes a través de su contenido
11
1.2.2 Verificación de firma offline
El uso de la firma manuscrita como modo de identificación está muy arraigado y
goza d una aceptación social: firmamos con frecuencia para mostrar conformidad con el
contenido de documentos o para autorizar transacciones comerciales.
La verificación de las firmas se limita normalmente a una inspección visual, como
si se tratara de la comparación de dos fotos, pero este método no es eficaz frente a
falsificadores y en la mayoría de las ocasiones no se lleva a cabo proceso de
verificación alguno. La autorización de la verificación de firmas manuscritas puede
proporcionar la solución adecuada para evitar posibles fraudes.
La tecnología biométrica de verificación automática de firmas manuscritas se
compone de dos áreas principales de investigación dependiendo del método de
adquisición de los datos. La primera de ellas se refiere a la firma manuscrita on-line o
dinámica, en la que se captura sobre una tableta digitalizadora la ejecución completa de
la firma. La otra área hace referencia a la verificación de firmas off-line o estáticas. De
la firma manuscrita sólo está disponible su forma gráfica en un documento escrito que
es escaneado para obtener la representación digital de la imagen. Los sistemas on-line
cuentan con mayor información que los sistemas off-line, ya que, además de la imagen
2D de la firma, conocen sus parámetros dinámicos con el tiempo de adquisición,
velocidad, presión, inclinación del bolígrafo, etc., lo cual los hace a priori más atractivos
desde el punto de la investigación.
En este artículo se presenta un sistema de verificación de firmas off-line basado en
técnicas dinámicas, con el objetivo de acercar ambas áreas de investigación, probando la
viabilidad de la aplicación a la firma off-line de métodos empleados habitualmente en
sistemas dinámicos.
Reconocimiento de imágenes a través de su contenido
12
1.2.3 Descripción del sistema
A continuación se hace una descripción de los módulos esenciales del sistema de
verificación off-line: adquisición de firmas, base de datos, preprocesado, entrenamiento
de los modelos, verificación y selección de umbrales.
A. Adquisición de firmas manuscritas
La captura de las firmas manuscritas se realiza de manera dinámica
mediante una tableta digitalizadora Intuos A6 de WACOM y el lápiz Intuos
Inking Pen. El lápiz permite firmar igual que con un bolígrafo convencional,
con lo cual se dispone de una versión en papel de todas las firmas manuscritas
digitalizadas en la base de datos.
El área activa de la tableta posee una resolución de 100 puntos por
milímetro y captura coordenadas x-y, presión, inclinación y acimut a una
frecuencia de 100 muestra por segundo. Todos los datos capturados de la firma,
tanto puntos con presión o pen down, como puntos sin presión o pen ups, son
almacenados en ficheros de la base de datos de firmas manuscritas dinámicas.
Por otro lado, se almacenan las ejecuciones de cada firma en formato papel
para su posterior proceso de escaneado.
Fig 9- Firma propia del usuario9
El proceso de escaneado a 600 puntos por pulgada ópticos, no
interpolados, genera el formato gráfico estático u off-line de las firmas. La
figura 4 representa un ejemplo de una firma propia en formato estático.
Reconocimiento de imágenes a través de su contenido
13
B. Base de datos e firmas
El sistema parte de una base de datos de firmantes, de cada uno de los
cuales se dispone de 25 firmas propias y de 25 falsificaciones de 5 impostores,
ya que cada firmante actúa también de impostores proporcionando 25
falsificaciones, 5 de cada uno de los 5 firmantes inmediatamente anteriores a él
en la base de datos.
Las falsificaciones almacenadas en la base de datos son de tipo entrenadas
o skilled forgery,ya que cada impostor repite varis veces las firmas de la
víctima, hasta considerar su imitación lo suficientemente buena, antes de que
dicha falsificación sea adquirida y almacenada definitivamente. Con el ánimo
de mejorar aún más la calidad de las falsificaciones se ha estimulado a los
participantes con un premio. Todo esto hace que la calidad de las
falsificaciones se alta.
La base de datos de firmas manuscritas se crea con un conjunto de
subcorpora independientes, uno por cada equipo de trabajo participante en el
proyecto de investigación, de 75 firmantes enlazados en una cola circular. El
subcorpus utilizado en este trabajo ha sido adquirido en la Escuela de
Ingenieros de Bilbao.
C. Preprocesado de las firmas
La ejecución de una firma nunca es idéntica a otra previa ya que depende
de muchos factores, como puede ser el tamaño, la zona de la tableta donde se
adquiere, etc. Por ello se realiza un preporcesado para obtener la representación
de la firma independientemente de dichos factores.
La segmentación de cada firma manuscrita requiere extraer la firma
estática y off-line del fondo en la imagen electrónica obtenida tras el
escaneado. Pare ello, es posible utilizar diferentes operaciones morfológicas
[I107], no teniendo en cuenta el factor de la rotación de las firmas.
Este trabajo se centra en los aspectos posteriores a esta etapa de
segmentación, ya que a través de la información capturada con la tableta de
digitalización, se pueden sintetizar la imagen de la firma independiente del
fondo, eliminando cualquier rasgo dinámico de la misma. A partir de la
Reconocimiento de imágenes a través de su contenido
14
información estática de la firma, es decir, los puntos considerados como pen
downs o con tinta de la misma, se genera artificialmente un fichero con la
información gráfica o imagen de la firma manuscrita.
Las imágenes extraídas del fondo de las firmas se normalizan a unas
dimensiones máximas de 512 píxeles de ancho por 256 de alto y son
justificadas al centro de dichas dimensiones. Las firmas con tendencia
horizontal presentan líneas vacías y las de tendencia vertical columnas vacías.
Fig 10-Firmas propias de los usuarios 9 y 28 normalizadas
Cada una de las imágenes así generadas, guarda su propia escala de
conversión de píxeles a milímetros y la relación de aspecto es siempre de 2:1,
véase la figura 5.
Estos ficheros gráficos contienen únicamente la información gráfica 2D
estática de cada firma, ya que se ha eliminado cualquier parámetro temporal, de
inclinación o de presión obtenidos durante la captura.
Partiendo de la imagen de la firma se realiza el último paso del
preporcesado, el relativo al seguimiento del contorno de la imagen de la firma.
A través del estudio de la conectividad se analizan las estructuras blob que
conforman la imagen de la firma. Un blob representa una estructura continua
identificable en una imagen por ser de un color distintivo de su fondo.
El conjunto de blobs, resultado de la conectividad, incluye información de
los ejes de inercia, el centro de gravedad, los puntos del perímetro, etc. de cada
blob. Además de dichos datos es posible conocer la estructura jerárquica que
relaciona cada blob de la imagen con el resto de blobs mediante su ralación de
parentesco.
Reconocimiento de imágenes a través de su contenido
15
Fig 11- Blobs de la firma ejemplo presentada en la Fig. 2
En la figura 6 se incluyen en azul los blobs pieza o hijos del fondo de la
imagen y en rojo los blobs hijo dependientes de los anteriores. En el ejemplo se
observan cuatro blobs pieza, uno principal y otro tres de menor tamaño
correspondientes a las letras “b” e “i” que se representan aisladas en la imagen
de la firma.
Las cadenas de puntos (x, y) del perímetro de blobs, tanto piezas como de
sus hijos, que conforman la imagen constituyen la información biométrica
relevante en este trabajo. Dicha cadena de puntos (x, y) se recorre en sentido
horario partiendo del punto situado más arriba en la imagen.
D. Entrenamiento del sistema
Un sistema de verificación de firmas requiere un proceso de entrenamiento
de modelos representativos de las firmas que se desea verificar. Los modelos
utilizados en este trabajo se denominan modelos ocultos de Markov o HMM
(Hidden Markov Models).
Un modelo HMM es por definición un autómata de estados finitos
estocásticos, a través del cual se representa a una señal estocástica cuyas
características estadísticas varían a lo largo del tiempo, mediante una secuencia
de estados.
Los modelos HMM se utilizan mayoritariamente para el reconocimiento
de la voz, representada como una secuencia de muestras ordenadas en el
tiempo campo en el que han demostrado una alta eficiencia. También
comienzan a usarse en otros campos como es el reconocimiento de imágenes.
Reconocimiento de imágenes a través de su contenido
16
En este trabajo se utiliza como secuencia de muestras para el
entrenamiento de los modelos, la cadena de puntos del perímetro (x, y) de los
blobs que conforman la imagen de las firmas propias listadas anteriormente.
El entrenamiento del modelo HMM de cada firmante se realiza a partir de
las versiones 00, 01, 02, 03, 04, 05, 10, 15, 20 de sus firmas originales, las 5
primeras se utilizan para inicializar el modelo, mientras que el proceso de
reestimación se realiza con el conjunto de las nueve firmas.
La topología del modelo HMM que proporciona un mejor comportamiento
es la denominada como izquierda – derecha o left – right (L-R) de 6 estados, en
el que los estados inicial y final no se comportan como los otros cuatro estados
intermedios del modelo, estados activos del mismo.
E. Verificación y Selección del Umbral
Una vez obtenidos los modelos HMM de cada firmante, el proceso de
verificación consiste en calcular el dato de similitud entre el modelo y firma a
verificar. A partir de dicho valor de similitud es posible determinar si la firma
verificada fue ejecutada por un usuario impostor o por el propio firmante.
La decisión se fundamenta en la utilización de un valor umbral, el cuál se
obtiene a partir de las curvas DET (Detection Error Tradeoff). Esta curva
permite representar los datos relativos a las tasas de error que permiten calibrar
la calidad o nivel de seguridad del sistema de verificación, la tasa FAR (False
Acceptance Rate) y la tasa FRR (False Reject Rate).
Para la obtención del umbral en el que el comportamiento de ambas tasas
es óptimo es posible priorizar una de ellas, lo que implica empeorar la otra,
para ello se utiliza una función coste:
DCF = Cmiss x Pmiss x Ptrue + Cfa x Pfa x Pfalse.
Siendo Cmiss la constant de la ponderación de un falso rechazo, Cfa la
ponderación de una falsa aceptación, Ptrue la probabilidad a priori y Pfalse, su
complementación (1-Ptrue).
Reconocimiento de imágenes a través de su contenido
17
La tasa de error EER (Equal Error Rate) o tasa de equierror
correspondiente al punto en que FAR y FRR coinciden, por lo que permite
conocer el mejor funcionamiento mutuo de ambas tasas de error.
El cálculo de las curvas DET se realiza a través del software de libre
distribución del NIST [I110] y mediante sus coeficientes estándar. Los valores
estándar de los coeficientes se corresponden con los siguientes valores:
Cmiss = 10, Cfa = 1 y Ptrue = 0.01 lo que provoca que se priorice
fuertemente el valor de la tasa FAR frente al de la tasa FRR.
Reconocimiento de imágenes a través de su contenido
18
1.2.4 Modelos HMM
Para la verificación de las firmas estáticas u off-line se parte de la secuencia de
puntos de los perímetros de los blobs que conforman la imagen de la firma. Dicha
secuencia de puntos aunque no están presentadas en función del tiempo, permiten
aplicar los modelos HMM, técnica dinámica de reconocimientos, a la verificación de
firmas off-line.
Se utilizan dos posibles ordenamientos para las cadenas de puntos del perímetro de
los blobs de una firma, el ordenamiento por tamaño (TAM) y el ordenamiento según la
distribución Izquierda-Derecha (ID) de los blobs de la imagen de la firma. El
ordenamiento ID prioriza a los blobs situados en posición arriba – abajo / izquierda –
derecha, adecuada para la escritura latina en la que se han capturado las firmas. Para el
ordenamiento por tamaño, se prioriza a los blobs de mayor tamaño frente a los menores.
Para ambos ordenamientos la generación de la secuencia de puntos del perímetro, a
utilizar en el entrenamiento de modelos y la verificación de las firmas, se realiza como
la concatenación de las cadenas de puntos de los perímetros de los blobs ordenados. Se
concatenan los puntos del blob pieza que es su padre, tras los cuales se insertan los
puntos del siguiente blob pieza e hijos según el orden utilizado.
Para cada ordenamiento, TAM e ID, se genera un modelo HMM representativo de
las firmas propias de cada firmante según el ordenamiento utilizado.
Fig 12- Ordenamiento según ID (escala x 2)
Una misma imagen de firma proporciona las mismas estructuras blob, por lo que la
diferencia viene representada por la ordenación de los puntos del perímetro de los
Reconocimiento de imágenes a través de su contenido
19
mismos. En la figura 7 se observa la ordenación TAM frente a la ordenación ID que se
presenta en la figura 3. Ambas figuras incluyen una numeración creciente entre los
blobs hijos de la imagen en función del ordenamiento utilizado.
1.2.5 Resultados obtenidos
Se presentan los resultados de la calidad del sistema de verificación de firmas off-
line a través de las tasas de error medias obtenidas para todos los firmantes de la base de
datos, mediante los dos modelos HMM generados por usuario, el modelo TAM y el
modelo ID.
Tabla 1- Resultados para Tasa de Equierror para Skilled forgeries
El sistema de verificación proporciona un resultado de la tasa de equierror EER
levemente mejor para el ordenamiento ID de los puntos del perímetro de blob. conocida
la naturaleza entrenada de las falsificaciones verificadas una tasa de equierror cercano al
30 % es óptimo.
El valor de la tasa EER se representa por un punto curva DET representada en la
figura 8, el cual corresponde al mejor comportamiento mutuo de las tasas de error FAR
y FRR obtenidas en el proceso de verificación.
Reconocimiento de imágenes a través de su contenido
20
Fig 13-Curva DET firmante 33
Mediante la presentación de la curva DET se puede observar el comportamiento
relativo de las tasas FAR (eje x) y la tas FRR (eje y), en el que cuando una aumenta la
otra disminuye y viceversa. Los valores óptimos de ambas tasas para los ordenamientos
TAM e ID y firmas falsificadas entrenadas se presentan a continuación:
Tabla 2- Resultados para Skilled Forgeries
En la tabla 2 se presentan los valores medios de las tasas de error obtenidas para los
75 firmantes de la base de datos, mediante la utilización de los coeficientes estándar de
NIST. Se obtiene una tasa de falsa aceptación FAR cercana al 0 %. Lo que provoca un
rechazo de todas las falsificaciones, frente a una tasa FRR elevada, lo que proporciona
un rechazo de las firmas propias de los firmantes. En casos particulares de firmas
estables difíciles de falsificar, como en el caso del usuario 13 se observa un valor FAR
igual a 0 y un valor de FRR de 12.5%.
Reconocimiento de imágenes a través de su contenido
21
A partir de otros valores de coeficientes distintos a los estándares de NIST y
conociendo el ERR, que es invariante, FRR ajustándolos a las necesidades de las
aplicación.
El ordenamiento de los puntos del perímetro de los blobs mediante la distribución
ID, es decir, el ordenamiento basado en la escritura latina, proporciona un mejor
rendimiento del sistema.
1.2.6 Conclusiones
Se ha desarrollado un sistema de verificación de firmas off-line basado en HMM
que ha sido probado sobre una base de datos de skilled forgerys.
Se obtienen mejores resultado con modelos en los cuales los blobs se ordenan de
arriba-abajo e izquierda-derecha que en modelos con blobs ordenado por tamaños, de
mayor a menor.
Reconocimiento de imágenes a través de su contenido
22
1.3 Reconocimiento de rostros y expresiones faciales
1.3.1 Introducción
[D4] Desde la percepción del ser humano, la forma más sencilla de reconocer
personas es a través del rostro, ya que este tiene características únicas como distancia
entre los ojos, anchura de la nariz, forma de la barbilla, pómulos, forma de la boca, etc.
El presente apartado describe un sistema computacional de seguridad basado en el
reconocimiento de rostros, que explota las características anteriormente mencionadas.
En el presente proyecto se ha desarrollado un procedimiento de detección de caras
como parte de algoritmos de clasificación de imágenes.
1.3.2 Descripción del sistema
El sistema estudiado está conformado por un programa desarrollado en MATLAB y
por una parte de hardware. Esta última es conformada por una computadora conectada a
una cámara web para poder capturar las imágenes de los rostros de diferentes personas.
La cámara web estará colocada sobre un soporte, el cual a su vez tendrá una base donde
la persona colocará el rostro para que la cámara web pueda capturar la imagen
respectiva. El diseño consiste en una caja, donde se encontrará la cámara web en un
extremo y en el otro el soporte del rostro. Además se colocará una lámpara fluorescente
en la parte superior para asegurar una adecuada iluminación. El esquema de la base
propuesta se muestra en la Fig. 9.
Reconocimiento de imágenes a través de su contenido
23
Fig 14- Base para la captura de imágenes
En la parte de software, se ha implementado un algoritmo que permite segmentar
las imágenes capturadas para obtener únicamente la imagen del rostro de esa forma se
descarta información de otro tipo que puede ser no relevante para los objetivos del
programa. Posteriormente, se procede con la descomposición de las imágenes para
luego aplicarles la técnica de Análisis de Componentes Principales, con lo cual
finalmente se procede a realizar el reconocimiento. A continuación se explicarán los
temas involucrados para la realización del algoritmo y posteriormente los pasos que se
siguieron para la implementación del programa.
1. Segmentación de imágenes
Una vez que la imagen es capturada con la cámara web, se procede con el algoritmo
de segmentación, el cual está basado en las proyecciones de las derivadas de las filas y
columnas de los valores de la imagen.
Previamente, se le aplica el filtrado de mediana a la imagen, para quitar el ruido y
suavizar la imagen. Luego se procede a recuantizar la imagen a dos bits, para que los
cambios sean más bruscos y de esta manera las derivadas se detecten mejor. Luego, se
obtiene el negativo de la imagen recuantizada para que el fondo y todo elemento no
perteneciente al rostro sea oscuro y facilitar la segmentación (ver Fig. 10).
Reconocimiento de imágenes a través de su contenido
24
Fig 15- (a) Imagen capturada después de aplicar el filtrado de mediana. (b) Imagen recuantizada
a dos bits. (c)
De la imagen negativa, se obtienen los vectores Pv(n) y Ph(n), que son las
proyecciones de las columnas y las filas, respectivamente (ver Fig. 11). Como cada fila
y columna tiene información de los valores de los píxeles, las proyecciones tienen la
información de los píxeles de toda la imagen. A estos vectores se les calcula la derivada
para poder ver los cambios de estos valores, es decir, cambios de tonalidades en la
imagen.
A partir de de Ph(n) y Pv(n), se obtienen las derivadas Ph’(n) y Pv’(n) (ver Fig. 12).
, donde “n” es el índice que corresponde a cada elemento que contienen los vectores.
Fig 16- Proyecciones de filas y columnas
Reconocimiento de imágenes a través de su contenido
25
Fig 17- Derivada de las proyecciones de filas y columnas, respectivamente
Para las columnas, se obtiene el valor máximo, que indica la primera variación de
tonalidad. Este valor se va a usar para segmentar la imagen en el eje vertical. El valor
máximo de Pv’(n) puede ser expresado como :
Pv’max = Pv’(nmax) (1)
donde:
Pv’(nmax) > Pv’(n) para todo n ≠ nmax (2)
El valor “nmax” es el índice del valor máximo del vector. De la misma forma,
“nmin” es el índice del valor mínimo del vector.
Luego se procede a calcular el valor :
Lp = N – nmax (3)
Donde “N” es el número de columnas de la imagen y “Lp” el valor equivalente al
número de columnas posteriores al valor máximo.
Luego se procede a calcular el vector Pv1’(n), el cual contendrá los valores de las
proyecciones posteriores al valor máximo. De manera similar, se calcula el vector
Pv2’(n). Este vector contiene los valores de Pv1’(n) desde la mitad hasta el último
Reconocimiento de imágenes a través de su contenido
26
valor, ya que en este tramo se encuentra el valor mínimo, el cual indica la segunda
variación de tonalidad. Con estos valores, se procede a segmentar la imagen. El
procedimiento matemático se puede expresar como :
Pv1’(n) = Pv’(n + nmax) n = 0, 1, …., Lp - 1 (4)
Pv1’(n) = Pv’(n + nmax) n = 0, 1, …., Lp - 1 (5)
Pv2’(n) = Pv1’(Lp/2 + n) n = 0, 1, …., Lp/2 - 1 (6)
Pv2’min = Pv2’(nmin) (7)
donde:
Pv2’(nmin) < Pv2’(n) para todo n ≠ nmin (8)
Luego se forma el vector con los valores de las proyecciones, desde el índice del
valor máximo hasta el índice del valor mínimo, con lo cual se obtiene las proyecciones
de la imagen segmentada con sus respectivos índices. Estos últimos son utilizados para
indicar las columnas a descartar y finalmente segmentar la imagen en las columnas.
Posteriormente se procede a segmentar la imagen en las filas. A diferencia de las
columnas, en las filas no se utilizará la derivada de las proyecciones debido a que, como
se puede observar en la figura 11, sólo hay un cambio brusco cerca de la fila 50, lo cual
indica que hay cambio de tonalidad. Si se observa la figura 6c, en las primeras filas
tienen valores bajos, lo cual se ve reflejado en las proyecciones, y luego cambia a
valores altos que corresponden al rostro. Pero en las últimas filas, donde termina el
rostro, no hay cambios significativos como en el caso de las columnas, por lo que no se
podría utilizar el mismo tipo de segmentación que en las columnas ya que no
segmentaría bien, para lo cual se requiere que el límite inferior del rostro vaya apoyado
en una base y de esta manera descartar la parte del cuello o los hombros. De las filas, se
obtiene “Ph(m)”, donde m = 0, 1, …., M-1 (M es el número de filas de la imagen).
Luego se calcula el valor máximo del vector “Ph(m)” para segmentar la parte superior
de la imagen :
Ph(mmax) > Ph(m) para todo m ≠ mmax (9)
Luego se obtiene :
Reconocimiento de imágenes a través de su contenido
27
Ph1(m) = Ph(m = 0, 1, …, mmax/2) (10)
Donde “Ph1(m)” contendrá los valores de las proyecciones desde la primera fila
hasta aquella cuyo índice es la mitad del “mmax” (donde “mmax” es el índice del valor
máximo de las filas). De esta manera se obtiene el rango donde se encuentra el cambio
brusco que indica cambio de tonalidad (de fondo a rostro).
Para que el cambio sea más evidente, se procede con el submuestreo en factor de 3
de “Ph1(m)”, y a este último vector se le calcula la derivada, con lo cual se procede a
segmentar la imagen en las filas. El procedimiento se puede expresar como :
Phd(m) = Ph1(3m) Donde m = 0, 1, …, mmax/6 (11)
Phd’(m1) > Phd’(m) Para todo m ≠ m1 (12)
Donde “m1” es el índice del valor máximo de Phd’(m)
Fig 18-Proyecciones de las filas, proyecciones de las filas hasta la mitad del vector y las
proyecciones
Como el tamaño de las imágenes segmentadas puede variar, se procede a
estandarizarlo con pixeles de la imagen entera o quitándole pixeles sobrantes, según sea
el caso. Luego de esto, se obtiene finalmente la imagen segmentada, como se puede
apreciar en la Fig. 14.
Reconocimiento de imágenes a través de su contenido
28
Fig 19- Imagen segmentada
2. Descomposición Wavelet
La descomposición wavelet es una técnica que se utiliza para descomponer la
imagen de entrada en cuatro sub-imágenes. En el programa se utiliza la descomposición
wavelet para reducir las dimensiones de las imágenes sin perder la información facial
necesaria. El resultado de la descomposición está conformado cuatro sub-imágenes, que
contienen detalles principales, detalles verticales, detalles horizontales y detalles
diagonales. En el presente documento, se descompuso la imagen dos veces, por lo cual
se obtienen cuatro subimágenes cuyas dimensiones son cuatro veces menor que la
imagen original; sin embargo, los detalles principales no se pierden. Para el programa,
se utiliza la sub-imagen con los detalles principales y se le normaliza, a fin de que el
rango de grises, se encuentre entre 0 y 255.
Reconocimiento de imágenes a través de su contenido
29
En la Fig. 15 se observa la descomposición Wavelet de una imagen facial.
Fig 20-Imagen facial y sus respectivas subimágenes. (wavelets)
3. Análisis de Componentes Principales (ACP)
El ACP es un método matemático que da origen al método de “eigenfaces”. El
método consiste en la recolección de imágenes de rostros de varias personas que son
luego combinadas y convertidas en una matriz. Los vectores que conforman esta matriz
son los denominado vectores “eigenfaces”. Estos pueden ser combinados
adecuadamente para reconstruir cualquier imagen facial del conjunto.
Para describir el método, asúmase en primer lugar que se tiene un conjunto de “M”
imágenes, que previamente fueron segmentadas (de P filas y Q columnas), que son
convertidas a vectores “Φi”. Con ello se construye una matriz que contiene a cada vector
como columna. La matriz resultante presenta por tanto “PxQ” filas y “M” columnas.
Reconocimiento de imágenes a través de su contenido
30
1.3.3 Programa
Inicialmente el programa adquiere una imagen de rostro en escala de grises. Luego
se realiza el procedimiento ACP y se obtiene el vector “eigenfaces” de la imagen
adquirida. En seguida el vector es comparado con todos los vectores de las imágenes
proyectadas almacenadas, calculando la distancia euclidiana normalizada entre ellos. La
distancia mínima obtenida será la que indique el usuario registrado con el cual el rostro
de entrada tiene mayor semejanza. Sin embargo, esta distancia mínima puede ser muy
grande, lo que indicaría que ninguno de los usuarios registrados coincide
adecuadamente con el usuario de entrada. Para evitar este tipo de problemas, se
procedió a establecer un umbral, a fin de colocar un límite en la distancia mínima, y
rechazar usuarios que no están verdaderamente registrados. Si la distancia es menor al
umbral, entonces el usuario se considera como identificado, mostrando en pantalla el
nombre respectivo y su foto reconstruida.
El programa ofrece también la opción de modificar la dimensión del espacio y de
esa forma alterar el tiempo de ejecución del mismo. Así mismo se ofrece la opción de
poder registrar un nuevo usuario en cualquier momento.
La interfaz visual de usuario del sistema propuesto es mostrada en la Fig. 16.
Reconocimiento de imágenes a través de su contenido
31
Fig 21-Interfaz visual del sistema propuesto
1.3.4 Resultados
Con estas adiciones al programa, se procedió al reconocimiento de las imágenes y
después de comparar resultados se obtuvo lo siguiente:
• Verdaderos aciertos: 92.26%
• Verdaderos Rechazos: 89.94%
• Falsos aciertos: 7.04 %
• Falsos Rechazos: 10.06%
Reconocimiento de imágenes a través de su contenido
32
2. IDENTIFICACION DE NECESIDADES
Reconocimiento de imágenes a través de su contenido
33
2 Identificación de necesidades
2.1 Introducción IDN
Esta etapa es el soporte a la petición que el cliente realiza para determinar las
pautas generales de sus necesidades y del contexto del sistema.
El cliente debe establecer sus objetivos y necesidades generales, como
consecuencia del enlace entre los Sistemas de Información de la empresa y los sistemas
Informáticos a desarrollar.
El objetivo es exponer el entorno global del problema en estudio, especificando:
• Objetivos del sistema: objetivos de tipo empresarial.
• Alcance del sistema: funciones de negocio a considerar dentro del alcance del
proyecto.
• Tipología de los usuarios finales: conocer a qué perfil de personas va dirigido el
producto final a obtener.
• Restricciones: se considerarán las restricciones que puedan afectar al plan del
proyecto y su desarrollo.
• Organización y funciones empresariales: conocer bien cómo está organizado el
cliente, para ello se analizará el organigrama de la empresa.
• Antecedentes: información de los motivos que han llevado a la organización del
cliente a realizar el proyecto.
En la realización se obtendrán todos los datos necesarios para una buena
identificación de necesidades, se realizarán entrevistas, obteniendo un conjunto valioso
de información del sistema.
El producto que se obtiene se representara mediante el Documento de
Conceptos del Sistema.
Reconocimiento de imágenes a través de su contenido
34
2.2 Documento de concept del sistema
PROYECTO
RECONOCIMIENTO
DE IMÁGENES
DOCUMENTO DE CONCEPTOS DEL
SISTEMA
EMPRESA: IIT
2.2.1 Objetivos del sistema
Hay dos objetivos globales en este proyecto:
1. Reconocimiento de tipos de fondo: cielo, césped.
1.1 Generación de un algoritmo capaza de clasificar las imágenes por su
color. En nuestro caso que contengan azul (cielo) o verde (césped).
1.2 Generación de un algoritmo capaza de diferenciar entre tres posibles
texturas. Las texturas que deberá ser capaz de diferenciar son:
• Lisas
• Binarias
• Rugosas
1.3 A través de la unión de ambos algoritmos, poder diferenciar imágenes
que contengan cielo o césped, con una tasa de error inferior al 10%.
2. Detección de personas.
2.1 Localización de caras de personas en la imagen.
2.2 Si en la imagen se ha localizado alguna cara en base a localizar ojos y
boca. Se concluye que la imagen contiene personas.
Reconocimiento de imágenes a través de su contenido
35
2.2.2 Alcance del sistema
Reconocimiento de color: Para esta parte, habrá que realizar un análisis de los
modelos de color RGB y HSV.
Para ambos modelos de color, será necesario estudiar si dado un color es posible
identificar dicho color mediante sus coordenadas.
En el caso de RGB, se comprobaran las siguientes proyecciones del espacio:
• R vs G
• R vs B
• G vs B
• R vs G vs B
Tras realizar las evaluaciones pertinentes, se identificara la mejor entre las cuatro
proyecciones para clasificar un color.
En el caso HSV, se comprobaran las siguientes proyecciones del espacio:
• H vs S
• H vs V
• S vs V
• H vs V vs S
Al igual que en modelo RGB, habrá que identificar la mejor entre las cuatro
proyecciones.
Una vez seleccionados las proyecciones, se analizara con cuál de los dos moleos es
más precios a la hora de clasificar el color.
Reconocimiento de texturas: El reconocimiento de texturas, se realizara a través de
histogramas, para ello, será necesario implementar un algoritmo capaz de clasificar las
Reconocimiento de imágenes a través de su contenido
36
texturas como lisas, binarias o rugosas. También será necesario realizar un breve
documento sobre la función statxture.
Detección de caras: Para la detección de caras se crearan dos algoritmos
independientes, uno para la localización de los ojos, y otro para la localización de la
boca. En ambos algoritmos se trabajara con la proyección YCbCr.
2.2.3 Topología de usuario finales
Los usuarios finales serán empresas que por algún motivo necesiten clasificar
imágenes de manera automática en base al contenido.
2.2.4 Restricciones
Las restricciones a las que está sujeto el proyecto son de tipo temporal, puesto que
el plazo de entrega del proyecto no puede superar la primera semana de junio del 2008.
Además los algoritmos generados, deberán consumir el mínimo número de
recursos.
Al ser un proyecto fundamentalmente de investigación, la optimización del tiempo
de ejecución queda fuera del alcance, pero es necesario que los algoritmos sean
suficientemente rápidos como para permitir correr los procesos de evaluación.
Reconocimiento de imágenes a través de su contenido
37
3. PLAN DE GESTION
Reconocimiento de imágenes a través de su contenido
38
3 Plan de gestión
3.1 Descripción general del proyecto
A continuación se mostrará una visión general del proyecto, el cual consiste en
desarrollar algoritmos capaces de reconocer objetos en imágenes. Para lograr esto se
utilizarán las siguientes técnicas:
1. Reconocimiento de colores: Se estudiará la imagen a través de los colores, para
ello se hará un estudio previo entré dos formas posible de reconocimiento de
colores, RGB y HSV. Esta técnica es válida para reconocimiento de cielos,
nieve, mar, césped, etc, es decir, imágenes donde haya un color predominante.
2. Reconocimiento de textura: Esta técnica es más compleja que el
reconocimiento de colores, se utilizará para validar que una textura es lisa,
binaria o rugosa. Un ejemplo podría ser el reconocer un árbol en distintos
entornos, como uno rural y otro de ciudad, en donde los distintos elementos que
lo rodean son muy distintos. El reconocimiento del árbol se podría hacer
mediante la textura de la madera del tronco.
3. Detección de caras: Para conseguir este objetivo se utilizara la proyección
YCbCr. La detección de caras tendrá que ser efectiva en aquellas imágenes que
contengan a una persona de medio cuerpo para arriba, no teniendo porque ser
efectiva en aquellas imágenes donde las personas salgan de cuerpo entero.
Para el desarrollo de este proyecto se ha decidido utilizar como herramienta Matlab.
Matlab es un leguaje matemático capaz de ejecutar elevados cálculos matriciales
además de poseer unas Toolbox de imágenes, necesarios para este proyecto.
Reconocimiento de imágenes a través de su contenido
39
3.2 Diagrama de actividades a realizar
A continuación se muestra un diagrama de las distintas actividades de las que se
compone el proyecto. Las actividades se numerarán de la forma WP – XX.YY, donde
XX corresponde a un número consecutivo referente a la tarea principal, e YY a la
subtarea de XX.
Reconocimiento de imágenes a través de su
contenido
WP-01
Construcción Lógica
WP-02
Construcción Física
WP-03
Documentación
WP-00.01
Color
WP-00.02
Textura
WP-04
Dirección de proyecto
WP-00.03
Localizador de rostros
WP-01.01
Estudio de Gaussinas
WP-01.02
Diseño de texturas
WP-02.01
Implantación de Gaussinas
WP-02.02
Algoritmos
WP-02.03
Pruebas de algorimos
Fig 22-Diagrama de actividades
WP-05
Coordinación
WP-00
Investigación
Reconocimiento de imágenes a través de su contenido
40
3.3 Descripción detallada de las actividades
A continuación, se procederá a describir las actividades finales del proyecto,
estas son aquellas actividades que no se dividan en otras sub-actividades.
Identificador de Actividad
WP-00.01
Nombre Color
Entradas Información sobre los modelos de color RGB y HSV.
Actividades Realizar un documento con los modelos de color RGB y HSV, indicando las propiedades de cada uno, para poder realizar los estudios pertinenetes.
Salidas • Documento RGB • Documento HSV
Gestión
Tabla 3- W-00.01
Identificador de Actividad
WP-00.02
Nombre Textura
Entradas Información sobre texturas
Actividades Realizar un documento con las formas posibles de reconocimiento de textura.
Salidas • Documento sobre texturas
Gestión
Tabla 4-WP-00.02
Reconocimiento de imágenes a través de su contenido
41
Identificador de
Actividad WP-00.03
Nombre Localizador de rostros
Entradas Información sobre localizadores de rostros
Actividades Realizar un documento con los métodos empleados para alcanzar el objetivo.
Salidas • Documento YCbCr • Documento sobre localizador de rostros
Gestión
Tabla 5-WP-00.03
Identificador de Actividad
WP-01.01
Nombre Estudio de Gaussinas
Entradas Conjunto de puntos que definen los colores azul y verde.
Actividades Estudiar la mejor forma a través de gaussianas para clasificar un color como azul o verde.
Salidas Programa elegido para realizar la clasificación.
Gestión
Tabla 6-WP-01.01
Reconocimiento de imágenes a través de su contenido
42
Identificador de Actividad
WP-01.02
Nombre Diseño de texturas
Entradas Histogramas correspondientes a texturas lisas, binarias y rugosas.
Actividades Definir la formar de diferenciar las distintas formas de texturas mediante los histogramas.
Salidas Documento en el que se explica la forma lógica de diferenciar entre las tres texturas definidas.
Gestión
Tabla 7-WP-01.02
Reconocimiento de imágenes a través de su contenido
43
Identificador de
Actividad WP-02.01
Nombre Implantación de Gaussianas
Entradas Programa elegido para la clasificación de un color mediante gaussianas.
Actividades Implantar dentro del algoritmo el programa.
Salidas Algortimo sin terminar.
Gestión
Tabla 8-WP-02.01
Identificador de Actividad
WP-02.02
Nombre Algoritmo
Entradas Resultados de los documentos.
Actividades Mediante la información recibida de los documentos desarrollados anteriormente, generar los algoritmos de color y textura.
Salidas Algoritmos terminados.
Gestión
Tabla 9-WP-02.02
Identificador de Actividad
WP-02.03
Nombre Pruebas de los algoritmos
Entradas Algoritmos.
Actividades Comprobar el grado de acierto de los algoritmos generados.
Salidas Eficiencia de los algoritmos generados.
Gestión
Tabla 10-WP-02.03
Reconocimiento de imágenes a través de su contenido
44
Identificador de Actividad
WP-03
Nombre Documentación
Entradas Información sobre los algoritmos
Actividades Desarrollo de un documento final del proyecto.
Salidas Documento final de proyecto.
Gestión
Tabla 11-WP-03
Identificador de Actividad
WP-04
Nombre Dirección del proyecto
Entradas Documento final del proyecto
Algoritmos generados
Actividades Validación del proyecto por parte del director del proyecto.
Salidas Documento firmado por el director de proyecto. Calificación del proyecto por parte del director del proyecto
Gestión
Tabla 12-WP-04
Reconocimiento de imágenes a través de su contenido
45
Identificador de Actividad
WP-05
Nombre Coordinación
Entradas Documento final del proyecto
Algoritmos generados
Actividades Validación del proyecto por parte del coordinador del proyecto.
Salidas Documento firmado por el coordinador del proyecto. Nota final del proyecto.
Gestión
Tabla 13-WP-05
Reconocimiento de imágenes a través de su contenido
46
3.4 Diagrama del equipo de trabajo
Posteriormente se mostrará el organigrama del proyecto
Como se observa en la ¡Error! No se encuentra el origen de la referencia. 23 ,
existe una colaboración entre el director y el coordinador del proyecto, mientras que la
función de Jefe de Proyecto depende tanto del director como del coordinador, y a su
vez, de éste depende el analista, el programador y el diseñador
Coordinador del proyecto fin de
carrera
Director del proyecto fin de carrera
Jefe del proyecto
Analista Programador Diseñador
Fig 23- Organigrama del proyecto
Reconocimiento de imágenes a través de su contenido
47
3.5 Descripción de actividades de cada integrante
A continuación se mostrará una relación de tareas de cada integrante del equipo de
trabajo:
Identificador del
integrante
Coordinador
Nombre David Contreras Bárcena
Tareas Concretar la definición del proyecto
Controlar/Supervisar el proyecto, junto con el
director del mismo
Supervisa los plazos de entrega
Homogeniza la calidad de los proyectos
Supervisión final del proyecto
Tabla 14-Coordinador
Reconocimiento de imágenes a través de su contenido
48
Identificador del
integrante
Director
Nombre Rafael Palacios
Tareas Dirigir el proyecto
Facilitar las orientaciones adecuadas ante los
problemas que vayan surgiendo
Proponer una calificación al coordinador del
proyecto
Controlar/Supervisar el proyecto, junto con el
coordinador
Tabla 15-Director
Identificador del
integrante
Jefe de Proyecto
Nombre Antonio Peralta Sáez
Tareas Gestiona el proyecto y es el máximo
responsable del mismo
Verifica el trabajo realizado por sus
subordinados
Tabla 16-Jefe de proyecto
Reconocimiento de imágenes a través de su contenido
49
Identificador del
integrante
Analista
Nombre Antonio Peralta Sáez
Tareas Analiza el contenido del proyecto, marcando
pautas para la realización del mismo
Tabla 17-Analista
Identificador del
integrante
Programador
Nombre Antonio Peralta Sáez
Tareas Lleva a cabo toda la parte de programación
del proyecto
Instala el software necesario para llevar a
cabo el proyecto
Verifica la programación haciendo un banco
de pruebas para comprobar la calidad del proyecto
Tabla 18-Programador
Reconocimiento de imágenes a través de su contenido
50
Identificador del
integrante
Diseñador
Nombre Jaime Martín Talavera
Tareas Analiza y define las interfaces que se deben
llevar a cabo para la realización de la
programación
Tabla 19-Diseñador
Reconocimiento de imágenes a través de su contenido
51
3.6 Estimación del esfuerzo de cada integrante
Para el proyecto, la estimación del esfuerzo de cada integrante es la que se muestra
a continuación (mostrada en horas/hombre):
COORDINADOR DIRECTOR JEFE PROYECTO ANALISTA PROGRAMADOR DISEÑADOR TOTAL
WP‐00 10 10 20
WP‐01 5 15 30 50
WP‐02 5 30 50 110 40 235
WP‐03 5 15 70 90
WP‐04 10 10 5 25
WP‐05 15 15
TOTAL 15 25 80 165 110 40 435Tabla 20-Estimación del esfuerzo
Reconocimiento de imágenes a través de su contenido
52
3.7 Presupuesto
A continuación se mostrarán dos tablas, la primera con el desglose de las horas
hombre invertidas por cada miembro del equipo y la segunda con la descomposición del
precio por paquetes de trabajo del proyecto:
DIRECTOR JEFE PROYECTO ANALISTA PROGRAMADOR DISEÑADOR
HORAS/HOMBRE 25 80 165 110 40
TARIFA 100,00 € 80,00 € 60,00 € 30,00 € 45,00 €
IMPORTE 2.500,00 € 6.400,00 € 9.900,00 € 3.300,00 € 1.800,00 €
TOTAL 23.900,00 €
Tabla 21-Horas hombre
Tabla 22-Descomposición del precio por paquetes
HORAS TARIFA MEDIA IMPORTE
WP‐00 20 70 € 1.400,00 €
WP‐01 50 70 € 3.500,00 €
WP‐02 235 46.81 € 11.000,00 €
WP‐03 90 65.56 € 5.900,00 €
WP‐04 25 84 € 2.100,00 €
WP‐05 15 0 € 0 €
TOTAL 23.900,00 €
Reconocimiento de imágenes a través de su contenido
53
3.8 Planificación de las actividades
A continuación se muestra un diagrama de Gantt con la planificación del proyecto
Fig 24-Planificación
Tanto la documentación, dirección del proyecto como la coordinación se realiza en
paralelo desde el inicio de proyecto al fin del mismo.
Reconocimiento de imágenes a través de su contenido
54
4. ESTUDIO DE ARQUITECTURA
Reconocimiento de imágenes a través de su contenido
55
4 Estudio de arquitectura
4.1 Introducción EARQ
En esta etapa se definirán las posibles soluciones de arquitectura técnica que
satisfagan tanto los requisitos como las restricciones de diseño. La arquitectura debe
indicar que componentes básicos de software, hardware y comunicaciones se deben
adquirir o desarrollarse.
Los objetivos entonces serán:
• Definir las posibles soluciones de arquitectura técnica que satisfagan los
requisitos y las restricciones de diseño.
• Elegir una alternativa propuesta, que será la que se implante.
• Obtener la aprobación del cliente o comité informático para la alternativa
elegida.
Para la realización se llevara a cabo funciones tales como:
• Especificar la tecnología hardware, software y de comunicaciones de cada
alternativa.
• Evaluar cada alternativa en sus aspectos: estratégicos, organizativos,
operativos, técnicos y económicos.
• Seleccionar la alternativa a adquirir o desarrollar.
• Elaborar la planificación general del desarrollo y programación del
proyecto.
Los productos que se obtienen son:
• Esquema gráfico de funcionamiento de cada alternativa. Especificación de
los componentes software, hardware y de comunicaciones.
• Matriz de evaluación de las distintas alternativas.
• Planificación general del proyecto: etapas, actividades, hitos importantes,
recursos y calendarios.
Reconocimiento de imágenes a través de su contenido
56
El número de alternativas a considerar depende del tamaño del proyecto a realizar y
de la complejidad del mismo.
Reconocimiento de imágenes a través de su contenido
57
4.2 Hardware/software del sistema actual
En la lista siguiente se enumeran los elementos hardware y software del los
sistemas utilizado actualmente.
Máquina 1
• Placa base: ASUS P5KPL
o Chipset Intel G31
o CPU Intel LGA775 Pentium 4
o DDR2 de Dual-Channel
o Audio Realtek ALC 662 6-chanel
o Stack Cool™
o AI NOS™
o AI NET2
• Procesador: Intel P4 3.02 Ghz 800 mhz 2Mb Cache Socket 775
o Processor Frequency: 3 GHz
o CPUID String: 0F43h
o Package Type: 775 pin
o Core Voltage: 1.25V-1.388V
o Bus Speed: 800 MHz
o Thermal Guideline: 84.0W
o Core Stepping: N0
o Thermal Spec: 67.7°C
o L2 Cache Size: 2 MB
o Manufacturing Technology: 90 nm
o L2 Cache Speed: 3.00 GHz
o Bus/Core Ratio: 15
• Memoria: CORSAIR DIMM DDR2 800 2 x 1024 MB xms2 CL4
• Tarjeta gráfica: SPARKLE 6600 PCX 256MB TV HDTV
Reconocimiento de imágenes a través de su contenido
58
o Bus de gráficos PCI Express®
o Memoria 256MB
o Interfaz de memoria 128 bits
o Ancho de banda de memoria (GB/s.) 22,4
o Tasa de relleno (miles de millones de píxeles/s) 6,7
o Vértices/s. (millones) 700
o Píxeles por ciclo de reloj (pico) 12
o RAMDAC (MHz) 400
• Disco Duro: SATA 200GB 7200rmp MAXTOR
o Capacidad: 200GB
o Interface: SATA 1.5Gb/s
o Buffer: 8MB
o RPM: 7200
• DVD: AOPEN 16x 48x IDE CAMALEON
• Grabadora DVD: PIONEER 109 16X Doble capa 4X OEM
• Impresora: Hewlett Packard K550
• Scanner: Hewlett Packard ScanJet 3300C
• Aplicaciones: Windows XP, Microsoft Office Excel, Matlab 7.0.1
Reconocimiento de imágenes a través de su contenido
59
4.3 Especificaciones de las aternativas.
Debido al elevado tamaño de las matrices a tratar y de la complejidad de los
cálculos para resolver las gaussianas, se aconseja la utilización de estaciones de trabajo
con alto rendimiento.
A continuación se detalla los elementos hardware y software de la máquina Sun
Ultra 40 Workstation
• P
rocesador:
o Processor: two AMD Opteron dual-core 2.6 GHz 285 with
three 8-GBps HyperTransport interconnects per CPU.
o Secondary cache (Level 2): 1 MB per CPU.
• Memoria:
o 16GB maximum; up to four registered DIMMs per CPU.
• Interfaz estandar:
o Network: Two on-board 10/100/1000 Base-T Gigabit
Ethernet interfaces.
o I/O
Fig 25-Estación de trabajo Sun Ultra 40 Workstation
Reconocimiento de imágenes a través de su contenido
60
Eight USB 2.0 ports.
Two IEEE 1394a (FireWire) ports
o Audio I/O
One line-in Two front ports and eight back ports
o Expansion bus
Two PCI Express x16 graphics slots (x8 logically)
One PCI-Express x8 expansion slot (x4 logically)
Two conventional 32-bit PCI slots operating at
33MHz
• Memoria de almacenamiento
o Internal disk:
Up to four Serial ATA drives 500 GB
2 TB maximum RAID 0 and RAID 1 support Optical
drive: One slim dual DVD-RW/CD-RW drive.
o Optical drive:
DVD Dual (DVD-ROM and CD-RW combo)
• Gráficos y imágenes
o High-end 3-D: NVIDIA Quadro FX 540 (PCIe)
• Sotfware
o Operating System: Operating Systems supported by Sun
Solaris OS, Red Hat Enterprise Linux, SUSE Linux
Enterprise Server, and Microsoft Windows.
o Free Software: Preloaded Development Tools. Includes fully-
licensed versions of the following:
Sun Java Studio Creator 2 - 90-day installation support
+ 1-year support via Sun Developer Network (SDN)
Sun Java Studio Enterprise 8 - 90-day installation
support + 1-year support via SDN.
Sun Java Studio Enterprise 8 - 90-day installation
support + 1-year support via SDN.
Sun Studio 11ML - 90-day installation support.
NetBeans 5.0 open source IDE
Grid Software:
Reconocimiento de imágenes a través de su contenido
61
N1 Grid Engine 6 software license.
Other:
Matlab 7.0.1
• Monitor
o 24.1-inch Sun wide-screen TFT color flat-panel LCD
Equivalent to 27.5-inch CRT display.
0.27-mm dot pitch.
Up to 1920 x 1200 at 60 Hz (16:10 aspect ratio).
• Entorno
o Acoustics:
Operating Noise: 4.9 Bels.
Idle Noise: 4.7 Bels.
o Power supply: 1000 watts.
o Operating temperature:
2° C to 35° C (41° F to 95° F).
7-93 percent relative humidity, noncondensing
o Nonoperating temperature:
-40° C to 68° C (-40° F to 158° F);
93 percent relative humidity, noncondensing.
• Regulación
o Safety: UL/CSA-60950-1, EN 60950-1, IEC 60950-1 CB.
o Ergonomics: EK1-1TB-2000.
o RFI/EMC: EN 55022/CISPR22 Class B, FCC CFR47 Part 15
Class B, EN 61000-3-2, EN 61000-3-3.
o Immunity: EN55024.
o Regulatory markings UL/cUL, TUV-GS, CE, FCC, ICES-
003, C-Tick, VCCI, GOST-R, BSMI, CCC, S-Mark, Korean
(MIC) Mark, WEEE.
• Dimensiones y peso
o Height 445mm (17.5 in.).
o Width 205 mm (8.1 in.).
Reconocimiento de imágenes a través de su contenido
62
o Depth 569 mm (22.4 in.).
o Weight 26.31 kg (58 lbs) fully configured, depending on
configuration.
• Precio:
o 2,295.00 $
Reconocimiento de imágenes a través de su contenido
63
A continuación se detalla los elementos hardware IBM IntelliStation A Pro.
• Procesador:
o Dual-core AMD Opteron™ processors Dual-capable Opteron
200 Series processors up to 2.8 GHz.
o 1MB L2 cache per processor core
• Memoria:
o 16GB max, PC3200 ECC DDR SDRAM, 128-bit controller; 8
DIMM slots total.
• Interfaz estandar:
o Network: Integrated high-bandwidth Gigabit Ethernet with
Wake on LAN®.
o I/O:
USB 2.0 (2 front, 3 back).
2 IEEE 1394 (1 front, 1 back).
2 serial.
1 parallel.
o Audio I/O
AC-97 audio.
Microphone in (front and back).
Line in.
Fig 26-Estación de trabajo IBM IntelliStation A Pro
Reconocimiento de imágenes a través de su contenido
64
Line out.
Integrated speaker.
o Expansion bus:
(1/0) PCI Express x16.
(1/1) 64-bit/133MHz PCI-X.
(4/4) 64-bit/100MHz PCI-X.
• Memoria de almacenamiento
o Internal disk:
80GB/7,200rpm.
160GB/7,200rpm.
250GB/7,200rpm (optional).
o Optical drive: IBM MultiBurner Plus CD-R, CD-RW, DVD-
RAM, DVD-ROM, DVD-R, DVD-RW, DVD+R, DVD+RW.
• Gráficos y imágenes
o Extreme 3D NVIDIA® Quadro® FX 4500, 512MB GDDR3
SDRAM, 470 MHz GPU core.
• Sotfware:
o Microsoft® Windows® XP Professional (32-bit)
and XP Professional x64 Edition available preinstalled.
o Matlab 7.0.1
• Entorno:
o 530W.
o 3 temperature-controlled fans.
• Precio:
o 5,219.00 $
Reconocimiento de imágenes a través de su contenido
65
4.4 Evaluación de las alternativas
4.4.1 Evaluación técnica
En la tabla 23 podemos ver una comparación entre las dos máquinas propuestas.
Tabla 23-Comparativa máquinas
Reconocimiento de imágenes a través de su contenido
66
Como podemos observar en la mayoría de los elementos es superior Sun Ultra 40
Workstation a la máquina IBM IntelliStation A Pro.
En este aspecto apostaremos por la máquina Sun Ultra 40 Workstation al ser esta
mas potente.
4.4.2 Evaluación económica
En el análisis de los costes de adquisición tecnológica se pondrá especial énfasis en:
• Costes hardware: costes del equipo para el nuevo sistema.
• Costes software: licencias de productos ya desarrollados y comercializados
a adquirir como hojas de cálculo (estas son necesarias para poder salvar los
datos calculados), sistemas operativos, matlab (para poder correr la
aplicación).
ALTERNATIVA 1 2
Costes del hardware $2,295.00 $5,219.00
Costes software * *
Tabla 24-Alternativas
* En cuanto a los costes software en ambos casos serán los mismos ya que en
ambas máquinas vienen instalados sistemas operativos, los únicos costes serian los de la
adquisición de la licencia de Matlab 7.0.1 y un programa de hojas de cálculo, de este
ultimo hay software de libre distribución.
En cuanto al ámbito económico optaríamos por la alternativa 1 ya que esta es más
económica.
Reconocimiento de imágenes a través de su contenido
67
4.5 Selección de la alternativa
La alternativa elegida será la ALTERNATIVA 1 (Sun Ultra 40 Workstation),
puesto que es la que más se acerca a los requisitos y necesidades del software.
La implantación de esta máquina permitirá a las empresas que obtengan este
software un mayor rendimiento, debido a la disminución de los tiempos de los cálculos,
está disminución de tiempo supone un ahorro económico.
Reconocimiento de imágenes a través de su contenido
68
5. RECONOCIMIENTO DE COLORES
Reconocimiento de imágenes a través de su contenido
69
5. Reconocimiento de colores
5.1 Introducción
¿Qué es el color?, antes de explicar en qué consisten los modelos RGB y HSV, hay
que tener claro, porque vemos los objetos en color. Esto es debido hay una serie de
variables que inciden directamente en la percepción que tenemos de los colores y que
pueden diferenciarse en tres categorías:
La fuente luminosa: De más está decir que gracias a la presencia de la luz
percibimos no sólo los objetos sino también su cromaticidad. De las diferencias e
intensidades lumínicas que inciden sobre el objeto resultan variaciones en la percepción
de un mismo color. Existe, por ejemplo, diferencia entre luz solar y luz artificial; y
dentro de la luz natural, las diferentes posiciones del Sol a lo largo del día hacen que la
incidencia de luz provoque variaciones en el color del objeto. Esto fue apuntado por
Leonardo da Vinci (1452-1519) en su Tratado de la pintura, donde hace referencia a la
coloración azulada que asumen las sombras por la mañana hasta irse tiñendo de matices
cada vez más rojizos a medida que avanza la tarde. Ni qué hablar de las variaciones de
intensidad durante el transcurso de las estaciones del año. Por todos es sabido que los
rayos solares inciden de forma más oblicua en el solsticio de invierno y más
perpendicular en el de verano.
En relación con la luz artificial, e independientemente de los diferentes tipos que se
ofrecen en el mercado, hay que señalar dos ejemplos cotidianos. La lámpara de
filamento (el tradicional foco) genera una luz de coloración amarillenta que incide
directamente sobre el color particular de los objetos, y la llamada ‘luz blanca’ de los
tubos fluorescentes tiñe los objetos con una coloración azulada.
Podemos concluir que la fuente luminosa o de emisión de energía electromagnética
ejerce una influencia cualitativa y cuantitativa en la percepción cromática.
El objeto: Las características texturales de los objetos como transparencia, opacidad
y brillo, entre otras, así como la forma y el tamaño, inciden en la percepción del color.
Reconocimiento de imágenes a través de su contenido
70
Si pintáramos, por ejemplo, dos superficies con un mismo pigmento, pero una de ellas
fuera mate y la otra brillante, la percepción sería de un color menos intenso en el primer
caso y más luminoso en el segundo.
Es importante aclarar que no es la materia la que posee el color, sino que éste es
una percepción sensorial. La constitución molecular del objeto permite que absorba y
refleje determinadas longitudes de onda. Cuando observamos que una manzana es roja,
lo que sucede es que su superficie absorbe todas las longitudes de onda, menos la que
corresponde a lo que vemos como rojo; de ahí que percibamos ese color.
El sujeto: En este punto se hace referencia al tipo de observador. No todos los
animales perciben los colores como lo hace el ser humano. Es creencia popular, por
ejemplo, que el toro se enfurece y excita con el rojo de la capa del torero. Esto es
erróneo ya que los vacunos no distinguen la longitud de onda para ese color. Lo que
capta la atención del animal es el movimiento de la capa del torero, no su color.
En el ojo se encuentra una serie de terminaciones nerviosas conocidas como conos
y bastones que por su cualidad fotorreceptora hacen posible la visión. Los conos
permiten la visión diurna y cromática por la conversión de las distintas longitudes de
onda en sensaciones de color; los bastones permiten la visión nocturna, acromática.
Cabe recordar que la sensación de color producida por el estímulo existe sólo en el
cerebro del sujeto.
En conclusión, no sólo la luz es una condición necesaria para percibir los colores; la
presencia de los otros dos componentes es también imprescindible. Se puede tener luz y
objeto que recoja ésta, pero si no hay observador no habrá percepción; puede haber luz
y observador, pero si no hay objeto no hay color.
Color luz y color pigmento
Un aspecto importante de la teoría del color es la diferencia entre el color luz (el
que proviene de una fuente luminosa coloreada) y el color pigmento o color materia
(óleo, témpera, lápices de color, etcétera).
Color luz. Síntesis aditiva
Reconocimiento de imágenes a través de su contenido
71
Gracias a Newton (1642-1727) sabemos que la luz blanca al descomponerse origina
los siete colores del espectro visible: rojo, anaranjado, amarillo, verde, azul cian, azul y
violeta. La suma de todos los colores del espectro luminoso recompone la luz blanca
(fig. 22).
Fig 28-Representacion espectral.
Es importante señalar que del amplio espectro electromagnético, sólo una pequeña
parte puede ser percibida por el ojo humano. Por debajo del violeta se encuentran
longitudes de onda más bajas como los rayos ultravioleta y por encima del rojo se hallan
longitudes de onda más altas como los rayos infrarrojos (fig. 23).
Para el color luz se utiliza un criterio de orden aditivo o, mejor dicho, de síntesis
aditiva. Esto significa que a medida que sumamos color luz se restituye gradualmente el
blanco.
De la serie de colores que componen el espectro luminoso podemos diferenciar tres
colores fundamentales o primarios. Ellos dan origen a los otros colores y son: rojo,
verde y violeta. De las respectivas mezclas de estos colores derivan los llamados colores
secundarios o complementarios, que son (fig. 24).
Fig 27-Espectro visible
Reconocimiento de imágenes a través de su contenido
72
verde + violeta = azul cian
violeta + rojo = rojo magenta
verde + rojo = amarillo
Fig 29-Representacion primaria de los colores
De lo dicho más arriba podemos inferir que dos colores se llaman complementarios
cuando combinados en una cierta proporción equitativa recomponen la luz blanca o,
dicho de otro modo, un color es complementario de otro cuando para su mezcla no
participa el color del que es complementario. Podemos decir también que es aquel color
que dentro de una ordenación circular se encuentra en el radio opuesto; de ahí el nombre
de colores opuestos. Por lo tanto, la relación de luces complementarias quedaría
definida de la siguiente manera:
rojo + cian
azul + amarillo
verde + magenta
El principio de síntesis aditiva lo vemos aplicado en los televisores, monitores y
programas de diseño y retoque fotográfico orientados a la creación de imágenes y
gráficos cuyo destino sea la publicación en la Web o sobre una pantalla de proyección,
ya sea otro monitor o un televisor. En el caso de los televisores y monitores, cada uno
de los fósforos que componen la pantalla contiene un impulso de uno de los colores
primarios de la luz. Los programas de diseño y fotografía optan por el modo de
coloración en R (red, rojo), G (green, verde) y B (blue, azul).
El manejo de las luces coloreadas es ampliamente utilizado por físicos,
escenógrafos, decoradores, escaparatistas, cromatólogos y psicólogos, entre otros.
Reconocimiento de imágenes a través de su contenido
73
Color pigmento. Síntesis sustractiva
Al utilizar colores pigmentarios, las mezclas que se hacen involucran un tipo
distinto de síntesis: la sustractiva. A medida que incorporamos color materia,
restituimos gradualmente el negro.
De la misma forma que para el color luz existen tres colores fundamentales o
primarios, también los hay en el caso del color pigmento y ellos originan al resto de los
colores. Se llaman primarios porque no pueden obtenerse por mezcla y son: el rojo
magenta, el azul cian y el amarillo.
Es interesante destacar que los colores primarios para el color pigmento son
secundarios para el color luz.
Los colores secundarios, de igual forma que para el color luz, se obtienen de la
mezcla de los primarios, y son (fig. 25):
rojo magenta + azul cian = violeta
amarillo + rojo magenta = rojo bermellón
azul cian + amarillo = verde
Fig 30-Obtencion de los
colores primarios.
El concepto de color complementario es el mismo utilizado para el color luz, con la
diferencia de que la suma de dos colores complementarios u opuestos recomponen el
negro. Las parejas de complementarios son las siguientes:
rojo magenta + verde
azul cian + anaranjado
amarillo + violeta
Reconocimiento de imágenes a través de su contenido
74
Como ya señalamos, las mezcla de dos colores primarios origina un secundario; de
la misma forma, podemos decir que la mezcla de un primario con un secundario origina
un color terciario. Si aplicamos esto a los seis colores obtenidos tenemos:
amarillo + rojo bermellón = naranja
rojo magenta + rojo bermellón = rojo
violeta + rojo magenta = violeta rojizo
azul cian + violeta = azul violáceo
verde + azul cian = azul verdoso
amarillo + verde = verde amarillento
Ya hemos visto cómo se obtienen los 12 colores (3 primarios, 3 secundaros y 6
terciarios).
A lo largo de la historia, diversos investigadores han intentado ordenar el color de
varias maneras, ya sea en forma bidimensional o tridimensional, tomando en cuenta las
distintas variables. Una de las formas de organización en el plano más conocida es la
utilización de un círculo llamado círculo cromático (fig. 5).
Fig 31- Circulo cromático
Reconocimiento de imágenes a través de su contenido
75
Variables del color
El matiz, el tono, el valor o luminosidad y la saturación son las cuatro variables
básicas de un color y operan siempre simultáneamente.
Matiz
Es el croma de un color y depende de la longitud de onda dominante. Es la cualidad
que permite clasificar a los colores como amarillo, rojo, violeta, etc. El matiz se mide de
acuerdo con la proximidad que tiene un color con relación a otro que se halle próximo
en el círculo cromático; por ejemplo: verde amarillento, naranja rojizo, azul violáceo,
etcétera (fig. 27).
Fig 32- Representación del matiz.
Valor o luminosidad
Indica las luminancias de un color; es decir, el grado de claridad u oscuridad que
posee como cualidad intrínseca. Dentro del círculo cromático, el amarillo es el color de
mayor luminancia y el violeta el de menor.
Independientemente de los valores propios de los colores, éstos se pueden alterar
mediante la adición de blanco que lleva el color a claves o valores de luminancia más
altos, o de negro que los disminuye.
Reconocimiento de imágenes a través de su contenido
76
Tono
Es la resultante de la mezcla de los colores con blanco o negro y tiene referencia de
valor y de matiz. Por ejemplo, el amarillo mezclado con negro modifica su matiz hacia
el verde y se oscurece (fig. 28).
Fig 33 – Representación del tono.
Saturación
Se refiere al grado de pureza de un color y se mide con relación al gris. Los colores
muy saturados poseen mayor grado de pureza y se presentan con más intensidad
luminosa en relación con su valor. Los colores con menor saturación se muestran más
agrisados, con mayor cantidad de impurezas y con menor intensidad luminosa (fig. 29).
Fig 34- Representación de la saturación.
En relación directa con la saturación se encuentra la diferencia proporcional entre el
pigmento y el vehículo (medio solvente). A mayor cantidad de vehículo corresponde
menor saturación y a mayor cantidad de pigmento con relación al medio, mayor
saturación.
Reconocimiento de imágenes a través de su contenido
77
Contraste simultáneo
Éste también puede incluirse dentro de las variables del color. Alude a la influencia
recíproca de un color con relación a otro, a la capacidad que tiene un color de modificar
a otro que se encuentra en su proximidad hacia su complementario.
Un mismo color situado sobre dos campos de color distintos se ve modificado en
dos de sus variables, matiz y valor. Por ejemplo, un naranja situado sobre un campo
verde se hace notoriamente más rojizo y por lo tanto más oscuro, ya que de su ubicación
original dentro del círculo cromático se ve desplazado hacia el rojo. Si colocamos ese
mismo color sobre un campo azul violáceo, observamos que se hace más amarillento y,
por lo tanto, más luminoso, ya que dentro del orden determinado por el círculo
cromático se desplazó hacia los amarillos (fig. 40).
Fig 35- Contraste.
Si colocamos un gris sobre un fondo anaranjado se oscurece, a diferencia de cuando
lo colocamos sobre un rojo, donde se aclara (fig. 41).
Reconocimiento de imágenes a través de su contenido
78
Fig 36- Contraste
Este cambio en la percepción se debe a un fenómeno fisiológico. Nuestra vista se
satura del color que posee mayor área dentro del espacio y, en consecuencia, tiñe del
complementario al color o colores que se encuentran en su proximidad. Así, en el
primer ejemplo el campo verde tiñe de rojo al anaranjado y el azul violáceo de naranja
amarillento (esto se puede corroborar si observamos la relación diametral de un color
con respecto a otro dentro en el círculo cromático). En el segundo ejemplo el campo
anaranjado tiñe de azul al gris y el rojo de verde (fenómeno que es apenas perceptible
con relación a las variantes de valor).[D5]
Reconocimiento de imágenes a través de su contenido
79
5.2 Modelo RGB
La descripción RGB (del inglés Red, Green, Blue; "rojo, verde, azul") de un color
hace referencia a la composición del color en términos de la intensidad de los colores
primarios con que se forma: el rojo, el verde y el azul. Es un modelo de color basado en
la síntesis aditiva, con el que es posible representar un color mediante la mezcla por
adición de los tres colores luz primarios. Indicar que el modelo de color RGB no define
por sí mismo lo que significa exactamente rojo, verde o azul, razón por la cual los
mismos valores RGB pueden mostrar colores notablemente diferentes en distintos
dispositivos que usen este modelo de color. Aunque utilicen un mismo modelo de color,
sus espacios de color pueden variar considerablemente.
Para indicar con qué proporción mezclamos cada color, se asigna un valor a cada
uno de los colores primarios, de manera, por ejemplo, que el valor 0 significa que no
interviene en la mezcla y, a medida que ese valor aumenta, se entiende que aporta más
intensidad a la mezcla. Aunque el intervalo de valores podría ser cualquiera (valores
reales entre 0 y 1, valores enteros entre 0 y 37, etc.), es frecuente que cada color
primario se codifique con un byte (8 bits). Así, de manera usual, la intensidad de cada
una de las componentes se mide según una escala que va del 0 al 255.
Fig 37-Cubo RGB Fig 38-Mezcla aditiva de colores
Reconocimiento de imágenes a través de su contenido
80
Por lo tanto, el rojo se obtiene con (255,0,0), el verde con (0,255,0) y el azul con
(0,0,255), obteniendo, en cada caso un color resultante monocromático. La ausencia de
color —lo que nosotros conocemos como color negro— se obtiene cuando las tres
componentes son 0, (0,0,0).
La combinación de dos colores a nivel 255 con un tercero en nivel 0 da lugar a tres
colores intermedios. De esta forma el amarillo es (255,255,0), el cyan (0,255,255) y el
magenta (255,0,255).
Obviamente, el color blanco se forma con los tres colores primarios a su máximo
nivel (255,255,255).
El conjunto de todos los colores se puede representar en forma de cubo. Cada color
es un punto de la superficie o del interior de éste. La escala de grises estaría situada en
la diagonal que une al color blanco con el negro.[D6]
Fig 39-Cubo de color RGB
Reconocimiento de imágenes a través de su contenido
81
5.3 Modelo HSV
El modelo HSV (del inglés Hue, Saturation, Value – Tonalidad, Saturación, Valor),
también llamado HSB (Hue, Saturation, Brightness – Tonalidad, Saturación, Brillo),
define un modelo de color en términos de sus componentes constituyentes en
coordenadas cilíndricas:
Tonalidad, el tipo de color (como rojo, azul o amarillo). Se representa como un
grado de ángulo cuyos valores posibles van de 0 a 360° (aunque para algunas
aplicaciones se normalizan del 0 al 100%). Cada valor corresponde a un color.
Ejemplos: 0 es rojo, 60 es amarillo y 120 es verde.
Saturación, se representa como la distancia al eje de brillo negro-blanco. Los
valores posibles van del 0 al 100%. A este parámetro también se le suele llamar
"pureza" por la analogía con la pureza de excitación y la pureza colorimétrica de la
colorimetría. Cuanto menor sea la saturación de un color, mayor tonalidad grisácea
habrá y más decolorado estará. Por eso es útil definir la insaturación como la inversa
cualitativa de la saturación.
Valor del color, el brillo del color. Representa la altura en el eje blanco-negro. Los
valores posibles van del 0 al 100%. 0 siempre es negro. Dependiendo de la saturación,
100 podría ser blanco o un color más o menos saturado.
El modelo HSV fue creado en 1978 por Alvy Ray Smith. Se trata de una
transformación no lineal del espacio de color RGB, y se puede usar en progresiones de
color. Nótese que HSV es lo mismo que HSB pero no que HSL o HSI.
Es común, que deseemos elegir un color adecuado para alguna de nuestras
aplicaciones, cuando es así resulta muy útil usar la ruleta de color HSV. En ella la
tonalidad se representa por una región circular; una región triangular separada, puede
ser usada para representar la saturación y el valor del color. Normalmente, el eje vertical
del triángulo denota la saturación, mientras que el eje horizontal corresponde al valor
del color. De este modo, un color puede ser elegido al tomar primero la tonalidad de una
región circular, y después seleccionar la saturación y el valor del color deseados de la
región triangular.[D7]
Reconocimiento de imágenes a través de su contenido
82
Fig 40-Cono de colores del espacio HSV
Fig 41-Espacio de color HSV como una rueda de color.
Reconocimiento de imágenes a través de su contenido
83
5.4 Estudio RGB del Cielo
Para el estudio del sistema RGB del color del cielo, se ha decidido estudiar una
librería de fotografía que consta de 28 imágenes las cuales contienen partes de cielo.
Estás imágenes han sido tomadas en distintos lugares del mundo a distintas horas y en
distintas épocas del año, esto ha sido necesario por lo explicado anteriormente, la
intensidad de la luz varia a lo largo del día aunque la mayor variación de la intensidad
se observa en las distintas estaciones del año.
El proceso seguido para la obtención de la nube de puntos, ha consistido en
seleccionar en cada una de estas 28 imágenes aproximadamente 100 puntos del cielo,
para representar las gráficas de RGB. Tras seleccionar los puntos de las 28 imágenes, la
nube de puntos finalmente está formada por un total de 2814 puntos.
En las siguientes gráficas se muestra la nueve de puntos que representan al color del
cielo en las distintas proyecciones del espacio RGB.
Reconocimiento de imágenes a través de su contenido
84
Fig 42-Representación RGB de las muestras del cielo
Reconocimiento de imágenes a través de su contenido
85
Fig 43-Muestras de color cielo proyectadas en el plano RG
Reconocimiento de imágenes a través de su contenido
86
Fig 44-Muestras de color cielo proyectadas en el plano RB
Reconocimiento de imágenes a través de su contenido
87
Fig 45-Muestras de color cielo proyectadas en el plano GB
Reconocimiento de imágenes a través de su contenido
88
5.5 Estudio RGB del césped
Para el estudio del sistema RGB del color del césped, se ha decidido estudiar una
librería de fotografía que consta de 15 imágenes las cuales contienen partes de césped.
Estás imágenes han sido tomadas en distintos lugares del mundo con luz natural y luz
artificial. Se ha decidido utilizar fotografías con luz natural y luz artificial ya que esta
última cambia la percepción cromática.
En la obtención de puntos de estas 15 imágenes, se han seguido los mismos pasos
descritos en el punto anterior. Tras seleccionar los puntos de las 15 imágenes, la nube de
puntos finalmente está formada por un total de 1504 puntos.
En las siguientes gráficas se muestra la nueve de puntos que representan al color del
cielo en las distintas proyecciones del espacio RGB.
Fig 46- Representación RGB de las muestras del cielo
Reconocimiento de imágenes a través de su contenido
89
Fig 47-Muestras de color cielo proyectadas en el plano RG
Reconocimiento de imágenes a través de su contenido
90
Fig 48-Muestras de color cielo proyectadas en el plano RB
Reconocimiento de imágenes a través de su contenido
91
Fig 49-Muestras de color cielo proyectadas en el plano GB
Reconocimiento de imágenes a través de su contenido
92
5.6 Estudio RGB: cielo vs césped
Ahora para ver las posiciones que ocupan las dos nubes de puntos en las distintas
proyecciones del espacio RGB, se van a confrontar estas, y así poder estudiar cual sería
la forma más sencilla y exacta de diferenciar el color del cielo del color del césped.
En las siguientes gráficas se pude ver la nueve de puntos que representan al cielo y
la nube de puntos que representan al césped, en las distintas proyecciones del espacio
RGB.
Fig 50- Representación RGB de las muestras del cielo y césped
Se puede observar en la como los puntos del cielo y el césped no coinciden en
ningún caso, esto hace posible separar los puntos del cielo y del césped utilizando
RGB.
Reconocimiento de imágenes a través de su contenido
93
Fig 51-Muestras del color del cielo y del color del césped proyectadas en el plano RG
Se pude observar como el cielo y el césped coinciden en muchos puntos, esto
hace imposible separar los puntos del cielo y del césped utilizando solo RG. Por lo que
se descarta la posibilidad de estudiar la pertenencia de un punto en RG.
Reconocimiento de imágenes a través de su contenido
94
Fig 52-Muestras del color del cielo y del color del césped proyectadas en el plano RB
Se pude observar como los puntos del color del cielo y del color del césped no
coinciden en ningún caso, esto hace posible separar los puntos del cielo y del césped
utilizando solo RG.
Reconocimiento de imágenes a través de su contenido
95
Fig 53-Muestras del color del cielo y del color del césped proyectadas en el plano GB
Se pude observar como los puntos del cielo y el césped no coinciden en ningún
caso, esto hace posible separar los puntos del cielo y del césped utilizando solo GB.
Reconocimiento de imágenes a través de su contenido
96
5.7 Conclusión RGB
Para un buen reconocimiento de los colores se ha observado, tras analizar los
resultados obtenidos en las distintas proyecciones realizadas en los puntos anteriores
que hay dos posibilidades a la hora de desarrollar el algoritmo, aunque ambas tienen
algún inconveniente.
1. Utilización de la proyección RGB: como se puede ver en las figuras 37 – 41,
los colores del cielo y la tierra quedan claramente definidos usando esta
proyección, el único problema que se podría producir es la coincidencia de
puntos de los colores del cielo y del césped. En la figura 45 queda demostrado
que no se produce ningún tipo de coincidencia, esto es obvio ya que los colores
del cielo corresponde a la gama de azules, mientras que los colores del césped
corresponden a la gama del verde.
El inconveniente de utilizar una proyección RGB radica en la creación de
una gaussiana que sea capaz de definir una forma en 3D, esta gaussina será más
compleja que la necesaria para definir una forma en 2D.
2. Utilización combinada de las proyecciones RB y GB: mediante la utilización
única de las proyecciones de RG o GB no es posible clasificar un color, ya que
estas por separado no dan la suficiente información, pero la utilización
combinada de ambas definen claramente las tres dimensiones de RGB. Como se
puede apreciar en las figuras 47 – 48, es posible diferenciar claramente los
puntos pertenecientes a los colores del cielo y del césped.
El inconveniente de utilizar la proyección combinada de RG y GB es claro,
en lugar de tener que utilizar una gaussiana hay que utilizar dos, una para definir
los puntos de RG y la otra para definir los puntos de GB.
Finalmente se ha optado por desarrollar un algoritmo utilizando la proyección
RGB, ya que se considera que es más efectiva y además se utiliza una sola gaussiana,
Reconocimiento de imágenes a través de su contenido
97
aun siendo esta más complicada, está necesitara menos cálculos que el tener que usar
dos gaussianas una para cada proyección RG y GB.
Reconocimiento de imágenes a través de su contenido
98
5.8 Estudio HSV: Cielo
Para el estudio del sistema HSV del color del cielo, se utiliza la misma biblioteca de
imágenes que en RGB, se utiliza la misma selección de punto, los cuales se han
convertido de RGB a HSV. La conversión de puntos de RGB a HSV se realiza de la
siguiente manera:
Sea MAX el valor máximo de los componentes (R, G, B), y MIN el valor mínimo de
esos mismo valores, los componentes del espacio HSV se pueden calcular como: [D7]
Fig 54-Conversión de RGB a HSV
En este proyecto la conversión de RGB a HSV se ha realizado mediante la función
‘RGB2HSV’ ya implementada en matlab.
En el modelo HSV se va a descartar la proyección V, esto es debido a los explicado
anteriormente, el brillo es la cantidad de luminosidad que tiene un color, por ejemplo el
verde del césped podrá variar entre un verde claro hasta un verde oliva, llegando al
negro, si se diera el caso del negro cambiaria de color, por lo que no afectaría.
Reconocimiento de imágenes a través de su contenido
99
En la siguiente gráfica se puede observar la nube de puntos que representan al cielo,
recordamos que la V se desprecia.
Fig 55-Muestras del color del cielo proyectadas en el plano HS
Reconocimiento de imágenes a través de su contenido
100
5.9 Estudio HS Césped
Para el estudio del sistema HSV del color del césped, se utiliza la misma biblioteca
que en el análisis basado en RGB, también se utilizan los mismos punto, los cuales se
han convertido de RGB a HSV, utilizando el método explicado anteriormente.
En la siguiente gráfica se puede observar la nube de puntos que representan al cielo.
Fig 56-Muestras del color del césped proyectadas en el plano HS
Reconocimiento de imágenes a través de su contenido
101
5.10 HS Cielo y Césped
Para analizar la capacidad de diferenciar muestras de color azul cielo de las
muestras de color verde césped, se pueden representar todas las muestras sobre el
mismo plano. Se obtiene una figura que aporta cierta información visual sobre la
posibilidad de reconocer cada categoria
En las siguiente gráfica se puede observar la nube de puntos que representan al
cielo y la nube de puntos que representan al césped.
Fig 57-Muestras del color del cielo y del color del césped proyectadas en el plano HS
Se puede ver claramente que el cielo y el césped están definidos por colores
completamente diferentes, y que la dispersión de cada uno no es muy grande. Al usar
solo dos dimensiones es más fácil de acotar el intervalo.
Reconocimiento de imágenes a través de su contenido
102
5.11 Estudio de conflictos
5.11.1 Conflictos en RGB: interior
Una vez analizada la posibilidad de diferenciar muestras de color azul cielo y verde
césped en la proyección HS del mapa de colores, se analiza en este apartado la
incidencia de falsos positivos. Al ajustar la técnica de clasificación descrita
anteriormente con colores que no corresponden a cielo o césped, se debería de obtener
rechazo sin embargo puede ocurrir que estas muestras se clasifiquen como cielo o como
césped dando lugar a un falso positivo. Para analizar estos conflictos se han tomado 50
puntos aleatorios de una biblioteca de fotografías de interior, que no contienen imágenes
del cielo ni del césped.
Aunque anteriormente se ha dicho que para la identificación de colores en RGB se
utilizará la proyección RGB, en este y en los siguientes apartados se seguirá mostrando
las nubes de puntos en todas las posibles proyecciones del plano RGB, para de estar
forma tener una visión más precisa de la posición que ocupan estas nubes en el modelo
RGB.
En las siguientes gráficas se puede observar la nube de puntos formada en las
distintas variables de RGB.
Reconocimiento de imágenes a través de su contenido
103
Fig 58-Muestras del color del cielo, del color del césped y de color de interior, proyectadas en
el plano RGB
Se puede observar como al representar RGB en 3D, se forman tres nubes de puntos
claramente distinguibles, donde no se producen conflictos.
Reconocimiento de imágenes a través de su contenido
104
Fig 59- Muestras del color del cielo, del color del césped y de color de interior, proyectadas en
el plano RG
Se puede observar como no se producen conflictos con la nube de puntos de las
fotos del interior.
Reconocimiento de imágenes a través de su contenido
105
Fig 60- Muestras del color del cielo, del color del césped y de color de interior, proyectadas en
el plano RB
En este caso, se aprecia un conflicto entre los puntos del césped y los puntos del
interior.
Reconocimiento de imágenes a través de su contenido
106
Fig 61- Muestras del color del cielo, del color del césped y de color de interior, proyectadas en
el plano GB
Se puede apreciar un pequeño conflicto con algunos puntos del césped y en menor
medida un conflicto con los puntos del cielo.
Reconocimiento de imágenes a través de su contenido
107
5.11.2 Conflictos en RGB: fondo marino
El mismo tipo de análisis se puede realizar para la colección de imágenes de fondo
marino donde tampoco hay zonas de cielo o césped.
Fig 62-Muestras del color del cielo, del color del césped y de color de fondo marino,
proyectadas en el plano RGB
Se puede apreciar cómo se forman tres nubes de puntos claramente distinguibles,
donde no se producen conflictos.
Reconocimiento de imágenes a través de su contenido
108
Fig 63-Muestras del color del cielo, del color del césped y de color del fondo marino,
proyectadas en el plano RG
Se pueden ver conflictos dispersos, tanto en el césped como en el cielo.
Reconocimiento de imágenes a través de su contenido
109
Fig 64-Muestras del color del cielo, del color del césped y de color del fondo marino,
proyectadas en el plano RB
Como en el caso de RG, podemos ver conflictos dispersos, aunque en este caso, los
conflictos son mayores en el cielo que en el césped.
Reconocimiento de imágenes a través de su contenido
110
Fig 65-Muestras del color del cielo, del color del césped y de color del fondo marino,
proyectadas en el plano GB
Al igual que en RB, en este caso se producen mayor cantidad de conflictos en el
cielo que en el césped.
Reconocimiento de imágenes a través de su contenido
111
5.11.3 Conflictos en HSV: interior
Al igual que en RGB, se pueden comprobar los conflictos producidos al tomar una
muestra de 50 puntos de la biblioteca de fotos de interior, e intentar clasificarlos en el
plano HS, se recuerda que la proyección V ha sido descartada por las razones explicadas
anteriormente.
Se puede apreciar como de los 500 puntos aleatorios pocos coinciden con los
puntos del césped o del cielo, y aunque algunos coinciden es muy difícil que al analizar
un sector de la fotografía este diera como resultado que todos ellos estuvieran dentro del
intervalo del cielo y más difícil todavía que fuera del césped.
Fig 66-Muestras del color del cielo, del color del césped y de color de interior, proyectadas
en el plano HS
Reconocimiento de imágenes a través de su contenido
112
5.11.4 Conflictos en HSV: fondo marino
De los 500 puntos, pocos coinciden con los valores del césped y como en el caso
anterior es muy difícil que al analizar un sector de una fotografía todos los puntos
estuvieran contenidos dentro de los valores del césped. En cuanto a los puntos
coincidentes con el cielo, estos son mayores y la probabilidad de confusión con el cielo
aumenta debido a las razones obvias de que tanto el cielo como el fondo marino
contienen tonalidades azules, por lo tanto para evitar que sean confundidas será
necesario aplicar otros parámetros de clasificación además del color.
Fig 67-Muestras del color del cielo, del color del césped y de color del fondo marino,
proyectadas en el plano HS
Reconocimiento de imágenes a través de su contenido
113
5.12 Elección RGB o HSV
En este apartado se realiza un estudio de la capacidad de clasificación de colores
utilizando la información en formato RGB y haciendo la transformación de coordenadas
a HSV, la forma de transformar RGB a HSV se explico en apartados anteriores.
El proceso de análisis consiste en realizar el ajuste de funciones de densidad de
probabilidad utilizando un conjunto de muestras de entrenamiento y posteriormente
realizar una evaluación utilizando un conjunto de muestras de test.
Para el entrenamiento y su posterior validación se ha utilizado el programa
prbfnii_w_fdp.exe el cuál ha sido desarrollada por Antonio Muñoz San Roque de la
universidad Pontificia Comillas.
Reconocimiento de imágenes a través de su contenido
114
5.12.1 RGB
Como se ha visto en los puntos anteriores, la mejor forma de distinguir los colores
en el espacio RGB, es utilizando todas las componentes del espacio RGB, como se ha
explicado anteriormente la utilización combinada de las componentes de RB y GB, hace
más complicado el validar un punto, y con la utilización de la componente RG se
producen colisiones. Por estos motivos solo se estudia RGB, ya que se definen nubes de
puntos claramente separables.
RGB
Fig 68-Representación de los puntos de entrenamiento y de validación en RGB
Reconocimiento de imágenes a través de su contenido
115
Para el análisis de RGB se ha probado con diferentes configuraciones del número
de unidades ocultas, esto ha sido necesario por la complejidad de la nube de puntos al
estar esta en 3D.
Primera configuración:
Número de unidades ocultas = 4
Número de ciclos de entrenamiento = 1000
Grado de pertenencia > 0.95
Número de puntos de entrenamiento = 1500
Número de puntos de validación = 1500
Una vez entrenado se realiza la validación, de los 1500 puntos, solo 12 no están
dentro del conjunto de entrenamiento, es decir, el grado de acierto es del 99,20%.
Segunda configuración:
Número de unidades ocultas = 6
Número de ciclos de entrenamiento = 1000
Grado de pertenencia > 0.95
Número de puntos de entrenamiento = 1500
Número de puntos de validación = 1500
Una vez entrenado se realiza la validación, de los 1500 puntos, solo 10 puntos no
están dentro del conjunto de entrenamiento, es decir, el grado de acierto es del 99,33%.
Reconocimiento de imágenes a través de su contenido
116
Tercera configuración:
Número de unidades ocultas = 8
Número de ciclos de entrenamiento = 1000
Grado de pertenencia > 0.95
Número de puntos de entrenamiento = 1500
Número de puntos de validación = 1500
Una vez entrenado se realiza la validación, de los 1500 puntos, solo 13 no están
dentro del conjunto de entrenamiento, es decir, el grado de acierto es del 99.13%.
Reconocimiento de imágenes a través de su contenido
117
5.12.2 HSV
Fig 69-Representación de los puntos de entrenamiento y de validación en HSV
Para el análisis de HSV se ha probado con diferentes configuraciones del número
de unidades ocultas.
Reconocimiento de imágenes a través de su contenido
118
Primera configuración:
Número de unidades ocultas = 2
Número de ciclos de entrenamiento = 1000
Grado de pertenencia > 0.95
Número de puntos de entrenamiento = 1500
Número de puntos de validación = 1500
Una vez entrenado se realiza la validación, de los 1500 puntos solo 12 no están
dentro del conjunto de entrenamiento, es decir, el grado de acierto es del 99.20 %.
Segunda configuración:
Número de unidades ocultas = 4
Número de ciclos de entrenamiento = 1000
Grado de pertenencia > 0.95
Número de puntos de entrenamiento = 1500
Número de puntos de validación = 1500
Una vez entrenado se realiza la validación, de los 1500 puntos solo 10 no están
dentro del conjunto de entrenamiento, es decir, el grado de acierto es del 99.33%.
Reconocimiento de imágenes a través de su contenido
119
Tercera configuración:
Número de unidades ocultas = 6
Número de ciclos de entrenamiento = 1000
Grado de pertenencia > 0.95
Número de puntos de entrenamiento = 1500
Número de puntos de validación = 1500
Una vez entrenado se realiza la validación, de los 1500 puntos solo 13 no están
dentro del conjunto de entrenamiento, es decir, el grado de acierto es del 99.13%.
5.12.3 Conclusión
A partir de los resultados obtenidos en los puntos 5.11.1 y 5.11.3, se ha decidido
usar el modelo HSV mediante la proyección del plano HS, de este modelo se ha optado
por la segunda configuración. Realmente se obtiene una mejor clasificación mediante la
tercera opción, está opción al tener un mayor número de gaussianas define mejor la
forma de la nube de puntos y es por esto que excluye puntos que han sido aceptados por
la segunda opción. Sin embargo se opta por la segunda opción debido a que no hay una
gran mejora de clasificación entre la segunda y tercera opción, pero sí que es apreciable
la disminución de los cálculos al ser esta segunda opción más sencilla.
Reconocimiento de imágenes a través de su contenido
120
5.13 Descripción del algoritmo.
5.13.1 Algoritmo azul
En este apartado, se va a describir el funcionamiento del algoritmo que reconoce el
color por el cual está formado el cielo.
respuesta = cielohsv(imagen)
Donde imagen es la imagen a analizar y respuesta es el resultado tras realizar el
análisis.
Una vez recibida la imagen esta se convierte a RGB y posteriormente ha HSV.
Después de convertir la imagen a HSV se determina el tamaño de las muestras de la
imagen recibida, este tamaño será del 5% del ancho y largo. Tras saber el tamaño de la
muestra se analizaran 20 muestras, estas muestras son seleccionadas aleatoriamente
pero solo del tercio superior de la imagen, para que se considere que la imagen tiene
color del azul 2 de las 20 han tenido que dar positivo como azul.
Reconocimiento de imágenes a través de su contenido
121
Fig 70-Evaluación fotografía cielo1
El resultado que devolvió el algoritmo fue que la imagen contenía color azul cielo,
de las 20 muestras las 20 dieron como resultado azul.
El funcionamiento seguido para evaluar cada una de las 20 muestras ha sido el
siguiente:
Se crea un fichero ‘vali.dat‘ el cual contiene el valor de los pixeles de las muestras
en formato HSV, se recuerda que solo se almacenan los valores de HS. Mediante el
programa prbfnii_w_fdp.exe se evalúa el fichero vali.dat con una red que ya ha sido
creada anteriormente con un conjunto de entrenamiento el cual contenía los valores de
la nube de puntos que definía al color del cielo, esta evaluación crea un fichero llamado
‘cielo.out’. Tras la evaluación se carga el fichero ‘cielo.out’ en una matriz, recorremos
los valores de la segunda columna de dicha matriz, estos valores corresponden al grado
de pertenencia, si el grado de pertenencia es mayor al 95% se aumenta un contador
creado para saber cuántos puntos ha sido mayor al 95%. Por último, para considerar que
esa muestra como cielo, el contador tiene que tener el 95% de los puntos, es decir, el
95% de los puntos han tenido que dar un grado de pertenencia mayor al 95%.
Reconocimiento de imágenes a través de su contenido
122
1.13.1 Algoritmo verde
El funcionamiento de este algoritmo es el mismo que el del color azul, pero en este
caso, las muestras son tomadas del tercio inferior de la imagen. La evaluación con el
programa prbfnii_w_fdp.exe se realiza con una red que ya ha sido creada anteriormente
con un conjunto de entrenamiento el cual contenía los valores de la nube de puntos que
definía al color del césped.
Fig 71-Evaluación fotografía césped7
El resultado que devolvió el algoritmo fue que la imagen contenía color verde, de
las 20 muestras las 20 dieron como resultado positivo.
Reconocimiento de imágenes a través de su contenido
123
6. RECONOCIMIENTO DE TEXTURAS
Reconocimiento de imágenes a través de su contenido
124
6. Reconocimiento de texturas
6.1 Introducción
La segunda fase después de analizar el color de una fotografía, es analizar su
textura. La definición de textura presenta ambigüedades, debido a que tenemos un fuerte
concepto intuitivo del término, pero la podríamos definir como:
La disposición de las características de los elementos constituyentes de algo,
especialmente los relacionados con la apariencia superficial o la calidad al tacto.
Hay diversos métodos de análisis de texturas, que se dividen en los grupos que se
presentan aquí.
• Estadísticos
• Espectrales
• Estructurales
Estadísticos:
Los métodos estadísticos emplean medidas obtenidas a partir del histograma. El
histograma es la distribución de niveles de gris en la imagen. A partir de él se podrán
caracterizar texturas con distribuciones de intensidad concretas. Una vez obtenido el
histograma podemos obtener, entre otros, los parámetros descritos. La media, los
momentos del histograma y la entropía.
Reconocimiento de imágenes a través de su contenido
125
Espectrales:
Este método utiliza las transformadas de Fourier 2D que también permite
caracterizar texturas, ya que, la frecuencia de los niveles de gris es una de las
características de una textura. A partir de la transformada de Fourier de la región que
posee la textura se calculan dos parámetros: La suma de valores a lo largo de un círculo
o a lo largo de un cierto ángulo.
Fig 72-(a) Representación de la suma de los valores a lo largo de un círculo, (b) representación
de la suma de los valores a lo largo de un cierto ángulo.
Estructurales:
Los métodos estructurales suponen que la textura está formada por una estructura
que se repite, denominada primitiva. Se intenta detectar esa primitiva y estudiar su
distribución.
[D8]
En este proyecto para analizar las texturas se han estudiado dos métodos.
A través de su histograma.
Mediante la función statxture (también basado en el histograma).
Reconocimiento de imágenes a través de su contenido
126
Estos métodos, clasifican las texturas con tres valores posibles.
Lisa: Es aquella en las que hay un color predominante y no se producen
cambios bruscos de color, como por ejemplo el cielo.
Binaria: Hay dos o más colores predominantes en la imagen, además estos
colores son claramente diferentes, el ejemplo más claro podría ser un tablero de
ajedrez.
Rugosa: Se producen cambios bruscos de color sin seguir un patrón, como
por ejemplo el mármol travertino.
Reconocimiento de imágenes a través de su contenido
127
6.2 A través de su histograma
Este método es sencillo y rápido, consiste en generar un histograma agrupando los
256 valores que un pixel puede tomar en 16 tramos. Una vez generado el histograma se
estudia que proporción de los pixeles hay en cada tramo. De esta manera se pude
clasificar una textura como lisa, binaria o rugosa. Según el criterio que se explica más
adelante.
A continuación se explica cómo se ha obtenido el corte para clasificar la textura
como lisa, binaria o rugosa.
6.2.1 Textura lisa
Se han analizado las diez primeras imágenes de la biblioteca de fotografías de cielo.
El proceso para analizar las fotografías ha sido el siguiente.
Se ha convertido la imagen a escala de grises, esto es necesario para poder emplear
el comando imhist.
A continuación se ha extraído un fragmento de la fotografía de 190x190 pixeles.
Posteriormente se ha creado el histograma representando los 256 valores en 16
intervalos y se ha almacenado en un vector los valores de los 16 intervalos del
histograma, para posteriormente poder analizarlo.
A continuación se muestra paso a paso, el proceso empleado en la obtención de los
datos de las 10 fotografías.
Reconocimiento de imágenes a través de su contenido
128
Cielo 1
Fig 73-Cielo1, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Fig 74-Fragmento del cielo de la fotografía cielo 1.
Reconocimiento de imágenes a través de su contenido
129
Fig 75-Histograma del fragmento de cielo de la fotografía cielo1.
Reconocimiento de imágenes a través de su contenido
130
Cielo2
Fig 76- Cielo2, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Reconocimiento de imágenes a través de su contenido
131
Fig 77- Fragmento del cielo de la fotografía cielo 2.
Fig 78-Histograma del fragmento de cielo de la fotografía cielo2.
Reconocimiento de imágenes a través de su contenido
132
Cielo3
Fig 79- Cielo3, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Fig 80- Fragmento del cielo de la fotografía cielo 2.
Reconocimiento de imágenes a través de su contenido
133
Fig 81-Histograma del fragmento de cielo de la fotografía cielo3.
Se puede observar en los histogramas de las tres fotografías que los valores de los
pixeles se encuentran repartidos entre dos intervalos. Esto es lógico al ser una imagen
lisa, ya que todos sus valores estarán próximos entre sí.
Reconocimiento de imágenes a través de su contenido
134
Se muestra en la siguiente tabla cuál ha sido el reparto de los valores de los pixeles
en los 16 intervalos posibles, de las 10 fotografías.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Cielo1 0 0 4 30934 5542 1 0 0 0 0 0 0 0 0 0 0Cielo2 0 0 0 0 0 0 0 0 0 18816 17665 0 0 0 0 0Cielo3 0 0 0 0 0 0 0 0 24065 12416 0 0 0 0 0 0Cielo4 0 0 0 0 0 0 4 24999 11478 0 0 0 0 0 0 0Cielo5 0 0 0 81 35982 418 0 0 0 0 0 0 0 0 0 0Cielo6 0 0 0 0 0 0 0 0 2 15177 21110 192 0 0 0 0Cielo7 0 0 0 0 0 0 0 0 0 0 0 0 7389 29092 0 0Cielo8 0 0 0 0 0 0 0 0 0 0 0 0 1 36478 2 0Cielo9 0 0 0 0 0 0 0 0 10522 25959 0 0 0 0 0 0Cielo10 0 0 0 0 0 0 0 0 6365 27810 2306 0 0 0 0 0
Tabla 25-Reparto de los valores de los pixeles.
En esta tabla se puede ver cómo la mayoría de los puntos de cada fotografía recaen
sobre dos intervalos del histograma. Esto se produce por lo explicado anteriormente, al
ser una imagen lisa los colores están muy cerca unos de otros, ya que sólo se producen
pequeñas variaciones de tonalidad en al región.
Reconocimiento de imágenes a través de su contenido
135
6.2.2 Textura binaria
Se han analizado diez fragmentos de fotografías de la biblioteca de cielo, estos
fragmentos están compuestos por colores binarios.
El proceso empleado ha sido el mismo que para la textura lisa.
A continuación se muestra algunos ejemplos de la obtención de los puntos y sus
respectivos histogramas.
Cielo1
Fig 82- Cielo1, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Reconocimiento de imágenes a través de su contenido
136
Fig 83-Fragmento con textura binaria, de la fotografía cielo1.
Fig 84- Histograma del fragmento de la fotografía cielo1.
Cielo3
Reconocimiento de imágenes a través de su contenido
137
Fig 85- Cielo3, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Fig 86-Fragmento con textura binaria, de la fotografía cielo3.
Reconocimiento de imágenes a través de su contenido
138
Fig 87- Histograma del fragmento de la fotografía cielo3.
Reconocimiento de imágenes a través de su contenido
139
Cielo4
Fig 88-Cielo4, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Fig 89-Fragmento con textura binaria, de la fotografía cielo4.
Reconocimiento de imágenes a través de su contenido
140
Fig 90- Histograma del fragmento de la fotografía cielo4.
Reconocimiento de imágenes a través de su contenido
141
Se muestra en la siguiente tabla cual ha sido el reparto de los valores de los pixeles
en los 16 intervalos posibles, de las 10 fotografías.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Cielo1 1 265 8576 5845 414 105 70 70 83 10074 10973 5 0 0 0 0Cielo3 0 0 1 40 4764 13735 545 223 17072 101 0 0 0 0 0 0Cielo4 0 0 0 0 0 302 3776 5549 2045 15380 7542 575 484 649 179 0Cielo5 2 3041 11753 225 529 4516 2374 789 1129 1254 1551 3466 5791 61 0 0Cielo11 8 352 2070 6910 8047 1034 1385 10341 6185 133 8 4 2 1 1 0Cielo13 2 946 24483 1906 245 67 64 60 91 435 3302 4613 196 50 21 0Cielo14 0 0 0 1 12 4631 7533 1387 752 413 514 21237 1 0 0 0Cielo18 130 1129 1767 14776 2791 1117 859 1750 11853 234 12 17 19 8 5 14Cielo24 0 0 999 11778 8109 210 113 5659 9613 0 0 0 0 0 0 0Cielo27 0 4 89 2168 9251 2311 206 1523 9896 9041 453 511 1009 19 0 0
Tabla 26- Reparto de los valores de los pixeles
En esta tabla se puede ver cómo la mayoría de los puntos se reparten en dos
intervalos separados. Esto se produce, porque se está analizando dos colores diferentes,
por lo que la mayoría de los puntos caerán en dos intervalos. El grado de dispersión de
cada intervalo depende de lo uniforme que sea la subregión correspondiente a cada
color.
Análogamente si se detectan más zonas de concentración de barras, se concluye que
la imágen está tormada por tantos tonos como zonas de concentración.
Reconocimiento de imágenes a través de su contenido
142
6.2.3 Textura rugosa
Se han analizado fragmentos de siete fotografías de la biblioteca de cielo, las cuales
contenían ciertos fragmentos de textura rugosa. Esto es, fragmentos de imágenes donde
conviven pixeles de muy variada luminosidad, más claros y otros oscuros.
El proceso empleado ha sido el mismo que para la textura lisa.
A continuación se muestra algunos ejemplos de la obtención de los puntos y sus
respectivos histogramas.
Cielo6
Fig 91- Cielo6, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Reconocimiento de imágenes a través de su contenido
143
Fig 92- Fragmento con textura rugosa, de la fotografía cielo6.
Fig 93-Histograma del fragmento de la fotografía cielo6.
Reconocimiento de imágenes a través de su contenido
144
Cielo7
Fig 94- Cielo7, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Fig 95- Fragmento de la fotografía cielo6.
Reconocimiento de imágenes a través de su contenido
145
Fig 96-Histograma del fragmento de la fotografía cielo7.
Reconocimiento de imágenes a través de su contenido
146
Cielo9
Fig 97- Cielo9, marcado en un cuadrado rojo esta el fragmento seleccionado de 190x190
pixeles.
Fig 98- Fragmento de la fotografía cielo9.
Reconocimiento de imágenes a través de su contenido
147
Fig 99-Histograma del fragmento de la fotografía cielo9.
Se puede observar en los histogramas de las tres fotografías que contienen texturas
rugosas, como los valores de los pixeles se encuentran repartidos por el histograma.
Esto es normal al contener el fragmento de la imagen distintos colores que se traducen
en valores de luminosidad.
Reconocimiento de imágenes a través de su contenido
148
Se muestra en la siguiente tabla cual ha sido el reparto de los valores de los pixeles
en los 16 intervalos posibles, de las 10 fotografías.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Cielo4 2 16 296 1466 4779 5941 5964 6329 3993 2487 3000 999 724 257 60 168Cielo6 9 115 1774 5754 7830 5158 2816 6242 1761 1601 1422 1047 776 151 24 1Cielo7 0 2 101 6996 17494 8559 2604 415 149 67 39 25 17 6 3 4Cielo9 0 0 0 212 3139 6973 9099 9182 5980 1721 158 16 1 0 0 0Cielo11 4 338 2592 13838 14937 4397 357 18 0 0 0 0 0 0 0 0Cielo14 81 1000 3858 6191 6925 6810 3744 1717 1379 1290 1372 769 694 400 229 22Cielo17 11 9401 13530 6035 3550 2004 942 488 243 104 67 34 22 12 12 26Cielo20 0 175 2123 4146 4709 4464 3434 2678 2885 4408 3118 1619 1428 739 462 93Cielo24 0 25 792 1748 2292 3388 5424 9936 11185 1657 22 5 5 2 0 0Cielo26 54 298 2540 6737 6189 3153 2680 2344 1973 1879 1995 2456 1791 920 1015 527
Tabla 27-Reparto de los valores de los pixeles
En esta tabla se puede ver cómo puntos recaen sobre varios intervalos del
histograma. Esto se produce por lo explicado anteriormente, al ser una imagen rugosa
los colores son diversos, por lo que muchos intervalos del histograma tendrán puntos.
Reconocimiento de imágenes a través de su contenido
149
6.3 Descripción del algoritmo textura
A continuación se describe el funcionamiento del algoritmo implementado para la
clasificación de las texturas.
tipo = textura(imagen)
El algoritmo recibe como entrada la variable ‘imagen’, que es una matriz
tridimensional “RGB”, es decir, una matriz 2D por cada uno de los colores básicos, de
una imagen o sub-imagen.
Devuelve ‘tipo’, que es un vector de cuatro posiciones, a continuación se describe
los posibles valores que puede tomar este vector y el significado de cada uno de ellos.
• Tipo(1): Puede tomar los valores 0 o 1, el valor 0 significa que la imagen no
está formada por una textura lisa, mientras que si toma el valor 1 significa
que la imagen si está formada por una textura lisa.
• Tipo(2): Puede tomar los valores 0 o 1, si toma valor 0 esto significa que la
imagen no está formada por una textura binaria, mientras que si toma el
valor 1 significa que la imagen está formada por una textura binaria.
• Tipo(3): Al igual que en los casos anteriores, solo puede tomar los valores 0
o 1, si toma valor 0 esto significa que la imagen no está formada por una
imagen rugosa, mientras que si toma el valor 1 esto quiere decir que la
imagen está formada por una textura rugosa.
• Tipo(4): Indica el número de colores por los que está formado una imagen
binaria, por lo que los valores que puede tomar son los siguientes, 0 que
significa que no es una imagen binaria (por lo tanto el valor de tipo(2)
también será 0), ≥ 2 indicando que es una imagen binaria por lo que el valor
de tipo(2) será 1. Por ejemplo si toma valor 3 indica que la imagen binaria
está formada por 3 colores.
Reconocimiento de imágenes a través de su contenido
150
Cuando se realiza una llamada a textura, este algoritmo lo primero que hace es
convertir la imagen o sub-imagen, a una imagen en escala de grises. Una vez convertida
a escala de grises, se genera un histograma (mediante la función imhist) de 16
intervalos. Este histograma es almacenado en un vector (vector1) al cual se le resta a
todas sus posiciones el entero por debajo del 5.75% del total de la suma de puntos, es
decir, si la suma de las 16 posiciones del vector es de 36000 a cada posición del vector
habría que restarle 36022*0.0578 = 2071. Esto elimina todas las tonalidades poco
representativas, que se pueden considerar ruido.
El siguiente paso es almacenar en un nuevo vector (vector2), los valores que
contiene el vector1, pero teniendo en cuenta, que si este tiene un valor mayor a 0 se
almacena el valor que contenga el vector1, pero si el valor del vector1 es 0 o inferior en
el vector2 se almacenara el valor 0.
A continuación se recorre el vector2, guardando cuantas barras del histograma han
tendido un valor superior a 0 y el número de barras coninuas, de esta forma
posteriormente se podrá analizar el tipo de textura. Por ejemplo en el siguiente
histograma:
Reconocimiento de imágenes a través de su contenido
151
Fig 100-Histograma de una imagen binaria.
La línea discontinua roja, representa el corte de los 2071 puntos, por lo que solo se
tendrá en cuenta los valores que estén por encima, por lo tanto, el valor de tramo = 2,
mientras que el de continuas toma los valores de continua(1) = 2 y continua(2) = 1.
Por último se analiza las variable tramo y el vector de continua. Se pueden dar tres
posibilidades.
1. Lisa: para ser textura lisa, tiene que cumplir que el número de tramos sea
uno y el valor de continua tiene que ser menor o igual a tres.
2. Binaria: para ser textura binaria, tiene que cumplir que el número de tramos
sea mayor o igual a dos y que el valor del contador para cada tramos se
menor o igual a tres.
3. Rugosa: para ser textura rugosa, tiene que cumplir que el valor del contador
de un tramo sea mayor a tres, mientras que el número de tramos puede
tomar cualquier valor.
Reconocimiento de imágenes a través de su contenido
152
Idealmente una imagen sólo debería ser lisa, binaria ó rugosa y por lo tanto en las
tres primeras componentes del vector de resultado solo debería haber un uno. Sin
embargo se deja abierta la posibilidad de ser clasificada por varios criterios, lo cual
aporta flexibilidad y permite evaluar mejor los algoritmos.
Reconocimiento de imágenes a través de su contenido
153
6.4Texturas a través de la función statxture[F1]
Esta función se ha obtenido del libro Digital Image Processing, a continuación se
hace una breve descripción de su funcionamiento.
t = statxture(f, scale);
Donde f es una imagen de entrada (o subimagen) y t es un vector fila de 6
elementos cuyos componentes son los descriptores, que se definen a continuación
ordenados en el mismo orden. El parámetro scale también es un vector fila de 6
elementos, cuyos componentes multiplican los elementos correspondientes de t para
propósitos escalares. Si el valor scale es omitido, se le asigna un vector por de defecto
de 6 elementos cuyos valores serán 1.
• Mean: Una medida del término medio de la intensidad.
• Standard deviation: Una medida del término medio del contraste.
• Smothness: Mide la suavidad relativa de la intensidad de una región, R es 0 para
una región de intensidad constante y se aproxima a 1 para regiones con
excursiones más largas en los valores de sus niveles de intensidad. En la
práctica, la varianza utilizada en esta medida es normalizada al rango [0,1].
• Third moment: Significa la asimetría de un histograma. Esta medida es 0 para
histogramas simétricos, positivo para histogramas asimétricos a la derecha
(sobre el significado) y negativo para histogramas asimétricos a la izquierda.
• Uniformity: Mide la uniformidad. Esta medida es máxima cuando todos los
niveles grises son iguales y desciende desde allí.
• Entropy: Una medida de aleatoriedad.
Reconocimiento de imágenes a través de su contenido
154
6.4.1 Textura lisa
En tabla 4 se muestran los valores obtenidos en las diez fotografías analizadas
anteriormente, pero ahora con la función statxture.
Mean Standard deviation Smothness Third moment Uniformity EntropyCielo1 56,418 3,1403 0,0002 0 0,0927 3,6875Cielo2 161,3194 3,9099 0,0002 0 0,0697 3,9988Cielo3 143,8766 1,7296 0 0 0,1765 2,8054Cielo4 125,9209 3,0456 0,0001 0 0,0942 3,6344Cielo5 69,9853 2,8048 0,0001 0 0,1057 3,5046Cielo6 162,2645 5,5885 0,0005 0,0012 0,0573 4,4088Cielo7 214,7608 2,6152 0,0001 0 0,1208 3,2833Cielo8 222,2894 2,1562 0,0001 0 0,1405 3,0332Cielo9 145,8803 2,7522 0,0001 ‐0,0001 0,104 3,4832Cielo10 151,3778 6,49616 0,0006 0,0004 0,0419 4,6748
Tabla 28
Las características de las texturas lisas, respecto a estos 5 valores (la media no es
significativa) son las siguientes.
• Standard deviation: valor bajo, comprendido entre 2−6.5.
• Smothness: valor bajo, comprendido entre 0−0.0006.
• Third momento: valor bajo, comprendido entre -0.0001−0.0004.
• Uniformity: valor alto, comprendido entre 0.05−0.15.
• Entropy: valor bajo, comprendido entre 3−4.5.
Reconocimiento de imágenes a través de su contenido
155
6.4.2 Textura binaria
En tabla 4 se muestran los valores obtenidos en las diez fotografías analizadas
anteriormente, pero ahora con la función statxture.
Mean andard deviati Smothness Third momen Uniformity EntropyCielo1 111,5 59,4168 0,0515 ‐1,1361 0,0387 5,2934Cielo3 108,2 29,4892 0,0132 0,0100 0,0456 5,0091Cielo4 148,4 26,3332 0,0106 ‐0,0207 0,0463 5,5129Cielo5 100,3 70,1094 0,0703 1,8158 0,0136 6,7850Cielo11 90,3 34,9466 0,0184 ‐0,0680 0,0138 6,4830Cielo13 69,6 61,9229 0,0557 4,4206 0,0346 5,5471Cielo14 153,6 44,1013 0,0290 ‐0,6478 0,0631 4,9845Cielo18 84,4 42,4865 0,0270 0,3421 0,0224 6,1453Cielo24 85,17 37,3890 0,0210 0,1629 0,0407 5,0397Cielo27 116,6 40,9523 0,0251 ‐0,1409 0,0138 6,4890
Tabla 29
Las características de las texturas lisas, respecto a estos 5 valores (la media no es
significativa) son las siguientes.
• Standard deviation: valor bajo, comprendido entre 26−70.
• Smothness: valor bajo, comprendido entre 0.01−0.07.
• Third momento: valor bajo, comprendido entre -1.9−4.5.
• Uniformity: valor alto, comprendido entre 0.01−0.05.
• Entropy: valor bajo, comprendido entre 5−6.8.
Reconocimiento de imágenes a través de su contenido
156
6.4.3 Textura rugosa
En tabla 4 se muestran los valores obtenidos en las diez fotografías analizadas
anteriormente, pero ahora con la función statxture.
Mean andard deviati Smothness Third moment Uniformity EntropyCielo4 114,0791 39,5144 0,0234 0,5803 0,0077 7,2417Cielo6 95,2019 42,1775 0,0266 0,9175 0,0084 7,1876Cielo7 72,3611 16,1822 0,004 0,1277 0,0214 5,841Cielo9 108,14 22,7251 0,0079 0,0062 0,012 6,5258Cielo11 61,0878 13,9308 0,003 ‐0,0016 0,0207 5,8369Cielo14 86,4696 45,9491 0,0314 1,667 0,0079 7,3088Cielo17 43,4333 26,7221 0,0109 0,6251 0,0175 6,2711Cielo20 113,5912 52,5547 0,0407 0,7753 0,0057 7,6017Cielo24 111,7108 27,6927 0,0117 ‐0,3165 0,0128 6,5802Cielo26 108,6495 60,5981 0,0535 2,279 0,0063 7,6003
Tabla 30
Las características de las texturas rugosa, respecto a estos 5 valores (la media no es
significativa) son las siguientes.
• Standard deviation: valor alto, comprendido entre 14−60.
• Smothness: valor alto, comprendido entre 0.003−0.05.
• Third momento: valor alto, comprendido entre -0.3−02.
• Uniformity: valor bajo, comprendido entre 0.008−0.02.
• Entropy: valor alto, comprendido entre 5.8−7.6.
Reconocimiento de imágenes a través de su contenido
157
7. ANALISIS COMBINADO DE COLOR Y
TEXTURA
Reconocimiento de imágenes a través de su contenido
158
7. Análisis combinado de color y texturas
En este apartado se realizara un último análisis que combina los conceptos de los
puntos anteriores, es decir, se creará un algoritmo el cuál analiza el color y las texturas
con objeto de detectar elementos concretos. Para ello es necesario realizar pequeñas
modificaciones en los algoritmos creados anteriormente. Ahora estos algoritmos no
reciben la imagen completa sino que reciben una subimagen, esta subimagen es la
muestra a analizar.
Fig 101-Representación de las llamadas a funciones
A continuación, se explicara el funcionamiento de la función reconocimiento. No se
explicará el resto de funciones ya que han sido explicadas anteriormente, solo se han
modificado los datos de entrada (subimagen en lugar de imagen completa).
Funcion:
Reconocimiento
Funcion:
Color
Funcion:
Textura
Funcion:
Continuas
Reconocimiento de imágenes a través de su contenido
159
7.1 Descripción del algoritmo reconocimiento de cielo
En este se toman 20 muestras o subimagen. Estas muestras tienen un tamaño del
5% del ancho y largo de la imagen (ver figura Ilustración 1). Tras obtener la muestra,
esta se guarda en una matriz, seguidamente se llama a la función color, ha esta función
se le pasa la matriz convertida a HSV. Si la función color nos devuelve que la imagen
contenía cielo llamamos a la función textura. A esta última función se le pasa la matriz
convertida a escala de grises.
Si la función textura ha devuelto como resultado que es una textura lisa, es decir, la
primera posición del vector que devuelve vale 1 y el color es azul, se contabiliza el
fragmento como cielo y se incrementa un contador. Si tras evaluar las 20 muestras al
menos 2 de ellas son de color azul y textura lisa (el contador vale 2 o más), entonces la
imagen contendrá cielo.
Ilustración 1-Evaluación fotografía cielo1
Reconocimiento de imágenes a través de su contenido
160
El resultado que devolvió el algoritmo fue que la imagen contenía cielo, de las 20
muestras las 19 dieron como resultado cielo, como se verá en el capítulo de resultados.
Reconocimiento de imágenes a través de su contenido
161
7.2 Descripción del algoritmo para reconocimiento de césped.
La segunda característica que se ha querido extraer para clasificar imágenes es
detectar si la imagen contiene césped (por ejemplo imágenes de futbol y golf).
Análogamente el reconocimiento de cielo, en el reconocimiento de césped se toman
20 muestras o subimagen. Estas muestras tienen un tamaño del 5% del ancho y largo de
la imagen . Tras obtener la muestra, esta se guarda en una matriz, seguidamente se llama
a la función color, ha esta función se le pasa la matriz convertida a HSV. Si la función
color nos devuelve que la imagen contenía césped llamamos a la función textura. A esta
última función se le pasa la matriz convertida a escala de grises.
Si la función textura ha devuelto como resultado que es una textura lisa, es decir, la
primera posición del vector que devuelve vale 1 y el color es azul, se contabiliza el
fragmento como césped y se incrementa un contador. Si tras evaluar las 20 muestras al
menos 2 de ellas son de color verde y textura lisa (el contador vale 2 o más), entonces la
imagen contendrá cielo.
Reconocimiento de imágenes a través de su contenido
162
8. DETECTOR CARAS
Reconocimiento de imágenes a través de su contenido
163
8. Detector caras
8.1 Introducción
Aunque se ha localizado un algoritmo desarrollado en Matlab para detección de
caras llamado Face Detection Toolbox [D11], el programa de ejemplo tiene algunos
problemas que impiden su ejecución en versiones actuales de Matlab. Por lo tanto en
este apartado se van a explicar los pasos seguidos a la hora de diseñar el algoritmo de
detención de caras. El diseño de este algoritmo se ha basado en el documento Face
Detección in Color Images IEEE TRANSACTION ON PATTERN ANALYSIS AND
MACHINE INTELLIGENCE, VOL. 24, NO.5 MAY 2002 [D9].
Para la localización de la cara dentro de una imagen, el método más sencillo y
lógico es en primer lugar la detención de los ojos y posteriormente localizar la boca en
una posición predeterminada, es decir, supondremos que la imagen estará bien ajustada
y nunca invertida o girada. La boca se buscara por debajo de los ojos centrado entre
ambos y a una distancia equivalente a la separación de los ojos.
Este algoritmo sólo es capaz de detectar si existe un rostro dentro de una imagen y
si cumple las siguientes condiciones:
• Sólo puede haber un rostro en la imagen.
• En la imagen la persona debe estar centrada de cintura para arriba.
Estas limitaciones son debidas, a la cantidad de puntos que forma un ojo en una
imagen de cuerpo entero o de medio cuerpo. Lógicamente en las de medio cuerpo el ojo
será más grande y por lo tanto el ojo estará formado por más puntos. Además la
distancia entre los ojos será mayor en la imagen de medio cuerpo que en la de cuerpo
entero. Con estas restricciones se simplifica el proceso y aumenta la fiabilidad de la
clasificación.
Antes de explicar el funcionamiento de dicho algoritmo, se explicara el modelo de
color YCBCR, utilizado tanto en la detención de los ojos como de los labios.
Reconocimiento de imágenes a través de su contenido
164
8.2 YCbCr
[D11] YPbPr (también denominado "Y/Pb/Pr", "YPrPb", "PrPbY", "B-Y R-Y Y" o
"PbPrY") es el acrónimo que designa las componentes del espacio de color RGB
utilizadas en el tratamiento de la señal de vídeo; en particular, referidas a los cables de
video compuesto. YPbPr es la versión de señal analógica del espacio de color YCbCr;
ambas son numéricamente equivalentes, pero mientras que YPbPr se utiliza en
electrónica analógica, YCBCR está pensada para vídeo digital.
Y transporta la información de luminancia (brillo).
Pb transporta la diferencia entre la componente azul y la de luminancia (B - Y).
Pr transporta la diferencia entre la componente roja y la de luminancia (R - Y).
Fig 102-Cubo YCbCr 1 [I1]
Reconocimiento de imágenes a través de su contenido
165
Fig 103-Cubo YCbCr II [I1]
Reconocimiento de imágenes a través de su contenido
166
8.3 Descripción algoritmo implementado
En este apartado, se va a describir el funcionamiento del algoritmo que reconoce si
en una imagen hay una cara. Como se ha comentado, realmente detecta un retrato. Este
algoritmo está formado por cuatro funciones.
• rostro: Recibe la imagen y la convierte a YCbCr, realiza la llamada a ojos y
localizador.
• localizador: Recibe desde rostro la imagen YCbCr y el resultado del los
posibles ojos. Analiza los posibles ojos, una vez localizado los dos ojos,
llama a labios y comprueba si existe un labio en la parte inferior de los ojos
a la distancia apropiada.
• ojos: Localiza los posibles ojos y los almacena en una imagen binaria.
• labios: Localiza los posibles labios y los almacena en una imagen binaria.
A continuación se describe la lógica de cada una de las fuciones.
8.3.1 Función rostro.
Recibe la imagen a analizar y la convierte a YCbCr.
Fig 104-Imagen recibida por la funcion rostro
Reconocimiento de imágenes a través de su contenido
167
Fig 105- Imagen convertida a YCbCr
Una vez que la imagen ha sido convertida a YCbCr, se realiza la llamada a ojos
pasándole la imagen convertida. Posteriormente, se realiza la llamada a localizador, al
cual le pasa la mitad superior de la matriz formada por los posibles ojos, ya que
suponemos que si la foto es de medio cuerpo los ojos estarán en la parte superior. Antes
de llamar a localizador se realiza un filtrado de la matriz devuelta por la función ojos. El
filtro utilizado en la matriz de los posibles ojos, consiste en eliminar todos aquellos
candidatos que estén formados por más de 5000 puntos y menos de 150.
8.3.2 Función ojos
Recibe la imagen convertida en YCbCr y devuelve una matriz binaria en la cual el
uno son los posibles ojos.
Su lógica según se propone en [D9] es la siguiente:
Reconocimiento de imágenes a través de su contenido
168
Fig 108-Y Fig 107-Cr2 Fig 106-Cb2
Fig 110-EyeMapL Fig 109-EyeMapC
AND
Fig 111-EyeMap
Reconocimiento de imágenes a través de su contenido
169
Una vez obtenida la matriz EyeMap, se realiza una operación de dilatación sobre
esta, para obtener unos ojos mejor definidos.
Fig 112-Dilatacion
La matriz dilatada es la respuesta proporcionada por la función ojos.
Posteriormente la función rostro filtra los posibles ojos con criterios de tamaño máximo
y mínimo. El resultado obtenido para esta imagen seria:
Reconocimiento de imágenes a través de su contenido
170
Fig 113-Respuesta filtrada
8.3.3 Función labio
Al igual que la función ojos, recibe la imagen convertida en YCbCr y devuelve una
matriz binaria en la cual el uno son los posibles labios.
Su lógica según se propone en [D9] es la siguiente:
Reconocimiento de imágenes a través de su contenido
171
Fig 115-Cr/Cb Fig 114-Cr2
XOR
Fig 117-Diferencia
A
N
D
Fig 116-MouthMap
Reconocimiento de imágenes a través de su contenido
172
Una vez obtenida la matriz MouthMap, se realiza una operación de dilatación sobre
esta, para obtener un labio mejor definidos.
Fig 118-Imagen dilatada
La matriz dilatada es la respuesta proporcionada de la función labios.
Posteriormente la función localizador filtra los posibles labios. El resultado obtenido
para esta imagen seria:
Reconocimiento de imágenes a través de su contenido
173
Fig 119-Respuesta filtrada
8.3.4 función Localizador (basado en geometrías)
Esta función es la encargada de una vez localizado un ojo, comprobar si en un
región a su derecha existe otro posible ojo, este intervalo es igual a:
- Ymin = la coordenada Y del centro del primer ojo menos la altura de la
subimagen que contiene los ojos por 0.08.
- Ymax = la coordenada Y del centro del primer ojo mas la altura de la
subimagen que contiene los ojos por 0.08.
- Xmin = la coordenada X del centro del primer ojo mas el ancho de la
subimagen que contiene los ojos por 0.1.
- Xmax = la coordenada X del centro del primer ojo mas el acho de la
subimagen que contiene los ojos por 0.3.
Se trata por lo tanto de comprobaciones geométricas que asumen un valor típico de
distancias entre ojos con cierta tolerancia.
Reconocimiento de imágenes a través de su contenido
174
En el ejemplo anterior los procesos seguidos por esta función generarían los
siguientes resultados para la obtención de los ojos
Fig 120-Imagen recibida por la funcion localizador, donde se encuentran los posibles ojos
Una vez que localizado el posible ojo que se encuentra dentro del círculo rojo,
obtiene la subimagen (en esta caso, sería el cuadrado azul), la cual es analizada
posteriormente en busca de otro ojo. La subimagen obtenida en este caso sería:
Fig 121-Subimagen a analizar en busca de un posible ojo
Tras obtener los dos ojos, se intenta localizar los labios, estos deberían encontrase
en la parte inferior de los ojos centrado entre ambos, la distancia en el eje Y entre los
ojos y la boca, es aproximadamente igual a la distancia en X entre ambos ojos. Es decir:
Reconocimiento de imágenes a través de su contenido
175
Fig 122- Relaciones geométricas en Rostro2
Distancia entre ojos Distancia vertical entre los ojos y los labios
Por lo que el intervalo de búsqueda de los labios seria:
- Ymin = la coordenada Y del centro del primer ojo mas la distancia X entre ojos por 0.6
- Ymax = la coordenada Y del centro del primer ojo mas la distancia X entre ojos por 1.2
- Xmin = la coordenada X del punto medio de la distancia entre los dos ojos menos la distancia entre ojos partido de cuatro.
- Xmax = la coordenada X del punto medio de la distancia entre los dos ojos mas la distancia entre ojos partido de cuatro.
En nuestro ejemplo los resultados obtenidos serian los siguientes:
Reconocimiento de imágenes a través de su contenido
176
Fig 123-Imagen filtrada de los posibles labios
Por lo que la subimagen creada a partir de los dos posibles ojos seria.
Fig 124-Subimagen donde se deberia encontrar el labio
Una vez obtenido acierto tanto en los ojos como en los labios, la respuesta del
algoritmo seria positiva.
Reconocimiento de imágenes a través de su contenido
177
Fig 125-Resultado obtenido tras la ejecución de los algoritmos
Reconocimiento de imágenes a través de su contenido
178
9. PRUEBAS DE VALIDACION
Reconocimiento de imágenes a través de su contenido
179
9. Pruebas
9.1 Evaluación del algoritmo de detección de cielo.
Para ver el comportamiento del algoritmo, se han analizado todas las fotografías de
las distintas bibliotecas, distinguiendo entre los siguientes posibles resultados.
Caso1:
La fotografía analizada contiene cielo El resultado es positivo (acierto).
Caso2:
La fotografía analizada no contiene cielo El resultado es negativo (acierto).
Caso3:
La fotografía analizada no contiene cielo El resultado es positivo (fallo).
Caso4:
La fotografía analizada contiene cielo El resultado es negativo (fallo).
Reconocimiento de imágenes a través de su contenido
180
CASO 1
Nombre Aciertos de los 20 posibles Resultado Cielo1 20 Acierto Cielo2 18 Acierto Cielo3 20 Acierto Cielo4 19 Acierto Cielo5 12 Acierto Cielo6 20 Acierto Cielo7 17 Acierto Cielo8 20 Acierto Cielo9 20 Acierto Cielo10 20 Acierto Cielo11 5 Acierto Cielo12 20 Acierto Cielo13 16 Acierto Cielo14 17 Acierto Cielo15 20 Acierto Cielo16 17 Acierto Cielo17 20 Acierto Cielo18 17 Acierto Cielo19 20 Acierto Cielo21 18 Acierto Cielo22 20 Acierto Cielo23 17 Acierto Cielo24 16 Acierto Cielo25 10 Acierto Cielo28 12 Acierto Césped7 2 Acierto Césped9 6 Acierto
Tabla 31- Imágenes que contienen cielo y han sido clasificadas como cielo.
CASO 2 Nombre Aciertos de los 20 posibles Resultado Cielo20 0 Acierto Cielo26 0 Acierto Cielo27 0 Acierto Césped1 0 Acierto Césped2 0 Acierto Césped3 1 Acierto Césped4 0 Acierto Césped5 0 Acierto Césped6 0 Acierto Césped10 1 Acierto Césped11 0 Acierto Césped12 0 Acierto Césped14 0 Acierto
Reconocimiento de imágenes a través de su contenido
181
Interior1 0 Acierto Interior2 0 Acierto Interior3 0 Acierto Interior4 0 Acierto Interior5 0 Acierto Interior6 0 Acierto Interior7 0 Acierto Interior8 0 Acierto Interior9 0 Acierto Interior10 0 Acierto Submarina1 0 Acierto Submarina2 0 Acierto Submarina3 0 Acierto Submarina4 1 Acierto Submarian5 0 Acierto Submarina6 0 Acierto Submarina7 0 Acierto Submarina8 0 Acierto Submarina10 0 Acierto
Tabla 32- Imágenes que no contienen cielo y no han sido clasificadas como cielo.
CASO 3 Nombre Aciertos Resultado Césped13 4 Fallo Césped15 2 Fallo Submarina9 7 Fallo
Tabla 33- Imágenes que no contienen cielo y han sido clasificadas como cielo.
CASO 4 Nombre Aciertos Resultado Césped8 1 Fallo
Tabla 34- Imágenes que contienen cielo y no han sido clasificadas como cielo.
Después de analizar un total de 60 fotografías, 56 han dado un resultado positivo, y
solo 4 resultado negativo, es decir, 93.33% han sido acierto.
Reconocimiento de imágenes a través de su contenido
182
9.2 Evaluación del algoritmo de césped
Para ver el comportamiento del algoritmo, se han analizado todas las fotografías de
las distintas bibliotecas, distinguiendo entre los siguientes posibles resultados.
Caso1:
La fotografía analizada contiene césped El resultado es positivo (acierto).
Caso2:
La fotografía analizada no contiene césped El resultado es negativo (acierto).
Caso3:
La fotografía analizada no contiene césped El resultado es positivo (fallo).
Caso4:
La fotografía analizada contiene césped El resultado es negativo (fallo).
Reconocimiento de imágenes a través de su contenido
183
CASO 1
Nombre Aciertos Resultado Césped1 11 Acierto Césped2 13 Acierto Césped3 9 Acierto Césped4 8 Acierto Césped5 4 Acierto Césped6 7 Acierto Césped7 20 Acierto Césped8 15 Acierto Césped9 5 Acierto Césped10 14 Acierto Césped11 7 Acierto Césped12 15 Acierto Césped13 16 Acierto Césped14 6 Acierto Césped15 14 Acierto Cielo27 4 Acierto
Tabla 35- Imágenes que contienen césped y han sido clasificadas como césped.
CASO 2 Nombre Aciertos Respuesta Cielo1 0 Acierto Cielo2 0 Acierto Cielo3 0 Acierto Cielo4 0 Acierto Cielo5 0 Acierto Cielo6 0 Acierto Cielo7 0 Acierto Cielo9 0 Acierto Cielo10 0 Acierto Cielo11 1 Acierto Cielo12 0 Acierto Cielo13 0 Acierto Cielo14 0 Acierto Cielo15 0 Acierto Cielo16 0 Acierto Cielo17 0 Acierto Cielo18 0 Acierto Cielo19 0 Acierto Cielo21 0 Acierto Cielo22 0 Acierto Cielo23 0 Acierto Cielo24 0 Acierto Cielo25 0 Acierto Cielo26 1 Acierto
Reconocimiento de imágenes a través de su contenido
184
Cielo28 0 Acierto Interior1 0 Acierto Interior2 0 Acierto Interior3 0 Acierto Interior4 0 Acierto Interior5 0 Acierto Interior6 0 Acierto Interior7 0 Acierto Interior8 0 Acierto Interior9 0 Acierto Interior10 0 Acierto Submarina1 0 Acierto Submarina2 0 Acierto Submarina3 0 Acierto Submarina4 0 Acierto Submarina5 0 Acierto Submarina6 0 Acierto Submarina7 0 Acierto Submarina8 0 Acierto Submarina9 0 Acierto Submarina10 0 Acierto
Tabla 36-Imágenes que no contienen césped y no han sido clasificadas como césped.
CASO 3 Nombre Aciertos Resultado Cielo27 4 Fallo
Tabla 37-Imágenes que no contienen césped y han sido clasificadas como césped.
CASO 4 Nombre Aciertos Resultado Cielo8 0 Fallo Ceilo20 0 Fallo
Tabla 38-Imágenes que contienen césped y no han sido clasificadas como césped.
Después de analizar un total de 60 fotografías, 58 han dado un resultado positivo, y
solo 4 resultado negativo, es decir, 96.67% han sido acierto.
Reconocimiento de imágenes a través de su contenido
185
9.3 Pruebas del algoritmo de identificación textura
Se han estudiado 30 fragmentos de fotografías para ver la eficiencia del algoritmo
generado. A continuación se muestra en una tabla los resultados obtenidos y los
deseados.
Nº Fragmento Resutado Obtenido Resultado Deseado Acierto 1 1 0 0 0 1 0 0 0 si 2 1 0 0 0 1 0 0 0 si 3 1 0 0 0 1 0 0 0 si 4 1 0 0 0 1 0 0 0 si 5 1 0 0 0 1 0 0 0 si 6 1 0 0 0 1 0 0 0 si 7 1 0 0 0 1 0 0 0 si 8 1 0 0 0 1 0 0 0 si 9 1 0 0 0 1 0 0 0 si 10 1 0 0 0 1 0 0 0 si 11 0 1 0 2 0 1 0 2 si 12 0 1 0 2 0 1 0 2 si 13 0 1 0 2 0 1 0 2 si 14 0 1 0 3 0 1 0 3 si 15 0 1 0 2 0 1 0 2 si 16 0 1 0 2 0 1 0 2 si 17 0 1 0 2 0 1 0 2 si 18 0 1 0 2 0 1 0 2 si 19 0 1 0 2 0 1 0 2 si 20 0 1 0 2 0 1 0 2 si 21 0 0 1 0 0 0 1 0 si 22 0 0 1 0 0 0 1 0 si 23 0 0 1 0 0 0 1 0 si 24 0 0 1 0 0 0 1 0 si 25 0 0 1 0 0 0 1 0 si 26 0 0 1 0 0 0 1 0 si 27 0 0 1 0 0 0 1 0 si 28 0 0 1 0 0 0 1 0 si 29 0 0 1 0 0 0 1 0 si 30 0 0 1 0 0 0 1 0 si
Tabla 39-Resultados obtenidos con el algoritmo de texturas
Reconocimiento de imágenes a través de su contenido
186
Después de ver los resultados obtenidos tras analizar los 30 segmentos de
fotografías con el algoritmo generado, podemos decir que la eficiencia del este es del
100% al no producirse ningún error en la clasificación.
Reconocimiento de imágenes a través de su contenido
187
9.4 Detalles de evaluación del algoritmo de reconocimiento de cielo
Para ver si el algoritmo funciona correctamente, se ha realizado una prueba la cual
consistía en analizar una imagen completa y marcar en un recuadro aquellas secciones
de la foto que dieron como resultado cielo. El tamaño del recuadro será igual que en los
casos anteriores del 5% del ancho y largo de la imagen.
A continuación se muestran algunos resultados obtenidos.
Imagen cielo1
Fig 126-Imagen a analizar
Se puede observar en la figura 121 como muchas partes pertenecientes a la nieve
han sido confundidas con el cielo, esto es debido a que la nieve tiene textura lisa y tonos
Reconocimiento de imágenes a través de su contenido
188
azulados debido al reflejo del cielo. Un problema más importante ha surgido en sólo
siete muestras de tierra confundidas por cielo.
Fig 127- Resultado del análisis
Reconocimiento de imágenes a través de su contenido
189
Imagen cielo5: Es otro ejemplo de imagen completa donde se ha realizado 400
evaluaciones de la función de detección de cielo
Fig 128-Imagen a analizar
En la figura 129, se puede ver cómo no se ha producido ninguna confusión y
todas las partes pertenecientes al cielo han sido reconocidas como tal. Las partes de la
derecha pertenecientes al cielo no han sido clasificadas como tal debido a que no poseen
el tamaño suficiente para formar una muestra.
Reconocimiento de imágenes a través de su contenido
190
Fig 129-Resultados del análisis
Reconocimiento de imágenes a través de su contenido
191
Imagen submarina9: Se trata de una imagen submarina con textura lisa y tonos
azules.
Fig 130-Imagen a analizar
Se pude observar en la fig 131, como el algoritmo ha confundido la mayor parte
de la imagen con cielo, la parte de inferior y derecha de la imagen, no han sido
analizadas debido a que el tamaño de la muestra era mayor que el espacio sobrante.
Posiblemente si estas secciones hubieran sido analizadas, hubieran dado como resultado
cielo. Algunas partes de la raya no han sido confundidas por cielo, esto se debe a que se
observan dos colores que aunque pertenecen al cielo, al analizar la textura esta ha dado
como resultado binaria, por lo que el algoritmo no lo ha macado como cielo, ya que este
tiene textura lisa.
Reconocimiento de imágenes a través de su contenido
192
Fig 131-Resultado del análisis
Para poder clasificar correctamente esta imagen, el algoritmo de detección de color
debería ser capaza de diferenciar la tonalidad azul-cielo de azul-mar.
Reconocimiento de imágenes a través de su contenido
193
9.5 Pruebas algoritmo reconocimiento
Para realizar las pruebas, se ha obtenido una base de datos con 15 fotografías, a
continuación se describe los posibles resultados.
Caso1:
La fotografía analizada contiene rostro 14/16 Aciertos.
Caso2:
La fotografía analizada no contiene rostro El Acierta en 10 de 14.
CASO 1 Nombre Respuesta Resultado Rostro1 Positivo Acierto Rostro2 Positivo Acierto Rostro3 Positivo Acierto Rostro4 Positivo Acierto Rostro5 Positivo Acierto Rostro6 Positivo Acierto Rostro7 Positivo Acierto Rostro8 Positivo Acierto Rostro9 Positivo Acierto Rostro10 Positivo Acierto Rostro11 Positivo Acierto Rostro12 Positivo Acierto Rostro13 Positivo Acierto Rostro14 Negativa Fallo Rostro15 Negativa Fallo Cesped3 Positivo Acierto
Tabla 40-Resultados obtenidos con el algoritmo rostro, analizando imágenes con rostros.
Reconocimiento de imágenes a través de su contenido
194
CASO 2 Nombre Respuesta Resultado Cesped7 Negativo Acierto Cesped8 Positivo Fallo Cesped9 Positivo Fallo Cesped10 Negativo Acierto Cesped13 Positivo Fallo Cielo3 Negativo Acierto Cielo4 Negativo Acierto Cielo15 Negativo Acierto Cielo16 Negativo Acierto Cielo18 Negativo Acierto Cielo20 Negativo Acierto Cielo23 Positivo Fallo
Submarina1 Negativo Acierto Submarian10 Negativo Acierto
Tabla 41-Resultados obtenidos con el algoritmo rostro, analizando imágenes sin rostro.
De las 16 fotografías analizadas que contenían rostro han dado positivo 14 por lo
que el grado de acierto ha sido del 87.5%.
De las 14 fotografías analizadas que no contenían rostro han dado positivo 4 por lo
que el grado de acierto ha sido del 71.43%.
A continuación se muestran tres ejemplos de acierto señalando las identificaciones
que hace de ojo y boca.
Reconocimiento de imágenes a través de su contenido
195
Fig 132-Analisis rostro 4 Positivo Acierto
Se puede observar como en esta fotografía el algoritmo es capaz de identificar
perfectamente tanto los ojos como la boca, aunque en este caso solo ha identificado el
labio inferior.
Reconocimiento de imágenes a través de su contenido
196
Fig 133-Analisis rostro 3
En este caso podemos observar, que ha identificado incorrectamente los ojos y la
boca, aunque el algoritmo devolvió como resultado “positivo” y se ha contabilizado
como “acierto”. La mala ubicación de los ojos y boca es debido, a que los posibles ojos
son numerados por columnas, y el análisis se realiza por orden de los posibles ojos, y en
este caso localizo unos falsos ojos y boca antes de poder analizar los verdaderos ojos y
boca.
En un segundo paso si habría encontrado los ojos y la boca, el ojo verdadero se
encuentra entre los ojos falsos y como hemos dicho anteriormente los posibles ojos son
numerados por columnas.
Reconocimiento de imágenes a través de su contenido
197
Estimación económica
A continuación se mostrarán dos tablas, la primera con el desglose de las horas
hombre invertidas por cada miembro del equipo y la segunda con la descomposición del
precio por paquetes de trabajo del proyecto:
DIRECTOR JEFE PROYECTO ANALISTA PROGRAMADOR DISEÑADOR
HORAS/HOMBRE 25 80 165 110 40
TARIFA 100,00 € 80,00 € 60,00 € 30,00 € 45,00 €
IMPORTE 2.500,00 € 6.400,00 € 9.900,00 € 3.300,00 € 1.800,00 €
TOTAL 23.900,00 €
Tabla 42-Horas hombre
Tabla 43-Descomposición del precio por paquetes
HORAS TARIFA MEDIA IMPORTE
WP‐00 20 70 € 1.400,00 €
WP‐01 50 70 € 3.500,00 €
WP‐02 235 46.81 € 11.000,00 €
WP‐03 90 65.56 € 5.900,00 €
WP‐04 25 84 € 2.100,00 €
WP‐05 15 0 € 0 €
TOTAL 23.900,00 €
Reconocimiento de imágenes a través de su contenido
198
Conclusiones
Las conclusiones de un proyecto es una de las partes más esenciales del mismo,
pues en estas se culmina el trabajo de todo un año.
A continuación se explica las conclusiones obtenidas en cada uno de los
algoritmos.
Algoritmos cielo y césped
A lo largo del proyecto se ha demostrado, que el reconocimiento de características
como pueden ser el cielo, césped, nieve, mar, etc. donde hay un color predominante y
además se pude aplicar el concepto de textura, es viable, puesto que los resultados
obtenidos así lo demuestran.
Los algoritmos desarrollados para estas dos características han obtenido un grado
de acierto del 95% aproximadamente.
El principal inconveniente que se ha observado, es la elevada carga computacional,
aunque esta solo es apreciable en fotografías con elevada resolución, debido a que se
aumenta el tamaño de las matrices. Por lo tanto, la implantación de estos algoritmos en
buscadores es posible, siempre y cuando los buscadores estén en sistemas clusterizados
o en grid.
Reconocimiento de imágenes a través de su contenido
199
Algoritmo de detección de rostros
Las pruebas realizadas con la biblioteca de imágenes creada para este proyecto, han
sido satisfactorias, así lo demuestra el grado de acierto obtenido, este ha sido del 85%
aproximadamente.
Al igual que sucede con los algoritmos cielo y césped, el principal inconveniente ha
sido la elevada carga computacional. Aunque la implantación de este en un buscador es
posible siempre y cuando, se realicen en sistemas clusterizados o grid, no siendo posible
la localización de rostros en tiempo real, es decir, no es posible aplicarlo para sistemas
de video vigilancia, cámaras fotográficas, etc.
La realización de este algoritmo ha resultado mucho más compleja que en los
anteriores casos. Los principales inconvenientes encontrados a la hora del desarrollo de
este algoritmo han sido:
• Determinar los cortes, para la creación de las matrices binarias. Tanto para
la localización de los labios como para los ojos.
• Determinar el corte de la luminosidad de los labios.
• Determinar el corte de la luminosidad de los ojos.
• Lógica desarrollada para determinar si en la fotografía hay un rostro.
Reconocimiento de imágenes a través de su contenido
200
Bibliografía
Definiciones e imagenes
[D1]
http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/zenteno_t_fa/capitulo1.pdf
[D2] www.cio.mx/3_enc_mujer/files/extensos/Sesion%204/S4-ING12.doc
[D3]
http://w3.iec.csic.es/URSI/articulos_coruna_2003/actas_pdf/SESION%208/S8.%20Aul
a%202.4/1355-SISTEMA.PDF
[D4]
http://www.upc.edu.pe/RepositorioAPS/0/13/JER/PARTICIPACIONENCONGRESOS/
Reconocimiento-Rostros.PDF
[D5]
http://www.correodelmaestro.com/anteriores/2002/noviembre/1anteaula78.htm
[D6] http://es.wikipedia.org/wiki/Modelo_de_color_RGB
[D7] http://es.wikipedia.org/wiki/Modelo_de_color_HSV
[D8]
http://www.dfmf.uned.es/actividades/no_reglada/laboratorio/segmentacion3.pdf
[D9]
http://ieeexplore.ieee.org/Xplore/login.jsp?url=http%3A%2F%2Fieeexplore.ieee.org%2
Fiel5%2F34%2F21601%2F01000242.pdf%3Farnumber%3D1000242&authDecision=-
203
[D10] http://es.wikipedia.org/wiki/YPBPR
[D11] http://www.mathworks.com/matlabcentral/fileexchange/24092
Reconocimiento de imágenes a través de su contenido
201
[I1]
http://cannes.itam.mx/Alfredo/Espaniol/Cursos/Robotica/Material/VisionAIBO.pdf
Reconocimiento de imágenes a través de su contenido
202
Libros de consulta
[F1] Rafael C.Gonzalez, Richarcd E.Woods, Steven L. Eddins “Digital Image
Processing” Pearson Prentice Hall (2004)
[AREB01] Barranco, J., “Metodología del análisis estructurado de sistemas” ,
Universidad Pontificia Comillas, Madrid 2001.
[GARC05] García, J., Rodríguez J., “Aprenda Matlab 7.0 como si estuviera en
primero”, Escuela Técnica de Ingenieros Industriales Universidad
Politécnica de Madrid, Madrid 2005.
Reconocimiento de imágenes a través de su contenido
203
Anexo A. Biblioteca imágenes cielo.
Cielo 1
Cielo 2
Cielo 3
Cielo 4
Reconocimiento de imágenes a través de su contenido
204
Cielo 5
Cielo 6
Cielo 7
Cielo 8
Cielo 9
Cielo 10
Reconocimiento de imágenes a través de su contenido
205
Cielo 11
Cielo 12
Cielo 13
Cielo 14
Cielo 15
Cielo 16
Reconocimiento de imágenes a través de su contenido
206
Cielo 17
Cielo 18
Cielo 19
Cielo 20
Cielo 21
Cielo 22
Reconocimiento de imágenes a través de su contenido
207
Cielo 23
Cielo 24
Cielo 25
Cielo 26
Reconocimiento de imágenes a través de su contenido
208
Cielo 27
Cielo 28
Cielo1.jpg: Tignes-Francia.
Resolución: 2560x1920.
Cielo2.jpg: Seattle –Estados unidos.
Resolución: 1920x2560.
Cielo3.jpg: China.
Resolución: 2560x1920.
Cielo4.jpg: Tailandia.
Resolución: 1534x2048.
Cielo5.jpg: Cuba.
Resolución: 2048x1536.
Cielo6.jpg: Palma de Mallorca-España.
Resolución: 1600x1200.
Cielo7.jpg: Ibiza-España.
Resolución: 2048x1536.
Reconocimiento de imágenes a través de su contenido
209
Cielo8.jpg: Rivera Maya-México.
Resolución: 2048x1536.
Cielo9.jpg: Egipto.
Resolución: 2048x1536.
Cielo10.jpg: Vigo-España.
Resolución: 2048x1536.
Cielo11.jpg: Asturias-España.
Resolución: 2048x1536.
Cielo12.jpg: Comillas-España.
Resolución: 2048x1536.
Cielo13.jpg: La Rioja-España.
Resolución: 2560x1920.
Cielo14.jpg: Praga-República-Checa.
Resolución: 2560x1920.
Cielo15.jpg: Madrid-España.
Resolución: 2560x1920.
Cielo16.jpg: Cáceres-España.
Resolución: 2048x1536.
Cielo17.jpg: Lisboa-Portugal.
Resolución: 2048x1536.
Cielo18.jpg: Londres-Inglaterra.
Reconocimiento de imágenes a través de su contenido
210
Resolución: 3072x2304.
Ceilo19.jpg: Lanzarote-España.
Resolución: 3072x2304.
Cielo20.jpg: Bournemouth-Inglaterra.
Resolución: 3072x2304.
Cielo21.jpg: Segovia-España.
Resolución: 3072x2304.
Cielo22.jpg: Vancouver-Canadá.
Resolución: 2048x1536.
Cielo23.jpg: Paris-Francia.
Resolución: 2048x1536.
Cielo24.jpg: Cádiz-España.
Resolución: 2816x2112.
Cielo25.jpg: Ámsterdam-Holanda.
Resolución: 2112x2816.
Cielo26.jpg: Victoria-Canadá.
Resolución: 2048x1536.
Cielo27.jpg: Sidney-Canadá.
Resolución: 1536x2048.
Cielo28: Whistter-Canadá.
Resolución: 2560x1920.
Reconocimiento de imágenes a través de su contenido
211
Anexo B. Biblioteca imágenes césped.
Cesped 1
Cesped 2
Cesped 3
Cesped 4
Reconocimiento de imágenes a través de su contenido
212
Cesped 5 Cesped 6
Cesped 7
Cesped 8
Cesped 9
Cesped 10
Reconocimiento de imágenes a través de su contenido
213
Cesped 11
Cesped 12
Cesped 13
Cesped 14
Cesped 15
Césped1: Campo Zaragoza (www.as.com).
Resolución: 663x489.
Reconocimiento de imágenes a través de su contenido
214
Césped2.: Campo Razing (www.as.com).
Resolución: 489x489.
Césped3.: Campo Atlético (www.as.com).
Resolución: 489x489.
Césped4: Campo Murcia (www.as.com).
Resolución: 663x489.
Césped5: Campo Barcelona (www.as.com).
Resolución: 663x489.
Césped6: Campo Sevilla (www.as.com).
Resolución: 663x489.
Césped7: (http://www.manzanillo.com.mx/2005/images/stories/media/13golf2.jpg).
Resolución: 1000x798.
Césped8: (http://lestartit.net/FotosActivitats/GolfEmporda2.JPG).
Resolución: 600x394.
Césped9:
(http://www.mondial.at/content/newsdoc/Golf%20c%20Son%20Antem%20Golf%20Cl
ub.jpg).
Resolución: 1772x1186.
Césped10: Campo Deportivo (www.as.com).
Resolución: 489x489.
Reconocimiento de imágenes a través de su contenido
215
Césped11: Campo Almería (www.as.com).
Resolución: 489x489.
Césped12: Campo Recreativo (www.as.com).
Resolución: 663x489.
Césped13: Campo Getafe (www.as.com).
Resolución: 489x489.
Césped14: Campo Villareal (www.as.com).
Resolución: 663x489.
Césped15: Campo Lokomotiv (www.as.com).
Resolución: 489x489.
Reconocimiento de imágenes a través de su contenido
216
Anexo C. Biblioteca imágenes interior.
Interior 1
Interior 2
Interior 3
Interior 4
Reconocimiento de imágenes a través de su contenido
217
Interior 5
Interior 6
Interior 7
Interior 8
Reconocimiento de imágenes a través de su contenido
218
Interior 9
Interior 10
Interior1: (www.idealista.com).
Resolución: 300x300.
Interior2: (www.idealista.com).
Resolución: 300x300.
Interior3: (www.idealista.com).
Resolución: 650x487.
Interior4: (www.idealista.com).
Resolución: 300x300.
Interior5: (www.idealista.com).
Resolución: 650x487.
Interior6: (www.idealista.com).
Resolución: 650x867.
Interior7: (www.idealista.com).
Resolución: 650x487.
Interior8: (www.idealista.com).
Reconocimiento de imágenes a través de su contenido
219
Resolución: 600x800.
Interior9: (www.idealista.com).
Resolución: 650x487.
Interior10: (www.idealista.com).
Resolución: 650x487.
Reconocimiento de imágenes a través de su contenido
220
Anexo D. Biblioteca imágenes submarinas
Submarina 1
Submarina 2
Submarina 3
Submarina 4
Reconocimiento de imágenes a través de su contenido
221
Submarina 5
Submarina 6
Submarina 7
Submarina 8
Submarina 9
Submarina 10
Reconocimiento de imágenes a través de su contenido
222
Anexo E. Biblioteca imágenes rostros.
Rostro 1
Rostro 2
Rostro 3
Rostro 4
Reconocimiento de imágenes a través de su contenido
223
Rostro 5
Rostro 6
Rostro 7
Rostro 8
Reconocimiento de imágenes a través de su contenido
224
Rostro 9
Rostro 10
Rostro 11
Rostro 12
Reconocimiento de imágenes a través de su contenido
225
Rostro 13
Rostro 14
Rostro 15
Reconocimiento de imágenes a través de su contenido
226
Rostro 1: ().
Resolución: 300x300.
Rostro 2:().
Resolución: 300x300.
Rostro 3: ().
Resolución: 650x487.
Rostro 4:
(http://www.mkt.com.mx/spdominios/get_imagen_adds.php?id_archivo=10289).
Resolución: 300x300.
Rostro 5:
(http://images.google.es/imgres?imgurl=http://farm4.static.flickr.com/3642/334408
3138_32abc2bafb.jpg%3Fv%3D0&imgrefurl=http://flickr.com/photos/fernandodenogu
era/3344083138/&usg=__LcB1v4W1E6ezair9h6bdTvToSIM=&h=850&w=1272&sz=1
36&hl=es&start=630&tbnid=L7vENQOmhJ5tpM:&tbnh=87&tbnw=130&prev=/image
s%3Fq%3Dmodelos%2Bmujeres%26imgsz%3Dxxlarge%26gbv%3D2%26ndsp%3D20
%26hl%3Des%26sa%3DN%26start%3D620).
Resolución: 650x487.
Rostro 6: ().
Resolución: 650x867.
Rostro 7: (http://www.promotorasymodelos.com/galeria_ver.php?id=1682).
Resolución: 650x487.
Rostro 8: (http://www.promotorasymodelos.com/galeria.php?pag=3).
Resolución: 600x800.
Rostro 9: (http://www.promotorasymodelos.com/galeria_ver.php?id=1451).
Reconocimiento de imágenes a través de su contenido
227
Resolución: 650x487.
Rostro 10: (http://www.promotorasymodelos.com/galeria_ver.php?id=435).
Resolución: 650x487.
Rostro 11: (http://www.promotorasymodelos.com/galeria_ver.php?id=604).
Resolución: 300x300.
Rostro 12: (http://www.promotorasymodelos.com.ar/fotos/ramos_308_1.jpg).
Resolución: 300x300.
Rostro 13:
(http://www.grupoexclusive.es/castingonline/plantillamodelos.asp?Id=47480&Page
=1&Id_Tipo=10&id_subtipo=&pais=0&IdiomaWeb=1).
Resolución: 650x487.
Rostro 14: (http://eka.espacioblog.com/myfiles/eka/IMG_3398.jpg).
Resolución: 300x300.
Rostro 15: (http://farm2.static.flickr.com/1344/830109372_61352da94a_o.jpg).
Resolución: 650x487.
Reconocimiento de imágenes a través de su contenido
228
Anexo F. Código del algoritmo cielo
**********************************************************************
function respuesta = FotoTieneCielo(imagen); rgb = imread(imagen); %muestra1 determina el tamaño de la ventana en x, mientras que muestra2 %determina el tamañan de la ventan en y tamano = size(rgb); muestra1= 0.05*tamano(1); muestra2= 0.05*tamano(2); rechazo = 0; iteracion = 0; cont = 0; while iteracion ~= 20 % seleccionamos al azar la posicion x e y x=0; y=0; while(x<=0 || x>1/3*tamano(1)) x = fix(rand()*10000); end while(y<= 0 || y>tamano(2)-muestra2) y = fix(rand()*10000); end subimagen = rgb(x:x+muestra1, y:y+muestra2, :); respuesta = EsSegmentoCielo(subimagen); if respuesta == 0 || respuesta == 1 iteracion = iteracion + 1; if respuesta == 1 cont = cont + 1; end else rechazo = rechazo + 1; end if rechazo == 40 iteracion = 20; end
Reconocimiento de imágenes a través de su contenido
229
end if cont >= 2 respuesta = 1; elseif cont < 2 && rechazo >= 4 respuesta = 2; else respuesta = 0; end respuesta = [respuesta, rechazo, cont];
**********************************************************************
function respuesta = EsSegmentoCielo(subimagen) azul = EsSegmentoAzul(subimagen); textura = TexturaSegmento(subimagen); if azul == 1 && textura(1) == 1 respuesta = 1; elseif azul == 2 && textura(1) == 1 respuesta = 2; else respuesta = 0; end **********************************************************************
function respuesta = EsSegmentoAzul(subimagen) mydir= pwd; mover= [mydir, filesep, 'azul']; cd(mover); imageHSV= rgb2hsv(subimagen); imageH = imageHSV(:,:,1); tamano = size(imageH); imageS = imageHSV(:,:,2); respuesta = 0; contsector = 0; rechazo = 0; cont2=0; cont = 0; p1=0; for i= 1 : tamano(1) for j= 1 : tamano(2) p1= p1+1;
Reconocimiento de imágenes a través de su contenido
230
vali(p1,1)= imageH(i,j); vali(p1,2)= imageS(i,j); end end save('vali.dat', 'vali', '-ascii'); % ejecuto el programa para ver el grado de pertenencia !prbfnii_w_fdp.exe azul 2 4 0 1000 0 - - vali.dat % cargo el fichero creado para comprobar ahora el grado de pertenencia % de los puntos out = load('azul.out'); tout= size(out); %miramos cuantos puntos pertenecen al cielo, si el grado de pertenencia %es mayor al 95% se aumenta el contador 1, esto quiere decir que el %punto pertenece al color azul. %Si el grado de pertenecía está entre el 0.9 y 0.95 aumentamos el %contador 2, esto quiere decir que se produce un rechazo for k=1 : tout(1); if out(k, 2)> 0.95 cont =cont+1; end if out(k,2)>= 0.90 && out(k,2)<= 0.95 cont2 = cont2+1; end end if cont/tout(1) > 0.95 contsector= 1; end if cont2/tout(1) > 0.1 rechazo = 1; end %1 contiene cielo, 0 no contiene cielo if contsector == 1 respuesta = 1; else if rechazo == 1 && respuesta ~= 1 respuesta = 2; else respuesta = 0; end end %respuesta = [respuesta, rechazo]; cd(mydir);
**********************************************************************
function tipo=TexturaSegmento(subimagen) imagenGris = rgb2gray(subimagen); histograma = imhist(imagenGris, 16);
Reconocimiento de imágenes a través de su contenido
231
suma = sum(histograma); histograma = histograma-suma*0.0575; for i=1:16 if histograma(i) > 0 num(i) = histograma(i); else num(i) = 0; end end %se recorre el vector de histograma guardando cuantos tramos han tendido %un valor superior a 0 y el número de tramos continuos, de esta forma %posteriormente se podrá analizar el tipo de textura. i = 0; j = 0; tramos = 0; while i < 16 i = i + 1; if histograma(i) > 0 j = j + 1; aux = continuas(i, histograma); cont(j) = aux(1); i = aux(2); tramos = tramos + 1; end end %para ser textura lisa, tiene que cumplir que el número de tramos sea uno y %el valor de cont tiene que ser menor o igual a cuatro. tipo(1) = 0; if tramos == 1 && cont(1) <= 4 tipo(1) = 1; end %para ser textura binaria, tiene que cumplir que el número de tramos sea %mayor o igual a dos y que el valor del contador para cada tramos se menor %o igual a tres tipo(4) = 0; if tramos >= 2 tipo(2) = 1; for i = 1:tramos tipo(4) = tipo(4) + 1; if cont(i) > 3 tipo(2) = 0; tipo(4) = 0; break; end end end %para ser textura rugosa, tiene que cumplir que el valor del contador sea
Reconocimiento de imágenes a través de su contenido
232
%mayor a cuatro, y el número de tramos es independiente. tipo(3) = 0; for i=1:tramos if cont(i) > 4 tipo(3) = 1; end end ********************************************************************** function respuesta=continuas(pos, his) cont = 0; %recorremos el vector his hasta que encontremos una posición con valor 0 while pos <= length(his) && his(pos) > 0 cont = cont +1; pos = pos +1; end respuesta= [cont, pos]; **********************************************************************
Reconocimiento de imágenes a través de su contenido
233
Anexo G. Codigo del algoritmo reconocimiento de caras.
********************************************************************** function respuesta = rostro(imagen); foto = imread(imagen); foto = imresize(foto, 1024/max(size(foto, 2))); tamano = size(foto); imshow(foto); hold on z = rgb2ycbcr(foto); cl = 0.54; %corte labio o = ojos(z); j=1; o2 = o(1:size(o, 1)/2, 1:size(o, 2)); %paso la parte superior de la imagen, si los ojos estuvieran abajo no entraría la boca for i=1:max(o2(:)) suma=sum(sum(o2==i)); if suma<300 | suma>5000 o2(find(o2==i))=0; else o2(find(o2==i))=j; j=j+1; end end respuesta = 0; intentos=0; while intentos ~= 2 respuesta = localizador(z, o2, cl); if respuesta == 1 intentos=2; else cl=0.8 intentos=intentos+1; end end hold off
**********************************************************************
function respuesta = ojos(z)
Reconocimiento de imágenes a través de su contenido
234
y = z(:,:,1); cb = double(z(:,:,2)); cr = double(z(:,:,3)); cb2 = cb.*cb; cr_2 = (255-cr).*(255-cr); e = 1/3*(cb2+cr_2+cb./cr); en = e-min(e(:)); en = en/max(en(:)); x =sum(en(:))/(size(en, 1) * size(en, 2))*1.25; if x<0.54 x=0.54; end EyeMapC = en>x; yd = strel('ball', 5, size(en, 1)*0.12); ydd= imdilate(y, yd); yee = imerode(y, yd)+1; EML = (ydd./yee); EML1 = EML-min(EML(:)); EML1 = EML1/max(EML1(:)); EyeMapL = EML1>x; EyeMap = and(EyeMapC, EyeMapL); se = strel('disk',round(max(size(en))/300)); respuesta = bwlabel(imdilate(EyeMap, se, 'full'));
**********************************************************************
function respuesta = localizador(z, o2, cl) respuesta = 0; l = labio(z, cl); tamano = size(o2); tamano2 = size(z); j=1; for i=1:max(l(:)) suma=sum(sum(l==i)); if suma<150 | suma>5000 l(find(l==i))=0; else l(find(l==i))=j; j=j+1; end end s = regionprops(o2, 'Centroid'); %centro de todos los posibles ojos
Reconocimiento de imágenes a través de su contenido
235
i=1; while i<=max(o2(:)) centro = s(i).Centroid; %centro del ojo i x = round(centro(1)); y = round(centro(2)); ymin = round(y-tamano(2)*.08); ymax =round(y+tamano(2)*.08); xmin = round(x+tamano(2)*.1); xmax = round(x+tamano(2)*.3); %tamaño de la ventana if ymin <= 0 ymin = 1; end if ymax > tamano(1) ymax = tamano(1); end if xmin > tamano(2) xmin = tamano(2); end if xmax > tamano(2) xmax = tamano(2); end subimagen=o2(ymin:ymax, xmin:xmax); %posible ojo k=1; %recorremos los valores superiores a i, los valores de la derecha %son mayores siempre valorojos=0; for j=i+1:max(o2(:)) if find(subimagen(:)==j) valorojos=j; j=max(o2(:))+1; end end if valorojos>0 centro2 = s(valorojos(1)).Centroid; %centro del ojo2, cojo la primera posicion posible distanciaojos = centro2(1)-centro(1); puntomedio = x + round(distanciaojos/2); ymin2 = round(y+distanciaojos*.6); ymax2 = round(y+distanciaojos*1.2); xmin2 = puntomedio-round(distanciaojos/4); xmax2 = puntomedio+round(distanciaojos/4); if ymin2 <= 0 ymin2 = 1; end if ymax2 > tamano2(1) ymax2 = tamano2(1); end if xmin2 <= 0 xmin2 = 1; end if xmax2 > tamano2(2) xmax2 = tamano2(2);
Reconocimiento de imágenes a través de su contenido
236
end subimagen2=l(ymin2:ymax2, xmin2:xmax2); %posible labio valorlabio=0; for h=1:max(subimagen2(:)) if find(subimagen2(:)==h) valorlabio=h; h=max(subimagen2(:)); end end if h>0 %hay una cara respuesta = 1; [x0, y0] = find(o2 == i); [x1, y1] = find(o2 == valorojos); [x3, y3] = find(l == valorlabio); plot(y0, x0, 'r.'); plot(y1, x1, 'r.'); plot(y3, x3, 'b.'); i=max(o2(:))+5; end end i=i+1; end
**********************************************************************
function respuesta = labio(z, cl); cb= double(z(:,:,2)); cr = double(z(:,:,3)); cr2 = cr.*cr; cr2n = cr2-min(cr2(:)); cr2n = cr2n/max(cr2n(:)); uno = cr2n>0.53; co = sum(sum(cr2))/(size(cr, 2)*size(cr, 1)); di = (sum(sum(cr))/sum(sum(cb))*1/(size(cr, 2)*size(cr, 1))); n=0.95*co/di; a = cr2; an = a -min(a(:)); an = an/max(an(:)); za = an>0.8; b = n*cr./cb; bn = b-min(b(:)); bn = bn/max(bn(:)); zb = bn>0.55;
Reconocimiento de imágenes a través de su contenido
237
dos = xor(za, zb); MountMapn= and(uno, dos); se = strel('disk',round(max(size(z))/300)); respuesta = bwlabel(imdilate(MountMapn, se, 'full'));
**********************************************************************
Recommended