Comment puis-je trouver des photos en double dans un très grand pool de données (des dizaines à des centaines de concerts)?

16

Quelqu'un peut-il suggérer un bon utilitaire de détection de duplication de photos qui fonctionne bien lorsque je traite environ 100 Go de données (collectées au fil des ans)?

Je préférerais quelque chose qui fonctionne sur Ubuntu.

Merci d'avance!

Modifier: existe-t-il un outil qui m'aidera à réorganiser ma collection et à supprimer les doublons, une fois qu'ils auront été détectés?

Edit2: La partie difficile est de savoir quoi faire une fois que j'ai la sortie composée de milliers de fichiers en double (comme la sortie de fdupes).

Ce n'est pas évident si je peux toujours supprimer un répertoire en toute sécurité (c'est-à-dire si un répertoire peut contenir des fichiers uniques), quels répertoires sont des sous-ensembles d'autres répertoires et ainsi de suite. Un outil idéal pour ce problème devrait être en mesure de déterminer la duplication de fichiers et de fournir ensuite un moyen puissant de restructurer vos fichiers et dossiers. Faire une fusion par hardlinking (comme le fait fslint) libère en effet de l'espace disque mais cela ne résout pas le problème sous-jacent qui a provoqué la duplication au départ - c'est-à-dire une mauvaise organisation de fichiers / dir.

Fasterz
la source
Consultez également ces questions connexes sur AskUbuntu , unix.stackexchange et superutilisateur .
BioGeek

Réponses:

7

ImageMagick à la rescousse. Je pense que la première étape de toute solution est de réduire la taille de votre collection. Si vous souhaitez comparer les photos par leur contenu , en particulier lorsque certaines sont des versions légèrement modifiées les unes des autres, un très bon début est de les réduire en vignettes, puis de comparer les vignettes. Cela est particulièrement utile lorsque vous souhaitez trouver des photos presque identiques et que vous souhaitez "ignorer" les différences sans importance lors de la comparaison.

Ma suggestion est, à un niveau élevé, que vous:
1- Utilisez l' outil mogrify d'ImageMagick pour réduire les photos en vignettes. Cela prendra un certain temps, mais cela rendra les étapes de comparaison réelles beaucoup plus rapides et plus précises.
2- Utilisez l' outil de comparaison d'ImageMagick qui vous permet de définir un seuil de comparaison, c'est-à-dire qu'il vous permet de trouver des photos à 85% similaires. Vous voudriez faire une expérience contrôlée pour trouver la valeur seuil que vous aimez le plus.

cody
la source
J'aime vraiment cette idée de faire des vignettes en premier. Que fait-il une fois que vous avez trouvé les doublons? Affiche-t-il simplement une liste? J'ai des dizaines de milliers de doublons et une belle interface graphique pour aider à les résoudre serait très utile.
Fasterz
2
Puisque vous utilisez Ubuntu, vous avez automatiquement accès à une multitude d'outils spécialisés, chacun résolvant une tâche très spécifique telle que les 2 tâches que j'ai mentionnées. C'est un jeu Lego, vous pouvez faire ce que vous voulez, il vous suffit de rassembler les pièces. Techniquement, vous alimentez 2 photos à l'outil de comparaison et il vous dira à quel point l'une ressemble à l'autre. Une façon de résoudre votre problème consiste à regrouper toutes les photos similaires dans des dossiers afin de pouvoir les parcourir pour filtrer les faux positifs. Ensuite, vous exécutez à nouveau «comparer» sur les faux positifs et répétez le processus jusqu'à ce que tous soient à leurs emplacements corrects.
cody
4

Le visualiseur / organisateur de photos open source Geeqie dispose d'une puissante fonction de recherche de doublons . Il peut utiliser plusieurs stratégies différentes pour trouver des doublons:

  • Nom de fichier (sensible à la casse ou insensible)
  • Taille du fichier
  • Date du fichier
  • Dimensions de l'image
  • Somme de contrôle MD5.
  • Contenu d'image similaire (à plusieurs seuils)

Cela donne une liste de résultats qui peut inclure des miniatures afin que vous puissiez confirmer manuellement.

Cela sera probablement lent pour des milliers de fichiers, mais je pense que l'utiliser et le laisser fonctionner pendant quelques jours ou tout ce qui est probablement moins d'effort dans l'ensemble que de trouver ou de créer quelque chose sur mesure pour le cas - à moins que la correspondance de la somme de contrôle soit tout ce dont vous avez besoin.

mattdm
la source
Ça me semble bien. Que fait-il une fois que vous avez trouvé les doublons? Affiche-t-il simplement une liste? J'ai des dizaines de milliers de doublons et une belle interface graphique pour aider à les résoudre serait très utile.
Fasterz
Il les affiche dans une fenêtre GUI.
mattdm
3

Il existe un petit utilitaire appelé "fdupes" qui peut faire ce que vous souhaitez?

Il existe également un autre utilitaire appelé "fslint" que vous voudrez peut-être essayer également. (Celui-ci a une interface graphique).

