[MÚSICA] La semana pasada explicamos los fundamentos de un sistema de clasificación de imágenes a partir de este esquema base. Vimos que la clasificación se realiza de, primero detectar caracterÃsticas locales, despues agruparlas en una representación global dentro de la imagen y finalmente aprender un clasificador para poder asociar una etiqueta a una imagen. De las opciones que presentamos para cada uno de esos pasos de este esquema, la detección y descripción de caracterÃsticas con Sift es muy robusta y es ampliamente utilizada. Sin embargo, la representación de la imagen como lista de puntos y la clasificación por el vecino más cercano son técnicas simples y que pueden ser útiles en problemas de clasificación básicos, pero que van a presentar inconvenientes cuando los queremos aplicar de forma general en relaciones más complejas. Por un lado la comparación entre las imágenes se basa en la correspondencia individual entre dos puntos y tres. Esto lo puede hacer bastante sensible al ruido, a elementos del fondo de la imagen o a la variabilidad entre imágenes de la misma clase, que son factores que pueden introducir errores en la correspondencia individual entre puntos. Por otro lado, la clasificación requiere comparar todos los puntos de las dos imágenes y a su vez también comparar cada imagen con todas las imágenes del conjunto de entrenamiento. Además vimos que en algunos casos se introduce también un elemento de verificación de la coherencia geométrica entre dos puntos, para poder conseguir una distancia más robusta. Todo esto hace que el coste computacional en problemas con un número elevado de clases sea también elevado y por lo tanto tengamos poca escalabilidad al número de clases. Finalmente la representación que obtenemos de la imagen no es un vector numérico único, lo que nos va a limitar las posibilidades de tipos de clasificadores que podemos usar y entrenar con este modelo. A lo largo de esta semana vamos a presentar nuevas opciones, tanto para la representación de la imagen, como para el paso final de clasificación que nos van a permitir solventar estos inconvenientes. Por un lado vamos a introducir la representación que se conoce como bag of words, que nos va a permitir representar la imagen como un único vector numérico, reduciendo los problemas de sensibilidad al ruido y a variabilidad, y por lo tanto permitiendo que podamos entrenar cualquier tipo de clasificador. Comentemos que vamos a mantener la terminologÃa en inglés como bag of words, ya que es la más habitual en el campo y además no tenemos una buena traducción al español. Esta representación bag of words, ha sido la representación estándar que se ha utilizado en los últimos años para la clasificación de imágenes y la vamos a utilizar como base a lo largo de todo el curso. Esta semana vamos a presentar las ideas fundamentales del esquema y en las próximas semanas ya las iremos complementando con algunas de las extensiones y mejoras mas habituales. Por otro lado al final de esta semana, vamos a explicar un segundo clasificador que se conoce como SVM, de las siglas en inglés de Support Vector Machine, que seguramente es el clasificador más utilizado en este tipo de problemas tanto por su eficiencia como su capacidad de aprendizaje. Empecemos con, en este vÃdeo con la representación de Bag of Words. De hecho esta representación tiene su origen fuera de lo que es el mundo de la visión por computador en el ámbito de la clasificación de documentos de test iii. Supongamos que tenemos estos dos documentos que queremos determinar a qué disciplina pertenece cada uno de ellos. Si nos fijamos en el contenido, veremos que los dos tratan sobre la visión pero que, el primero lo hace desde un punto de vista computacional y por lo tanto querremos que su categorÃa sea computación, mientras que el segundo lo hace desde un punto de vista de la biologÃa. En el ámbito de la categorización de documentos, esta clasificación se suele realizar a partir de una representación que se basa en una idea muy simple. Sencillamente seleccionamos un conjunto de palabras que sean representativas por ejemplo, las que aquà tenemos marcadas en rojo, que podrÃan ser otras cualquiera y contamos cuántas veces aparece cada palabra en el documento y por lo tanto vamos a construir un histograma con la frecuencia de aparición de cada una de estas palabras. Asà por ejemplo en el primer documento vemos que la palabra computadora aparece dos veces, cámaras y escáner aparecen una, imagen aparece tres, etcétera. Si nos fijamos podemos ver que aunque hay algunas palabras comunes en ambos documentos, estas de aquÃ, los histogramas de ambos documentos son lo suficientemente diferentes para poder distinguir que pertenecen también a categorÃas diferentes. Esta misma idea es la que vamos a intentar adaptar para obtener una representación de las imágenes a partir de caracterÃsticas locales. Lo vamos a ilustrar con este ejemplo sintético en el que tenemos dos imágenes que suponemos que son de clases diferentes y queremos distinguirlas a partir de sus caracterÃsticas visuales. Si queremos aplicar el mismo modelo que hemos visto para los documentos, lo primero que tenemos que hacer es ser capaces de identificar el equivalente a las palabras representativas que hemos utilizado con los documentos. En nuestro caso, será algo que llamaremos palabras visuales o visual words en inglés que van a ser caracterÃsticas locales de la imagen que sean relevantes y representativas. En este ejemplo, supongamos que somos capaces de identificar como caracterÃsticas locales, las regiones homogéneas y describirla en su forma y con su color. Asà en las dos imágenes tenemos regiones circulares de color azul y verde y regiones cuadradas de color azul y verde. Estas van a ser nuestras palabras visuales. Bien, pues si somos capaces de detectar estas palabras visuales, podemos igual que en el caso de los documentos construir un histograma que nos cuente para cada imagen cuántas veces aparece cada una de las palabras. De esta forma el histograma, nos está indicando la distribución de las caracterÃsticas locales en ambas imágenes. Como las caracterÃsticas locales predominantes en cada una de las dos imágenes son diferentes, en la primera tenemos básicamente cÃrculos azules y en la segunda cuadrados verdes, aunque algunas palabras visuales se repiten en ambos histogramas, estos histogramas son lo suficientemete diferentes para poder distinguir entre las dos clases. Antes de continuar fijémonos en una propiedad importante de esta representación. Vemos que el histograma solo tiene en cuenta, qué palabras aparecen en la imagen y cuántas veces aparece cada palabra, pero no tiene en cuenta donde aparece cada una de las caracterÃsticas locales dentro de la imagen, es decir, ignoramos la información espacial de donde están localizadas las caracterÃsticas relevantes de la imagen. Asà en este caso, ambas imágenes tiene exactamente la misma representación ya que ambas tiene el mismo número de cÃrculos y cuadrados azules y verdes independientemente de donde estén localizados. Esta propiedad puede ser interesante en algunos casos ya que nos permite clasificar la imagen independientemente de la posición del objeto dentro de la imagen. Sin embargo veremos que la información espacial, sà que puede ser relevante en algunas aplicaciones en las que saben donde aparece cada una de las palabras, nos puede dar información importante para poder reconocer la categorÃa. Más adelante en el curso, en las próximas semanas ya veremos extensiones de esta configuración básica del modelo que nos van a permitir incorporar este tipo de información espacial. Hasta aquà hemos visto la idea básica del esquema de Bag of Words pero sin embargo en el mundo real no todo va a ser tan perfecto ya que en el mundo real normalmente tenemos ruido y tenemos variabilidad. Por ejemplo tenemos estas dos imágenes que podemos decir que pertenecen a la misma clase ya que ambas dominan formas ovaladas de un color azulado, sin embargo si nuestras palabras visuales son como hemos utilizado antes, cÃrculos y cuadrados exactamente perfectos de un determinado azul y verde, en ninguna de estas dos imágenes aparecen de forma exacta, por lo tanto el histograma que construirÃamos estarÃa vacÃo. Vamos a necesitar por lo tanto cuáles pueden ser las palabras visuales más representativas que se adapten al contenido concreto de las imágenes que queremos clasificar. Decir, vamos a tener que construir un vocabulario de palabras visuales. Para ello, lo primero que vamos a hacer es seleccionar un conjunto de imágenes y extraer las caracterÃsticas locales que queremos utilizar para la clasificación. Siguiendo con el ejemplo anterior, nuestras caracterÃsticas van a ser regiones homogéneas de un cierto color. Utilizando la descripción de cada una de estas caracterÃsticas, cada una de ella va a ser un punto en el espacio de coordenadas del descriptor. Por ejemplo, podemos suponer que en el eje vertical representamos la forma, en el horizontal el color y con esta descripción nos quedarÃa una distribución de las caracterÃsticas como la que vemos en la imagen. En el próximo vÃdeo, vamos a ver cómo a partir de una distribución como esta, vamos a poder identificar grupos de caracterÃsticas similares, aplicando algún algoritmo de lo que llamaremos aprendizaje no supervisado o también crasting. Esta partición del espacio de caracterÃsticas en grupos de caracterÃsticas similares va a ser lo que nos va a permitir definir las palabras visuales. Vamos a tener una palabra para cada uno de los grupos que será un representante de todas las caracterÃsticas del grupo que hemos encontrado antes. Una vez, ya tenemos Tenemos identificadas las palabras visuales, ya podremos construir igual que antes el histograma de palabras visuales, como representación final de la imagen. Para ello, primero asignaremos cada caracterÃstica local de la imagen a la palabra visual más parecida y contaremos cuántas veces aparece en cada palabra. De esta forma las dos imágenes del ejemplo acabarán teniendo exactamente la misma representación final. Bien, resumiendo todo lo que hemos explicado hasta ahora de Bag of Words, el paso de representación de la imagen, utilizando este esquema, quedarÃa de la forma siguiente. Lo primero de todo antes de poder representar y clasificar imágenes, va a ser, construir el vocabulario de palabras visuales. Como acabamos de ver, para ello vamos a tomar un conjunto de imágenes especÃficas y vamos a detectar caracterÃsticas locales, utilizando por ejemplo, el descriptor SIFT, que ya vimos la semana pasada. Para cada una de estas caracterÃsticas la vamos a describir con algún descriptor, como por ejemplo, también SIFT, y vamos a agrupar todas las todas las caracterÃsticas similares entre ellas, para poder encontrar como acabamos de ver, las palabras visuales que sean los representantes de cada grupo de caracterÃsticas similares. Una vez construido el vocabulario, ya podemos representar y clasificar imágenes. Para cada imagen, igual que hemos hecho hasta ahora, vamos a detectar y describir las caracterÃsticas locales, y para cada caracterÃstica, vamos a encontrar la palabra visual más similar. Una vez hecha esta asignación, vamos a poder construir el histograma que nos cuente, cuántas veces aparece cada palabra visual en la imagen. Esta representación en forma de histograma, es la que después vamos a utilizar para entrenar y aplicar el clasificador final, que nos va a dar la etiqueta de la imagen. Vamos a analizar ahora, las similitudes y diferencias de la correspondencia entre imágenes, entre el modelo básico que vimos la semana pasada y el que nos propone en el Bag of Words. Recordemos que en el modelo que vimos la semana pasada, cada punto de interés de una imagen se ponÃa en correspondencia con el punto de interés más similar en la otra imagen. De esta forma, la distancia entre dos imágenes, era la suma total de distancias entre los puntos de interés, que se han puesto en correspondencia. Con la representación del Bag of Words los puntos muy parecidos de ambas imágenes van quedar asignados a las mismas palabras, como podemos ver, en estas imágenes de ejemplo. De esta forma lo que conseguimos es que la correspondencia entre estos puntos, normalmente son los puntos más representativos del objeto que queremos identificar. Esta correspondencia decimos sea perfecta, y por lo tanto su contribución a la distancia, sea 0. Como resultado obtenemos una mejor correspondencia entre las caracterÃsticas que son comunes a ambas imágenes. Sin embargo, cuando tenemos imágenes de clases diferentes, en la representación de la semana pasada, siempre tenÃamos alguna representación para cada punto de interés, aunque la distancia entre ambos puntos, fuese más elevada. Con la representación de Bag of Words si los puntos no son muy parecidos, como en este ejemplo, van a quedar asignados a palabras visuales diferentes, con lo que no va haber una correspondencia exacta, y por lo tanto, la distancia entre las dos imágenes aumentará. Como resultado, vamos a tener una correspondencia peor, entre imágenes que no pertenecen a la misma clase, y por lo tanto, vamos a poder aumentar la capacidad de discriminación entre imágenes de clases diferentes. Finalmente, vamos a resumir las principales propiedades de la representación del Bag of Words. En primer lugar, vemos que es una representación, que se basa, en la detención y descripción de caracterÃsticas locales de la imagen. Por lo tanto, es una forma de agregar todas estas caracterÃsticas locales en una única representación de toda la imagen. Hemos visto tambien, como el hecho de discretizar el espacio de caracterÃsticas, asignando cada punto de interés a una palabra visual, nos permite juntar caracterÃsticas que son similares y separar más las caracterÃsticas diferentes. Con ello, reducimos la sensibilidad al ruido y aumentamos la capacidad de discriminación. Como resultado, esto nos da una representación que es compacta, que es un vector numérico y que podemos utilizar de forma eficiente con cualquier tipo de clasificador. Hemos visto que para poder construir esta representación, necesitaremos primero, definir el conjunto de palabras visuales. Para ello, vamos a necesitar un conjunto de aprendizaje especÃfico y como veremos en próximos vÃdeos, determinar el conjunto óptimo de palabras visuales puede llegar a ser costoso. Finalmente, hemos comentado también, que es una representación que no tiene en cuenta la localización espacial de las caracterÃsticas en las imágenes. Aunque en algunos casos, esto puede ser una ventaja, veremos tambien más adelante a lo largo del curso que para algunas aplicaciones la información espacial es importante. Como resumen final, en este vÃdeo hemos introducido los conceptos fundamentales que hay detrás de la representación de imágenes conocida como, Bag of Words. La idea principal detrás de esta representación se puede ilustrar con esta imagen, Bag of Words de una manera de identificar pequeñas partes, que son relevantes en las imágenes a clasificar y las junta todas, de lo que podrÃa ser una bolsa de caracterÃsticas, sin importar la posición de la imagen dónde estaban. Al final para clasificar solo tiene en cuenta qué partes aparecen y cuántas veces aparecen. Cada una de esta pequeñas partes de la imagen, se correspoden con lo que hemos llamado una palabra visual o visual words. Y estas palabras visuales hemos visto que se obtienen como agrupación de las caracterÃsticas locales que se extraen de las imágenes. Bag of Words va ser la representación, en la que vamos a basar, casi todo el contenido del curso. En el resto de vÃdeos de esta semana, ya vamos acabar de explicar los detalles de los diferentes elementos que intervienen la configuración básica del Bag of Words. Y en las próximas semanas en lo que iremos viendo son mejoras y extensiones a esta primera configuración básica.