[PYTHON] Comparez deux images avec le hachage d'image

introduction

Confirmez la méthode de comparaison de l'identité des deux images avec le hachage d'image.

À propos du hachage d'image

En général, un hachage fait référence à une valeur obtenue à partir d'une chaîne de caractères à l'aide d'une fonction de hachage. Vous pouvez faire de même avec les images et générer des valeurs résumées. Par conséquent, il est possible de réduire les images avec des motifs similaires en utilisant le hachage d'image pour un grand nombre d'images.

Puisqu'il existe plusieurs fonctions de hachage, il est nécessaire de se limiter à une pour pouvoir comparer. référence: https://qiita.com/mamo3gr/items/b93545a0346d8731f03c

Comparez deux hachages d'images

Pour calculer la distance de hachage, prenez une somme logique exclusive (XOR) et comptez "1".

Exemple de code source (Python)

sample.py


hash_a = 'b69cbd89090b8f8e'
hash_a_value = int(hash_a, 16)
hash_b = 'b69c3d89090b0f8e'
hash_b_value = int(hash_b, 16)

hamming_distance = bin(hash_a_value ^ hash_b_value).count('1')
print(hamming_distance)

** Calculez la distance de bourdonnement du hachage dans la source ci-dessus. ** **

Conversion de hash_a en binaire ** 1011011010011100101111011000100100001001000010111000111110001110 ** Conversion de hash_b en binaire ** 1011011010011100001111011000100100001001000010110000111110001110 ** La somme logique exclusive est ** 00000000000000100000000000000000000000000000001000000000000000 **. Le nombre de 1 est 2 et la distance de bourdonnement est ** 2 **.

Similitude d'image par fredonnement

Lorsque la distance de bourdonnement est de 10 ou moins, les images sont presque les mêmes, mais on ne peut pas dire qu'elles sont exactement les mêmes. S'il est confirmé qu'ils sont identiques, cela doit être confirmé par un autre processus.

Résumé

Le hachage d'image seul ne suffit pas à garantir l'identité de l'image. Il est nécessaire d'utiliser la quantité de caractéristiques de l'image.

Si le nombre d'images à comparer est petit, il suffit de comparer en utilisant la quantité de caractéristiques de l'image. Si vous souhaitez comparer des dizaines de millions d'images, vous souhaiterez peut-être affiner la cible de comparaison par hachage d'image.

Articles tels que les quantités de caractéristiques https://qiita.com/hmichu/items/f5f1c778a155c7c414fd https://qiita.com/hitomatagi/items/caac014b7ab246faf6b1

Recommended Posts

Comparez deux images avec le hachage d'image
Combinez deux images avec Django
Traitement d'image avec MyHDL
Centrer l'image avec python-pptx
Traitement d'image avec PIL
Téléchargement d'image avec l'API Flickr
Traitement d'image avec Python (partie 2)
Télécharger automatiquement des images avec grattage
Images en bordure avec python Partie 1
Lire les coordonnées de l'image avec Python-matplotlib
Traitement d'image avec PIL (Pillow)
Édition d'image avec python OpenCV
Enregistrez des images avec le web scraping
Téléchargement d'images et personnalisation avec django-ckeditor
Tri des fichiers image avec Python (2)
Tri des fichiers image avec Python (3)
Créer une visionneuse d'images avec Tkinter
Traitement d'image avec Python (partie 1)
Tweet avec image en Python
Tri des fichiers image avec Python
Traitement d'image avec Python (3)
Génération de légende d'image avec Chainer
Obtenez des fonctionnalités d'image avec OpenCV
Reconnaissance d'image avec Keras + OpenCV
[Python] Traitement d'image avec scicit-image
Deux façons d'afficher plusieurs graphiques dans une seule image avec matplotlib