¿Está buscando un método "autorizado" y comprobado para demostrar que dos imágenes fotográficas son "casi idénticas"?

En el discurso habitual, al mirar una imagen fotografiada (A) -que es un JPG- y una versión ligeramente retocada con Photoshop (A2), la mayoría de las personas pueden comparar intuitivamente las dos y evaluar visualmente que son, de hecho, la misma imagen excepto por un pequeño número de diferencias.

Sin embargo, esa no es una prueba formal de que las dos imágenes son "casi idénticas" y, como tales, pueden cuestionarse en un entorno donde se necesita un estándar de prueba más estricto (entorno legal o Skeptics.SE).

Si se tratara de un par de archivos de texto, uno podría ejecutar un diffcomando en ellos y establecer una gran similitud por el resultado de que la diferencia es significativamente más pequeña que el tamaño del archivo.

Pero dado que se trata de imágenes JPG, esperaría que el efecto de editar con Photoshop y guardar una segunda versión, con una relación de compresión ligeramente diferente, para empezar, haría que la diferencia directa fuera 100% inútil.

  1. ¿Existen metodologías formales en el procesamiento de imágenes que se puedan usar para "diferenciar" las dos imágenes fotográficas guardadas con compresión con pérdida (JPG) ?

    La metodología debe ser examinada (por ejemplo, a través de un proceso de revisión por pares hasta la publicación en una publicación conocida de procesamiento de imágenes/visión por computadora/etc.).

    La salida deseada es un % numérico de cambio; o algún método de visualización.

    La metodología debe ser insensible al procesamiento posterior ligero, como el recorte de bordes menores, el cambio de tamaño y el guardado con una relación de compresión diferente que causa pérdidas menores.

  2. Si es así, ¿hay sitios web disponibles públicamente o programas gratuitos que (a) puedan tener 2 archivos JPG cargados y producir la "diferencia"; (b) Publicar la metodología exacta que utilizan, que se ajusta al n.° 1.

