# Modelo bolsa de palabras

El modelo "bolsa de palabras" (del inglés, Bag of Words) es un método que se utiliza en el procesado del lenguaje para representar documentos ignorando el orden de las palabras. En este modelo, cada documento parece una bolsa que contiene algunas palabras. Por lo tanto, este método permite un modelado de las palabras basado en diccionarios, donde cada bolsa contiene unas cuantas palabras del diccionario. En el campo de reconocimiento de objetos, se utiliza una idea similar para las representaciones de imágenes, es decir, una imagen puede ser tratada como un documento y las características extraídas de ciertos puntos de la imagen son consideradas palabras visuales. Las principales ventajas de utilizar este modelo es su facilidad de uso y su eficiencia computacional.

## Anotación de la imagen

La distribución de contenidos audiovisuales es uno de los servicios más ofrecidos en la red y crece de forma exponencial debido a los avances de las tecnologías informáticas y multimedia. Esto ha supuesto que el proceso de recuperación de estos contenidos sea más complicado y como consecuencia se deben diseñar sistemas de recuperación de imágenes que permitan resolver búsquedas en grandes repositorios multimedia de manera eficaz y eficiente. Por tanto, hay una automatización del proceso de anotación, ya que la anotación manual es demasiado costosa para grandes volúmenes de datos.
La anotación de la imagen es el proceso de asignación automática de palabras clave a las imágenes. Se puede hacer la categorización de una imagen a partir de un conjunto de clases o de características predefinidas. Pero el rendimiento de la anotación de la imagen depende sobre todo de la representación característica de la imagen. El modelo "bolsa de palabras" se aplicó por primera vez en el campo de la imagen y la recuperación de vídeo y se ha mostrado, en general, un gran rendimiento para la anotación de la imagen y las tareas de recuperación.

## Implementación del modelo

Para la implementación del modelo hay que seguir unos pasos diseñados para aumentar la precisión del clasificador y reducir el coste computacional.

### Detección y descripción de los puntos de interés

El primer paso es la detección de los puntos o regiones de interés. Estos puntos se guardan en un vector de características. Se pueden utilizar diferentes tipos de detectores.
* Cuadrícula regular
Este tipo de método es uno de los más simples y eficaces que podemos utilizar a la hora de detectar características. La imagen se divide en partes iguales y estas partes son los puntos de interés. La única limitación que hay en este método es que utiliza poca información de la imagen.
* Detector de los puntos de interés
Este tipo de detectores marcan como puntos de interés las manchas, bordes o esquinas de la imagen. Considera que estos son los puntos más importantes porque son los primeros que detecta el ojo humano.
* Hessian-Laplace
Es un detector basado en la matriz Hessiana. Este detector aplica el determinante para elegir la posición y la escala. Por lo tanto, dado un punto p = (x, y) de la imagen I, la matriz Hessiana H (p, u) se define como:
* DoG
El detector DoG (Difference of Gaussians) es un algoritmo que hace la detección de los bordes de una imagen haciendo dos desenfoques Gaussianos en la misma imagen con diferentes radios y saca las dos versiones para obtener el resultado final.
* Otros métodos
También se utiliza muestreo aleatorio y modelos de segmentación para la detección de características.

### Cálculo de los descriptores locales

Una vez extraídos los puntos de interés de la imagen, con el descriptor se debe elegir la parte más importante del vector de características. Un buen descriptor debe tener la habilidad de controlar la intensidad, la rotación, la escala y las variaciones de la misma dimensión cuando el orden de los diferentes vectores no importa. Algunos descriptores locales e individuales se extraen con el descriptor Scale Invariant Feature Transform (SIFT), que extrae los gradientes de la imagen y seguidamente se forman los keypoint descriptors, o con el descriptor Speeded Up Robust Features (SURF). Estos descriptores identifican texturas alrededor de los puntos.

### Cuantificación de los descriptores en palabras para formar el vocabulario visual

Una vez detectados los puntos claves y sus características y se han extraído con el descriptor, el siguiente paso es generar un libro de códigos (codebook) de las características. Este paso se hace haciendo una cuantificación vectorial con métodos de clustering, por ejemplo el algoritmo k-means, ya que los métodos basados en clústers se utilizan mucho en el aprendizaje de vocabulario visual. Estos vectores se dividen en grupos que son similares y se unen para formar el codebook. Los datos están organizados en diferentes clústers que corresponden con palabras visuales (codewords). Una vez tenemos definidos los clústers, cada uno de ellos formará una bolsa de palabras. Es decir, habrá una bolsa de palabras con las características extraídas de cada imagen.

### Histograma de frecuencia de las palabras

Una vez obtenidas las bolsas de palabras, por último hay que crear el histograma para saber qué es el objeto que se quiere identificar. Para cada imagen que se quiere identificar, previamente se habrá utilizado un algoritmo de aprendizaje con el que se habrán guardado las características más importantes de las imágenes de entrenamiento en una bolsa. Una vez se ha terminado la clasificación de las imágenes de entrenamiento, se realiza el cálculo del histograma para cada imagen que se quiere reconocer. En el eje "X" estarán las características extraídas de las imágenes de entrenamiento y en el eje "Y" el número de veces que aparece cada característica en la imagen a analizar.

## Bibliografía

* F. Camastra, J. A. Hernandez, P. Kokol, J. Wang, and S. Zhu (19 de septiembre de 2012). «Bag-of-Words Representation in Image Annotation: A Review» (en inglés). Consultado el 11 de noviembre de 2014.
* «Diferencia de Gaussianas». Archivado desde el original el 29 de noviembre de 2014. Consultado el 12 de noviembre de 2014.
* «A Tutorial on Clustering Algorithms» (en inglés). Consultado el 12 de noviembre de 2014.
* «Reconeixement d'objectes» |url= incorrecta con autorreferencia (ayuda) (en catalán). 19 de setembre de 2012. Consultado el 10 de noviembre de 2014.
* «Proyecto Final de Carrera: Aplicación del modelo Bag-of-Words al reconocimiento de imágenes». Julio del 2009. Consultado el 11 de noviembre de 2014.
* Giró i Nieto, Xavi (Septiembre de 2014). 2.1 Anotació (en catalán). EET. |fechaacceso= requiere |url= (ayuda)
* Giró i Nieto, Xavi (Septiembre de 2014). 2.2 Reconeixement de patrons (en catalán). EET. |fechaacceso= requiere |url= (ayuda)