À quoi sert le hachage d'image?

j'entends ce terme parfois et me demande à quoi il sert?

28
demandé sur antony.trupe 2009-06-16 02:06:02

5 réponses

alors que normalement le hachage d'un fichier hashe les bits individuels de données du fichier, le hachage d'image fonctionne sur un niveau légèrement plus élevé. La différence est qu'avec le hachage d'image, si deux images semblent pratiquement identiques mais sont dans un format différent, ou la résolution (ou il ya une petite corruption, peut-être en raison de la compression) ils devraient hachage au même nombre. Bien que les données réelles soient totalement différentes, si elles semblent être identiques à un être humain, elles sont même chose.

une de ces applications est search. TinEye.com vous permet de télécharger une image et de trouver beaucoup de ses occurrences sur internet. comme google, Il dispose d'un moteur de recherche qui parcourt les pages web à la recherche d'images. Il hache ensuite ces images et stocke le hachage et l'url dans une base de données. Lorsque vous téléchargez une image, il calcule simplement le hachage et récupère toutes les urls qui se rapportent à ce hachage dans la base de données. Les utilisations d'échantillon de TinEye comprennent la recherche de plus haute résolution versions de photos, ou de trouver quelqu'un public facebook/myspace/etc. profil à partir de l'image (en supposant que ces profils utilisent la même photo.

le hachage D'Image peut aussi être utilisé avec la mise en cache ou le stockage local pour empêcher la retransmission d'une photo ou le stockage de copies, respectivement.

il y a beaucoup d'autres possibilités, y compris l'authentification d'image et la recherche de cadres similaires dans une vidéo (comme l'a mentionné quelqu'un d'autre).

30
répondu Matt Boehm 2010-04-08 17:44:20

Hachage est une fonction qui s'applique à un arbitraire des données et produit des données de taille fixe (surtout de très petite taille). Il existe de nombreux types de hachage, mais si nous parlons de hachage d'image, il est utilisé pour:

  • trouver des copies très rapidement. Presque n'importe quelle fonction de hachage fonctionnera. Au lieu de chercher l'image entière, vous chercherez le hachage de l'image.
  • trouver des images similaires, que je vais expliquer plus tard

les Images qui nous paraissent identiques, peuvent être très différentes si vous comparez simplement les octets bruts. Cela peut être dû à:

  • redimensionnement
  • rotation
  • de couleur légèrement différente gamma
  • format différent
  • un petit bruit, des filigranes et des artefacts

Même si vous trouvez une image qui sera différent dans un seul octet, si vous allez appliquer une fonction de hachage à elle, le résultat peut être très différent (pour des hachures comme MD5, SHA ce sera très probablement complètement différent).

vous avez donc besoin d'une fonction de hachage qui créera un hachage similaire (ou même identique) pour des images similaires. L'un des génériques est hachage sensible à la localisation. Mais nous savons quels types de problèmes peuvent être avec les images, donc nous pouvons venir avec un type de hash plus spécialisé.

les algorithmes les plus connus sont:

  • un hachage. Le hachage moyen est l'algorithme le plus simple qui utilise seulement quelques transformations. Dimensionner l'image, la convertir en échelle de gris, calculer la moyenne et binariser l'échelle de gris en fonction de la moyenne. Maintenant convertissez l'image binaire en entier. L'algorithme est si simple que vous pouvez l'implémenter en une heure.
  • P-hash. Le hachage perceptuel utilise une approche similaire mais au lieu de faire la moyenne repose sur cosinus discrète la transformation (transformation populaire dans le traitement du signal).
  • d-hash. Le hachage différentiel utilise la même approche que le hachage a, mais au lieu d'utiliser des informations sur les valeurs moyennes, il utilise des gradients (différence entre les pixels adjacents).
  • W-hash. Très similaire à P-hash, mais au lieu de DCT il utilise transformation en ondelettes.

Par ailleurs, si vous utilisez python, tous ces hachages sont déjà implémentés dans cette bibliothèque.

26
répondu Salvador Dali 2016-07-17 07:54:14

hachage en général est un moyen utile pour réduire une énorme quantité de données à une courte(ish) nombre qui peut être utilisé pour identifier cette image.

ils sont parfois conçus simplement pour fournir un moyen pratique d'identifier un fichier sans l'intervention d'un humain, surtout en présence de plusieurs auteurs parallèles sur lesquels on ne peut pas compter pour incrémenter un compteur maître (JPG001 JPG002) sans se chevaucher.

parfois les coups de fouet sont destinés à être Impardonnables, de sorte que je peux par exemple-si le hachage d'image que vous générez est le même que celui que j'ai fait quand je vous ai envoyé l'image, alors vous pouvez être sûr qu'il vient de moi (et pas ajusté par un malfaiteur). Cependant, ce ne sont pas tous les hachages qui peuvent faire cette garantie, car, toutes les quelques années, un tel hachage "cryptographique" populaire présente des défauts fatals.

3
répondu Alex Brown 2009-06-15 22:10:26

dans la pratique, le hachage d'image est populaire pour trouver des images similaires dans une séquence de cadres ou de vidéo, ou pour intégrer un filigrane avec diverses images comme le font maintenant la plupart des studios de cinéma (presque entendre revenir à Fight Club dans un sens effrayant!).

1
répondu mduvall 2009-06-15 22:13:47

Umm.... Comparer des images (au sens large, des images, ou tout autre binaire) rapidement sans comparer le fichier entier?

-1
répondu zvolkov 2009-06-15 22:11:26