Comparaison de deux histogrammes à l'aide de la distance chi carré

18

Je veux comparer deux images de visages. J'ai calculé leurs histogrammes LBP. Alors maintenant, je dois comparer ces deux histogrammes et obtenir quelque chose qui dira combien ces histogrammes sont égaux (0 - 100%).

Il existe de nombreuses façons de résoudre cette tâche, mais les auteurs de la méthode LBP soulignent (Face Description with Local Binary Patterns: Application to Face Recognition.2004) que la distance chi carré est meilleure que l'intersection de l'histogramme et la statistique de vraisemblance logarithmique.

Les auteurs montrent également une formule de distance chi carré:

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

Où est un nombre de casiers, est une valeur du premier casier, est une valeur du deuxième casier.x i y inxiyi

Dans certaines recherches (par exemple The Quadratic-Chi Histogram Distance Family), j'ai vu que la formule de la distance Chi-Square est:

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

Et là http://www.itl.nist.gov/div898/handbook/eda/section3/eda35f.htm je vois que la formule de la distance Chi-Square est:

i=1n(xiyi)2yi

Je suis resté avec ça. J'ai plusieurs questions:

  1. Quelle expression dois-je utiliser?
  2. Comment dois-je interpréter un résultat de différence? Je sais que la différence qui est égale à 0 signifie que les deux histogrammes sont égaux, mais comment savoir quand les deux histogrammes sont totalement différents? Dois-je utiliser une table Chi-Square pour cela? Ou dois-je utiliser un seuil? Fondamentalement, je veux mapper la différence en pourcentages.
  3. Pourquoi ces trois expressions sont différentes?
Anton Holovin
la source
Yi n'est-il pas la valeur du même bac que xi mais dans la distribution du comparateur, plutôt qu'un deuxième bac?
ReneBt

Réponses:

7

@Silverfish a demandé une extension de la réponse de PolatAlemdar, qui n'a pas été donnée, je vais donc essayer de la développer ici.

Pourquoi le nom distance chisquare? Le test chisquare des tables de contingence est basé sur donc l'idée est de conserver ce formulaire et de l'utiliser comme un mesure de distance. Cela donne la troisième formule de l'OP, avec interprété comme observation et comme attente, ce qui explique le commentaire de PolatAlemdar "Il est utilisé dans les distributions de probabilité discrètes", comme par exemple dans le test de qualité de l'ajustement. Cette troisième forme n'est pas une fonction de distance, car elle est asymétrique dans les variables et . Pour la comparaison d'histogramme, nous voulons une fonction de distance symétrique en et xiyixyxy1

χ2=cells(OiEi)2Ei
xiyixyxy, et les deux premières formes donnent cela. La différence entre eux n'est qu'un facteur constant , ce qui est sans importance tant que vous choisissez simplement une forme de manière cohérente (bien que la version avec un facteur supplémentaire soit meilleure si vous voulez comparer avec la forme asymétrique). Notez la similitude de ces formules avec la distance euclidienne au carré, ce n'est pas une coïncidence, la distance chisquare est une sorte de distance euclidienne pondérée . Pour cette raison, les formules de l'OP sont généralement placées sous un signe racine pour obtenir les distances . Dans ce qui suit, nous suivons ceci. 11212

La distance Chisquare est également utilisée dans l'analyse des correspondances. Pour voir la relation avec le formulaire utilisé ici, soit les cellules d'un tableau de contingence avec lignes et colonnes. Notons que les totaux des lignes sont et les totaux des colonnes par . La distance chisquare entre les lignes est donnée par Pour le cas avec seulement deux lignes (les deux histogrammes), celles-ci récupèrent la première formule de l'OP (modulo le signe racine). xijRCx+j=ixijxi+=jxijl,k

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

Répondre à la question dans les commentaires ci-dessous: Un livre avec de longues discussions sur la distance chisquare est "CORRESPONDENCE ANALYSIS in PRATICE (Second Edition)" de Michael Greenacre (Chapman & Hall). C'est un nom bien établi, provenant de sa similitude avec chisquare tel qu'il est utilisé avec les tables de contingence. Quelle est sa distribution? Je n'ai jamais étudié cela, mais probablement (sous certaines conditions ...) il aurait une distribution chisquare, approximativement. Les preuves devraient être similaires à ce qui est fait avec les tableaux de contingence, la plupart des publications sur l'analyse des correspondances n'entrent pas dans la théorie de la distribution. Un article ayant une telle théorie, peut-être pertinente, est http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0101-74382016000100023 . Regarde aussi/stats//search?q=%22chisquare+distance%22 pour d'autres publications pertinentes sur ce site.

kjetil b halvorsen
la source
Puis-je demander pourquoi votre dernière équation est appelée distance chisquare? Est-il distribué en tant que tel? Pouvez-vous fournir une dérivation s'il vous plaît, ou un lien vers une? Je n'arrive pas à en trouver un.
LeastSquaresWonderer
1
Voir mes modifications ci-dessus.
kjetil b halvorsen
3

J'ai trouvé ce lien très utile: http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/histogram_comparison/histogram_comparison.html

Je ne sais pas trop pourquoi, mais OpenCV utilise la troisième formule que vous listez pour la comparaison de l'histogramme Chi-Square.

En termes de signification, je ne suis pas sûr qu'un algorithme de mesure vous donnera une plage limitée, comme 0% à 100%. En d'autres termes, vous pouvez dire avec certitude que deux images sont identiques: une valeur de corrélation de 1,0 ou une valeur chi carré de 0,0; mais il est difficile de fixer une limite sur la différence entre deux images: imaginez comparer une image complètement blanche à une image complètement noire, la valeur numérique serait soit Infinity, soit Not-a-Number.

Russell
la source
2

xy

Les deux autres sont utilisés pour calculer les similitudes d'histogramme.

PolatAlemdar
la source
1
$x$x
2
xy
0

Comme OP l'a demandé, la valeur en pourcentage (pour l'équation 1):

p=χS100N

pχNS

Complété comme demandé:

En calculant cette équation, on peut avoir le pourcentage de différence par rapport à un histogramme complet. En calculant cela pour les deux histogrammes puis en soustrayant l'un de l'autre, on peut avoir la différence en pourcentage.

Carlos Barcellos
la source
2
J'ai du mal à voir comment c'est une réponse à l'une des questions. Peux-tu élaborer?
Le Laconic
Cela donnera (en pourcentage, comme demandé) la différence entre un histogramme et un histogramme complet. Si vous calculez cette équation à partir des deux histogrammes, nous connaîtrons la différence de l'un à l'autre car celle-ci est utilisée pour la triangulation.
Carlos Barcellos