74
CENTRO DE INVESTIGACIÓN EN MATEMÁTICAS Reconocimiento de productos de Supermercado 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áticas Industriales Director de tesis: Mariano J.J. Rivera Meraz 5 de septiembre de 2012

Reconocimiento de productos de Supermercado

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Reconocimiento de productos de Supermercado

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

Page 2: Reconocimiento de productos de Supermercado

"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."

Page 3: Reconocimiento de productos de Supermercado

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.

Page 4: Reconocimiento de productos de Supermercado

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

Page 5: Reconocimiento de productos de Supermercado

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 . . .

Page 6: Reconocimiento de productos de Supermercado

Í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

Page 7: Reconocimiento de productos de Supermercado

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

Page 8: Reconocimiento de productos de Supermercado

Í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

Page 9: Reconocimiento de productos de Supermercado

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

Page 10: Reconocimiento de productos de Supermercado

Í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

Page 11: Reconocimiento de productos de Supermercado

Dedicada a la memoria de mi abuelita Altagracia. . .

x

Page 12: Reconocimiento de productos de Supermercado

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

Page 13: Reconocimiento de productos de Supermercado

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.

Page 14: Reconocimiento de productos de Supermercado

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)

Page 15: Reconocimiento de productos de Supermercado

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:

Page 16: Reconocimiento de productos de Supermercado

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.

Page 17: Reconocimiento de productos de Supermercado

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

Page 18: Reconocimiento de productos de Supermercado

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

Page 19: Reconocimiento de productos de Supermercado

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)

Page 20: Reconocimiento de productos de Supermercado

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

Page 21: Reconocimiento de productos de Supermercado

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)

Page 22: Reconocimiento de productos de Supermercado

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

Page 23: Reconocimiento de productos de Supermercado

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

Page 24: Reconocimiento de productos de Supermercado

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

Page 25: Reconocimiento de productos de Supermercado

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).

Page 26: Reconocimiento de productos de Supermercado

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.

Page 27: Reconocimiento de productos de Supermercado

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)

Page 28: Reconocimiento de productos de Supermercado

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

Page 29: Reconocimiento de productos de Supermercado

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)

Page 30: Reconocimiento de productos de Supermercado

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

Page 31: Reconocimiento de productos de Supermercado

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)

Page 32: Reconocimiento de productos de Supermercado

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

Page 33: Reconocimiento de productos de Supermercado

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)

Page 34: Reconocimiento de productos de Supermercado

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).

Page 35: Reconocimiento de productos de Supermercado

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].

Page 36: Reconocimiento de productos de Supermercado

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

Page 37: Reconocimiento de productos de Supermercado

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.

Page 38: Reconocimiento de productos de Supermercado

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.

Page 39: Reconocimiento de productos de Supermercado

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.

Page 40: Reconocimiento de productos de Supermercado

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

Page 41: Reconocimiento de productos de Supermercado

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

Page 42: Reconocimiento de productos de Supermercado

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]

Page 43: Reconocimiento de productos de Supermercado

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).

Page 44: Reconocimiento de productos de Supermercado

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

Page 45: Reconocimiento de productos de Supermercado

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

Page 46: Reconocimiento de productos de Supermercado

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.

Page 47: Reconocimiento de productos de Supermercado

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

Page 48: Reconocimiento de productos de Supermercado

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.

Page 49: Reconocimiento de productos de Supermercado

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

Page 50: Reconocimiento de productos de Supermercado

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

Page 51: Reconocimiento de productos de Supermercado

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.

Page 52: Reconocimiento de productos de Supermercado

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

Page 53: Reconocimiento de productos de Supermercado

Chapter 3. PS 42

Figura 3.11: Se muestran 2 imagenes con la misma composición en color

Page 54: Reconocimiento de productos de Supermercado

Chapter 3. PS 43

Figura 3.12: Visión general de 50 productos de la base de datos YOGURTS

Page 55: Reconocimiento de productos de Supermercado

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]

Page 56: Reconocimiento de productos de Supermercado

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

Page 57: Reconocimiento de productos de Supermercado

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

Page 58: Reconocimiento de productos de Supermercado

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.

Page 59: Reconocimiento de productos de Supermercado

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

Page 60: Reconocimiento de productos de Supermercado

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].

Page 61: Reconocimiento de productos de Supermercado

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

Page 62: Reconocimiento de productos de Supermercado

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.

Page 63: Reconocimiento de productos de Supermercado

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.

Page 64: Reconocimiento de productos de Supermercado

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.

Page 65: Reconocimiento de productos de Supermercado

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:

Page 66: Reconocimiento de productos de Supermercado

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.

Page 67: Reconocimiento de productos de Supermercado

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.

Page 68: Reconocimiento de productos de Supermercado

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

Page 69: Reconocimiento de productos de Supermercado

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

Page 70: Reconocimiento de productos de Supermercado

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.

Page 71: Reconocimiento de productos de Supermercado

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

Page 72: Reconocimiento de productos de Supermercado

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.

Page 73: Reconocimiento de productos de Supermercado

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

Page 74: Reconocimiento de productos de Supermercado

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.