Tu imagen promedio probablemente vale mucho menos de mil palabras; hay mucho que puedes aprender de las selfies. Pero a veces solo necesitas saber de dónde viene una imagen, independientemente de cuántas palabras valga.
Para eso, existen motores de búsqueda de imágenes inversas proporcionados por Google, TinEye, Bing, Yandex, Pixsy y muchos más. Sin embargo, dado que no proporciona ninguna palabra en su consulta, ¿cómo saben qué buscar? Y, lo más importante, ¿cómo lo encuentran? El funcionamiento de la búsqueda de imágenes inversas de cada motor de búsqueda varía, y mantienen sus algoritmos exactos en secreto, pero las ideas básicas están ahí y no son tan difíciles de entender.
Huellas dactilares
En realidad, las imágenes pueden ser más únicas que las huellas dactilares humanas, ya que las probabilidades de que dos imágenes contengan exactamente la misma disposición de píxeles son infinitesimamente inimaginables, mientras que la probabilidad de una colisión de huellas dactilares es de alrededor de 64 mil millones, probabilidades comparativamente buenas. Pero, ¿cómo se imprime una imagen? Los pasos varían según el algoritmo, pero la mayoría sigue la misma fórmula básica.
Primero, debe medir las características de la imagen, que pueden incluir color, texturas, degradados, formas, relaciones entre diferentes partes de la imagen e incluso cosas como las transformadas de Fourier (un método para dividir imágenes en seno y coseno).
Digamos que estamos buscando la siguiente imagen y necesitamos una huella digital.
Para hacer eso, podríamos, entre otras cosas, usar el histograma de color de la imagen, la Transformada de Fourier y el mapa de textura, cada uno de los cuales puede ver a continuación.
Si se cambia el tamaño de una imagen, se difumina, se gira o se manipula de otra manera, habría una serie de algoritmos que utilizan las características anteriores y otras para tratar de encontrar coincidencias.
Codificar, almacenar y buscar
Cada característica de la imagen en la huella dactilar se puede codificar como cadenas de letras y números, que son fáciles de almacenar e indexar en una base de datos. Cualquier combinación de funciones que se extraigan y almacenen se convertirá en la entrada del motor de búsqueda de imágenes inversas para esa imagen. La base de datos de TinEye, por ejemplo, contiene alrededor de 39,6 mil millones de imágenes indexadas a febrero de 2020, lo que significa que han ejecutado su algoritmo sobre esa cantidad de imágenes y están almacenando todas esas huellas digitales para comparar las imágenes buscadas.
La segunda parte principal del algoritmo es averiguar qué imágenes son similares. Cuando subes una imagen, pasará por el algoritmo de huellas dactilares del motor de búsqueda de imágenes inversas. El motor de búsqueda intentará encontrar las entradas con las huellas digitales más cercanas, lo que se denomina «distancia de la imagen». Decidir qué factores comparar y cómo ponderarlos también depende de cada motor de búsqueda, pero su objetivo principal es encontrar una distancia total de la imagen lo más cercana a cero posible.
¿Qué pasa con el aprendizaje automático / IA?
Gracias a las técnicas de huellas digitales / indexación descritas anteriormente, la búsqueda inversa de imágenes era bastante buena incluso antes de que fuera práctico aplicarle la IA. Sin embargo, dado que la IA es excelente para procesar imágenes, lo más probable es que muchos de los principales motores de búsqueda utilicen cosas como las redes neuronales convolucionales (CNN) para ayudar a extraer y etiquetar características. Google, por ejemplo, podría estar usando una CNN en su búsqueda de imágenes inversa, lo que le permite encontrar palabras clave probables para la imagen y producir resultados de imágenes y web relevantes, como lo han estado haciendo en Google Photos durante bastante tiempo.
Esto lleva la búsqueda de imágenes inversa un paso por encima de la extracción de características simples y la distancia de la imagen. Las redes neuronales convolucionales esencialmente ejecutan imágenes a través de múltiples filtros que mapean varios tipos diferentes de características y luego intentan clasificarlas según el entrenamiento previo. Eso es una simplificación excesiva, por supuesto, pero basta con decir que las CNN hacen que la búsqueda de imágenes sea mucho más precisa y útil y probablemente se estén implementando junto con los métodos más antiguos de huellas dactilares de visión por computadora.
¿Cuál es el mejor motor de búsqueda de imágenes inversas?
Diferentes algoritmos significan que los diferentes motores de búsqueda de imágenes son buenos en diferentes cosas, aunque en última instancia, todos apuntan al mismo objetivo: encontrar una coincidencia para la imagen que cargó. Imágenes de Google tiene una tasa de aciertos bastante buena, por ejemplo, pero hace muchas «suposiciones óptimas», lo que le brinda muchas fotos que son similares pero no idénticas. Eso es genial si buscas un estado de ánimo o una categoría general, pero un motor como TinEye está mucho más enfocado en encontrar imágenes idénticas, incluso si están muy editadas, e incluso puede identificar imágenes dentro de las fotos, lo que lo hace un poco mejor si necesita una coincidencia exacta.
El motor de búsqueda ruso Yandex también tiene fama de tener una excelente herramienta de búsqueda de imágenes, aunque tal vez, como era de esperar, tiende a funcionar mejor en temas rusos. Herramientas como Pixsy e ImageRaider están enfocadas en identificar instancias de uso no autorizado, por lo que tienden a incluir más funciones como alertas y se enfocan en monitorear bibliotecas de fotos de usuarios.
Debido a que los algoritmos cambian todo el tiempo y generalmente se mantienen bloqueados, vale la pena verificar varios motores diferentes si uno no devuelve los resultados que busca.
Créditos de imagen: Vapor de una calle de la ciudad de Nueva York, DB-database-icon