por images imagenes imagen google busqueda avanzada image image-processing colors google-image-search

images - google imagenes busqueda avanzada android



¿Cómo funciona la búsqueda de color de imagen de Google? (4)

Digamos que consulto

http://images.google.com.sg/images?q=sky&imgcolor=black

y obtengo todo el cielo de color negro, ¿cómo funciona realmente el algoritmo detrás del trabajo?


Basado en este artículo publicado por los ingenieros de Google Henry Rowley, Shumeet Baluja y el Dr. Yushi Jing, parece que la implicación más importante de su pregunta sobre el reconocimiento de colores en imágenes se relaciona con el algoritmo de "seguridad" de google para imágenes que pueden detectar tonos carnosos sin cualquier texto a su alrededor.

El documento comienza describiendo al describir los métodos "clásicos", que normalmente se basan en la normalización del brillo del color y luego usan una " Distribución Gaussiana ", o usando un histograma tridimensional construido utilizando los valores RGB en píxeles (cada color es un Valor entero de 8 bits de 0 a 255 que representa la cantidad de ese color incluido en el píxel). También se han introducido métodos que se basan en propiedades tales como "luminancia" (a menudo incorrectamente llamada "luminosidad"), que es la densidad de la intensidad luminosa a simple vista a partir de una imagen determinada.

El documento de google menciona que necesitarán procesar aproximadamente 10 ^ 9 imágenes con su algoritmo, por lo que debe ser lo más eficiente posible. Para lograr esto, realizan la mayoría de sus cálculos en un ROI (región de interés) que es un rectángulo centrado en la imagen e insertado por 1/6 de las dimensiones de la imagen en todos los lados. Una vez que determinan el retorno de la inversión, tienen muchos algoritmos diferentes que luego se aplican a la imagen, incluidos los detectores de detección facial, alias de constancia de color y otros, que en conjunto encuentran tendencias estadísticas en la coloración de la imagen y lo más importante encuentran el color tonos con la frecuencia más alta en la distribución estadística.

Utilizan otras características como Entropy, detección de bordes y definiciones de textura. Para extraer líneas de las imágenes, utilizan la implementación de OpenCV (Bradski, 2000) de la transformada Hough probabilística (Kiryati et al., 1991) calculada en los bordes de los componentes conectados al color de la piel, lo que les permite encontrar líneas rectas que probablemente no sean partes del cuerpo y les permite determinar mejor qué colores son más importantes en una imagen, que es un factor clave en su Búsqueda de color de la imagen.

Para obtener más información sobre los aspectos técnicos de este tema, incluidas las ecuaciones matemáticas, etc., lea el documento de Google vinculado al principio y consulte la sección de Investigación de su sitio web.

Pregunta muy interesante y sujeto!


Bueno, un método es, en términos muy básicos:

Dado un corpus de imágenes, determine las altas concentraciones de un rango de color dado (esto es realmente bastante trivial), almacene estos datos, indexe en consecuencia (indexe las imágenes según los colores determinados a partir del paso anterior). Ahora, esencialmente tiene el mismo tipo de cosas que encontrar documentos que contienen ciertas palabras.

Esta es una descripción muy, muy básica de un método posible.


Las imágenes son solo píxeles. Los píxeles son solo valores RGB. Sabemos qué es el negro en RGB, por lo que podemos buscarlo en una imagen.


Hay varias maneras de extraer el color de una imagen, y creo que otras respuestas las abordaron (K-Means, distribuciones, etc.).

Suponiendo que ha extraído los colores, hay algunas formas de buscar por color. Un enfoque lento, pero obvio, sería calcular la distancia entre el color de búsqueda y los colores dominantes de la imagen usando alguna métrica (por ejemplo, diferencia de color ), y luego ponderar los resultados en función de la "cercanía".

Otro enfoque mucho más rápido sería esencialmente reducir la resolución de su espacio de color. En lugar de tratar con todos los posibles valores de color RGB, limite la extracción a un rango más pequeño como Google (solo azul, verde, negro, amarillo, etc.). Luego, el usuario puede buscar con un conjunto limitado de muestras de color y calcular la distancia de color se vuelve trivial.