[MÚSICA] [MÚSICA] En el vÃdeo anterior hemos explicado cómo se puede construir el vocabulario de palabras visuales para un esquema de clasificación basado en Bag of Words. En este vÃdeo, vamos a ver los detalles de cómo este vocabulario se puede utilizar para obtener una representación global de toda la imagen, que después pueda ser usada en la clasificación. Siguiendo el esquema de clasificación que hemos ido viendo a lo largo del curso, esta representación se va a obtener a partir de las caracterÃsticas locales de la imagen calculadas por ejemplo utilizando Sift y las palabras visuales nos van a servir para discretizar o agrupar estas caracterÃsticas de la imagen y asà poder obtener un histograma de palabras como representación final de toda la imagen. La idea básica para obtener esta representación de la imagen, ya la hemos ido avanzando en vÃdeos anteriores y es muy simple. Se basa en asignar cada caracterÃstica a la palabra visual más cercana. Por lo tanto, para cada caracterÃstica de la imagen, la podemos representar en el espacio multidimensional del descriptor y calcular la distancia de esta caracterÃstica a todas las palabras visuales. Vamos a seleccionar asà la palabra visual que tenga una distancia mÃnima que en este caso podrÃa ser esta de aquÃ. Si repetimos este proceso para todas las caracterÃsticas de la imagen, acabamos discretizando el conjunto de caracterÃsticas de la imagen De manera que cada caracterÃstica queda asociada a una única palabra. De esta forma, la representación final se construye como un histograma de palabras, donde cada componente del histograma simplemente nos cuenta cuántas caracterÃsticas han quedado asociadas a esta palabra. A nivel computacional vemos que para obtener esta representación vamos a tener que comparar todas las caracterÃsticas locales de la imagen, que puede llegar a ser un número elevado, también del orden de millares con todas las palabras del vocabulario, que ya vimos también en el vÃdeo anterior que normalmente los vocabularios suelen ser grandes y tienen un número de palabras también del orden de los millares. Por lo tanto, en aplicaciones que necesiten un tiempo de respuesta rápida, el coste computacional puede ser relativamente elevado. No vamos a entrar en detalles especÃficos, pero para reducir este coste se pueden utilizar algunas estrategias como por ejemplo, utilizar técnicas de indexación en espacios multidimensionales, como podrÃa ser el k-de-tree. O también métodos que van a realizar una búsqueda aproximada del vecino más cercano. Y, bueno, son métodos que no nos garantizan que encontremos siempre la palabra más cercana pero sà que encontremos una buena aproximación y reduciendo considerablemente el número de comparaciones que son necesarias. Esta es la representación básica del Bag of Words, como un histograma que sencillamente cuenta cuántas veces aparece cada palabra. Esta representación básica se puede extender para tener en cuenta lo que serÃa la relevancia de cada palabra. Si volvemos a la analogÃa con la clasificación de documentos, que, como ya comentamos en el primer vÃdeo, es de donde proviene la idea del Bag of Words, en clasificación de documentos es habitual que la contribución de cada palabra quede ponderada en función de la capacidad de discriminación de esa palabra. Y la capacidad de discriminación normalmente se relaciona con el número de veces que esa palabra aparece en todos los documentos, es decir, una palabra que sea muy común y que pueda aparecer prácticamente en cualquier documento nos va a ayudar muy poco a distinguir entre tipos diferentes de documentos y, por lo tanto, a esa palabra le podemos dar un peso menor. Sin embargo, palabras que sean muy poco frecuentes y que solo aparecen en unos pocos documentos, suelen ser más relevantes para poder determinar el tipo de documento en el que aparecen y, por lo tanto, a estas palabras les vamos a dar un peso mayor. La forma de trasladar esta idea a la representación del histograma en Bag of Words, es que el valor asociado a cada palabra ya no sea simplemente el número de veces que aparece la palabra en la imagen, sino que viene dado por esta fórmula que combina dos valores diferentes, por un lado, lo que conocemos como term frecuency, o tf, que serÃa este primer término de la fórmula, que simplemente cuenta la frecuencia de cada palabra en la imagen. VendrÃa a ser el valor que pondrÃamos al histograma en la configuración básica, es decir, el número de veces que aparece cada palabra en la imagen normalizado, eso sÃ, por el número total de caracterÃsticas o de palabras que tenemos en la imagen. Este valor básico se pondera con otro factor que tiene en cuenta la relevancia o capacidad de discriminación de la palabra. Es lo que se conoce como inverse document frecuency o idf y serÃa este segundo término de la fórmula. Este término vemos que se obtiene dividiendo el número total de imágenes que hemos utilizado para construir el vocabulario por este valor que es el número de imágenes donde aparece una determinada palabra. De esta forma, si una palabra aparece en todas las imágenes, este cociente va a ser igual a 1 y al tomar el logaritmo, su peso va a ser de 0. Por el contrario, si una palabra aparece en muy pocas imágenes, el valor de este cociente va a ser elevado y, por lo tanto, su ponderación también va a ser elevada. Independientemente de la configuración que utilicemos, y como suele ser habitual, siempre que trabajamos con representaciones en forma de vector, va a ser importante normalizar el resultado final. En este caso, para evitar una dependencia excesiva del número total de caracterÃsticas en la imagen, que puede variar mucho en función del tipo de imagen y, por lo tanto, también puede provocar que los valores acumulados en el histograma sean muy diferentes. En el contexto del Bag of Words se suelen utilizar dos tipos de normalización, la normalización con la norma L2 y también con la norma L1. Dependiendo del tipo de imágenes, la distancia que utilicemos para comparar imágenes o el tipo de clasificador que utilicemos, va a ser mejor utilizar una o la otra. Aunque posiblemente los resultados no varÃen significativamente. La normalización L2 ya la vimos en el vÃdeo donde explicamos el descriptor sift y vimos que se obtiene dividiendo cada componente del vector por la norma L2, que es la raÃz cuadrada de la suma de los componentes del vector al cuadrado. En el caso de la normalización L1 es lo mismo, solo que dividiendo por la norma L1, que es simplemente la suma de los valores absolutos de todas las componentes del vector. Para resumir, en este vÃdeo hemos visto cómo obtener la representación de Bag of Words como un histograma de palabras visuales que se obtiene a partir de asignar cada caracterÃstica local a una de las palabras. Hemos explicado también como esta representación básica la podemos extender, teniendo en cuenta la relevancia de cada palabra, utilizando lo que conocemos como ponderación tf-idf. Y, finalmente, hemos recalcado también la necesidad de normalizar para poder obtener un buen rendimiento en la clasificación. Con esto, finalizamos la explicación de la configuración más básica del esquema de Bag of Words. En las próximas semanas iremos viendo mejoras y extensiones de cada uno de estos pasos. En lo que queda de esta semana vamos a introducir un nuevo método de clasificación, que es el método del Support Vector Machine y que es el método de clasificación más habitual que se utiliza junto con la representación del Bag of Words. [AUDIO EN BLANCO]