¿La alineación de la imagen y el modo de mezcla Diferencia (disponible en muchos editores) no harían lo que desea?
Más o menos un duplicado de estas tres preguntas en SO: 1 2 3
@ usuario28116 - me gana. No sé qué algoritmos usan y, por lo tanto, no puedo probar que hacen lo que dicen hacer si se les pide que presenten pruebas.
Esta es probablemente la más cercana que obtendrá al proceso automatizado con visualización: scootersoftware.com/help/index.html?picture_compare.html
¿Descomposición de ondículas?
@MarcinWolny: no creo que BC publique su metodología de comparación (al menos no en el enlace que produjo). Y no es de código abierto, así que no puedo verificar el código.
@PhilipKendall: ninguna de las respuestas a esas preguntas de SO abordadas "es el método probado en forma revisada por pares" (no estoy afirmando que ninguna lo sea, solo que las respuestas no abordan esto, lo que tiene sentido dado que es SO)
El modo de fusión Diferencia es una visualización de la diferencia de valor absoluto entre píxeles: es solo una resta directa en cada uno de los canales de color, ignorando el signo. Los efectos de compresión JPEG, el recorte, los cambios menores de contraste, etc., se pueden distinguir fácilmente del reemplazo de píxeles.
@DVK Dado que nadie en ninguna de esas respuestas ha señalado un método "definitivo", creo que la respuesta simple a su pregunta es "no".
@PhilipKendall: no estoy buscando un solo método "definitivo". Simplemente uno que tiene una prueba de que funciona (con la prueba "aquí está el algoritmo utilizado. Aquí hay una investigación que demuestra que el algoritmo funciona, teóricamente, o ejecutando toneladas de imágenes y demostrando que no hay errores de tipo 1 o tipo 2)
Y sigo pensando que la respuesta a tu pregunta es "no".
No me preocuparía tratar de cumplir con los "estándares" de SkepticsSE: parecen funcionar en sistemas lógicos y "estándares [sic] de prueba" desconocidos en el mundo científico o de ingeniería. Simplemente dígales que vio un sitio web que decía que los dos eran iguales y estarán felices. (Es posible que deba publicarlos en un sitio y decir que son iguales y darles el enlace si están en modo riguroso).
Por lo que vale, no existen métodos forenses de ningún tipo de análisis de imágenes que proporcionen prueba... de nada. En cambio, los métodos proporcionan datos. Dependiendo de la situación, depende del analista, o de la aplicación de la ley, o en algunas situaciones, en última instancia, depende de un juez o jurado decir que los datos constituyen una prueba. Sin embargo, si está buscando algo para proporcionar datos que puedan mostrar si el contenido de una imagen ha sido editado con Photoshop, el análisis de nivel de error existe desde hace algunos años solo para esto.
@BShaw - eso es correcto. No busco "falso/no falso". Estoy buscando datos de nivel "esta imagen es 97% similar a esa imagen (con confianza xxx)".

Respuestas (4)

La comunidad de investigación de visión por computadora utiliza con frecuencia el PSNR (relación máxima de señal a ruido) al comparar imágenes, por ejemplo, para evaluar qué tan bueno es un algoritmo particular de compresión o reconstrucción de imágenes.

La página de wikipedia describe cómo calcularlo: http://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio

Es una puntuación matemática basada en la diferencia numérica entre los valores de los píxeles. Requiere que las dos imágenes estén alineadas primero, una pequeña desalineación podría conducir a una mala puntuación de coincidencia incluso si la imagen es idéntica.

A juzgar por el último párrafo, ¿el requisito de "insensible a la escala" parece violarse en gran medida?
¿Es PSNR una medida significativa en sí misma, o solo puede usarse para comparar diferentes modelos? Primero pensé en MAE, que es trivial de calcular en PS usando el modo de diferencia y el valor de píxel promedio de la información del histograma. Sin embargo, solo puede usar MAE si tiene otro valor de MAE para compararlo. Es por eso que recomendé la correlación.
@DVK PSNR no es insensible a la escala, no conozco ninguna métrica estándar que lo sea. Entonces, la respuesta corta a su pregunta sería "no". Hay SIFT (transformación de características invariantes de escala) que funciona para las características de la imagen (líneas, esquinas, etc.) pero no para imágenes completas. Podría encontrar una forma de convertir imágenes en funciones SIFT y luego comparar las funciones, pero entonces no sería un método ampliamente aceptado, ya que lo acaba de inventar.
@AndyBlankertz sí, los puntajes de PSNR son significativos de forma aislada; a diferencia del MAE, el error se expresa en relación con la señal.

Puede usar Photoshop y capas para ver una "diferencia" entre ellos. Conozco una aplicación diff para Mac que hace esto con imágenes: el alcance de la imagen de Kaleidoscope suena como lo que quieres.

¿Cuál es la metodología utilizada para cualquiera de ellos, y se ha demostrado que es una buena metodología?
En ambos casos, solo se resta la diferencia entre los píxeles superpuestos para visualizar dónde están los cambios. Está comprobado que funciona bien, sí, pero depende de usted si eso le proporciona o no la información que necesita. Dudo que haga lo que quiere porque, como mencionó el usuario 28116 en los comentarios sobre la pregunta, cualquier cambio en la imagen hace que aparezca en el modo de fusión de diferencia.
@DanWolfgang: Las pequeñas diferencias se mostrarán como valores de gris oscuro, que se interpretan fácilmente. Por ejemplo, si toma dos capas de imagen idénticas, las convierte al modo de color Lab y agrega 1 al canal L para todos los píxeles en una capa, obtendrá una salida gris muy oscura sólida. Ese es el verdadero problema con la técnica de la diferencia: su monitor probablemente esté ajustado para que no pueda notar la diferencia entre 99% negro y 100% negro. Solo se verá negro. Dejo caer una capa de ajuste de Niveles o Curvas en la parte superior al hacer esto, para aumentar el contraste.

Lo que necesita es una medida de similitud de imagen.

Este documento trata de eso, pero tendrá que implementarlo usted mismo. No sé si sus resultados son precisos, ya que no puedo ver las imágenes que usaron.

Este papel detrás de paywall también se ocupa de eso usando una técnica que usé antes, llamada NCD (distancia de compresión normalizada). El resultado de dicha medida es un valor entre 0 y 1, donde 0 indica que ambas imágenes son idénticas (bueno, nunca vi que fuera 0 ni siquiera para archivos idénticos, sino valores muy cercanos a 0).

Mi lectura del documento FCD dice que es bueno solo para detectar imágenes que son idénticas o que difieren solo en partes de la imagen. Creo que si toma una imagen, la convierte al espacio de color HSL y agrega 1 a todos los componentes L, haciéndolo un poco más brillante, obtendrá una salida de 1 del algoritmo FCD, lo que significa que son completamente diferentes. . No creo que el OP quiera eso.

¿Qué pasa con el cálculo de la correlación de las imágenes? Este es un método bien establecido para encontrar las diferencias entre imágenes y le brinda un número útil para cuantificar la diferencia.

Estoy seguro de que hay muchos programas gratuitos que pueden hacer correlación.

¿Podría por favor explicar el método? (pueden ser enlaces a referencias). Gracias
Me enteré de un libro gratuito en dspguide.com
Simplemente toma algunas áreas pequeñas de ambas imágenes y alinea estas áreas pequeñas por separado maximizando la correlación entre ellas. Luego, verá si las alineaciones separadas son compatibles con una sola transformación de alineación global (por ejemplo, si mueve dos de las áreas una encima de la otra, verifica si las otras áreas se pueden alinear con una sola rotación alrededor de las dos que colocó). parte superior). Si esto funciona, puede verificar las correlaciones entre las partes de la imagen que deberían corresponder entre sí. Luego considera la correlación entre muchas de esas áreas elegidas al azar.
El tamaño de las áreas debe ser bastante pequeño para que las variaciones en el brillo se deban principalmente a la forma en que la cámara procesó la imagen. No desea que ninguna correlación que encuentre ahora esté dominada por la similitud del objeto físico representado.