29 votes

Suppression des images en double

Nous avons une collection de photos de quelques centaines de gigaoctets. Un grand nombre de ces photos sont visuellement des doublons, mais avec des tailles de fichiers, des résolutions, des compressions, etc. différentes.

Est-il possible d'utiliser des méthodes de traitement d'image spécifiques pour rechercher et supprimer ces images en double ?

1voto

Liam Points 5214

Un moyen rapide d'y parvenir est d'écrire un programme qui calculera la valeur du pixel moyen dans chaque image, en niveaux de gris, de trier par cette valeur, puis de les comparer visuellement. Les images très similaires devraient être proches les unes des autres dans l'ordre de tri.

1voto

CVertex Points 7334

La similarité des images est probablement un sous-domaine du traitement des images/de l'IA.

Soyez prêt à mettre en œuvre les algorithmes/formules des articles si vous recherchez une excellente solution (c'est-à-dire performante et évolutive).

Si vous voulez quelque chose de rapide et sale, cherchez sur google pour Similitude des images

Voici une application C# de similarité d'images qui pourrait faire ce que vous voulez.

Fondamentalement, tous les algorithmes extraient et comparent des caractéristiques. La façon dont ils définissent le terme "caractéristique" dépend du modèle mathématique sur lequel ils se basent.

1voto

Liam Points 5214

Vous aurez besoin d'un outil en ligne de commande pour traiter autant de données.

La comparaison de toutes les paires d'images possibles ne sera pas adaptée à un ensemble d'images aussi vaste. Vous devez trier l'ensemble des images selon une certaine métrique afin que les comparaisons ultérieures ne soient nécessaires que sur les images voisines. comparaisons supplémentaires ne soient nécessaires que sur les images voisines.

Un exemple de métrique simple est la valeur moyenne de tous les pixels d'une image, exprimée en une seule valeur de gris. sous la forme d'une valeur unique en niveaux de gris. Cela ne devrait fonctionner que si les doublons n'ont subi aucune altération visuelle. L'utilisation d'un format de fichier avec perte peut également entraîner des altérations visuelles.

1voto

Liam Points 5214

En sortant des sentiers battus, vous pouvez peut-être utiliser les métadonnées des images pour restreindre votre ensemble de données. Par exemple, vos images peuvent comporter des champs indiquant la date et l'heure de la prise de vue, à la seconde près. Les doublons sont susceptibles d'avoir des valeurs identiques. Un outil tel que exiv2 pourrait être utilisé pour extraire ces données dans un format texte plus pratique et plus facile à trier (avec un peu de connaissance des scripts batch/shell).

Même des champs tels que le fabricant et le modèle de la caméra pourraient être utilisés pour réduire un ensemble de 1 000 000 d'images à disons 100 ensembles de 10 000 images, ce qui représente une amélioration significative.

0voto

Le programme gqview dispose d'une option pour trouver les doublons, vous pouvez donc essayer de chercher là. Cependant, cette option n'est pas infaillible et ne peut être utilisée qu'en tant qu'heuristique pour présenter les doublons à un humain, pour une confirmation manuelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X