MENÚ
MALDITA TECNOLOGÍA

Búsqueda inversa de imágenes: ¿qué tecnología hay detrás de la comparación entre diferentes fotos en internet?

Publicado domingo, 3 octubre 2021
Comparte
Categorías
Inteligencia artificial
Recursos utilizados
Expertos

No es la primera vez que nos pedís que nos metamos en estos jardines técnicos, ¡pero todo sea por los malditos y las malditas! Antes nos habíais preguntado cómo consiguen los filtros de TikTok o Instagram cambiarnos la cara y también cómo funciona la tecnología que crea imágenes de caras que no existen. Detrás de todo ello actúan programas informáticos basados en inteligencia artificial: redes neuronales. Hay diferentes tipos según el resultado que se quiera obtener, así que en esta ocasión vamos a hablar de cómo funcionan las diseñadas para poder hacer búsquedas inversas de imágenes.

Para ello contamos con la ayuda de Lluis Gómez, investigador del Computer Vision Center de la Universidad Autónoma de Barcelona, que nos explica que en su forma más general, la búsqueda inversa de imágenes busca calcular la similitud entre dos imágenes. Pero no viendo lo que hay en la imagen, sino calculando parámetros de ella.

Las máquinas no pueden "ver" las fotos, solo calcular la intensidad de color de cada uno de sus píxeles

Piensa que las máquinas no pueden “ver” las cosas como hacemos nosotros ni tampoco “interpretarlas”. Para un programa informático, gran parte de todo lo que puede llegar a analizar está traducido a unos y ceros. Estas dos unidades mínimas (0 y 1) se llaman bits y la traducción al mundo digital de las cosas que ves en tu pantalla o de las aplicaciones que tienes en el móvil son en realidad secuencias más o menos largas de estos dos dígitos. Por eso, en este entorno, todo debe analizarse con valores numéricos y haciendo cálculos matemáticos.

“Simplificando mucho, de entrada sabemos que las imágenes digitales no son más que un conjunto de valores numéricos: la intensidad de color en cada uno de los píxeles de la imagen”, expone Gómez. Un píxel es la unidad básica de medida de una imagen y se basa en su color. 

“Ahora imagina que tenemos una función matemática F que es capaz de transformar esa información numérica (la imagen original) en las coordenadas de un punto en un plano”. Es decir, una función matemática que hace que las medidas que coge de esa imagen se representen en un gráfico mediante un puntito que coloca a una altura u otra. Según la cercanía que tengan esos puntos entre sí, las imágenes que se están analizando pueden ser más similares. Gómez nos muestra la siguiente ilustración para entenderlo un poco mejor:

Imagen cedida por Lluis Gómez.

A la hora de analizar una imagen de forma automática, un programa informático no va a saber realmente que lo que está analizando es la foto de un perro, un gato o una bicicleta. Lo que hace es calcular las medidas que tiene de cosas que sí puede analizar (el valor numérico de los píxeles) y las representa en un plano. En realidad, son las personas que hay detrás de ese programa las que luego lo entrenan para que asocie ciertos valores con lo que realmente hay en la foto. Ahora vamos con más explicación.

La función “F” a la que se refiere Gómez es una función matemática que puede variar, ya que se calcula usando distintos métodos computacionales. En el caso de los sistemas de búsqueda inversa de imágenes se suelen utilizar redes neuronales artificiales para calcularla. Como te recordamos de tanto en tanto, al final los programas informáticos y los algoritmos funcionan a base de resolver operaciones matemáticas.

“Las redes neuronales artificiales son un modelo computacional capaz de aprender a realizar ciertas tareas a base de mostrarle muchos ejemplos. Para que una red neuronal aprenda a proyectar imágenes en puntos de forma que nos sirvan en un sistema de búsqueda deberemos mostrarle millones de ejemplos de imágenes similares y de imágenes disimilares”, añade. 

El programa calcula la desviación de las imágenes analizadas respecto a la original

Lo que necesitamos de ellas es lo siguiente: primero, que le asignen un puntito en el gráfico a cada imagen que hayamos recogido. Después, cuando tengamos la foto que queramos comparar, que la proyecte también en el gráfico y que calcule la distancia que hay desde el punto donde la proyecta hasta el resto de puntitos (que no olvidemos, representan al resto de imágenes). Por último, el programa informático deberá ordenar todas las imágenes representadas según la distancia que haya entre los puntos. Las que queden más cerca, serán las más parecidas.

Este proceso, traducido en lo que nosotros vemos cuando hacemos una búsqueda inversa de una imagen, se corresponde con el momento en el que subimos la imagen a Google, a Yandex o a cualquier otro buscador y esperamos a que nos devuelva una lista de fotos parecidas. A veces coinciden porque son exactas y otras simplemente nos muestran imágenes que son parecidas entre sí.

A diferencia del ejemplo del gato, el perro y la bicicleta, “las redes neuronales no proyectan las imágenes en espacios de dos dimensiones como en la figura anterior, sino que las proyectan en espacios de alta dimensionalidad”, continúa Gómez. Pero juegan con que el concepto de la distancia sigue siendo el mismo. Ten en cuenta que estos programas tienen que hacer búsquedas entre billones de imágenes, o sea que se hacen en computadoras de altas prestaciones para que sean mucho más rápidas.

Con todo, este investigador nos recuerda que estos sistemas no son infalibles y que no solo a veces pueden devolvernos resultados imprecisos, sino que pueden llegar a reproducir muchos sesgos que pueden estar presentes en la colección de imágenes que estemos analizando. Por ejemplo, en otra ocasión te explicamos cómo un programa informático de este tipo había confundido a una pareja de personas negras con gorila.


Primera fecha de publicación de este artículo: 15/07/2021