Retour à l'accueil

Hash perceptuel : recherche d'images similaires

L'article explique les principes du hachage perceptuel d'images. Deux méthodes principales sont considérées — hash moyen et pHash basé sur la transformée en cosinus discret. Une comparaison des performances et de la robustesse aux modifications est fournie.

Comment trouver des images similaires : hash perceptuel pour les développeurs
Advertisement 728x90

Hachage perceptuel : Comment les algorithmes détectent les images similaires

Le hachage perceptuel permet de détecter la similarité visuelle entre les images, même si elles diffèrent en taille, couleur ou niveau de compression. Contrairement aux hachages cryptographiques comme SHA1, les hachages perceptuels conservent les informations sur la structure de l'image et sont robustes aux modifications mineures. Cela les rend indispensables dans les systèmes de recherche de doublons, de reconnaissance de contenu et de criminalistique numérique.

Bases du hachage perceptuel

Les fonctions de hachage cryptographiques sont conçues pour vérifier des correspondances de données exactes : la moindre modification du fichier d'entrée produit un hachage complètement différent. Les hachages perceptuels résolvent un problème différent — ils restent similaires pour des changements visuellement insignifiants de l'image. Cette approche repose sur le fait que la perception humaine ignore les détails fins et se concentre sur la structure globale.

Les algorithmes de hachage perceptuel sont généralement :

Google AdInline article slot
  • Robustes aux changements de taille et de rapport d'aspect ;
  • Invariants aux ajustements de luminosité et de contraste ;
  • Préservent la similarité sous compression légère ou bruit ;
  • Rapides et évolutifs.

Pour comparer deux images, on calcule leurs hachages, puis on mesure la distance de Hamming — le nombre de bits différents. Plus la distance est faible, plus la similarité visuelle est grande.

Méthode la plus simple : Hachage moyen

L'un des algorithmes de hachage perceptuel les plus accessibles repose sur la moyenne des pixels. Il consiste en les étapes suivantes :

  • Redimensionner à 8×8 pixels — cela réduit drastiquement l'impact des détails à haute fréquence.
  • Convertir en niveaux de gris — élimine la dépendance aux canaux de couleur.
  • Calculer la luminosité moyenne de tous les 64 pixels.
  • Binarisation : chaque pixel est remplacé par 1 si sa luminosité est supérieure à la moyenne, et 0 sinon.
  • Former un hachage de 64 bits en concaténant les bits (généralement de gauche à droite, de haut en bas).

Cette méthode est extrêmement rapide et efficace pour trouver des doublons exacts ou quasi-exacts. Cependant, elle est sensible aux transformations non linéaires comme la correction gamma ou les changements d'histogramme, car la moyenne se décale et de nombreux bits changent.

Google AdInline article slot

Approche améliorée : pHash basé sur DCT

L'algorithme pHash (hachage perceptuel) utilise la transformée en cosinus discret (DCT) pour se concentrer sur les composants à basse fréquence de l'image — ceux qui définissent la structure globale. Les étapes de pHash :

  • Redimensionner à 32×32 pixels — suffisant pour une application correcte de la DCT.
  • Convertir en niveaux de gris.
  • Appliquer DCT à l'ensemble de l'image (contrairement à JPEG, où DCT est appliquée par blocs de 8×8).
  • Extraire le bloc en haut à gauche 8×8 de la matrice de fréquences résultante — il contient les fréquences les plus basses.
  • Calculer la moyenne de ces 64 coefficients, en excluant le premier (composante DC), pour éviter la dépendance à la luminosité globale.
  • Binariser les coefficients par rapport à cette moyenne.
  • Former un hachage de 64 bits.

Cette approche est nettement plus robuste aux distorsions de couleur et de luminosité. Même après une correction gamma ou des changements locaux (p. ex., ajout d'un filigrane sur une petite partie de l'image), le hachage reste proche de l'original.

Applications pratiques et limitations

Dans les systèmes réels comme TinEye ou les outils internes de criminalistique numérique, plusieurs méthodes sont souvent combinées :

Google AdInline article slot
  • Hachages précalculés pour l'ensemble de l'archive ;
  • Hachage moyen rapide pour le filtrage initial ;
  • pHash ou d'autres algorithmes avancés pour l'affinage ;
  • Fonctionnalités supplémentaires : distribution des couleurs, positions d'objets, présence de visages.

Par exemple, dans un système de reconnaissance faciale, des hachages séparés peuvent être calculés uniquement pour les régions de visages, améliorant la précision dans les collections de portraits.

Cependant, aucun hachage perceptuel ne garantit une précision de 100 %. Des changements significatifs — comme le remplacement de l'arrière-plan, une rotation d'un grand angle ou l'échange d'objets clés — peuvent rendre les images visuellement différentes, tout en gardant les hachages proches, ou vice versa.

Points clés

  • Le hachage perceptuel mesure la similarité visuelle, pas bit à bit.
  • La distance de Hamming entre les hachages est la principale façon d'évaluer la similarité.
  • Le hachage moyen est rapide mais vulnérable aux transformations non linéaires.
  • Le pHash basé sur DCT offre une meilleure robustesse aux modifications.
  • Les systèmes industriels utilisent des combinaisons de méthodes et un pré-indexage.

Comparaison des méthodes

| Critère | Hachage moyen | pHash (DCT) |

|------------------------|---------------|----------------|

| Vitesse | Très élevée | Moyenne |

| Robustesse au bruit | Moyenne | Élevée |

| Robustesse au gamma | Faible | Élevée |

| Mémoire requise | Minimale | Moyenne |

| Adapté à la recherche en masse | Oui | Oui (avec indexation) |

Le choix de la méthode dépend de la tâche : hachage moyen pour les copies exactes, pHash pour les images modifiées.

— Editorial Team

Advertisement 728x90

Lire ensuite