
En un blog que frecuento,
Halón Disparado, sacan una imagen y preguntan qué puede ser, dejando la solución para el día siguiente.
La imagen ya la conocía de hace tiempo, pero la entrada no es para hablar de ella, sino de algo con lo que vengo trasteando hace unos días:
TinEye, un buscador de imágenes similares.
De momento hay que darse de alta y no encuentra muchas cosas, pero por lo que he visto, tiene pinta de que van aumentando la base de datos a marchas forzadas.
¿Qué hace? pues le pasas una imagen (desde el PC o por URL) y te busca imágenes similares. Con este servicio, responder a la pregunta del blog está chupao:

Si pones la URL te saca las imágenes de la página para que elijas la que quieres buscar.
Para probar, he cogido la primera imagen de tux que me ha salido en google y la he recortado:

y ha encontrado las imágenes enteras:

Luego he modificado más la imagen recortada pasándola a grises y/o girándola y ya se pierde.
Esto lo pensé yo primero: supongo que lo hará buscando algún tipo de "huella" en las imágenes almacenadas que luego pueda comparar con la "huella" de la que pasas para buscar. Por muy bien que hagas la "huella", habrá que comparar huellas parecidas, no excatamente iguales, y ahí está el problema. Lo que no entiendo, lo haga como lo haga, es por qué no busca (sobre todo cuando no encuentra nada) con los 3 giros a mayores de 90º y los 2 reflejos especulares.
La idea que yo tenía de huella partía de algo muy simple: cojo la imagen y la reduzco, por ejemplo, cada cuadrado de 100x100 a un único píxel. Y además, al color de este píxel, le reduzco el rango dinámico (vaya, que lo paso a menos colores: muchos menos, por ejemplo a los 3 colores básicos, sus complementarios y el blanco y el negro que son 8 colores o cosa parecida). Con eso, una imagen de 1000x1000=1mega se convertiría en una de 10x10=100px y cada píxle 3 bits=300bits=unos 40 bytes. Para que las imágenes con poco rango dinámico (pojemplo: todo en medios tonos rojos) no acabaran con la misma "huella", se puede ampliar el rango previamente.
Luego está el problema de los recortes (búsqueda dentro de la clave) y de la aproximaciones (más complejillo) pero no me pareció inabordable.
Se me ocurrieron más métodos; por ejemplo hacer una red neuronal a la que entrenas con variaciones de una imagen para que la huella resultante sea la misma (y luego basta aplicar y punto) o cosas parecidas.
Bueno, por lo menos el TinEye éste sirve para organizar la red con una semántica distinta a la habitual. Eso, mezclado con lo que quería hacer Google (¿lo tiene hecho?) de analizar y almacenar en texto lo que hablan en los videos (creo que lo empezó a hacer con los telediarios) y que luego pudieras buscar por lo que dice el video y no por lo que escibió alguiensobre ese video, y ya sólo nos faltan el gusto, el olfato y el tacto.
Etiquetas: YLPP