Comparar dos histogramas usando la distancia Chi-Cuadrada

18

Quiero comparar dos imágenes de caras. Calculé sus histogramas LBP. Entonces ahora necesito comparar estos dos histogramas y obtener algo que diga cuánto son iguales estos histogramas (0 - 100%).

Hay muchas formas de resolver esta tarea, pero los autores del método LBP enfatizan (Descripción de la cara con patrones binarios locales: aplicación al reconocimiento de rostros. 2004) que la distancia Chi-cuadrado funciona mejor que la intersección del histograma y la estadística de probabilidad de registro.

Los autores también muestran una fórmula de distancia Chi-cuadrado:

i=1n(xiyi)2(xi+yi)

Donde n es un número de contenedores, xi es un valor del primer bin, yi es un valor del segundo bin.

En algunas investigaciones (por ejemplo, la familia de distancia del histograma de chi cuadrático) vi que la fórmula de la distancia de chi-cuadrado es:

12i=1n(xiyi)2(xi+yi)

Y allí http://www.itl.nist.gov/div898/handbook/eda/section3/eda35f.htm veo que la fórmula de la distancia Chi-Square es:

i=1n(xiyi)2yi

Me quedé con eso. Tengo varias preguntas

  1. ¿Qué expresión debo usar?
  2. ¿Cómo debo interpretar un resultado de diferencia? Sé que la diferencia que es igual a 0 significa que ambos histogramas son iguales, pero ¿cómo puedo saber cuándo ambos histogramas son totalmente diferentes? ¿Necesito usar una mesa Chi-Square para ello? ¿O necesito usar un umbral? Básicamente quiero mapear la diferencia en porcentajes.
  3. ¿Por qué estas tres expresiones son diferentes?
Anton Holovin
fuente
¿Yi no es el valor del mismo bin que xi sino en la distribución del comparador, en lugar de un segundo bin?
ReneBt

Respuestas:

7

@Silverfish solicitó una expansión de la respuesta por parte de PolatAlemdar, que no fue dada, por lo que intentaré ampliarla aquí.

¿Por qué el nombre chisquare distance? La prueba chisquare para tablas de contingencia se basa en por lo que la idea es mantener este formulario y utilizarlo como una medida de distancia. Esto da la tercera fórmula del OP, conxiinterpretado como observación eyicomo expectativa, lo que explica el comentario de PolatAlemdar "Se usa en distribuciones de probabilidad discretas", como por ejemplo en pruebas de bondad de ajuste. Esta tercera formanoesuna función de distancia, ya que es asimétrica en las variablesxey. Para la comparación de histogramas, querremos una función de distancia que sea simétrica enxey, y las dos primeras formas dan esto. La diferencia entre ellos es solo un factor constante1

χ2=cells(OiEi)2Ei
xiyixyxy , lo cual no es importante siempre que solo elija una forma de manera consistente (aunque la versión con factor adicional112 es mejor si desea comparar con la forma asimétrica). Tenga en cuenta la similitud en estas fórmulas con la distancia euclidiana al cuadrado, eso no es una coincidencia, la distancia chisquare es un tipo dedistancia euclidianaponderada. Por esa razón, las fórmulas en el OP generalmente se colocan bajo un signo raíz para obtenerdistancias. A continuación seguimos esto.12

La distancia cuadrangular se usa también en el análisis de correspondencia. Para ver la relación con la forma utilizada allí, dejemos que sean las celdas de una tabla de contingencia con R filas y C columnas. Denote los totales de fila be x + j = i xxijRC y los totales de columna por x i + =j x i j . La distancia chisquare entre las filasl,kviene dada por χ 2 (l,k)=x+j=ixijxi+=jxijl,k Para el caso con solo dos filas (los dos histogramas), recupera la primera fórmula del OP (módulo el signo raíz).

χ2(l,k)=j1x+j(xljxl+xkjxk+)2
EDIT

Respondiendo a la pregunta en los comentarios a continuación: Un libro con largas discusiones sobre la distancia chisquare es "ANÁLISIS DE CORRESPONDENCIA EN LA PRÁCTICA (Segunda edición)" de Michael Greenacre (Chapman & Hall). Es un nombre bien establecido, que proviene de su similitud con chisquare como se usa con tablas de contingencia. ¿Qué distribución tiene? Nunca he estudiado eso, pero probablemente (bajo algunas condiciones ...) tendría alguna distribución chisquare, aproximadamente. Las pruebas deben ser similares a lo que se hace con las tablas de contingencia, la mayoría de la literatura sobre análisis de correspondencia no entra en la teoría de la distribución. Un artículo que tiene algo de teoría, tal vez relevante, es http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0101-74382016000100023 . Ver también/stats//search?q=%22chisquare+distance%22 para otras publicaciones relevantes en este sitio.

kjetil b halvorsen
fuente
¿Puedo preguntar por qué su última ecuación se llama distancia chisquare? ¿Se distribuye como tal? ¿Puede proporcionar una derivación, o un enlace a una? Parece que no puedo encontrar uno.
LeastSquaresWonderer
1
Ver mis ediciones arriba.
kjetil b halvorsen
3

Este enlace me pareció bastante útil: http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html

No estoy muy seguro de por qué, pero OpenCV usa la tercera fórmula que enumeras para la comparación del histograma Chi-Square.

En términos de significado, no estoy seguro de que ningún algoritmo de medición le dé un rango acotado, como 0% a 100%. En otras palabras, puede decir con certeza que dos imágenes son iguales: un valor de correlación de 1.0 o un valor de chi-cuadrado de 0.0; pero es difícil establecer un límite sobre cuán diferentes son dos imágenes: imagine comparar una imagen completamente blanca con una imagen completamente negra, el valor numérico sería Infinito o tal vez no un número.

Russell
fuente
2

xy

Los otros dos se usan para calcular las similitudes del histograma.

PolatAlemdar
fuente
1
$x$x
2
xy
0

Como OP solicitó, el valor en porcentaje (para la ecuación 1):

p=χS100N

pχNS

Complementado según lo solicitado:

Calculando esta ecuación, uno puede tener el porcentaje de diferencia de un histograma completo. Calculando esto para ambos histogramas y luego restando uno de otro, uno puede tener la diferencia en porcentaje.

Carlos Barcellos
fuente
2
Me cuesta ver cómo esta es una respuesta a cualquiera de las preguntas. ¿Puedes elaborar?
The Laconic
Esto dará (en porcentaje, según lo solicitado) cuán diferente es un histograma de un histograma completo. Si calcula esta ecuación a partir de ambos histogramas, sabremos la diferencia de uno a otro, ya que este se utiliza para la triangulación.
Carlos Barcellos