Mike
la source
J'ai juste essayé fslint sur un plus petit ensemble de photos (quelques concerts environ) et c'est frustrant qu'il se trouve juste là et tourne. Aucun indicateur de progression, estimation du temps restant, rien.
Fasterz
1
Ces outils semblent rechercher des fichiers identiques. Même une image identique (pixel pour pixel) peut avoir un contenu de fichier différent. Je suppose que vous voulez faire correspondre non seulement la même image similaire, mais aussi dans différents formats et tailles, y compris les recadrages et autres traitements que vous avez effectués, de manière à collecter toutes les variantes de la même photo en une seule annuaire. Ce serait une comparaison douce d'images qui auraient un facteur de correspondance de confiance et pourraient correspondre à différentes photos de la même scène.
Skaperen
@Skaperen Ce que vous proposez est génial, mais existe-t-il de tels outils pour Ubuntu? J'en ai vu un mentionné quelque part pour Windows - mais qui semblait avoir une interface hideuse .. etc.
Fasterz
ImageDupeless est une application Windows qui capture des photos qui se ressemblent, mais qui présentent quelques différences. Il capturera quelques rotations, recadrages, redimensionnements, changements de teinte de couleur, filigranes, etc. MAIS ce serait extrêmement lourd pour des centaines de fichiers, et des milliers de fichiers seraient terribles. Moi aussi je cherche un linux équivalent à ImageDupeless. Une application qui fait des ondelettes ou une autre magie d'imagerie pour savoir quand les images sont similaires.
Therealstubot
Lisez les options de la page de manuel pour fdupes- il y a une option pour supprimer les dupes. askubuntu.com/a/476732
rrauenza
1

dupeGuru Picture Edition est un outil de recherche d'images en double personnalisable pour Windows, Mac OS X et Linux.

Il y a quelques versions de dupeGuru (éditions standard, musique et image), et l'édition d'image vous permet de trouver des images visuellement similaires via un algorithme de comparaison de blocage de bitmap , entre autres méthodes (comme l'horodatage de l'image originale EXIF, ou les fichiers étant simplement identiques) .

Il a une variété d'autres fonctionnalités utiles comme les dossiers exclus, la prise en charge des bibliothèques iPhoto / Aperture et une personnalisation considérable de la façon dont il détecte les doublons et de ce qu'il en fait.

drfrogsplat
la source
0

Qu'entendez-vous par photos en double? Voulez-vous dire des fichiers identiques, disons simplement copiés une ou deux fois de plus? ou voulez-vous dire des photos qui «semblent» être les mêmes.

Si vous voulez dire des fichiers identiques, vous pouvez utiliser 'shasum' sur tous les fichiers, puis ordonner les résultats et trouver les lignes uniques avec 'uniq' et lancer un 'diff' pour voir ce qui a été éliminé. Tout est facile dans un shell Ubuntu.

Pat Farrell
la source
Rien de tout cela n'est facile ou pratique. Les fdupes mentionnés ci-dessous feront déjà un meilleur travail que le simple calcul de SHA. Existe-t-il maintenant des outils Unix qui rechercheront la similitude des images? Si oui, ce serait génial.
Fasterz
Facile et pratique pour quelqu'un qui a l'habitude d'utiliser les outils Unix, c'est ce que sont uniq, sort, diff, shasum, etc. Mais je suis d'accord que si vous ne les utilisez pas régulièrement, ils peuvent être difficiles à utiliser. Je ne sais rien de ce qui peut "ressembler" à tout ce que j'ai vu, y compris dans Aperture et Lightroom, faire file-is-identique, qui n'est en fait qu'un md5 ou shasum
Pat Farrell
J'utilise régulièrement des outils Unix et je trouve cette réponse un peu idiote. Tout d'abord, faire SHA aveuglément est lent, quand une comparaison de taille de fichier résout les choses. Deuxièmement, SHA ou MD5 peuvent entrer en collision - les comparaisons SHA ne suffisent donc pas à elles seules. Si vous tenez compte de ces deux éléments, vous obtenez ce que fdupes fait.
Fasterz
De plus, une fois que vous avez correctement évoqué l'incantation qui le fait, la sortie n'est toujours pas très utile. Au mieux, vous obtenez la sortie de fdupes qui est juste un vidage de fichiers similaires. Dans mon cas, j'ai des dizaines de milliers et il est très difficile de parcourir ces données pour voir comment je peux éliminer les doublons.
Fasterz
1
Les SHA entrent en collision en théorie, mais pas en pratique. Oui, cela prend une éternité. Rien de ce qui va fonctionner ne va être rapide. Mais vous devriez pouvoir le lancer et revenir dans un jour ou deux. C'est juste une suggestion, je ne vais pas entrer en guerre à ce sujet.
Pat Farrell
0

Il existe une application appelée "bleachbit", qui trouve les fichiers en double par taille, nom et autres filtres. Vous pouvez l'installer à partir du gestionnaire de paquets synapctic dans ubuntu.

chuisco
la source
Que fait-il une fois que vous avez trouvé les doublons? Affiche-t-il simplement une liste? J'ai des dizaines de milliers de doublons et une belle interface graphique pour aider à les résoudre serait très utile.
Fasterz