ForHosting KIT · Images

Comparez deux images par hash perceptuel et distance de Hamming

Deux hash perceptuels de 16 bits qui diffèrent sur 2 positions ont une distance de Hamming de 2 et une similarité de 87,5 %. Collez deux empreintes faites de zéros et de uns et voyez à quel point les images se ressemblent, sans envoyer de fichier. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Hash A
1011001110001111
Hash B
1011001010101111
Vous obtenez
Distance de Hamming
2
Pourcentage de similarité
87,5
Bits
16

Comparez deux images sans téléverser leurs fichiers si vous disposez déjà de leurs hash perceptuels. Cet outil reçoit deux hash binaires de même longueur, vérifie chaque position et renvoie la distance de Hamming ainsi qu’un pourcentage de similarité. Une distance nulle indique des hash identiques ; plus elle augmente, plus la différence perceptuelle est marquée. Le calcul est déterministe, rapide et confidentiel. Il convient à la détection de doublons, au contrôle de médias, à la vérification de migrations et aux chaînes de traitement automatisées.

Préparez des hash perceptuels comparables

Un hash perceptuel est une empreinte compacte conçue pour conserver les relations visuelles plutôt que les octets exacts d’un fichier. Avant la comparaison, produisez les deux hash avec la même méthode, les mêmes dimensions, la même longueur en bits, les mêmes règles de prétraitement et la même convention de sortie. Ne comparez pas, par exemple, le hash moyen d’une image au hash différentiel d’une autre, même si les deux comptent autant de bits.

Cette capacité attend une chaîne binaire non vide composée uniquement de 0 et de 1 pour chaque valeur. Elle refuse volontairement l’hexadécimal, les séparateurs, les préfixes et les espaces : chaque caractère correspond ainsi exactement à un bit mesuré et aucun décodage implicite ne peut modifier le résultat. Les deux chaînes doivent également avoir la même longueur.

Cette égalité est indispensable, car la distance de Hamming confronte les positions correspondantes ; les bits supplémentaires d’un hash long n’ont aucun équivalent dans un hash court. Si votre source enregistre les hash en hexadécimal, convertissez-les en chaînes binaires avec un remplissage identique avant l’envoi. Conservez les zéros initiaux : leur suppression change la longueur déclarée et l’alignement, même si un analyseur numérique juge les valeurs équivalentes.

Interprétez la distance et le pourcentage

La distance de Hamming correspond au nombre de positions où les deux hash présentent des bits différents. Si deux hash de 64 bits divergent à cinq positions, leur distance vaut cinq. Le pourcentage de similarité exprime la part complémentaire des positions concordantes : le nombre de bits identiques est divisé par la longueur totale, puis multiplié par cent.

Une paire identique donne donc une distance nulle et cent pour cent de similarité. Si toutes les positions diffèrent, la distance égale la longueur et la similarité vaut zéro. Considérez ce pourcentage comme une comparaison normalisée des hash, et non comme la probabilité universelle que deux fichiers représentent le même sujet.

Les seuils varient selon l’algorithme perceptuel, la taille du hash, la catégorie d’images et le coût des faux rapprochements. Un processus de recherche de doublons peut exiger une distance infime, tandis qu’un regroupement visuel peut adopter un seuil plus large. Calibrez votre règle à l’aide de correspondances et de différences représentatives de votre collection, plutôt que de reprendre un seuil prévu pour une autre famille de hash.

Exploitez le résultat sans risque dans votre chaîne

Une chaîne efficace de détection des doublons génère généralement un hash perceptuel cohérent pour chaque ressource, compare des paires candidates, puis applique une règle à la distance obtenue. Enregistrez la méthode et la longueur en bits avec chaque empreinte afin d’écarter les données incompatibles avant toute comparaison. Pour une grande collection, utilisez un index approximatif ou une autre étape de sélection des candidats : comparer chaque image à toutes les autres produit une croissance quadratique rarement nécessaire.

Lorsqu’une paire se situe près du seuil retenu, gardez les images originales à disposition pour une validation humaine ou un contrôle visuel plus approfondi. Le hash perceptuel tolère certaines transformations et peut retrouver des variantes redimensionnées ou recompressées que les sommes de contrôle cryptographiques ignorent, mais il peut aussi rapprocher des images visuellement simples. Cette capacité n’analyse pas les pixels, n’identifie pas le contenu et ne prouve aucun droit de propriété.

Elle compare uniquement les deux chaînes de bits fournies. Le calcul n’utilise ni réseau, ni hasard, ni horloge, ni état caché : une même paire valide produit toujours le même résultat.

Repérer des photos probablement dupliquées

Comparez des hash produits de manière cohérente et soumettez à validation les paires sous votre seuil calibré.

Contrôler une migration de médias

Vérifiez que les images recompressées ou redimensionnées à destination restent perceptuellement proches des sources.

Regrouper des ressources visuellement liées

Employez la similarité normalisée comme l’un des signaux de classement d’un catalogue en groupes visuels candidats.

Pourquoi les hash doivent-ils avoir la même longueur ?

La distance de Hamming compare des positions correspondantes. Des chaînes inégales laissent des positions sans équivalent ; la requête est donc refusée.

Que signifie une similarité de 100 pour cent ?

Tous les bits fournis concordent. Cela ne prouve pas que les fichiers image d’origine soient identiques octet par octet.

Puis-je confronter des hash issus d’algorithmes différents ?

Ce n’est pas conseillé. Une longueur égale ne rend pas comparables les résultats des hash moyens, différentiels et perceptuels.

L’outil téléverse-t-il ou examine-t-il mes images ?

Non. Il reçoit uniquement les deux chaînes de hash et réalise localement une comparaison déterministe des bits.

Mes hash sont en hexadécimal : puis-je les utiliser ?

Oui, après conversion. Transformez les deux valeurs en suites binaires de même longueur, en gardant les zéros de tête : les supprimer change la longueur et décale les positions comparées, même si la valeur numérique reste la même.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/image/compare-similarity

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/image/compare-similarity \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"hash_a":"1011001110001111","hash_b":"1011001010101111"}'
{
  "hash_a": "1011001110001111",
  "hash_b": "1011001010101111"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "image.compare_similarity",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_chars4096
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Interprétez la distance et le pourcentage

Le pourcentage renvoyé est arrondi à six décimales au maximum afin de stabiliser la sortie JSON, tandis que la distance entière et le nombre de bits restent exacts.

Exploitez le résultat sans risque dans votre chaîne

L’exécution dans le navigateur est gratuite ; les appels API automatisés suivent le tarif publié de $0.002 par requête.

Quel format d’entrée est accepté ?

Fournissez hash_a et hash_b sous forme de chaînes binaires composées uniquement de 0 et de 1. Elles doivent compter autant de bits.

Combien coûte une requête API ?

Le tarif de l’API est de $0.002 par requête. La version pour navigateur s’exécute localement et gratuitement.

Consulter la documentation complète du KIT →