Técnicas de reconocimiento de imágenes usadas en la web Sistemas Inteligentes Leticia Díaz de Atauri Colás Laura María Gómez González Álvaro Sainz del Nogal Alberto Sánchez Ruiz Contenido 1. Buscadores ............................................................................................................................ 2 2. Reconocimiento automático ................................................................................................. 6 3. Clasificación de imágenes ..................................................................................................... 9 4. Referencias .......................................................................................................................... 12 4.1 Buscadores ....................................................................................................................... 12 4.2 Reconocimiento automático ............................................................................................ 12 4.3 Clasificación de imágenes ................................................................................................. 12 Anexo .......................................................................................................................................... 13 1 1. Buscadores En este apartado, no se explica directamente el algoritmo que usan los buscadores para poder dar los resultados a sus búsquedas, si no que a través de un proyecto realizado se puede entrever qué métodos utilizan los buscadores para la clasificación de imágenes. La idea general de los buscadores es introducir palabras clave o imágenes desconocidas en la web para encontrar imágenes en relación con esas palabras clave o imágenes similares a la desconocida que se haya aportado. Aquí lo que se debe conseguir es la detección de un conjunto de etiquetas en las imágenes y a través de ellas asociarlas con clases, las clases serían las palabras clave de lo que deseamos buscar. Ante todo, debemos saber que la clasificación o el reconocimiento de imágenes no es sencillo debido a la gran diversidad de imágenes que hay en la web, que sería como la cantidad de escenas reales existentes. Para poder llevarlo a cabo, previamente se deben recolectar imágenes como ejemplo para poder usarlas de entrenamiento para la clasificación de imágenes. Se llevó a cabo un proyecto de minería de imágenes en la web para la clasificación de imágenes llamado ‘’Web Image Mining for Generic Image Recognition’’. La idea de este proyecto era recolectar en una base de datos imágenes para posteriormente usarlas en la clasificación. El problema de este proyecto es que las imágenes aportadas eran de fotógrafos profesionales en vez de usuarios con cámaras digitales, con lo cual, no se aportaban escenas reales cotidianas. Otro aspecto a tener en cuenta son los métodos empleados a la hora de hacer la clasificación, se dice que es más importante el entrenamiento que cualquier método de clasificación debido a la gran cantidad de imágenes distintas que se podrían encontrar, entones sería bastante complejo realizar manualmente cualquier tipo de clasificación de esa manera. Lo que se pretende que realice el sistema a la hora de clasificar es extraer palabras clave relacionadas con la imagen desde el enlace del archivo HTML a ella. Suponiendo que se tienen como muestra cantidad de imágenes que puedan representar cualquier tipo de escena, la imagen que pasemos como prueba para clasificar tiene que ser similar a alguna de las que se tienen almacenadas. Aunque el número de escenas del mundo real puede ser enorme, no lo es tanto el número de fotos tomadas de esas escenas por personas, por ese motivo, se espera que este sistema de resultados a la hora de poder clasificar imágenes. Además, el número de imágenes en la web va a aumentando debido al uso que damos a la misma y a las cámaras digitales. El proceso utilizado para desarrollar ‘’Web Image Mining’’ consta de tres partes. La primera es el almacenamiento de imágenes, el sistema recolecta imágenes relacionadas con las palabras clave dadas desde la web. La segunda parte es el proceso de aprendizaje, aquí se extraen características de las imágenes anteriormente recolectadas y las va asociando con cada clase. La clasificación es la tercera parte, donde el sistema clasifica una imagen desconocida con alguna de las clases que le corresponda. 2 En la primera parte, donde se recolectan las imágenes, no se realiza simplemente una búsqueda de imágenes, sino que se recolectan imágenes relevantes de acuerdo con la palabra clave buscada, ya que ese es el objetivo. En la actualidad, esto se puede realizar mediante buscadores como el buscador de imágenes de Google. Este buscador devuelve imágenes basándose en las palabras clave introducidas, como se ha dicho anteriormente utilizando el enlace HTML debido a que una imagen en la web generalmente está incrustada en un documento HTML y a partir de este documento se pueden reunir URLs y más palabras clave. Después de haber encontrado resultados, se eliminan aquellas imágenes irrelevantes para la búsqueda, esto realiza mediante clustering, aquellas imágenes que no tengan tantas imágenes similares a ella no se mostrarán en la resolución de la búsqueda. A continuación, se detalla el algoritmo seguido: Se proporcionan palabras clave para la búsqueda, la primera palabra clave tiene que representar la imagen y las otras pueden ser opcionales para la búsqueda. El sistema manda la palabra principal y las secundarias como consultas y se obtienen las URLs de los documentos HTML relacionados con las palabras clave introducidas. Se traen los documentos HTML indicados por las URLs. Se analizan los documentos HTML y se extraen las URLs de las imágenes incrustadas en dichos documentos con etiquetas del tipo IMG, SRC, por ejemplo. Después de obtener las URLs a las posibles imágenes resultado de la búsqueda se deben verificar estas condiciones. Lo primordial es que la imagen incrustada con las etiquetas IMG, SRC debe incluir además las palabras clave, o que directamente el nombre de la imagen sea la palabra clave. Anteriormente lo realizado es buscar a partir de las palabras clave y basándose en que las contuvieran las URLs o el mismo nombre de la imagen, pero también se pueden obtener resultados erróneos que no tengan nada que ver con lo que realmente se desea encontrar. Por este motivo, en el proceso de selecciónse tiene que borrar las imágenes irrelevantes. El sistema primero hace vectores con las características de todas las imágenes recolectadas. Se usan las firmas de las imágenes yEarth Mover Distance (EMD) para encontrar diferencias. Lo que se realiza es calcular todas las distancias entre dos imágenes usando EMD. Aquí ya se conocen las distancias entre imágenes y se agrupan mediante clustering. Además, se utiliza el algoritmo de los vecinos cercanos para ir añadiendo imágenes al procedimiento de clustering dependiendo de las distancias entre ellas. El resultado de la aplicación de clustering más el algoritmo de los vecinos cercanos nos devuelve pequeños o grandes grupos de imágenes agrupados mediante clustering, los grupos pequeños de imágenes se considerarán irrelevantes y son aquellos que se eliminarán. 3 También hay que tener en cuenta de que no se van a obtener todas las imágenes disponibles debido a que existen restricciones impuestas por los motores de búsqueda. Si se quieren seguir encontrando imágenes relacionadas con lo que se desea buscar, se pueden ir cambiando las palabras clave secundarias y así poder ir obteniendo resultados distintos pero útiles. En la segunda parte del método, que es el proceso de aprendizaje, se extraen las características desde las imágenes almacenadas y se asocian con las clases representadas por las palabras clave. Por último, llegamos al proceso de clasificación, aquí se clasifica una imagen totalmente desconocida con alguna de las clases que le corresponda haciendo comparaciones de las palabras clave con las características de la imagen. Se vuelve a usar, como al principio del método Earth Mover Distance (EMD) para encontrar distancias y el algoritmo de los vecinos cercanos al igual que antes. Se pueden usar características que describan al objetivo pero que también no lo describan ya que, en muchas ocasiones, otro tipo de características nos van a ser útiles porque van ciertamente unidas con el objetivo principal que se desea obtener. Son usadas dos tipos de características para la parte de aprendizaje en la clasificación, una es la firma de color para segmentos de bloques y la otra la firma de región para segmentos de regiones. Es decir, se tienen en cuenta tanto bloques de colores como regiones dentro de la imagen para identificar características en ella. Así, una firma de una imagen podrá ser descrita mediante un conjunto de distribuciones discretas, las cuales se representan con vectores y pesos. Una firma de bloques de colores será representada por un vector y un peso que se corresponda con el color principal del vector de cada grupo de clustering y su radio de píxeles. Para obtener firmas de colores, se normalizan las imágenes a un tamaño de 240x180 y se dividen en 25 regiones. A continuación, se hace una firma de color por cada región utilizando clustering y el algoritmo de las k-medias. En el caso de las firmas de región, un conjunto de vectores de características de regiones y su radio de píxeles representan cada firma de región. Para obtenerlas, en este caso se segmentan las imágenes en vez de dividirlas en bloques o regiones, después de haber normalizado su tamaño al igual que en las firmas de bloques de colores. Aquí, se utiliza un método de segmentación basado en el algoritmo de las k-medias y clustering, como antes. Finalizado la obtención de las firmas, se procede a usar Earth Mover Distance para encontrar las mejores distancias entre firmas dentro de la media de distancias comunes. Para acabar, en la parte de clasificación todo depende del tipo de firma. Si se han detectado firmas de bloques de colores, se resumen las distancias mínimas entre una entrada desconocida y el conjunto de imágenes de entrenamiento de que se disponen en cada clase de los 25 bloques que se han debido dividir previamente. Se clasificarán en la clase cuya distancia total sea la menor. Por otro lado, si se han detectado firmas 4 de regiones, se empleará el algoritmo de los vecinos cercanos para clasificar una entrada desconocida con una de las clases que se tienen. Todo lo explicado antes, en la descripción del proyecto llamado ‘’Web Image Mining for Generic Image Recognition’’ ha sido probado y se han obtenido resultados. En conclusión, podríamos decir que este algoritmo es el que se usa para clasificar imágenes y sobre todo nos ayuda a entender cómo obtienen los resultados a las búsquedas introducidas por los usuarios los buscadores actuales tales como Google. Esta es la razón por la cual, gracias al artículo leído en donde se ha encontrado esta información, se expone la explicación de buscadores, más en concreto de cómo los buscadores consiguen dar imágenes resultado. Buscadores que se sepan que realizan estos procedimientos son el buscador de imágenes de Google y TinEye Reverse ImageSearch. Estos dos ejemplos son los mencionados y explicados con ejemplos en la presentación. Como se ha dicho antes, Google es el buscador que utiliza las URLs encontradas en los enlaces HTML de las imágenes para encontrar las características de las imágenes y poder asociarlas a ciertas clases que serán las palabras claves que se estén buscando y de este modo dar la solución a la búsqueda con las imágenes pertinentes. TinEye se centra en la firma de las imágenes, cada imagen tiene asociada una firma y éstas firmas pueden ser de dos tipos, firmas de bloques de colores o firmas de segmentos, al igual, la explicación se ha visto más arriba de cómo se asocia la firma a la imagen y cómo mediante la comparación de firmas se pueden obtener los resultados a las búsquedas pedidas. 5 2. Reconocimiento automático En esta sección, explicaremos algunos de los algoritmos más destacados en el reconocimiento de imágenes, además de mostrar las herramientas online más famosas que hacen uso de estos algoritmos. Reconocimiento facial Se trata del conjunto de tecnologías capaces de encontrar, reconocer e identificar rostros humanos en una imagen. En un mundo en constante avance tecnológico, garantizar la seguridad de la información es cada vez más importante a la par que difícil. La dificultad de mantener seguro nuestra información personal reside en una debilidad fundamental que poseen los sistemas de control de acceso actualmente, y es que no evalúan “quiénes somos” a la hora de conceder acceso a la información, si no “qué tenemos” (contraseñas, PIN, patrones, etc). Necesitamos que la tecnología sea capaz de detectar y verificar nuestra identidad individual, y ahí es donde el reconocimiento facial juega un papel clave. Los sistemas de control por biometría (entre los que está incluidos el reconocimiento facial) son aquellos que permiten distinguir la identidad de las personas a través de características únicas como la faz, la huella dactilar o el ADN. Estas técnicas se pueden dividir entre fisiológicas (aquellas capaces de reconocer aspectos físicos de la persona) y las de comportamiento (aquellas que distinguen el tono de voz o forma de escribir). Ambas tienen algunas ventajas e inconvenientes: mientras que las fisiológicas son mucho más estables y precisas que las de comportamiento, éstas últimas tienen la ventaja de ser poco intrusivas. El reconocimiento facial es uno de los pocos sistemas de control por biometría que combina las principales ventajas de las técnicas fisiológicas y las de comportamiento: es un método con mucha precisión y es, a su vez, muy poco intrusivo. Métricas para la evaluación del desempeño Las dos medidas biométricas estándar son el ratio de falsos rechazos (False Rejection Rate, FRR) y el ratio de falsas aceptaciones (False Acceptance Rate, FAR), siendo ambas medidas inversamente proporcionales. Se considera que un sistema de identificación con un FAR y un FRR bajos posee un buen poder discriminatorio. Framework general El algoritmo de reconocimiento facial puede ser dividido en dos módulos: Un detector de caras en la imagen, encargado de localizar la/las caras humanas en una fotografía Un reconocedor de caras, encargado de determinar de qué persona se trata. Las dos tienen un extractor de características que transforma los píxeles de la cara en vectores y un reconocedor de patrones que busca en la base de datos para encontrar la mejor combinación de la cara que se está analizando. En el módulo del detector de caras, el reconocedor de patrones se encarga de categorizar los vectores de la imagen 6 en una de las siguientes clases: “caras” o “no caras”. Sin embargo, en el módulo del reconocedor de caras, el reconocedor de patrones se encarga de clasificar los vectores que corresponde a las caras según de quién se trate (la cara de Laura, la de Alberto, etc), siempre y cuando esa persona se encuentre registrada en la base de datos que use el algoritmo. Extractor de características Comenzamos modelando la imagen en una array de números de dos dimensiones (matriz) que corresponderán al valor de los pixeles X {xi ,i S}. A veces, es más conveniente expresar el vector en una sola columna de filas de píxeles concatenados, aunque sueles ser bastante ineficiente. Por lo tanto, se transforma la matriz en un vector de características f(X) [ f 1(X), f2 (X)..., fM (X)] T donde las funciones pueden ser lineales o no lineales. Reconocedor de patrones Para reconocer a qué persona corresponde el vector de características obtenido, se puede seguir la teoría de decisión de Bayes (el mínimo error de reconocimiento puede ser obtenido si el reconocimiento sigue el criterio de máxima probabilidad). Por lo tanto, si Y = f(X) es el vector de características y suponiendo que hay K personas en la base de datos, la identidad de la persona es asignada mediante: donde arg min es el valor de k que minimiza la función. A partir de ahora, la identidad de la persona es k si la distancia euclídea entre el vector de características y la media del vector de la k-persona es la más pequeña entre todas las personas de la base de datos. Variaciones en las imágenes El reconocimiento de caras supone uno de los problemas más difíciles del área del reconocimiento de imágenes, esto se debe a que la cara humana no es solo un objeto 3D, y tampoco es rígida, además de que una serie de factores pueden influir en que el reconocimiento se efectúe correctamente. Éstos son: 1. La distorsión y ruido de la cámara: son variaciones estándar en los problemas de reconocimiento de imágenes. Hay numerosas herramientas para aumentar la relación señal/ruido. 2. El fondo de imágenes complejo. Para solucionar este problema se necesita un buen detector de rostros, que sea capaz de aislar los rostros presentes en la imagen del fondo. 3. La iluminación: suele ser un factor importante, para ello se puede tomar técnicas convencionales de mejora de la imagen (como el umbral dinámico), entrenar una red neuronal para la extracción de características o el uso de algoritmos como Eigenface o Fisherface 4. Las variaciones de translación, escalado y rotación deben tratarse en la fase de detección de rostros, mediante técnicas como la creación de una pirámide de 7 imágenes de una imagen en concreto (se trata de una colección de una misma imagen con diferentes resoluciones) o seleccionando tan solo las caras que miren directamente a la cámara y desechando aquellas que se encuentren rotadas. 5. La expresión facial se trata utilizando tan solo la llamada “región facial significativa” en vez de toda la cara. Esta región se trata de un área cuadricular en el centro de la cara que contiene ojos y nariz, y excluye la boca y las orejas. 6. El maquillaje facial suele ser menos influyente a la hora de realizar el reconocimiento, a menos que se trate de maquillaje para una obra de teatro. Algoritmos de reconocimiento facial: Eigenface Su principal meta consiste en conseguir eficiencia a la hora de extraer la características de los rostros. Para ello, emplea bases ortonormales alternativas (como la base de Karhonen-Loeve) en vez de las bases naturales. Las bases KL están formadas por eigenvectores de la matriz de covarianza del vector de la cara. En el espacio vectorial de la cara, solo los primeros eigenvalores tienen valores altos, es decir, se comprime la mayor parte de la información del rostro analizado en los primeros eigenvectores, lo que se traduce en una mayor eficiencia del algoritmo. Sin embargo, una mayor eficiencia no conlleva un poder discriminatorio óptimo. Un ejemplo práctico: FACE API de Microsoft Azure FACE API de Microsoft Azure es uno de los softwares más potentes y populares en el campo del reconocimiento de rostros actualmente. Es capaz de detectar varias caras en una imagen, indicando las características fáciles que encuentra en metalenguaje JSON. Algunas de las características que encuentra son: pelo, sonrisa, gafas, barba, maquillaje, ojos, nariz, etc. Por otra parte, también es capaz de reconocer las emociones de las personas que aparecen en las imágenes con un grado de confianza sorprendentemente elevado. Es capaz de detectar sentimientos como la alegría, tristeza, miedo, sorpresa o enfado empleando patrones universales a partir de expresiones faciales determinadas. Por último, pero no menos importante, puede calcular la probabilidad de que dos caras en imágenes diferentes pertenezcan a una misma persona. 8 3. Clasificación de imágenes Introducción Desde hace unos años los smartphones han ido mejorando el hardware de sus cámaras, lo que ha hecho que sean capaces de generar imágenes de gran calidad, sin embargo, no hay que olvidarse de que las cámaras y aunque en los tiempos que corren es más difícil ver a la gente con ellas también deben tenerse en cuenta. El auge de las nuevas tecnologías ha hecho que se generen miles de imágenes diariamente, ya que no es nada del otro mundo ver a personas por la calle sacando imágenes con su teléfono móvil. Todo esto ha hecho que sea necesaria la clasificación y organización de dichas imágenes para acceder a ellas de forma más rápida y sencilla. La clasificación de imágenes consiste en asignarles una categoría que las defina, para ello en algunos casos puede solo ser necesario el uso de información de bajo nivel como el color o la textura, sin embargo en la mayoría de los casos es inevitable tener que llevar a cabo un reconocimiento de los objetos que se encuentran ella, aunque no necesariamente todos, ya que un clasificador puede ser capaz de categorizar una imagen haciendo uso de partes discriminativas de la misma como puede suceder con la llanta de un vehículo. Desarrollo El problema de la clasificación de imágenes a menudo se puede hacer mediante características de bajo nivel como la aproximación del color o la textura. Entre los métodos de bajo nivel se pueden distinguir dos variedades: a) Métodos globales Son métodos que modelan la imagen como un solo objeto, es decir que toda la imagen se puede describir mediante características de bajo nivel. Se usan clasificadores bayesianos, esto es, que cada imagen está representada por un vector característico extraído de la imagen. Sin embargo, debido a la complejidad del contenido visual, aunque el clasificador esté entrenado, y funcione de forma correcta con imágenes simples como la imagen de un bosque donde puede ser capaz de reconocer gran cantidad de verde, se considera que la clasificación de imágenes que se logra con solo el uso del color, la textura o la forma, no es del todo eficiente. b) Sub-bloques Al igual que con los métodos globales se categoriza la imagen mediante el uso de características de bajo nivel, pero sin embargo no se hace con la imagen completa, sino que se divide la misma en sub-bloques o regiones, las cuales se van categorizando una a una, y una vez que están todas se clasifica la imagen mediante el uso de toda la información que se obtiene de las regiones clasificadas anteriormente. 9 Esta técnica fue propuesta en 1998 por Martin Szummer y Rosalind W. Picard para clasificar una imagen como interior o exterior. Realizaron un experimento que consistía en dividir la imagen en 16 regiones, se clasificaba cada región como interior o exterior, teniendo en cuenta las características del color y de la textura. Para la categorización de imágenes también se pueden usar métodos de modelado semántico intermedio, los cuales usan el contenido de la escena para obtener un mayor rendimiento clasificatorio. Entre los métodos semánticos tenemos 3 enfoques diferentes: a) Objetos semánticos La imagen es descrita por los objetos que contiene. En esta técnica se segmenta la imagen en regiones, después mediante el uso de clasificadores locales se etiquetan dichas regiones y agrupando toda esa información se clasifica la imagen. Para realizar la segmentación los autores J. Fan, Y. Hangzai Luo y Guangyou Xu, en su artículo, " Automatic Image Annotation by Using Concept-Sensitive Salient Objects for Image Content Representation", propusieron el concepto de los objetos salientes, que son aquellos componentes de la imagen visualmente distinguibles, por ejemplo, si tenemos la imagen de una playa, los objetos más diferenciables son la arena, el agua y el cielo. Con el fin de clasificar las diferentes regiones que se han obtenido con la segmentación, se utiliza el algoritmo de los K-Vecinos o máquinas de soporte vectorial (SVM), que son un conjunto de algoritmos desarrollados por Vladimir Vapnik y su equipo, que consisten en que, dado un conjunto de muestras, que son parte de un conjunto mayor se construye un modelo capaz de predecir si un nuevo punto pertenece a una categoría. b) Conceptos semánticos locales Se realiza una representación semántica de la información local, es decir, se tienen en cuenta las propiedades de la imagen de alrededor de los puntos de interés. Se pueden encontrar dos metodologías: Bolsa de palabras (BOW): Surgió para el análisis de textos, pero se adaptó a aplicaciones de visión por computador. Se hace uso de palabras visuales como descriptores de imagen. Para construir una bolsa de palabras es necesario seguir los siguientes pasos: 1) Detectar los puntos de interés. 2) Obtener los descriptores locales asociados a esos puntos de interés. 3) Formar el vocabulario visual con dichos descriptores. 4) Representación de la imagen por las ocurrencias en el vocabulario visual. Bolsa de palabras con contexto: Se puede mejorar el rendimiento de la bolsa de palabras si se tiene en cuenta el contexto, ya que sin él se puede estar perdiendo 10 información realmente valiosa, que podría ser útil para lograr mejores resultados. c) Propiedades semánticas Técnicas que describen la imagen por las propiedades semánticas que posee. No se requiere ni procesamiento de regiones ni segmentación, es decir, una imagen se describe mediante las propiedades que contiene, y estas son compartidas con imágenes que pertenecen a una misma categoría. Conclusiones Después de considerar algunas de las diferentes técnicas que existen para la clasificación de imágenes puedo de decir que las estrategias que usan de características de bajo nivel como los métodos globales o los sub-bloques, aunque son extremadamente útiles, y funcionan de forma correcta cuando las categorías en las que se debe clasificar una imagen están bien diferenciadas o las imágenes son fáciles de categorizar, no son la mejor opción, ya que cuando hay un gran número de categorías y la ambigüedad entre las mismas aumenta, es extremadamente difícil categorizar una imagen basándose cosas como el color o la textura. En cuanto a los métodos semánticos, la mejor opción me parece que es la bolsa de palabras (BOW) ya que se ha demostrado que tiene un gran rendimiento clasificatorio, y aunque en ella no se tiene el contexto de la imagen, y se pueden estar perdiendo características, en la mayoría de los casos no es necesario reconocer toda la imagen, sino que con reconocer partes discriminativas de la misma es suficiente. En la presentación se mencionó la plataforma Imagga, que se centra en cuatro tecnologías diferentes para la organización de imágenes y extracción de métadatos: Etiquetado automático: Permite a los usuarios subir imágenes y les devolverá las etiquetas sugeridas para dicha imagen. Categorización: Asignar la imagen a una categoría. Smart Cropping: Analiza el contenido de la imagen y sugiere cuál es la mejor región para recortarla, con el fin de preservar las partes más importantes. Extracción del color y búsqueda: Analiza los pixeles en términos de colores y separa los colores de fondo del primer plano 11 4. Referencias 4.1 Buscadores 4.2 Reconocimiento automático 4.3 Clasificación de imágenes Objetos salientes, http://slideplayer.com/slide/8148315/# Máquinas de soporte vectorial (SVM), https://es.wikipedia.org/wiki/M%C3%A1quinas_de_vectores_de_soporte Artículo de Martin Szummer y Rosalind W. Picard, hd.media.mit.edu/techreports/TR-445.pdf Artículo de J. Fan, Y. Hangzai Luo y Guangyou Xu, https://www.researchgate.net/profile/Jianping_Fan2/publication/221301273_ Automatic_image_annotation_by_using_conceptsensitive_salient_objects_for_image_content_representation/links/004635258 723b0efb7000000/Automatic-image-annotation-by-using-concept-sensi Imagga, https://www.getsimple.com/blog/image-recognition-platform-imagga/ 12 Anexo 13