Hay muchos algoritmos diferentes para calcular la similitud entre dos imágenes, pero no encuentro nada sobre cómo almacenar esta información en una base de datos para que pueda encontrar imágenes similares rápidamente .Métrica para encontrar imágenes similares en una base de datos
Por "similar" me refiero a duplicados exactos que se han girado (incrementos de 90 grados), ajustados por color y/o rescatados (compresión jpeg con pérdida).
Estoy tratando de obtener un "fingerprint" de las imágenes para que pueda buscarlas rápidamente.
Lo mejor que he encontrado hasta ahora es generate a grayscale histogram. Con 16 contenedores y 256 tonos de gris, puedo crear fácilmente una huella digital de 16 bytes. Esto funciona bastante bien, pero no es tan robusto como me gustaría.
Otra solución que probé fue cambiar el tamaño de las imágenes, rotate them, todas orientadas de la misma manera, escala de grises, normalizar los histogramas, reducirlos a 8x8 y reducir los colores a 16 tonos de gris . Aunque las imágenes en miniatura eran muy similares, por lo general estaban apagadas por un píxel o dos, lo que significa que la coincidencia exacta no puede funcionar.
Sin coincidencia exacta, no creo que haya ninguna manera eficiente de agrupar fotos similares (sin comparar cada foto con cada otra foto, es decir, O (n^2)).
Entonces, (1) ¿Cómo puedo crearlo? Creo una huella digital/firma que es invariante a los requisitos mencionados anteriormente? O bien, (2) si eso no es posible, ¿qué otra medida puedo usar de manera tal que, dada una imagen única, puedo encontrar sus mejores coincidencias en una base de datos de miles?
¿Necesita un hash lineal (porque su base de datos solo admite índices btree?) O ¿podría utilizar una solución compatible GiST? (ver: http://www.postgresql.org/docs/9.1/static/gist.html) – SingleNegationElimination
@TokenMacGuy: Aún no me he decidido por nada. Preferiría utilizar EntityFramework con él, que creo que me limita a estos: http://msdn.microsoft.com/en-us/data/dd363565 – mpen
En el anime, una comunidad de manga, en realidad, hay una solución que te da cercanía a las imágenes en porcentaje. http://saucenao.com/ y el proyecto iqdb http://iqdb.org/ usa esto. Es posible que pueda preguntarles. ¡Están usando una base de datos PERSONAL! – sinni800