Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
CENTRO DE INVESTIGACIÓN EN MATEMÁTICAS
Reconocimiento de productos deSupermercado
Por
Judith Esquivel Vázquez
Tesis sometida para el cumplimiento parcial
de los requisitos para obtener el grado de
Maestra en Ciencias con especialidad en Computación y MatemáticasIndustriales
Director de tesis: Mariano J.J. Rivera Meraz
5 de septiembre de 2012
"Watch your thoughts, they become words.
Watch your words, they become actions.
Watch your actions, they become habits.
Watch your habits, they become your character.
Watch your character, it becomes your destiny."
CENTRO DE INVESTIGACIÓN EN MATEMÁTICAS
Resumen
Maestra en Ciencias con especialidad en Computación y Matemáticas Industriales
Por Judith Esquivel Vázquez
Se propone un clasificador AdaBoost utilizando un conjunto de clasificadores débiles
que definan una regla para asignar etiquetas a imágenes que representan productos de
supermercado. El aprendizaje del clasificador propuesto maneja cada producto de super-
mercado como una clase de las cuales para el entrenamiento se han tomado muestras
(imágenes digitales). Se tiene una imagen patrón como representante de cada clase. Di-
cho patrón es una imagen digital de buena calidad tomada de frente al producto. A cada
patrón le corresponde una mascara que define la forma y el área de procesamiento de
la imagen. Los clasificadores débiles utilizados son medidas de similitud entre imágenes
de color tales como: histogramas de color, histogramas espaciales, diferencias puntuales
entre pixeles, matriz de adyacencia, SURF y correlación cruzada normalizada. Cada me-
dida recibe dos imágenes a comparar y regresa un valor en el rango [0,1] que indica la
similitud entre dos imágenes. Algunas medidas de similitud entre imágenes requieren dos
imágenes del mismo tamaño para operar y tentativamente la misma orientación respecto
al producto de supermercado. Como primer paso se aplica una transformación a una
imagen de superficie plana (producto a clasificar) haciendo corresponder puntos carac-
terísticos SURF y utilizando RANSAC como técnica de muestreo y a la vez se aplican
criterios discriminatorios para eliminar la mayor cantidad de imágenes que no correspon-
dan a la que se está buscando. Una vez se tienen las dos imágenes del mismo tamaño se
aplica el clasificador de tipo AdaBoost multiclass propuesto y se obtiene un peso como
combinación lineal de los clasificadores débiles. Finalmente se define un umbral que defi-
ne la asignación de una etíqueta a la imagen a clasificar o ensu defecto se determina que
dicha imagen se encontró en la base de datos. Para analizar el desempeño del clasificador
se realizaron pruebas con dos bases de datos: YOGURTS y SOIL47.
Agradecimientos
A mi padre Amando.
Por la nobleza, confianza y cariño que siempre a mostrado hacia mi persona, inspirando
cada una de mis metas y apoyando cada decisión.
A mi madre Cristalina.
Por a fortaleza transmitida, el amor y el apoyo que siempre mantuvo para no claudicar
en esta dificil etapa. Por ser mi mejor amiga y porque nunca me ha fallado.
A mis hermanos Amando y Aracely.
Porque siempre confiaron en mi capacidad y aconsejaron en los momentos dificiles.
A Guillermo Amaro.
Que apoyó mis inicios en la ciencia y me ayudó a levantarme en cada caída durante la
maestría, por su aprecio, su dedicaci’on y por las lecciones de vida compartidas.
A mis sobrinos Edwin y Angel.
Que su sola presencia han llenado mis momentos de tristeza en esperanza, sinceridad y
sobre todo inocencia.
A mis maestros.
Por el nivel académico de todos ellos, pero sobre todo la sencillez y paciencia con la que
transmitieron parte de su conocimiento, en especial al Dr. Mariano Rivera que desde los
inicios de tesis respeto mis opiniones y guió esta grandiosa experiencia, por su compren-
sión en los momentos dificiles y por confiar en mí.
A CIMAT.
Por confiar en mí y brindarme una de las experiencias académicas más satisfactorias de
mi vida y por hacerme parte de la complicidad de su comunidad.
A CONACYT
Por el apoyo recibido durante estos dos años y que fue indispensable en mi formación
profesional.
iii
A mis amigos.
Domingo Iván Rodríguez cuyo apoyo y ejemplo han sido motivantes en el ámbito personal.
A Tania Liliana Hernández Analco que desde la distancia siempre estuvo en los momentos
complicados. A Cecilia Barrera Rodríguez por su amistad incondicional y experiencia de
vida que ha sabido compartir desde mi niñez. A Lizeth Andrea Rada Ramírez por su
sinceridad y por las lagrimas compartidas, a Erika Aldana por su sinceridad, sencillez
pero sobre todo la amistad. A muchos otros amigos que pasaron por mi memoria al
momento de escribir esta dedicatoria, Gerardo, Flor, Manuel, Abelardo, Yerania, Elia,
Gilberto, Fatima, Christian, Nancy, Mara, Jesus Angel, Claudia, Carlos, Rafa, Cynthia,
Mario y muchos otros que han aparecido en mi camino en los momentos adecuados . . .
Índice general
Resumen ii
Agradecimientos iii
Lista de Figuras vii
Lista de tablas ix
1. Similitud entre Imágenes 11.1. Espacio de color de una imagen . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.1.2. HSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.3. CIE Lab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.1.4. c1c2c3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2. Medidas de similitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2.1. Correlación cruzada normalizada . . . . . . . . . . . . . . . . . . . 91.2.2. Histogramas de color . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2.3. Distancia cuadrática . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.4. Puntos SIFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.2.5. Puntos SURF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.2.6. El coeficiente de información mutua . . . . . . . . . . . . . . . . . 161.2.7. Matrices de Adyacencia . . . . . . . . . . . . . . . . . . . . . . . . 171.2.8. Medida de similitud combinada . . . . . . . . . . . . . . . . . . . . 19
2. Métodos Boosting 212.1. ADABOOST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2. ADABOOST Multi-class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3. Clasificación de Productos de Supermercado 253.1. Clasificador de imágenes por color . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1. Elección de Espacios de color . . . . . . . . . . . . . . . . . . . . . 253.1.2. Obtención de la mascara de un producto . . . . . . . . . . . . . . . 283.1.3. Detección de puntos de interés . . . . . . . . . . . . . . . . . . . . 293.1.4. Transformación de las imágenes . . . . . . . . . . . . . . . . . . . . 303.1.5. Clasificación con AdaBoost Multi-Class . . . . . . . . . . . . . . . 33
v
Tabla de contenido vi
3.2. Estadísticas del clasificador . . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.1. DATA BASE SOIL47 . . . . . . . . . . . . . . . . . . . . . . . . . 353.2.2. Experimento 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.2.3. Experimento 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4. Aplicaciones 464.1. Clasificar imágenes de supermercado . . . . . . . . . . . . . . . . . . . . . 46
4.1.1. Tratamiento de la Imagen . . . . . . . . . . . . . . . . . . . . . . . 484.1.2. Detectar Productos en una charola . . . . . . . . . . . . . . . . . . 504.1.3. Clasificación de un producto . . . . . . . . . . . . . . . . . . . . . . 51
4.2. Detectar productos en un video . . . . . . . . . . . . . . . . . . . . . . . . 524.2.1. Who is Who . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.2.2. Technical Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5. Comentarios finales y Conclusiones 58
A. OPENCV 60
Bibliografía 62
Índice de figuras
1.1. Cubo RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Cono HSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Espacio de color xyz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4. Correspondencia de puntos SURF . . . . . . . . . . . . . . . . . . . . . . . 161.5. (a) Imagen de etiquetas y (b) su correspondiente matriz de adyacencia . . 181.6. a) Imagen A color b) Matriz adyacente de a con 256 colores . . . . . . . . 19
3.1. Proceso de Clasificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2. Visión general de varios modelos de color y su invarianza a condicio-
nes. + denota invarianza y - sensibilidad del modelo de color a distintascondiciones[7]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3. Izquierda: Producto original, Centro: segmentación por GMMF, Derecha:Llenado manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4. Correspondencia de puntos SURF con distintas vistas y productos . . . . 323.5. a) producto de la base de datos b) Transformaciones de diferentes vistas
por SURF y RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.6. a) producto de la base de datos b) Transformaciones de diferentes vistas
por SURF y RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.7. Secuencia del proceso de clasificación de un producto . . . . . . . . . . . 403.8. Visión general de todos los productos de la base de datos SOIL47; para
los experimentos se quitaron los tres objetos más grandes que se visualizan. 403.9. Se muestran 21 vistas de un mismo producto tomadas cada 9 grados desde
un rango de [−90, 90] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413.10. Se muestran 2 imagenes de un mismo producto con distinta iluminación . 413.11. Se muestran 2 imagenes con la misma composición en color . . . . . . . . 423.12. Visión general de 50 productos de la base de datos YOGURTS . . . . . . 433.13. Visión general de los productos a clasificar con BD:YOGURTS . . . . . . 443.14. Clasificador indicando los tres más parecido con valores: [0,96, 0,67, 0,48]
respectivamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443.15. Se muestran 10 vistas de un mismo producto tomadas cada 18 grados
desde un rango de [−90, 90] . . . . . . . . . . . . . . . . . . . . . . . . . . 443.16. Clasificación para diferentes puntos de vista umbral = 0,8: a)Clasificadores
diversos b) Clasificadores propuesto . . . . . . . . . . . . . . . . . . . . . . 45
4.1. Proceso de clasificación de productos en stands de supermercado . . . . . 464.2. Representación gráfica de la transformada de Hough . . . . . . . . . . . . 494.3. Imagen izquierda: Bordes de Canny, Imagen derecha: Las lineas encontra-
das a partir de la transformada de Hugh con θ en el intervalo [−20◦,+20◦]de la imagen de bordes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
vii
Lista de Figuras viii
4.4. Separación de secciones de la imagen para representar un producto . . . . 504.5. Resultados de clasificación en el problema de Reconocimiento de produc-
tos en supermercado": Imagenes de la izquierda (a,c) muestran cuadrosrojos que representan productos a clasificar, Imagenes de la derecha(b,d)muestran el resultado según el clasificador propuesto donde se observasimilitud en color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6. Escena de la casa donde interactua el robot. Al fondo la cocina dondeestán ubicadas las bebidas a reconocer. . . . . . . . . . . . . . . . . . . . . 53
4.7. Un producto de la base de datos con distintas vistas del producto . . . . . 554.8. Reconocimiento de un producto en una escena . . . . . . . . . . . . . . . . 564.9. Exhibición de productos detectados en un video de prueba durante la
robocup@home 2012 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Índice de cuadros
3.1. Porcentaje de reconocimiento con tres medidas de similitud: Correlacióncruzada normalizada, diferencias puntuales e histogramas para diferentesespacios de color con dos bases de datos: SOIL47 y Yogurts . . . . . . . . 27
3.2. Porcentaje de similitud de reconocimiento entre los tres mejores. Se utilizótres medidas de similitudpara diferentes espacios de color con dos basesde datos: SOIL47 y Yogurts . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3. % de reconocimiento de clasificadores(medidas de similitud) con bases dedatos: SOIL47, umbral = 0,5 Primera opción del clasificador . . . . . 36
3.4. % de reconocimiento de clasificadores (medidas de similitud) con basesde datos: SOIL47, umbral = 0,5 Se toma como clasificación correcta si elproducto correcto se encuentra entre las primeras tres opciones delclasificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
ix
Dedicada a la memoria de mi abuelita Altagracia. . .
x
Capítulo 1
Similitud entre Imágenes
La finalidad de este capítulo es estudiar los módelos matemáticos que nos permitan
combinar estrategicamente los espacios de color y medidas de similitud para finalmente
encontrar una métrica normalizada que de forma cuantitativa nos proporcione el paren-
testo entre dos imágenes. En la primer parte del capítulo se resumen cuatro espacios de
color que nos permite representar el color de un pixel de una imagen en coordenadas de
dicho espacio cuyo objetivo final es cuantizar el color, dicha representación nos permite
el uso de medidas de similitud entre imágenes que se explican en la segunda parte del
capítulo donde se presentan ocho medidas de similitud cada una con diferentes ventajas
y desventajas que nos proporcionan información del parentesco entre imágenes.
1.1. Espacio de color de una imagen
Una manera de codificar el color, es hacer referencia a un espacio de color, de manera
que los valores de los pixeles se representen en coordenadas dentro de dicho espacio. De
esta manera es posible calcular una distancia entre colores relativa al espacio en el cual
están representados.
Un espacio de color es una representación matemática del conjunto de colores que per-
mite la especificación de un color de manera estándar. Los más conocidos son RGB,
usado en los gráficos por computadora; CMY ó CMYK, usados en sistemas de impre-
sión; YIQ, YUV ó YCbCr, usados en sistemas de vídeo; HSI ó HSV más usados para el
procesamiento de las imágenes. El procesamiento digital de imágenes requiere el uso de
espacios de color que definen un sistema de coordenadas tridimensional o un subespacio
de este sistema en el cual cada color queda representado por un único punto que permita
1
Chapter 1. SI 2
especificar cuantitativamente los colores de una forma normalizada.
El color provee poderosa información para el reconocimiento de objetos, sin embargo,
cuando la iluminación no es igual en las imágenes, la calidad de el reconocimiento de
objetos se ve afectada por los efectos de luz que cambian cuantitativamente el color de
una imagen.
Existen una extensa variedad de espacios de color para caracterizar los pixeles de una
imagen y operan con ellos, algunos modelos son relacionados con la intensidad.
La elección del espacio de color a utilizar en el reconocimiento de objetos no depende sólo
de la iluminación. Influyen otros factores como la geometría y orientación del objeto o
factores como la oclusión del mismo. Una característica para elegir el espacio o espacios
de color a utilizar es que dicho modelo sea robusto al ruido. Búscamos un espacio de
color que sea lo más robusto a distintas condiciones con la idea de tener un alto poder
discriminativo al momento de hacer el reconocimiento de un objeto.
Los espacios de color más utilizados en el procesamiento digital de imágenes son los
módelos RGB, YIQ y HSI. Gevers [7] analiza varios modelos de color usados en el reco-
nocimiento de objetos evaluando cambios de puntos de vista de un objeto, geometría de
los objetos y cambios en dirección e intensidad de la iluminación. Entre los canales que
se analizan en esta sección son RGB debido a que es estándar, HSV por la cualidad de
representar la percepción humana del color, Lab y c1c2c3 por la efectividad presentada
en [7].
Fenández [9] analiza nueve componentes de información del color (R,G,B, Y, I, Q, H,
S e I) para determinar qué atributo de color era el más útil para la segmentación de la
imagen en regiones con histogramas, del análisis resultó que el atributo H(hue) era el
más útil.
1.1.1. RGB
El espacio RGB (red, green, blue) emplea un sistema de coordenadas cartesianas y hace
referencia a la descomposición del color en término de los tres primeros colores prima-
rios, el rojo, el verde y el azul. Los colores RGB son aditivos, es decir un color se obtiene
dependiendo de las diferentes porciones de RGB.
Chapter 1. SI 3
El espacio de color RGB es el modelo de color más popular ya que es el formato están-
dar de los monitores en color y de la mayoría de las cámaras de vídeo empleadas en la
adquisición de imágenes digitales en color. Los rangos de cada canal de modelo RGB van
desde [0, 255], donde 0 significa sin color y 255 significa que tiene la máxima saturación.
Los monitores y los escáneres se basan en el modelo de color RGB, por lo que se trata
de un modelo natural para describir colores en un equipo, sobre todo cuando se trabaja
con imagenes digitalizadas, pero el mayor problema que representa este sistema es que el
modelo RGB no define lo que es exactamente el rojo, verde o azul, por lo que los mismo
valores en RGB pueden mostrar colores muy distintos en diferentes dispositivos.
Figura 1.1: Cubo RGBFuente de la imagen: http://www.mathworks.com/help/toolbox/images/f8-15484.html
El espacio RGB tiene la ventaja de que no requiere ninguna transformación para ser
utilizado en el procesamiento digital de imágenes, además de que las componentes R, G
y B poseen un fuerte factor de intensidad y están altamente correlacionadas pero tiene
la gran desventaja de que no es perceptualmente uniforme.
Existe un espacio de color descendiente del espacio RGB denominado RGB normalizado,
las componentes se obtienen por:
r =R
R+G+B(1.1)
g =G
R+G+B(1.2)
b =B
R+G+B(1.3)
Chapter 1. SI 4
Por la definición podemos observar que este espacio no es sensible a cambios de intensidad
debido a que las componentes dependen de la proporción de las componentes R,G,B. Ésto
puede ser una ventaja en la detección de productos en supermercado donde los cambios de
intensidad es uno de los retos en el reconocimiento de productos. Una de sus componentes
es redundante debido a que r+ g+ b = 1 lo cuál puede eliminar una de las componentes
y sustituirla por la intensidad.
I =R+G+B
3(1.4)
Eso nos define un nuevo espacio Irg. Este espacio no es conveniente para los propósitos
requeridos en el tratamiento de imágenes, puesto que no es sencillo definir una métri-
ca en dicho espacio que sea lo suficientemente fácil de calcular y refleje las diferencias
perceptuales entre colores.
1.1.2. HSV
Los espacios de color HSV, HSI y HLS tienen la característica de que describe la per-
cepción humana de color, es decir representan el color de una manera más intuitiva. Son
usados en procesamiento básico de imágenes. Manejan los siguientes atributos:
Tono: Representa el color dominante tal y como lo percibe el observador, cuando
se dice que un color es rojo, verde o amarillo, se indica el tono.
Saturación: Indica la cantidad de luz blanca mezclada, el grado de saturación que
es inversamente proporcional a la cantidad de luz blanca añadida. Los colores del
espectro están completamente saturados mientras que colores como el lavanda (lila
y blanco) están menos saturados.
Brillo o Luminosidad: Representa la intensidad de luz percibida por el observa-
dor.
HSV es una representación de puntos del espacio RGB en coordenadas cilindricas. H(hue)
se representa como un grado de ángulos cuyos valores posibles van desde [0◦, 360◦],
S(Saturation) se representa como la distancia al eje de brillo blanco-negro, los valores
posibles van de [0,100], V(Value) representa la altura en el eje blanco-negro. Los valores
posibles van de [0,100].
Las siguientes ecuaciones muestran la conversión de RGB a HSV:
Chapter 1. SI 5
Figura 1.2: Cono HSVFuente de la imagen: http://www.desarrolloweb.com/articulos/1483.php
MIN = min(R,G,B)
MAX = max(R,G,B)
H =
No definido si MAX = MIN
60◦ × G−BMAX−MIN + 0 si MAX = R,G ≥ B
60◦ × G−BMAX−MIN + 360 si MAX = R,G < B
60◦ × B−RMAX−MIN + 120 si MAX = G
660◦ × R−GMAX−MIN + 240 si MAX = B
S =
0 si MAX = 0
1− MINMAX de otra forma
V = MAX (1.5)
Dentro de las ventajas que encontramos en el espacio de color HSV es que las componentes
H y S están intimamente relacionadas con la forma en que las personas perciben el color.
Además es un espacio de escala uniforme y otra característica es que la componente
de intensidad (v) está desacoplada de la información cromática de la imagen, es decir se
puede operar sobre el plano de intensidad sin afectar el contenido de color. Una desventaja
del Modelo HSV es que tiene poca confiabilidad cuando los colores son muy similares.
Chapter 1. SI 6
1.1.3. CIE Lab
Los espacios de colores RGB y rgb están basados en el uso de colores primarios, pero no
existe ningun conjunto de tres colores que sea capaz de describir todos los colores que
pueden ser percibidos. Debido a ello, C.I.E. propuso en 1931 un conjunto estándar de
colores primarios Estos colores son imaginarios y al estar demasiado saturados no pueden
ser vistos por el ojo humano pero tienen la ventaja de poder describir matemáticamente
los colores que pueden ser percibidos. Los colores primarios seleccionados fueron denota-
dos por X,Y y Z y definen el sistema de color XYZ. Este sistema es obtenido a través de
la transformación lineal del sistema RGB. La ecuación (1.6) muestra la transformación
propuesta por C.I.E.
X
Y
Z
=
0,490 0,310 0,200
0,177 0,813 0,011
0,000 0,010 0,990
R
G
B
(1.6)
Si sólo interesa la proporción de los colores primarios del conjunto estándar, se pueden
obtener los coeficientes tricromáticos.
x =X
X + Y + Z(1.7)
y =Y
X + Y + Z(1.8)
z =Z
X + Y + Z(1.9)
Las elipses mostradas en la Figura 1.3 corresponden a conjuntos de colores que aunque
pueden ser vistos, no pueden ser distinguidos por el ojo humano. Como se puede ver, el
comportamiento de esas elipses no es uniforme en el plano (x,y).
C.I.E. ha utilizado el sistema XYZ para definir espacios de color de escala uniforme que
puedan medir las diferencias de color en forma continua. Uno de ellos es L*a*b cuya con-
versión desde el modelo XYZ es lenta por que opera con números reales de punto flotante.
El sistema L*a*b también es usado para medir las diferencias entre colores, L* denota la
luminosidad, mientras que a* y b* describen los contenidos rojo-verde y amarillo-azul de
Chapter 1. SI 7
Figura 1.3: Espacio de color xyzFuente de la imagen: http://en.wikipedia.org/wiki/MacAdam_ellipse
la luz, respectivamente. Los tres parámetros en el modelo representan la luminosidad de
color (L*, L*=0 rendimientos negro y L*=100 indica blanca), su posición entre magenta
y verde (a*, valores negativos indican verde mientras valores positivos indican magenta)
y su posición entre amarillo y azul (b*, valores negativos indican azul y valores positivos
indican amarillo). La definición de esas componentes es la siguiente:
L =
116(
YYn
) 13 − 16 si Y
Yn> 0,008856
903,3(
YYn
)de otra forma
(1.10)
a∗ = 500
[(X
Xn
) 13
−(Y
Yn
) 13
](1.11)
b∗ = 200
[(Y
Yn
) 13
−(Z
Zn
) 13
](1.12)
Donde Xn, Yn y Zn son los triestímulos CIE XYZ del punto de blanco de referencia.
Las relaciones no lineales para L*, a* y b* pretenden emular la respuesta no lineal del
ojo. Además, los cambios uniformes de los componentes en el espacio de color L*a*b*
tienen por objeto corresponder a cambios uniformes en el color percibido, por lo que
las diferencias relativas de percepción entre dos colores en el espacio L*a*b* se pueden
aproximar tratando cada color como un punto en un espacio tridimensional, con tres
Chapter 1. SI 8
componentes: L *, a *, b * y tomando la distancia entre ellos.
Este espacio de color utiliza la distancia euclidea para calcular las diferencias de colores:
(∆C)2 = (∆L)2 + (∆a∗)2 + (∆b∗)2 (1.13)
El inconveniente de este espacio de color es que las componentes a* y b* son inestables
cuando la intensidad es pequeña.
1.1.4. c1c2c3
En [7] y [14], se describe una nueva propuesta de corrección de color que reduce los
efectos de las sombras y cambios de iluminación en la escena. Como el reconocimiento
de objetos necesita robustez a estos efectos. Se realizarón pruebas con el espacio de color
c1c2c3, y se muestra en los siguientes capítulos experimentos donde este espacio de color
resultó muy prometedor con el algoritmo de reconocimiento de productos propuesto. La
transformación del espacio de color RGB a c1c2c3 está descrita por:
c1 = arctan
[R
max(G,B)
]c2 = arctan
[G
max(R,B)
]
c3 = arctan
[B
max(R,G)
](1.14)
Chapter 1. SI 9
1.2. Medidas de similitud
En el área de procesamiento de imágenes existe una multitud de medidas de similitud
utilizadas principalemnte para el registro de imágenes. Dichas medidas se clasifican en
dos clases: medidas basadas en correlación y medidas basadas en características de la
imagen. Las primeras medidas para realizar el registro de imágenes se aplican a la to-
talidad de los pixeles de la imagen mientras que los métodos basados en caracterśticas
intentan establecer correspondencias entre conjuntos dispersos de características de la
imagen.
En imágenes de color se pueden obtener más rasgos característicos para encontrar simi-
litud basándose en la similitud del color. Es posible encontrar un registro que permita
medir el grado de similitud de dos imágenes. Algunas métricas que han resultado útiles
en el reconomiento de objetos rígidos son la similitud de histogramas de color, las me-
didas puntuales basadas en el emparejamiento geométrico de las imágenes (Correlación
cruzada normalizada, diferencias cuadráticas, similitud de matriz de adyacencia), medi-
das basadas en la similitud de rasgos distintivos (SIFT, SURF) o medidas basadas en
la estadística de la imagen (Información Mutua) o nuevas medidas fusionadas como la
propuesta por Rodrigo [5].
En esta sección se describen las medidas de similitud basadas en color y rasgos distintivos
de la imágen haciendo mención de las ventajas y desventajas así como de los tiempos
computacionales. Cabe mencionar que no existe una única medida porque cada una es
apropiada en cada caso.
1.2.1. Correlación cruzada normalizada
Una medida de similitud de imágenes ampliamente utilizada en el registro multimodal es
el coeficiente normalizado de correlación cruzada, o Normalized Cross Correlation (NCC)
que determina la correspondencia entre dos imágenes y es robusta a cambios pequeños
de escala, rotación o traslación pero es ligeramente costosa computacionalmente.
C =
∑i,j [I1(i, j)− I1][I2(i, j)− I2]√∑
i,j [I1(i, j)− I1]2∑
i,j [I2(i, j)− I2]2(1.15)
Donde I1P y I2 son las imágenes que se están comparando. I1, I2 es la media aritmé-
tica respectivamente de cada imagen a comparar. Para aplicación en la clasificación, la
Chapter 1. SI 10
similitud entre las imágenes se asocia con la correlación cruzada normalizada, es decir
mientras mayor sea el coeficiente de NCC mayor es la similitud entre las imágenes.
1.2.2. Histogramas de color
Un histograma consiste en el resumen de información de color de una imagen, de modo
que se represente la distribución de colores que contiene. Para su construcción se conta-
biliza cada color que tiene dicha imagen. Si por ejemplo deseamos hacer un histograma
de color en canales RGB sabemos que cada canal toma valores en el rango [0, 255], en-
tonces tenemos que existen 2563 colores. También sabemos que existen colores en RGB
que visualmente son muy parecidos por lo que se puede reducir la dimensión del vector
histograma si se discretiza los colores, es decir, si se elige un color que represente a sus
vecinos. La discretización del color si bien reduce la dimensionalidad de los histogramas
también pierde información de los mismos lo que puede afectar la similitud de color.
El uso de histogramas de color nos permite manejar y relacionar características visuales
entre las imágenes. Cuando trabajamos con los modelos de color como vimos en la sección
de canales de color, modelos como HSI, HSV y SCILab entre otros trabajan con el sistema
de visión humano. En esta sección manejaremos el modelo HSV. En el trabajo de Tian [6]
estudia una discretización y una medida de comparación entre histogramas que permite
mayor calidad y sensibilidad en el color. Además al discretizar los canales HSV, se permite
el manejo de un vector que representa un histograma de baja dimensionalidad, lo que lo
hace computacionalmente más eficiente. Basados en la habilidad humana de distinguir
el color podemos dividir el canal Hue(H) en Q1 = 8 partes (o más), Saturation(S) en
Q2 = 3 partes y Value(V) en Q3 = 3 partes [6].
H =
0 if h ∈ [316, 20]
1 if h ∈ [21, 40]
2 if h ∈ [41, 75]
3 if h ∈ [76, 155]
4 if h ∈ [156, 190]
5 if h ∈ [191, 270]
6 if h ∈ [271, 295]
7 if h ∈ [296, 315]
(1.16)
Chapter 1. SI 11
S =
0 if s ∈ [0, 0,2]
1 if s ∈ [0,2, 0,7]
2 if s ∈ [0,7, 1]
(1.17)
V =
0 if v ∈ [0, 0,2]
1 if v ∈ [0,2, 0,7]
2 if v ∈ [0,7, 1]
(1.18)
Note que los intervalo no son homogéneos debido a que tratan de agrupar colores simi-
lares. Luego para seleccionar el bin correspondiente en un arreglo unidimensional utili-
zamos:
G = Q2Q3H +Q2S + V (1.19)
G = 9H + 3S + V
dónde H,S,V son las componentes de color. Como observamos al formar el histograma
tenemos un vector de n = Q1Q2Q3 = 72 bins que reduce significativamente el procesa-
miento de dicho vector. Para encontrar similitud en color en [6] se propone el uso del
coeficiente de Bhattacharyya como función de similitud:
C =n∑
u=0
√pu ∗ qn (1.20)
dónde pu y qu son dos histogramas de color HSV de n bins cada uno. Esta cuantización
se puede realizar de la misma forma con otros espacios de color como RGB, HSI, SCILab
etc. En esta tesis se variaron los parámetros de discretización en el canal HSV con 18
colores en H, 3 en S y 3 en V.
Una forma de utilizar los histogramas como medida de similitud que a la vez tenga pro-
piedades espaciales sobre las imágenes es llamada histogramas espaciales. Consiste
en dividir a las imagenes a comparar en n ×m secciones rectangulares. A cada sección
se le calcula su histograma de color, es decir se maneja cada sección como imagen in-
dependiente. La similitud de imágenes está definida como la combinación lineal de las
Chapter 1. SI 12
similitudes de las secciones. Una variante consiste en ponderar por importancia las sec-
ciones a comparar. Los valores propuestos en esta tesis para histogramas espaciales son
n = 3 y m = 3.
1.2.3. Distancia cuadrática
Una métrica muy natural y comunmente utilizada para encontrar similitud de imágenes
consiste en encontrar las diferencias pixel a pixel de dos imágenes del mismo tamaño,
haciendo previamente un registro tentativo de ellas para trabajar sobre dos imágenes
de mismo tamaño (ver ecuación (1.21) ). Para obtener una buena métrica se necesita
alineación casi perfecta. Definimos la medida de similitud correspondiente por:
C = 1−∑n−1
i=0
∑m−1j=0:(i,j)[I1(i, j)− I2(i, j)]
2
m ∗ n(1.21)
Donde n = número de filas y m = número de columnas de ambas imágenes. Esta medida
está acotada a [0,1] donde el valor numérico indica el grado de similitud de ambas imá-
genes. Esta medida es muy sensible a cambios de escala, rotación y traslación además
de a cambios de iluminación. Sin embargo es muy útil para comparar detalles en dos
imágenes muy parecidas.
1.2.4. Puntos SIFT
SIFT (Scale-Invariant feature transform) es un algoritmo utilizado para detectar y des-
cribir características locales de una imágen. Este algoritmo es ampliamente utilizado para
relacionar dos imagenes por medio de sus descriptores locales, que contienen información
para realizar un emparejamiento entre ambas. Encontrar puntos de interés es eficiente al
momento de buscar características en las imágenes que sean invariantes tanto a, escala
como a, rotación y parcialmente inmune a, la iluminación como, al punto de vista de la
cámara. El detector de esquinas de Harris no es invariante a escala. Un ejemplo de lo que
se puede implementar para detectar los puntos clave o de interés que se identifiquen de
una manera unívoca lo propone Lowe [13] en 2003 con un nuevo algoritmo denominado
SIFT. Su idea principal es la transformación de la imagen a una representación compues-
ta de puntos de interés. Esos puntos contienen la información característica de la imagen
[15]. SIFT presenta invariancia ante cambios de escala y de rotación. Ante cambios de
iluminación y cambios del punto de vista, es parcialmente invariable. Los puntos están
bien localizados tanto en el dominio espacial como en el frecuencial, lo cual favorece la
Chapter 1. SI 13
detección de objetos incluso en el caso que esten parcialmente ocluídos, que aparezcan
sobre un fondo muy variable o ante la presencia de ruido.[8] Es comunmente utilizado
actualmente y es rápido lo cual es indispensable en aplicaciones de tiempo real, pero uno
de sus inconvenientes es el tiempo de matching de los puntos críticos. El algoritmo se
realiza mediante 4 pasos:
1. Detección de puntos extremos en el espacio de escalas La detección con-
siste en encontrar el lugar de la imagen donde existen puntos representativos. El
detector SIFT obtiene puntos con un alto grado de repetibilidad ante cambios mas
comunes de escala,rotación y parcialmente invariable a puntos de vista e ilumina-
ción. La primera fase de la detección consiste en buscar puntos característicos que
se mantienen ante cambios de escala buscando extremos en el espacio de escalas en
la función diferencia de Gaussianas (DoG) convolucionada con la imagen de entra-
da. Esta función se consigue con la resta de dos funciones de escalas consecutivas
separadas por un factor multiplicativo k. DoG es una aproximación de la laplaciana
de Gaussiana (LoG), Lowe [13].
2. Localización de puntos caracterı’sticos Como lo explica Lowe [13] los máximos
se encuentran sobre matrices 3×3 situados en escala del punto y las escalas superior
e inferior. En este paso se determina la posición en subpixel y subescala, es decir,
con precisión decimal. Para ello se utiliza una función cuadrática sobre la matriz de
dimensiones 3×3×3 que rodea a cada punto detectado. Gracias a esta interpolación
se consigue una mejora en cuanto a repetibilidad. Dicha mejora se ve incrementada
en las octavas superioes del espacio de escalas. Esto es debido a que la imagen
ha sido muestreada descartando pixeles de la imagen original y, al realizar una
interpolación, el desplazamiento puede llegar a ser de varios pixeles. Por último
SIFT realiza un descarte de los puntos característicos más inestables. La función
diferencia de Gaussianas presenta máximos entorno a bordes que aparecen en la
escena, sin embargo algunos de estos puntos no son interesantes porque desaparecen
ante pequeñas cantidades de ruido debido a que presentan un nivel de contraste
bajo. Para eliminarlos se estudian las curvaturas principales alrededor de los puntos.
3. Asignación de orientación Tras haber realizado la detección de puntos y asig-
nado una escala a cada uno de ellos, debe asignarse una orientación a cada punto
característico. Basándose en las propiedades de la imagen alrededor del punto lo-
calizado, se asigna la orientación para que el descriptor pueda trabajar siempre
a partir de ella, consiguiendo de esta forma la invariancia entre rotaciones de la
imagen. Las operaciones se realizan sobre el espacio de escalas extraido durante
el proceso de detección de SIFT. Con el fin de lograr invarianza ante cambios de
Chapter 1. SI 14
escala, la orientación de un punto característico se realiza utilizando la imagen del
espacio Gaussiano que tiene el valor de escala más próximo al del punto caracterís-
tico, a dicha imagen se le obtiene la magnitud del gradiente y la orientación sobre
la región correspondiente al punto característico. De esta forma se acumuan los
valores de magnitud y orientación de los pixeles incluido en la región. A continua-
ción, los valores de la orientación del gradiente se usan para formar un histograma,
mostrando los valores desde 0◦ hasta 360◦ divididos en 36 segmentos. Los valores
se añaden ponderados según la magnitud del gradiente y según una Gaussiana cir-
cular con centro en el punto característico, con una escala 1.5 veces mayor que la
escala correspondiente al propio punto. Cuando el histograma ha sido creado, se
busca cual es el valor mayor para asignar dicha orientación al punto. SIFT tiene la
característica de asignar multiples orientaciones a los puntos característicos, esto
significa que existen puntos con las mismas coordenadas y la misma escala pero dis-
tintas orientaciones asignadas. Esto sucede cuando existen valores en el histograma
que tienen un valor mayor al 80 por ciento del obtenido por la máxima orientación.
4. Descriptor del punto característico SIFT es un descriptor basado en distribu-
ción, es decir, utiliza histogramas para la representación de sus puntos. Se trata a
la vez de un descriptor diferencial, ya que utiliza gradientes del espacio de escalas
Gaussiano. Utilizando las matrices de gradientes obtenidas durante la asignación
de la orientación, se obtienen la dirección y magnitud del gradiente de las muestras
que están alrededor del punto extraido previamente por el detector. Esta opera-
ción se computa para todos los pixeles de la imagen contenidos en una ventana
de dimensiones 16 × 16 pixeles, con centro en el punto característico. La imagen
utilizada es la que tiene un valor de escala más próximo al asociado al punto. Dicha
operación se lleva a cabo tras la asignación de orientación del punto. De esta forma
los puntos descritos son invariantes a la orientación. Las orientaciones estan pon-
deradas según la magnitud del gradiente correspondiente. Una gaussiana se utiliza
para evitar cambios bruscos en posiciones que se encuentran cercanas y dar más
importancia a las muestras que están situadas próximas al punto característico.
Una vez obtenidas las orientaciones con la ponderación correspondiente, se crean
los histogramas. Para ello se divide la región de 16 × 16 muestras en subregiones
cuadradas de 4 × 4 y sobre cada una de ellas se crea un histograma de orienta-
ciones. La orientación contiene valores entre 0◦ y 360◦ cuantificados en 8 posibles
valores. El descriptor esta formado por un vector que contiene todos los valores de
los histogramas. Así pues, la longitud del descriptor para cada punto característoco
es de 128 elementos, ya que hay 4× 4 = 16 histogramas con 8 posiciones cada uno
(16× 8 = 128).
Chapter 1. SI 15
El aspecto esencial de este método corresponde al número de keypoints , que se puede
generar, ya que si de cada imagen obtenemos muy pocos keypoints , se dispondrán de
muy pocos candidatos a emparejar (matching) en ambas imágenes. Una vez que ya se
tienen calculados los descriptores, sólo queda realizar el matching entre los puntos de las
distintas imágenes. Para eso, Lowe [13] propone el método de el vecino mas cercano. Este
método está basado en la distancia euclídea entre vectores.
El algoritmo consiste en calcular los descriptores de los puntos de la imagen A, en la
cual se quiere encontrar un objeto que está definido en la imagen B. Por cada keypoint
de la imagen A, se calcula el más parecido en la imagen B, considerando un umbral que
nos determine aquellos que realmente son altamente parecidos para no asignar arbitra-
reamente correspondencia de puntos.
1.2.5. Puntos SURF
SURF es una técnica propuesta por Herbert Bay en 2006 en [2]. Es inspirada en SIFT,
pero utiliza wavelets y una aproximación del determinante del Hessiano para conseguir
un mejor rendimiento. Además, al contrario que SIFT, está libre de patentes y hay nu-
merosas implementaciones muy eficientes.
El algoritmo acelerado de puntos característicos robustos o Speeded Up Robust Features
(SURF) es un detector y descriptor que proclama conseguir los mismos, o incluso mejores,
resultados en cuanto a repetibilidad, distinción y robustez, que los métodos existentes en
el Estado del Arte actual por ejemplo SIFT. La principal ventaja de SURF es el tiempo
de ejecución, el cual es menor que el utilizado por los predecesores.
La repetitividad es la propiedad que debe prevalecer en un detector de puntos de interés,
donde se entiende por repetitividad expresar la fiabilidad de un detector para encontrar
el mismo punto de interés bajo diferentes condiciones de visión. Para detectar puntos
característicos, SURF busca encontrar el máximo de una aproximación de la matriz Hes-
siana utilizando imagenes integrales para reducir drásticamente el tiempo de cómputo.
El descriptor modela la distribución de intensidad sobre vecindad del punto, con el cálculo
de respuestas de Haar wavelet en las direcciones x y y dentro de una vecindad circular.
Chapter 1. SI 16
SURF presenta una indexación rápida para realizar el matching. El signo del Laplaciano
está incluido dentro del descriptor. Este puede ayudar en la distinción de puntos con
iluminación brillante con fondos negros y caso contrario. Además como el descriptor se
representa con vectores de tamaño 64, permite manejar menos información para realizar
el matching. El descriptor es comparado con otros descriptores por medio de alguna
métrica de distancia entre vectores como es Mahalanobis o la distancia Euclideana[12].
Ha sido extensamente usado en calibración de cámaras para realizar reconstrucción 3D
y en el reconocimiento de objetos.
Figura 1.4: Correspondencia de puntos SURF
1.2.6. El coeficiente de información mutua
En teoría de probabilidad y de la información, la información mutua (MI por sus siglas
en inglés) de dos variables aleatorias es una cantidad que mide la dependencia estadística
de las dos variables (o conjuntos de datos). Se trata de encontrar el máximo de la MI,
lo que implica incrementar la dependencia entre dos variables. A menudo, maximizar el
MI es equivalente a minimizar la entropía condicional. Los criterios de registro muestran
que la MI es máxima si las imágenes están geométricamente alineadas.
Se define el coeficiente de información MI de la siguiente forma:
NMI(I, J) =H(I) +H(J)
H(I, J)(1.22)
donde H(·) representa la entropía de una imagen y se calcula a partir del histograma de
un nivel.
H(x) = −255∑i=0
pi(x) log pi(x) (1.23)
Chapter 1. SI 17
ó
H(x, y) = −255∑i=0
∑j = 0255pij(x, y) log pij(x, y) (1.24)
H(x, y) es la entropía conjunta de x y y, pi es la distribución de niveles (histograma)
de una imagen y pij es la función de distribuciones de probabilidad conjunta, es decir es
una matriz de nbins2 para el caso de imágenes en niveles de gris [2].
Dado que NMI se encuentra comprendido entre 1 y 2, generalmente se prefiere el uso de
denominado coeficiente de correlación de entropía (ECC) que sí toma valores compren-
didos entre 0 y 1 y se calcula por:
ECC(I, J) = 2− 2
NMI(I, J)(1.25)
Se debe tener cuidado cuando el histograma tenga valores de 0 debido a que el log(0)
está indefinido. Además también cuando la entropía conjunta sea 0 debido a que existiera
una división por cero en cuyo caso es conveniente poner la entropia como 0.
La principal desventaja de los métodos que utilizan información estadística como la en-
tropía es principalmente el aumento considerable del costo computacional, al compararlos
con medidas como la correlación. Otra desventaja es que la información mutua es que
trata los valores de intensidad de la imagen de una manera cualitativa, sin considerar
ninguna noción de proximidad en el espacio de intensidad o color.
1.2.7. Matrices de Adyacencia
Esta medida nos ayuda a medir el grado de asociación entre los colores en base a su
distribución espacial en la imagen, lo cual llamaremos correlación espacial entre colores.
Eso significa que si dos colores aparecen cercanos en la imagen con mucha frecuencia
están ampliamente correlacionados con respecto a otro par de colores.
Para calcular una correlación espacial entre cada par de colores en una imagen, es ne-
cesario identificar o estructurar todos los pares de colores. Dependiendo del espacio de
color utilizado, el número de pares de colores pueden extenderse al grado que su proce-
samiento sea un problema por ello se sugiere reducir el número de colores cuantizando el
color, como lo vimos por ejemplo en espacio HSV en las ecuaciones (1.16), (1.17), (1.18),
Después es necesario asignar una etiqueta o nuevo nombre al color como lo indica la
Chapter 1. SI 18
ecuación(1.19). Con esta información podemos formar una imagen de etiquetas es decir
sustituir sus valores por índices 1, 2, 3, 4, ... Es decir, cambiamos los colores por etiquetas
que representan al color o varios colores similares (indexado de color). La medida de co-
rrelación espacial entre colores es relativa a una imagen en particular y se puede utilizar
la medida que se deseé para diferenciar colores.
Figura 1.5: (a) Imagen de etiquetas y (b) su correspondiente matriz de adyacencia
La matriz de adyacencia corresponde al conteo de las veces que dos colores aparecen en
pixeles cercanos en una imagen. Para calcularla, hacemos uso de la imagen de etiquetas
y para cada etiqueta revisamos sus cuatro vecinos conectados u ocho (según convenga)
y creamos una estructura de datos (matriz) donde en uno de sus índices (fila o columna)
nos posicionamos en el valor de la correspondiente etiqueta y en el otro índice el vecino
conectado, ya ubicados en la casilla. Aumentamos el contador que indica el número de
veces que esos dos valores(etiqueta y vecino) han estado conectado en toda la imagen.
En el algoritmo 1 se muestra el proceso de construcción de la matriz de adyacencia y
en la Figura 1.5 se muestra un ejemplo gráfico de la imagen de etiquetas y su matriz de
adyacencia.
El tamaño de la matriz de etiquetas es de n×n con n =numero de etiquetas(cuantización
de color) y es simétrica por construcción. Una característica para comparar imágenes es
por medio de sus matrices de adyacencia. Si dos imágenes son parecidas sus matrices de
adyacencia también lo serán debido a que los colores similares resultan estarán correla-
cionados.
A′ij =a∑n
i
∑mj ai,j
(1.26)
Chapter 1. SI 19
Algorithm 1 Construcción de Matriz de AdyacenciaRequire: Imagen de etiquetas I, número de etiquetas n, (m,n) = ancho y alto de I1: Inicializa A = 0n×n2: for i = 0, ..., n− 1 do3: for j = 0, ...,m− 1 do4: if i > 0 then5: A(Ii,j , Ii−1,j) = A(Ii,j , Ii−1,j) + 16: end if7: if j > 0 then8: A(Ii,j , Ii,j−1) = A(Ii,j , Ii,j−1) + 19: end if
10: end for11: end for12: A = A+AT
(a) (b)
Figura 1.6: a) Imagen A color b) Matriz adyacente de a con 256 colores
La ecuación (1.26) muestra la forma de normalizar la matriz de adyacencia que nos
permite comparar imágenes de distinto tamaño.
1.2.8. Medida de similitud combinada
Rodrigo [5] nos presenta una propuesta para fusionar dos medidas de similitud para
aprovechar las ventajas de cada uno de ellas. Las medidas de similitud son correlación
cruzada normalizada y la diferencia cuadrática media. NCC es robusta a algunas diferen-
cias de intensidad. Esto significa que mientras las diferencias de intensidad entre pixeles
aumenten o disminuyan conjuntamente, el coeficiente de correlación es alto. Además esta
Chapter 1. SI 20
misma medida es robusta al ruido. Sin embargo presenta debilidad a cambios de rotación
en las imágenes, en este caso la diferencia cuadrática media presenta mejores resultados.
En [[5]] se propone la medida de similitud combinada:
C =R
1 + kD(1.27)
R =1
L+1
∑Li,j=0(I1(i, j)−m1)(I2(i, j)−m2)
c1c2(1.28)
D =1
L+1
∑Li,j=0(I1(i, j)− I2(i, j))2
c21(1.29)
Donde R y D son la correlación cruzada normalizada y diferencia cuadrática media y k
una constante positiva que denota la importancia de la diferencia cuadrática media. I1y I2 son bloques de las imágenes a comparar, L el tamaño de las imagen, m1, c1, m2 y
c2 son los valores medios y las desviaciónes típicas de la imagen.
m1 =1
L+ 1
L∑i,j=0
I1(i, j) (1.30)
c1 =
√√√√ 1
L+ 1
L∑i,j=0
(I1(i, j)−m1) (1.31)
Capítulo 2
Métodos Boosting
En este capítulo se da una introducción teórica y explicativa del funcionamiento de Ada-
boost, que es un módulo importante en la clasificación de productos en supermercado. En
la sección 2.1 se explica el algoritmo básico de AdaBoost para problemas de clasificación
de dos clases, mientras que en la sección 2.2 se explica el algoritmo AdaBoost multiclass
diseñado por Zhu [10] para aplicarlo a problemas de clasificación multiclase.
Suponga que tenemos datos de entrenamiento (x1, c1), ....(xn, cn) donde las entradas (va-
riables predictoras) xi ∈ Rp, y las salidas(variables de respuesta) ci son cualitativas y
asumen vaores en un conjunto infinito, e.g. {1, 2, ...K} con K el número de clases. La
meta de un clasificador es encontrar una regla de clasificación C(x) de los datos de en-
trenamiento, tales que dados una nueva entrada x, se pueda asignar una etiqueta c de
{1, ....,K}.
Los métodos de Boosting son una de las ideas más fuertes en cuanto a aprendizaje dise-
nãdo originalmente para problemas de clasificación. La motivación original fue realizar
un procedimiento que combine la salidas de muchos clasificadores débilespara generar un
clasificador fuerte, es decir diseñar un algoritmo para construir clasificadores robustos
utilizando la combinación lineal de clasificadores simples.
2.1. ADABOOST
AdaBoost es el algoritmo de boosting más popular propuesto por Freund y Schapire
(1997) [17]. Considere un problema cuyas variables de salida son codificadas en Y ∈
21
Chapter 2. PS 22
{−1, 1}, dado una variable predictor X, un clasificador G(X) que produce una pre-
dicción tomando uno de los dos valores {−1, 1}, el error de clasificación de muestras
entrenamiento es:
err =1
N
N∑i=1
I(yi 6= G(xi)) (2.1)
donde I(x) es una función indicadora y el error esperado de clasificación para futuras
predicciones es EXY I(Y 6= G(X)). Un clasificador débil es un clasificador cuyo error de
clasificación es mejor que algo aleatorio. La propuesta de boosting es secuencialmente
aplicar clasificadores débiles repetidamente a versiones modificadas de los datos, y así
producir una secuencia de clasificadores débiles Gm(x),m = 1, 2, ...,M , tales que las
predicciones de todas ellas son combinadas por medio de pesos a los clasificadores:
G(x) = sign[M∑
m=1
αmGm(x)] (2.2)
donde α1, α2, ..., αM son encontrados por el algoritmo de boosting y pesan la contribu-
ción de cada respectivo clasificador Gm(x). El efecto de este procedimiento es dar una
mayor influencia a los clasificadores más precisos de la secuencia.
La modificación de los datos en cada paso del método boosting consiste en aplicar pesos
w1, w2, ..., wN a cada observación de entrenamiento (xi, yi), i = 1, 2, ..., N . Inicialmente
todos los pesos son puestos en wi = 1/N . Luego para cada iteración m = 2, 3, ...,M los
pesos de las observaciones son individualmente modificadas y el algoritmo de clasificación
es reaplicado a las observaciones pesadas. En el pasom, las observaciones que fueron mal-
clasificadas por Gm−1(x) inducen a incrementar los pesos de estas observaciones mientras
que son decrementados los pesos de las observaciones que fueron correctamente clasifi-
cadas. Así en las iteraciones sucesivas, las observaciones que son difíciles de clasificar
reciben mayor influencia. Así cada sucesivo clasificador es forzado a concentrarse en esas
observaciones de entrenamiento [3].
El algoritmo 2 muestra detalladamente la idea de Adaboost. El clasificador Gm(x) es
invocado con las observaciones pesadas en la linea 3. El resultados del error de clasifi-
cación es procesado en la linea 4. La línea 5 calcula el peso αm del clasificador Gm(x)
Chapter 2. PS 23
Algorithm 2 AdaBoost Freund & Schapire (19971: Inicializa las observaciones pesadas wi = 1
N , i = 1, 2, ..., N2: for m = 1, ...,M do3: Evalua al clasificador Gm(x) con los datos de entrenamiento usando los pesos wi
4: errm =∑Ni=1 wiI(yi 6=Gm(xi)∑N
i=1 wi
5: αm = log(1−errmerrm)
6: wi = wi exp[αmI(yi 6= Gm(xi))], i = 1, 2, ..., N7: end for8: G(x) = sign[
∑Mm=1 αmGm(x)]
para producir el clasificador final G(x)(linea 8). Los pesos individuales de cada obser-
vación son actualizados para la siguiente iteración en la linea 6. Las observaciones mal
clasificadas por Gm(x) tienen su peso escalado por un factor exp(αm) de tal forma que
su influencia incrementa para procesarse con el siguiente clasificador Gm+1(x). Con esto
el próximo clasificador débil estará forzado a enfocarse en los ejemplos difíciles del set de
entrenamiento que intuitivamente se ubican más cercanos a la frontera de clasificación.
Es por esto el nombre del algoritmo, AdaBoost, viene de las palabras Adaptive Boosting
(Mejoramiento Adaptivo), pues el clasificador se va adaptando al grupo de entrenamiento.
Se debe aclarar que se requiere que el error de un clasificador débil errm debe ser menor
a 12(Con respecto a la distribución en la cual fue entrenado), ya que de otra forma el
peso αm será negativo y los pesos de los datos de entrenamiento serán actualizado en
una dirección erronea en el algoritmo. Para problemas de clasificación de dos clases, este
requerimiento es tener algo mejor que adivinar al azar, pero para problemas con K > 2,
1/2 es mucho más difícil de lograr que una tasa de clasificación 1K . Por lo tanto AdaBoost
puede fallar si el clasificador débil G(x) no se elige apropiadamente.
Una segunda restricción en el clasificador Adaboost es que de cada clasificador débil
debe manejar los pesos de las observaciones, pero este requerimiento puede ser fácilmente
anulado si se muestrea el conjunto de entrenamiento con remplazo (acorde a los pesos de
la distribución) para generar nuevos conjuntos de datos no pesados que sean variables
de entrada del clasificador.
2.2. ADABOOST Multi-class
Bajo los mismos principios de derivación de Adaboost, Zhu [10] publica SAMME y propo-
ne un nuevo algoritmo para boosting multi-class comparable con AdaBoost, el algoritmo
SAMME (Stagewise Additive Modeling using a Multi-class Exponential loss function).
Chapter 2. PS 24
Es adaptado utilizando las mismas reglas del clasificador de Bayes multiclase siguiendo la
filosofía de boosting combinando clasificadores ’débiles ’ para formar un clasificador más
fuerte. En cada etapa, SAMME regresa un peso a un clasificador donde dicho clasificador
sólo necesita ser mejor que adivinar al azar una clase. Este algoritmo comparte la misma
estructura modular que AdaBoost[10].
Algorithm 3 SAMME1: Inicializa las observaciones pesadas wi = 1
N , i = 1, 2, ..., N2: for m = 1, ...,M do3: Evalua al clasificador Gm(x) con los datos de entrenamiento usando los pesos wi
4: errm =∑Ni=1 wiI(yi 6=Gm(xi))∑N
i=1 wi
5: αm = log(1−errmerrm) + log(K − 1)
6: wi = wi exp[αmI(yi 6= Gm(xi))], i = 1, 2, ..., N7: end for8: G(x) = argmaxk[
∑Mm=1 αmI(Gm(x) = k)]
Como podemos observar, el algoritmo 3 es muy similar a Adaboost con una diferencia
en la linea 5. Ahora el orden de αm será positivo, sólo se requiere que (1− errm) > 1K es
decir que cada clasificador sea mejor que adivinar al azar. Como consecuencia, el nuevo
algoritmo pone más peso que AdaBoost en los datos mal clasificados y el nuevo algoritmo
también combina clasificadores débiles aunque un poco diferente que AdaBoost con el tér-
mino log(K−1)I(Gm(x) = k). Cuando el valor deK = 2 SAMME se reduce a AdaBoost.
AdaBoost falla cuando el error errm está arriba de 1/2, este no es el caso de SAMME
por que el error puede ser mayor a 1/2 y αm es aún positivo.
Los métodos boosting han sido satisfactorios en rendimiento comparados con métodos
más complejos como las máquinas de soporte vectorial.
Adaboost fue propuesto para resolver problemas de clasificación de dos clases y multiclase
(Freund & Schapire 1997). AdaBoost.MH es un enfoque que convierte un problema de K
clases en K problemas de dos clases y se ha demostrado que este algoritmo trabaja bien
con datos simulados y reales. SAMME es comparable con AdaBoost.MH y es ligeramente
mejor [10].
Capítulo 3
Clasificación de Productos de
Supermercado
3.1. Clasificador de imágenes por color
La clasificación de una imagen que representa un producto de supermercado se basa
principalmente en color. Dicha clasificación consiste en la comparación de la imagen que
desea clasificarse con la base de datos, con la idea de obtener aquella que bajo un umbral
logre obtener una similitud tal que pueda considerarse el producto que se está buscando.
No obstante, queremos utilizar medidas de similitud como clasificadores entrenados en
un método de boosting que permita mejorar la clasificación y aprovechar las ventajas
que cada medida de similitud posee para obtener mejores resultados que si se aplican
individualmente. Para entender mejor este proceso se explicará cada paso mostrado en la
Figura [3.1]. Además en este capítulo se justifica la elección del espacio de color utilizado
para las pruebas y la estrategía de segmentación utilizada para encontrar las máscaras
de los productos de la base de datos.
Para eficientar la comparación de un imagen a clasificar con la base de datos, se pro-
pone que la base de datos manejada sea únicamente del tipo de producto que se está
buscando (ejemplo; Yogurts, Licores, Salsas, etc. ). A este proceso se le determina pre-
clasificación del producto con lo cual se reduce el tiempo computacional de búsqueda.
3.1.1. Elección de Espacios de color
En el capítulo 1 se mencionaron distintos espacios de color como son: HSV, RGB, rgb nor-
malizado, rgI, CIELab y c1c2c3 por ser estos populares en la literatura. A continuación
25
Chapter 3. PS 26
Figura 3.1: Proceso de Clasificación
se muestran resultados de la evaluación de distintos espacios y en base a ellos se decide
utilizar el modelo de color c1c2c3 como espacio de color principal en el reconocimiento
de productos. Cabe mencionar que incluso distintos espacios de color funcionan mejor
con determinadas medidas de similitud pero por ahorro de tiempo computacional se de-
cidió utilizar aquel que tuviera mejor comportamiento en el reconocimiento de productos.
Theo [7] hace una comparación de distintos espacios de color en tres dimensiones eva-
luando aspectos como iluminación, cambios de punto de vista y geometría del objeto y
presenta una tabla 3.2 que muestra la robustes de distintos espacios de color evaluando
dichas características.
Para probar este análisis se evaluaron dos bases de datos SOIL47 [4] y Yogurts con tres
medidas de similitud(correlación cruzada normalizada, histogramas de color y Matrices
de adyacencia) en la primera parte de la tabla[3.1] se muestran resultados sobre la base
de datos SOIL47 mientras que en la segunda parte se muestran otros resultados con
yogurts y unas variantes del espacio de color HSV.
Chapter 3. PS 27
Figura 3.2: Visión general de varios modelos de color y su invarianza a condiciones.+ denota invarianza y - sensibilidad del modelo de color a distintas condiciones[7].
La base de datos SOIL47 [4] utlizada consta de 44 productos de la base de datos y 44
productos que reconocer. En constraste la base de datos yogurts consta de 50 productos
y 13 productos a reconocer. La forma en la cuál se evaluó el porcentaje de reconocimiento
es igual que como se explica en la sección de experimentos. Ver 3.2.2. Las tablas 3.1 y
3.2 muestran las estadísticas por espacio de color. La tabla 3.1 muestra el resumen de
resltados en la identificación del objeto. La tabla 3.2 resume el porcentaje de similitud ,
es decir si el producto a clasificar se encontraba en el primer, segundo o tercer lugar del
clasificador.
Base de datos Espacio de color % correlación % Diferencias puntuales % HistogramasSOIL47 HSV 8× 3× 3 95 % 43 % 93 %
SOIL47 HSV 18× 3× 3 95 % 43 % 93 %
SOIL47 rgb 8× 8× 8 93 % 43 % 93 %
SOIL47 c1c2c3 8× 8× 8 95 % 88 % 93 %
yogurts HSV 8× 3× 3 38 % 7 % 7 %
yogurts HSV 18× 3× 3 38 % 15 % 15 %
yogurts HS 8× 3× 3 38 % 7 % 7 %
yogurts H 18 38 % 7 % 7 %
yogurts rgb 8× 8× 8 31 % 0 % 31 %
yogurts rgI 8× 8× 8 38 % 0 % 15 %
yogurts CIELab 8× 8× 8 46 % 23 % 7 %
yogurts c1c2c3 8× 8× 8 38 % 23 % 30 %
Cuadro 3.1: Porcentaje de reconocimiento con tres medidas de similitud: Correlacióncruzada normalizada, diferencias puntuales e histogramas para diferentes espacios de
color con dos bases de datos: SOIL47 y Yogurts
Como se observa el espacio de color que dió mejores resultados es c1c2c3.
Chapter 3. PS 28
Base de datos Espacio de color % correlation % Diferencias puntuales % HistogramasSOIL47 HSV 8× 3× 3 95 % 84 % 95 %
SOIL47 HSV 18× 3× 3 95 % 84 % 95 %
SOIL47 rgb 8× 8× 8 95 % 43 % 93 %
SOIL47 c1c2c3 8× 8× 8 95 % 95 % 95 %
yogurts HSV 8× 3× 3 53 % 53 % 46 %
yogurts HSV 18× 3× 3 53 % 23 % 53 %
yogurts HS 8× 3× 3 53 % 53 % 38 %
yogurts H 18 53 % 53 % 30 %
yogurts rgb 8× 8× 8 46 % 43 % 46 %
yogurts rgI 8× 8× 8 53 % 46 % 53 %
yogurts CIELab 8× 8× 8 53 % 23 % 53 %
yogurts c1c2c3 8× 8× 8 61 % 53 % 53 %
Cuadro 3.2: Porcentaje de similitud de reconocimiento entre los tres mejores. Seutilizó tres medidas de similitudpara diferentes espacios de color con dos bases de datos:
SOIL47 y Yogurts
3.1.2. Obtención de la mascara de un producto
Para tener mayor precisión en el procesamiento de las imágenes es conveniente utilizar
máscaras de los productos de la base de datos, es decir, segmentar en dos clases la imagen
para marcar el área de importancia del producto y aquella que sólo es fondo. Para estas
pruebas se espera que la imagen de la base de datos haya sido tomada con algún fondo
de color uniforme. La estrategía de segmentación utilizada se llama GMMF [11].
GMMF es un algoritmo de segmentación que pretende minimizar una función que permite
obtener para cada pixel un vector de probabilidad que indica la pertenencia a cada clase
o cluster como se puede ver en la ecuación (3.2) .
mı́np
1
2
∑k
∑x
[pk(x)− Vk(x)]2 + λ∑y∈Nx
[pk(x)− pk(y)]2 (3.1)
s.a∑k
pk(x) = 1
pk(x) ≥ 0
Donde Nx es la vecintad del pixel y Vk(x) es la verosimilitud de Gauss. pk(x) es la
probabilidad de pertenencia del pixel x en la clase k. pk(y) es la probabilidad de que el
pixel y en la vecindad Nx pertenezca a la clase k. |Nx| es la cardinalidad del conjunto
de vecinos del pixel x.
Chapter 3. PS 29
Vk(x) =1∑
j exp−1
2σ2k
[g(x)−mk]2exp
−1
2σ2k
[g(x)−mk]2
(3.2)
Para minimizar la ecuación se iguala a 9 la derivada de la función objetivo y se observa
que se cumplen las restricciones. Para segmentar una imagen, la probabilidad de la clase
k en la cual el pixel x tiene mayor probabilidad de pertenecer está determinada por:
pk(x) =Vk(x) + λ
∑y∈Nx pk(y)
1 + λ|Nx|(3.3)
Como podemos observar el factor λ nos indica la importancia de la clasificación de los
pixeles vecinos. Con este procedimiento se puede definir k = 2 y λ = 1 para encontrar dos
clases (blanco y negro) que diferencien el fondo de la imagen de la sección definida como el
producto. La figura [3.3] muestra un ejemplo de aplicar dicho algoritmo de segmentación
sobre uno de los productos de la base de datos SOIL47. Sin embargo, para obtener un
resultado más definido puede utilizarse otro algoritmo de segmentación o supervisar y
complementar la segmentación de forma manual.
Figura 3.3: Izquierda: Producto original, Centro: segmentación por GMMF, Derecha:Llenado manual
3.1.3. Detección de puntos de interés
En este proceso se encuentran los puntos de interés de ambas imagenes a comparar con
el Speeded Up Robust Features (SURF) referenciado en la sección [1.2.5].
Una vez se tienen los puntos de interés, los descriptores de cada uno son utilizados para
encontrar relaciones entre los puntos de ambas imagenes (matching) [15]. Para cada
Chapter 3. PS 30
punto p1 de la primera imagen se buscan los puntos p2 de la segunda imagen que se
emparejan con él.
1. Se eliminan como posibles emparejamientos todos aquellos puntos p2 con escala σ
que tengan signo del determinante de la matriz Hessiana diferente al del punto p1que se está considerando, es decir, se rechazan los puntos p2 que cumplen.
detH(p1, σ) detH(p2, σ) < 0 (3.4)
Con este proceso es de esperarse que se eliminen aproximadamente un 50% de los
emparejamientos posibles.
2. Para cada uno de los puntos p2 restantes se calcula la norma euclidea de la diferencia
de los descriptores.
3. De todas las distancias obtenidas para cada punto p1 se almacenan las dos menores.
Si la distancia más pequeña obtenida es inferior a la mitad de la segunda distancia,
entonces se considera que hay emparejamiento entre el punto p1 y el punto p2 para
el que se ha obtenido la mínima norma de la diferencia.
En este proceso nada impide que un punto de la segunda imagen pueda ser emparejado
con varios de la primera. Además debido a que se comparan sólo descriptores locales
es muy probable que por fenómenos como oclusión, ruido o patrones repetidos existan
emparejamientos incorrectos. Dichos fenómenos son tratados en la siguiente sección al
momento de buscar una homografía.
3.1.4. Transformación de las imágenes
Para realizar la clasificación de un producto, primero se desea transformar la imagen
de tal forma que pueda ser comparada con cada imagen de la base de datos. Este pro-
ceso es de los más importantes a la hora de aplicar el clasificador pues es un proceso
discriminatorio en la clasificación de productos.
Una vez hecha la correspondencia de puntos SURF, deseamos encontrar una homografía,
es decir una transformación que pueda explicar como está transformada una imagen res-
pecto a la otra. Ésta tarea se utiliza una técnica llamada RANSAC que toma de entrada
las correspondencias de los puntos e intenta encontrar la homografía que minimice el
número de puntos atípicos (outliers), es decir, puntos mal correspondidos. En este punto
puede ocurrir que no existan suficientes correspondencias para encontrar una homografía
(se requieren mínimo 4 puntos bien correspondidos) o que la homografía encontrada sea
Chapter 3. PS 31
una deformación de una imagen. Ambos casos son tomados para determinar que las
imágenes en proceso no corresponden al mismo producto.
Una homografía es una transformación proyectiva que describe que pasa con la percep-
ción de las posiciones de puntos en un plano cuando el punto de vista del observador
cambia. La homografía no explica el cambio proyectivo de puntos en posición general 3D,
pero para nuestros propósitos aproxima adecuadamente el cambio de la proyección de
los puntos sobre un objeto de supermercado. El cálculo de la homografía es computacio-
nalmente eficiente y robusto. Usando coordenadas homogéneas en vez de representar la
posición de cada pixel de la imagen como < x, y >, se representa como < x, y, λ >. Las
coordenadas homogéneas son muy usadas porque nos permiten realizar una transforma-
ción proyectiva a la imagen utilizando sólo multiplicaciones de matrices.
Usando coordenadas homogéneas, uno puede representar una matrix de homografía como
una matriz de 3x3 con 8 grados de libertad. Entonces para encontrar la homografía
necesitamos cuatro correspondencias de puntos debido a que cada correspondencia me
da dos ecuaciones. El parámetro restante puede ser interpretado como un parámetro de
escala y puede ser fijado a 1 como se muestra:
x′
y′
λ
=
a b c
d e f
g h 1
×x
y
1
Este método no puede ser aplicado si los puntos son colineales o haya dos puntos alinea-
dos con el epípolo. Igualmente si los puntos estan cerca de la colinealidad con el epípolo
el método dará una estimación de la homografía mal condicionada.
Una vez que todos los puntos proyectados han sido computados, recuperamos nuestro
sistema de coordenadas originales dividiendo cada puntos por su escala homogénea y se
quita el factor de escala.
El uso de la homografía nos permite encontrar la transformación correspondiente que se
debe hacer entre dos imagenes con mucho puntos en común, por lo que si la imagen está
rotada, escalada o transladada es posible aplicar dicha transformación para tener dos
imágenes como si hubiesen sido tomadas desde el mismo punto de vista. En la figura[3.4]
Chapter 3. PS 32
se puede observar las correspondencias SURF de una imagen de la base de datos contra
el mismo producto con distintas vistas.
Figura 3.4: Correspondencia de puntos SURF con distintas vistas y productos
Como se comentó con anterioridad si existen correspondencias incorrectas están deber ser
eliminadas para evitar transformaciones que deformen la imágen por lo que para elegir
una homografía que maximice los inliers y minimice los outliers, se utiliza RANSAC.
El método de RANSAC da la solución más votada de entre unas cuantas, calculadas a
partir de conjuntos mínimos obtenidos aleatoriamente.
1. Para calcular una homografía se necesitan un mínimo de cuatro emparejamientos.
2. La idea del método RANSAC consiste en seleccionar un número de subconjuntos
de cuatro emparejamientos elegidos aleatoriamente dentro del total que garantice
que, con una probabilidad, al menos uno de los dichos subconjuntos contendrá sus
cuatro emparejamientos correctos, es decir ninguno de ellos es un outlier.
3. Para cada subconjunto formado se calcula una homografía.
4. Esta homografía se valora mediante un sistema de votaciones.
a) Se contabiliza el número de emparejamientos buenos: votos favorables (si y
sólo si la homografía lleva una característica a la otra con un error menor a el
umbral considerado).
Chapter 3. PS 33
b) Se toma al final la homografía que más votos haya tenido.
c) Se consideran emparejamientos buenos (inliers) aquellos que hayan votado por
dicha solución.
d) Si una homografía recibe más del 95% de los votos, se considera como una
solución definitiva.
En la figura [3.5] se muestra la eficiencia de este proceso. Se tomo un producto de la
base de datos y se tomaron imágenes del mismo con distinta iluminación y distintos
puntos de vista, realizando el proceso de transformación de la imagen con puntos SURF
y RANSAC. Se obtiene la imagen transformada con respecto a la de la base de datos cuyo
resultado es una imagen del mismo tamaño que puede ser comparada para determinar
si corresponde a dicho producto de la base de datos.
Un criterio que se utiliza para discriminar aquellas transformaciones que pueden deformar
anormalmente una imagen y nos ayuda a no considerarlas en el proceso de clasificación
y además pueden aliviar el tiempo de cómputo es utilizado por [16]. En este trabajo
se menciona que se puede utilizar el determinante de la homografía. Si el determinante
de la homografía es cercano a cero corresponde a una degeneración y no debería de ser
considerado. Si el determinante de la homografía es muy grande, el determinante de su
inversa es cercano a cero lo cual también en un caso de degeneración, por lo que debemos
eliminar las homografías cuyo determinante tiene un valor absoluto fuera del rango [ 1n , n]
para algún valor de n. En este caso se elige n = 10.
Todo este proceso se muestra en un ejemplo mostrado en la figura [3.7] donde se visualiza
la secuencia de clasificación de un producto y la reducción de la búsqueda a sólo pro-
ductos cuya transformación existe. El proceso de clasificación con AdaBoost multiclass
es explicado a continuación.
3.1.5. Clasificación con AdaBoost Multi-Class
Finalmente una vez que se tienen dos imágenes que probablemente sean el mismo produc-
to de supermercado se utiliza la estrategía AdaBoost multiclass explicada en la sección
2.2, utilizando como clasificadores las siguientes medidas de similitud:
1. Histogramas espaciales(xy)
2. Diferencias puntuales
3. Matriz de adyacencia
4. SURF
Chapter 3. PS 34
5. Histograma de Color
6. Correlación
Utilizando datos de prueba se entrenó el clasificador para encontrar pesos a cada clasi-
ficador débil y realizar un sistema de votaciones. Si un clasificador predice mal o no es
tan bueno como otro que tienen mayor porcentaje de prediccón, el peso asignado a este
clasificador es pequeño. Después la forma de elegir la clasificación de un producto está
determinaao por un umbral u que permite asignar una clasificación con una etiqueta
definida como sigue:
G(Iclasificar) = argmaxk[M∑
m=1
αmI(Gm(Iclasificar) = k)] (3.5)
Es decir aquél producto de la base de datos cuyo peso sea mayor a un umbral será
asignado como producto encontrado. De forma general el proceso de clasificación
queda como se muestra en el algoritmo [4] y en la figura [3.7]
Algorithm 4 Algoritmo de clasificicación de un productoRequire: αm (pesos de los clasificadores que sumen 1) , Iclasificar (imagen a clasificar),
Ik (Imagen de la base de datos), n = 101: Obtener puntos característicos con SURF de la imagen Iclasificar.2: for k = 1, ...,K do3: Obtener puntos característicos con SURF de la imagen Ik.4: Encontrar matching de los puntos característicos Iclasificar vs Ik.5: if NumeroCorrespondencias <4 then6: Ir al siguiente producto k = k + 1;7: end if8: Encontrar una homografía Hque explique la relación entre Iclasificar e Ik9: if det(H) < 1
n or det(H) > n then10: Ir al siguiente producto k = k + 1;11: end if12: Evaluar la similitud Tk(Iclasificar) =
∑Mm=1 αmGm(Iclasificar, Ik)
13: end for14: g(Iclasificar) = maxk[T (Iclasificar)]15: if g(Iclasificar) > u then16: G(Iclasificar) = argmaxk[T (Iclasificar)]17: end if
Chapter 3. PS 35
3.2. Estadísticas del clasificador
3.2.1. DATA BASE SOIL47
Para probar la eficiencia del clasificador se utilizó la base de datos SOIL47 [3.8].
SOIL47 [1] es una base de datos de productos de supermercado creada por la Universidad
de Surrey. Las imágenes mostradas son principalmente de objetos de color, muchas de
las cuales consisten en superficies planas (cajas) y con estructuras complejas en color. La
base de datos contiene 24 productos con superficies planas y 22 imagenes con otra forma.
La base de datos SOIL47 es útil cuando se trabaja con reconocimiento de objetos por
que contiene imágenes para probar los distintos problemas presentados en la adquicisión
de una imagen. Las características de la base de datos SOIL son las siguientes:
1. De cada uno de los productos (47 en total ) fueron tomadas 21 imágenes con un
robot en movimiento alrededor del objeto, en intervalos de aproximadamente 9
grados en un rango de [−90, 90] grados (ver muestra en figura 3.9). Esta base de
datos se titula SOIL47A.
2. Otras 47 × 21 imágenes fueron tomadas con distinta iluminación para probar la
eficiencia de los algoritmos robustos a este fenómeno. Esta base de datos se titula
SOIL47B. Para ver la diferencia entre ambas bases de datos, uno puede referir a la
figura 3.10.
3. En la base de datos se incluyen imagenes con composición de color idéntica pero
con diferente forma. Para ver un ejemplo, uno puede referirse a la figura 3.11
4. La resolución de las imagenes orignalmente es de 576 × 720 pero por limitaciones
de espacio y procesamiento en esta tesis fueron reducidas a 250× 300 aproximada-
mente.
5. La extensiø’n de las imagenes es .PNG
Se formó otra base de datos que contiene imágenes que fueron bajadas de internet con
distinta resolución principalmente resoluciones bajas y se tomaron imágenes en super
mercado de las cuales se extrajeron subimágenes que representaban productos. Esta
base de datos se denominó "YOGURTS". Cabe mencionar que los productos de la base
de datos varian un poco en la presentación. Ver Figura 3.12.
Chapter 3. PS 36
3.2.2. Experimento 1
Se tomaron 44 productos de la base de datos SOIL47B que contienen imágenes con
distinta iuminación y puntos de vista en comparación con SOIL47A. Se hicieron pruebas
para clasificar estos productos tomando como base de datos las imagenes SOIL42A y
se obtuvo la tabla 3.3 donde se observan los resultados de eficiencia de cada medida de
similitud individual y despues de haber pasado por el proceso de registro de imágenes.
Clasificador % SOIL47A % YogurtsHistogramas espaciales(xy) 93% 23%Diferencias puntuales 84% 38%Matriz de adyacencia 93% 23%NMI 54% 7%SURF 95% 38%Histograma de Color 93% 38%Correlación 95% 38%Clasificador Propuesto 95% 38%
Cuadro 3.3: % de reconocimiento de clasificadores(medidas de similitud) con basesde datos: SOIL47, umbral = 0,5 Primera opción del clasificador
Como se observa en la tabla 3.3 todos los clasificadores tienen alto poder de clasificación
pero somos dependientes del cálculo de una buena tranformación para realizar las simi-
litudes. Sin embargo el contraste y diferencia de los clasificadores puede mostrarse en la
misma tabla procesando la base de datos YOGURTS.
La tabla 3.4 muestra mejores porcentajes de reconocimiento debido a que se toma como
criterio de clasificación si el clasificador obtuvo la clasificación correcta en alguno de los
primeros tres lugares.
Clasificador % SOIL47A % YogurtsHistogramas espaciales(xy) 95% 38%Diferencias puntuales 84% 23%Matriz de adyacencia 95% 38%NMI 70% 7%SURF 100% 15%Histograma de Color 95% 46%Correlación 95% 61%Clasificador Propuesto 95% 46%
Cuadro 3.4: % de reconocimiento de clasificadores (medidas de similitud) con basesde datos: SOIL47, umbral = 0,5 Se toma como clasificación correcta si el producto
correcto se encuentra entre las primeras tres opciones del clasificador
Chapter 3. PS 37
La Figura 3.14 muestra un ejemplo de los tres primeros lugares de un producto cuyos
valores de similitud son coherentes con el parecido entre las imágenes.
Con estas prueba se muestra como el clasificador propuesto supera los porcentajes de
clasificación de cada medida de similitud por individual y aprovecha las características
de cada una, permitiendo mayor% de clasificación.
3.2.3. Experimento 2
Para probar la eficiencia en distintos puntos de vista de un producto se utilizan 25
productos con 10 vistas de un mismo producto [−90◦, 90◦] con separaciones de 18◦ apro-
ximadamente como se visualiza en la Figura 3.15. Para cada producto de la base de
datos (utilizando el representativo de SOIL47A) que tiene la característica de ser una
imagen con distinta iluminación y tomada desde un punto de vista diferente a las de-
más. Se compara con sus 10 vistas y se verifica si pasa un umbral de similitud u = 0,8
previamente desechando aquellos que están deformados por el criterio del determinante
de cual ya hemos platicado. En la Figura 3.16 se observan dos gráficas que muestran
el número de productos clasificados correctamente variando la posición del objeto. Es
intuitivo entender que el menor rango de clasificación se obtiene cuando las imágenes
están a [−90◦, 72◦] debido a que es dificil encontrar correspondencias de puntos que nos
permitan transformar la imagen para compararla. La primer gráfica muestra cada medi-
da de similitud y el número de clasificaciones correctas según el ángulo de las imágenes,
mientras que la segunda gráfica muestra por separado al clasificador propuesto que a
pesar de que tiene baja clasificación en los extremos es el que mejor se comportó de
todos los clasificadores.
Es importante señalar que para que ambos experimentos se llevaran a cabo es muy
dependiente del cálculo de la homografía y por ende la resolución de las imágenes. Con
imágenes de baja calidad se requiere otra forma de registrar o buscar correspondencias.
El registro con la base de datos de YOGURTS se hizo sin transformar sólo igualando
tamaño aprovechando que no necesitan gran transformación.
Chapter 3. PS 38
(a)h
(b)h
Figura 3.5: a) producto de la base de datos b) Transformaciones de diferentes vistaspor SURF y RANSAC
Chapter 3. PS 39
(a)h
(b)h
Figura 3.6: a) producto de la base de datos b) Transformaciones de diferentes vistaspor SURF y RANSAC
Chapter 3. PS 40
Figura 3.7: Secuencia del proceso de clasificación de un producto
Figura 3.8: Visión general de todos los productos de la base de datos SOIL47; paralos experimentos se quitaron los tres objetos más grandes que se visualizan.
Chapter 3. PS 41
Figura 3.9: Se muestran 21 vistas de un mismo producto tomadas cada 9 grados desdeun rango de [−90, 90]
Figura 3.10: Se muestran 2 imagenes de un mismo producto con distinta iluminación
Chapter 3. PS 42
Figura 3.11: Se muestran 2 imagenes con la misma composición en color
Chapter 3. PS 43
Figura 3.12: Visión general de 50 productos de la base de datos YOGURTS
Chapter 3. PS 44
Figura 3.13: Visión general de los productos a clasificar con BD:YOGURTS
Figura 3.14: Clasificador indicando los tres más parecido con valores: [0,96, 0,67, 0,48]respectivamente
Figura 3.15: Se muestran 10 vistas de un mismo producto tomadas cada 18 gradosdesde un rango de [−90, 90]
Chapter 3. PS 45
(a)
(b)
Figura 3.16: Clasificación para diferentes puntos de vista umbral = 0,8:a)Clasificadores diversos b) Clasificadores propuesto
Capítulo 4
Aplicaciones
4.1. Clasificar imágenes de supermercado
Una de las motivaciones principales de esta tesis fue estudiar una estrategía que sirva de
base en el reconocimiento de productos de supermercado que pueda eficientar el proceso
de registro de inventarios de stands de supermercado. Queremos también supervisar las
estrategías de mercadotecnia de los stands con productos utilizando herramientas de vi-
sión computacional.
El problema de reconocimiento de productos en una imagen se divide en tres secciones:
Figura 4.1: Proceso de clasificación de productos en stands de supermercado
46
Chapter 4. Ap 47
Existen dos procesos previos a la clasificación de productos de supermercado y consisten
en (1) la detección y separación de charolas en la imagen y (2) en la separación de
secciones de la imagen donde se hubican los productos a clasificar. A continuación se
muestra de forma detallada cada una de ellas.
Chapter 4. Ap 48
4.1.1. Tratamiento de la Imagen
Este proceso consiste en obtener a partir de una imagen de gran resolución, secciones
donde se espera que existen conjuntos de productos cuyo nombre designaremos charola.
Para obtener una charola según las características de las imágenes de prueba, se observa
que los productos se ubican sobre stands paralelos, por lo que la propuesta es detectar
las lineas de la imagen y tomar aquellas cuyo ángulo de inclinación este en un intervalo
de [−20◦,+20◦]. Una vez detectadas las líneas se observa que cada sección de productos
se separa por una o dos lineas resultantes paralelas y se cortan las imagenes resultantes
obteniendo charolas a procesar.
Para obtener las líneas de la imagen, se utiliza el método de la transformada de Hough,
que consiste en que para cada punto que se desea averiguar si es parte de alguna figura
(línea en este caso), se aplica una operación dentro de cierto rango en los parámetros,
con lo que se averigua las posibles formas de las que se puede ser parte un punto.
Se puede describir analíticamente un segmento de línea en varias formas. Sin embargo
una ecuación conveniente para describir un conjunto de líneas es la notación paramétrica
o normal:
ρ = x cos θ + y sin θ (4.1)
Donde ρ es la longitud de una normal desde el origen hasta la línea y θ es el ángulo de la
normal (ρ) con respecto al eje x o y con θ = 0 indicando lineas horizontales. Cualquier
línea recta en una imagen es representada en un punto simple (ρ1, θ1) en el espacio pa-
rámetrico (ρ, θ).
Puntos colineales (xi, yi) con i = 1, 2, 3...N son transformadas en N curvas sinusoidales
en el plano (ρ, θ). Ver Figura 4.2
ρ = xi cos θ + yi sin θ (4.2)
Los puntos de intersección de las curvas en el espacio paramétrico, corresponden a los
parámetros (ρk, θk) de las posibles rectas que se encuentran en la imagen. El espacio
paramétrico es representado por un estructura rectangular del celdas, llamada arreglo
Chapter 4. Ap 49
Figura 4.2: Representación gráfica de la transformada de HoughFuente de la imagen: Urrea Duque, IMPLEMENTACIÓN DE LA TRANSFORMADA DE HOUGHPARA LA DETECCIÓN DE LÍNEAS PARA UN SISTEMA DE VISIÓN DE BAJO NIVEL, 2002
acumulador y cuyos elementos son posibles rectas. Las rectas candidatas que considerare-
mos son aquellas con una magnitud superior a un cierto umbral y pueden ser consideradas
como posibles líneas. El algoritmo de Hough es el siguiente [5]:
Algorithm 5 Algoritmo Hough para detectar lineas1: Discretize el espacio paramétrico ρ, θ2: Sea A(K,T ) una matriz de contadores inicializada en 0.3: Para cada pixel I(i, j) de la imagen I que pertenezca a la línea desde h = 1, 2, ...T
con k = 1, 2, ...K
a) Hacer ρ = i cos θd(h) + j sin θd(h).
b) Halle el intervalo de k′s que sea mas cercano al ρ obtenido.
c) Incremente la matriz A(k, h)
4: Encuentre los máximos locales (kp, hp) que sean mayores que un umbral.5: Con los ρ y θ encontrados se describe la línea en forma polar.
Los pixeles de la imagen son obtenidos primero con preprocesamiento de la imagen
utilizando el detector de Canny para obtener bordes en una imagen. Después, es aplicado
el algoritmo de Hough (Ver Algoritmo 5) cuyo resultado sirve de herramienta para obtener
las charolas de la imagen como se muestra en la Figura [ 4.3].
Chapter 4. Ap 50
Figura 4.3: Imagen izquierda: Bordes de Canny, Imagen derecha: Las lineas encontra-das a partir de la transformada de Hugh con θ en el intervalo [−20◦,+20◦] de la imagen
de bordes
4.1.2. Detectar Productos en una charola
Detectar productos en una charola es una tarea compleja desde el punto de vista de
visión computacional ya que se deben establecer normas de lo que es considerado como
un producto o lo que no puede considerarse como tal. Debido a la variedad de imágenes
dentro de los productos de supermercado, se puede confundir cualquier criterio utilizado.
En este caso, la separación de productos no está reportada. En la Figura [4.4] se muestra
una charola y los productos separados en rejillas.
Figura 4.4: Separación de secciones de la imagen para representar un producto
Chapter 4. Ap 51
4.1.3. Clasificación de un producto
Finalmente una vez que los productos han sido separados se clasifica cada uno de ellos
con la imagen que más se parece en color. Es en este punto donde se aplica el clasificador
de productos que manejamos utilizando medidas de similitud en color.
Un problema evidente en esta etapa es que las imágenes a procesar son de resolución
muy baja (aprox. 30× 50) y con problemas de iluminación y emborronamiento. Por eso,
encontrar puntos característicos para encontrar correspondencias entre las imágenes no
es posible en todos los casos. Entonces, la comparación entre las imágenes se realiza
directamente sin encontrar una transformación, de tal forma que cuando se compara dos
imagenes se realiza el escalamiento de una de ellas para obtener imagenes del mismo
tamaño.
En la Figura [4.5], podemos ver los resultados de clasificación obtenidos con dichas imá-
genes. Se observa que el clasificador si obtuvo resultados en color, pero falla en precisión
debido a la calidad de las imágenes, tanto en la base de datos como en la charola mos-
trada.
Chapter 4. Ap 52
(a) (b)
(c) (d)
Figura 4.5: Resultados de clasificación en el problema de Reconocimiento de pro-ductos en supermercado": Imagenes de la izquierda (a,c) muestran cuadros rojos querepresentan productos a clasificar, Imagenes de la derecha(b,d) muestran el resultado
según el clasificador propuesto donde se observa similitud en color
4.2. Detectar productos en un video
Procesar todas las imágenes (frames) de un video puede ser costoso computacionalmente
sobre todo por que en imágenes consecutivas se repite información de los frames ante-
riores. La estrategía utilizada sobre video es el procesamiento eventual de frames en un
video, es decir tomar cada N frames de un video una imagen a procesar, cuya carac-
terística es que dicha imagen sea de calidad (no tenga emborronamiento por movimiento).
Una de las metas y motivaciones de este tesis fue encontrar una estrategía que sirva de
base para reconocer productos detectados en una escena, es decir dado un frame (ima-
gen) y zonas donde es probable exista un objeto, identificar dicho objeto(subsección de
la imagen), lo siguiente es otra de las aplicaciones sobre las que se aplica este trabajo en
tesis.
Chapter 4. Ap 53
Los 18-23 Junio se llevó a cabo el evento Robocup@home en la ciudad de México, Méxi-
co. Este evento es una competencia de robots que se enfoca en resolver tareas del mundo
real por medio de la interacción de humanos con robots autónomos con el objetivo de
desarrollar aplicaciones de robótica que asistan a humanos en la vida diaria. El escenario
sobre el que se realizan las pruebas consiste en una recámara, una cocina y una sala pero
las aplicaciones pueden incluir también actividades en lugares pýblicos u otros escenarios.
Con el clasificador propuesto se participó en dos pruebas de la robocup@home 2012 en
colaboración con el robot "SABINA 2el equipo "MARKOVITO"propiedad del INAOE
(Instituto Nacional de Astrofísica, Óptica y Electrónica) . Una de las pruebas es llamada
"Who is Who 2la otra "Technical Challenge".
Figura 4.6: Escena de la casa donde interactua el robot. Al fondo la cocina dondeestán ubicadas las bebidas a reconocer.
En la imagen [4.6] se muestra el escenario donde el robot debería interactuar en la
robocup@home 2012. Al fondo se muestran las bebidas colocadas sobre una mesa.
Chapter 4. Ap 54
4.2.1. Who is Who
Esta prueba consiste en aprender y reconocer a personas desconocidas y entregar bebidas
a cada una. Dicha prueba está enfocada en la detección y reconocimiento de humanos.
Además de la navegación, manipulación de objetos e interacción del robot con humanos.
Además de estas tareas también es una prueba de reconocimiento de objetos en una
escena.
La secuencia de actividades que el robot debe realizar es la siguiente:
1. El robot entra a la habitación y debe pararse cerca de la puerta.
2. Tres personas entran (una después de otra) y se paran frente al robot, el cual deberá
detectar y memorizarlas características de cada persona y preguntar su nombre.
3. Las tres personas se cambian de habitación, dos estan de pie y uno está sentado.
Además hay otras dos personas desconocidas una de pie y otra sentada. Entonces
el robot entra a la habitación y reconoce a las personas que son conocidas y éstas
ordenan una bebida.
4. El robot navega a un lugar de la casa predefinido y busca cada bebida que fue
ordenada la toma y regresa al lugar donde recibió la orden.
5. El robot busca y reconoce a las personas y entrega a cada persona la bebida
correcta.
6. Finalmente el robot abandona el área.
Como podemos observar en algunos puntos de la secuencia se requiere la detección y
reconocimiento de productos y fue en dicha área donde se participó con una versión del
clasificador programada en C++ utilizando librerías de opencv [ver apendice A].
Debido a que previamente se conocían las bebidas que podrían ser solicitadas al robot,
se pudo obtener una base de datos de 10 bebidas probables a buscar en una escena
capturando el mayor número de vistas de dicha bebida, como lo describe la Figura [4.7].
La estrategía consistia en muestrear el frame procesado en nx × ny subimagenes equies-
paciadas, buscando el producto a m escalas, donde cada escala correponde a escalar la
imagen de búsqueda 4.7 en un factor de 1/m. Para aliviar tiempos de procesamiento los
valores de dichas variables quedaron como sigue:
Chapter 4. Ap 55
(a) (b) (c) (d) (e) (f)
Figura 4.7: Un producto de la base de datos con distintas vistas del producto
nx = 15
ny = 15
m = 3
Con esta estrategía se encontraron zonas probables donde pudiera ubicarse la bebida por
medio del procesamiento de histogramas de color, ver 1.2.2. Posteriormente se tomaron
k zonas probables y se aplicó el clasificador para definir bajo un umbral u si dicha zona
era la bebida buscada o no. Los parámetros correspondientes fueron:
k = 10
u = 0,7
Cabe mencionar que esta estrategía de búsqueda de productos (bebidas) es ineficiente
pero es una forma intuitiva de búscar la bebida en la escena, por lo que en participaciones
futuras se sugiere reforzar las estrategías de detección de regiones candidatas a contener
objetos.
En las pruebas previas al evento se obtuvo un porcentaje de falsos positivos del 25 %
aproximadamente. En la Figura 4.8 se muestra un ejemplo donde se visualiza un frame
de un video de prueba donde se reconoció una de las bebidas objetivo. En la ejecución
del test "who is who"no se logró finalizar la prueba por lo que no se reportan resultados
de la misma.
Chapter 4. Ap 56
Figura 4.8: Reconocimiento de un producto en una escena
4.2.2. Technical Challenge
El objetivo de esta prueba se enfoca principalmente en la capacidad de los robots por
resolver un desafío anual que sirva de enriquecimiento a los equipos y dichas solucio-
nes se establezcan en el estado del arte de determinado problema. Este año la meta
es el reconocimiento de objetos en escenas". La prueba consiste en colocar 15 objetos
conocidos de una lista de 25 objetos previamente definidos y 10 objetos desconocidos so-
bre una mesa donde el robots deberá reconocer el mayor número de objetos en 5 minutos.
Se aplicó la misma estrategía explicada en 4.2.1 pero ahora buscando todos los productos
en una escena (imagen 480 × 640). El tiempo de computo en esta prueba fue un factor
clave para la eficiencia de la prueba y sólo se logró reconocer un objeto durante la ejecu-
ción del "Technical Challenge". Además no se tuvo falsos positivos. Cabe mencionar por
problemas técnicos s ’olo se pudo contar con una camara web conectada a un extremo
del robot, sin grados de libertad ni manipulación, lo cual fue un factor importante en la
búsqueda.
Chapter 4. Ap 57
Durante las pruebas se obtuvo mejor eficiencia y en la Figura 4.9 se muestran varios
objetos detectados en un video de prueba realizado durante el evento y uno detectado
pero que fue un falso positivo.
(a) (b) (c) (d)
Figura 4.9: Exhibición de productos detectados en un video de prueba durante larobocup@home 2012
Capítulo 5
Comentarios finales y Conclusiones
En este trabajo se presenta una estrategia para reconocer objetos de supermercado en
imágenes digitales mediando características basadas en puntos caracteristicos y color.
En cuanto a la eficiencia del sistema presentado es preciso mencionar que la calidad de
las imágenes es un factor clave para reconocer los productos. Además de los procesos
de normalización de las bases de datos debido a que las presentaciones de los productos
pueden cambiar continuamente y no se puede esperar identificar dos productos similares
cuando sus presentaciones son totalmente distintas. El uso de puntos SURF para el
cálculo de una homografía y como medida de similitud es una herramienta clave en el
reconocimiento ya que permite robustez en el proceso en cuanto a puntos de vista del
objeto. El uso de la medida correlación cruzada normalizada nos permite tener un poco
de robustez a cambios pequeños de escala, rotación o traslación pero es ligeramente
costosa computacionalmente. El su uso de histogramas nos permite tener una relación
en color y tenemos la libertad de cuantizar el color como mejor convenga para aliviar
tiempos computacionales pero a la vez disminuir la eficiencia del algoritmo. El uso de un
nuevo canal de color c1c2c3 no ayuda a reducir los efectos de las sombras y sobre todo
de cambios de iluminación en la escena. A pesar de todo esto, es importante señalar que
la propuesta no trabaja en tiempo real ya que el orden de clasificación es dependiente
del número de productos de la base de datos. En el peor de los casos las comparaciones
serían uno a uno con toda la base de datos. Eso desde su planteamiento es costoso y
para grandes conjuntos de datos puede no ser lo más óptimo en costo beneficio. Entonces
en trabajos futuros puede incluirse la programación en paralelo con el uso de targetas
gráficas o realizar nuevas propuestas que mejoren tiempos computacionales ya que en
este trabajo poco se abarcó el estudio de estructuras y estrategias que mejoraran el
tiempo de cómputo. El área de detección y reconocimiento de objetos en una escena es
un área poco manejada en este trabajo. Para ello se propone el uso de otros dispositivos
como el sensor de Kinect que es una barra horizontal de aproximadamente 23 cm (9
58
Chapter 5. CM 59
pulgadas) conectada a una pequeña base circular con un eje de articulación de rótula, y
está diseñado para ser colocado longitudinalmente por encima o por debajo de la pantalla
de vídeo. Dicho dispositivo cuenta con un sensor de profundidad que ayudaría mucho
en la detección de formas y de esta forma eficientar el proceso de detección en una
escena. Además se pueden experimentar otros métodos basados en formas o textura que
fusionados con las metodologías basados en color pueden obtenerse datos más precisos
y confiables y aliviados en tiempo computacional por el uso targetas gráficas. En este
trabajo fue importante el uso de máscaras de los productos de la base de datos, esto con
la idea de contar con la forma del objeto y solo procesar las áreas correspondientes al
objeto. El sistema propuesto está implementado en una serie de clases en C++ utilizando
librerias de OpenCv para que pueda ser utilizada por otros programadores y se ha dejado
el código abierto para poder añadir futuros cambios y métodos implementados.
Apéndice A
OPENCV
OpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel.
Desde que apareció su primera versión alfa en el mes de enero de 1999, se ha utilizado
en infinidad de aplicaciones. Desde sistemas de seguridad con detección de movimiento,
hasta aplicativos de control de procesos donde se requiere reconocimiento de objetos.
Esto se debe a que su publicación se da bajo licencia BSD, que permite que sea usada
libremente para propósitos comerciales y de investigación con las condiciones en ella ex-
presadas.
OpenCV es multiplataforma, existiendo versiones para GNU/Linux, Mac OS X y Win-
dows. Contiene más de 500 funciones que abarcan una gran gama de áreas en el proceso
de visión, como reconocimiento de objetos (reconocimiento facial), calibración de cáma-
ras, visión estereo y visión robótica.
El proyecto pretende proporcionar un entorno de desarrollo fácil de utilizar y altamente
eficiente. Esto se ha logrado, realizando su programación en código C y C++ optimiza-
dos. Aprovechando, además, las capacidades que proveen los procesadores multinúcleo.
OpenCV puede además utilizar el sistema de primitivas de rendimiento integradas de
Intel, un conjunto de rutinas de bajo nivel específicas para procesadores Intel.
OpenCV tiene una estructura modular, que significa que cada paquete incluye muchas
liberarias compartidas y estáticas. Los módulos que están disponibles son:
core: Es un módulo compacto que define estructuras básicas, incluyendo arreglos
multidimensionales y funciones básicas usadas por todos los otros módulos.
60
Apéndice A. Open Cv 61
imgproc: Un módulo de procesamiento de imágenes que incluye filtros lineales y
no lineales, transformaciones geométricas, conversión en espacios de color, histo-
gramas, etc.
calib3d : Algoritmos de geometría de múltiples vistas, calibración de cámaras,
algoritmos de correspondencias stereo y reconstrucción de elementos 3D.
features2d: Detectores de características, descriptores y matching de descriptores.
objdetect: Detección de objetos e instacias de clases predefinidas (caras, ojos,
bigote, personas, carros etc.).
highgui : Interface fácil de usa de captura de video e imágenes.
gpu: Algoritmos de aceleración de diferentes módulos de OpenCV.
Existen otros módulos como FLANN, Phyton binding, etc.
La librería OpenCV esta disponible para ser descargada en www.opencv.org.
Bibliografía
[1] http://www.ee.surrey.ac.uk/ee/vssp/demos/colour/- soil47/.
[2] Herbert Bay, Andreas Ess, Tinne Tuytelaars, and Luc Van Gool. Speeded-up robust
features (surf). Computer Vision and Image Understanding, 110:346–359, 2008.
[3] Andreu Hidalgo Chaparro. Reconocimiento de objetos multi-clase basado en des-
criptores de forma. June 2008.
[4] J. Matas D. Koubaroulis. Evaluating colour-based object recognition algorithms
using soil47 database. The 5th Asian Conference on Computer Vision, 2002.
[5] Rodrigo F.J. and Morales Sánchez Juan. Medida de similitud combinada para el
registro y fusión de imágenes.
[6] Ruimin Hu Gang Tian. Improved object tracking algorithm based on new hsv color
probability model. 2008.
[7] Theo Gevers and Arnold W.M. Smeulders. Color-based object recognition. Pattern
Recognition 32, pages 453 – 464, February 1999.
[8] Abel Alguacil Gómez. Aplicaciones del operador sift al reconocimiento de objetos.
2009.
[9] Jiri Krejsa Jan Coufal. Contribución al reconocimiento de objetos 2d mediante
detección de bordes en imágenes de color. May 2002.
[10] Saharon Rosset Ji zhu. Multi-class adaboost. Statistics and Its Interface, 2:349–366,
January 2006.
[11] M. Rivera J.L. Marroquin, F. Velazco and M. Nakamura. Gauss-markov measure
field models for low-level vision. IEEE Trans, 23:337–348, 2001.
[12] Arturo Bonnín Llofriu. Estudio sobre la extracción de puntos característicos en
imágenes y sus aplicaciones. 2010.
[13] David G. Lowe. Distinctive image features from scale-invariant keypoints. Int. J.
Comput. Vision, 60:91–110, November 2004.
62
Apéndice A. Open Cv 63
[14] Fernández García Nicolás. Looking for the path: Image segmentation. 2004.
[15] Eduardo Montijano Mun oz. Navegación visual usando una descripción de la ruta
con secuencia de imagenes). 2007.
[16] s. Maybank P. Torr, A. Zisserman. Robust detection or degenerate configurations
for the fundamental matrix. computer Vision and Image Undestanding, 1998.
[17] Robert Tibshirani Trevor Hastie. The Elements of Statistical Learning. Springer.