如何在非常大的数据池(数十到数百演出)中找到重复的照片?


16

谁能推荐一个好的照片复制检测实用程序,当我处理大约100gb的数据(多年来收集的数据)时,它会很好地工作吗?

我希望可以在Ubuntu上使用的东西。

提前致谢!

编辑:一旦检测到重复项,是否有工具可以帮助我重新组织集合并删除重复项?

Edit2:困难的部分是弄清楚一旦我得到包含数千个重复文件的输出(例如fdupes的输出),该怎么办。

如果我仍然可以安全地删除目录(例如,目录可能包含唯一文件),则该目录并不明显,该目录是其他目录的子集,依此类推。解决此问题的理想工具应该是确定文件重复,然后提供一种强大的手段来重组文件和文件夹。通过硬链接进行合并(如fslint所做的那样)确实释放了磁盘空间,但是并不能解决导致从头开始重复的根本问题,即错误的文件/目录组织。


另请参见AskUbuntuunix.stackexchangesuperuser上的这些相关问题。
BioGeek 2012年

Answers:


7

ImageMagick进行救援。我认为任何解决方案的第一步都是减小集合的大小。如果要按照片内容比较照片,尤其是当某些照片经过稍微修改后,则一个很好的开始是将它们缩小为缩略图,然后比较缩略图。当您想要查找几乎相同的照片并希望在比较期间“忽略”不重要的差异时,这特别有用。

我的建议是,从高层次上来说,您:
1-使用ImageMagick的mogrify工具将照片缩小为缩略图。这将花费一些时间,但它将使实际的比较步骤变得更快,更准确。
2-使用ImageMagick的比较工具,该工具可让您设置比较阈值,即,它使您可以找到85%相似的照片。您可能想做一个对照实验,找出最喜欢的阈值。


我真的很喜欢先制作缩略图的想法。找到重复项后该怎么办?它只是显示一个列表吗?我有成千上万的重复项,并且一个不错的GUI可以帮助解决这些问题。
Fasterz 2012年

2
自从使用Ubuntu以来,您可以自动访问许多专用工具,每个工具都可以解决非常具体的任务,例如我提到的2个任务。这是一个乐高游戏,您可以做任何想做的事,只需要把各个部分放在一起即可。从技术上讲,您将2张照片输入“比较”工具,它将告诉您一张照片与另一张照片相似的程度。解决问题的一种方法是将所有相似的照片分组到文件夹中,以便您可以通过它们过滤掉误报。然后,您再次对误报执行“比较”,然后重复该过程,直到所有错误消息都位于正确的位置为止。
2012年

4

开源照片查看器/组织者Geeqie具有强大的“ 查找重复项”功能。它可以使用几种不同的策略来查找重复项:

  • 文件名(区分大小写或不区分大小写)
  • 文件大小
  • 档案日期
  • 图片尺寸
  • MD5校验和。
  • 相似的图像内容(达到几个阈值)

这提供了一个结果列表,其中可能包含缩略图,因此您可以手动进行确认。

这对于成千上万个文件而言可能很慢,但是我认为仅使用它并让它运行几天,或者总的来说要比查找或为该情况量身定制的内容花费更少的精力-除非您需要校验和匹配。


听起来不错。找到重复项后该怎么办?它只是显示一个列表吗?我有成千上万的重复项,并且一个不错的GUI可以帮助解决这些问题。
Fasterz 2012年

它将它们显示在GUI窗口中。
mattdm 2012年

3

有一个名为“ fdupes”的小实用程序,可以满足您的需求?

您可能还需要尝试另一个名为“ fslint”的实用程序。(这有一个GUI)。


我只是在较小的一组照片上尝试了fslint(大约几场演出),但令人沮丧的是它只是坐在那里旋转。没有进度指示器,没有时间估计,什么也没有。
Fasterz 2012年

1
这些工具似乎在寻找相同的文件。即使是相同的(逐像素)图像也可能是不同的文件内容。我猜想您不仅要匹配相同的外观图像,而且还要以不同的格式和大小进行匹配,包括裁切和您执行的其他处理,例如将同一张照片的所有变体收集在一起目录。这将是具有置信度匹配因子并且可以匹配同一场景的不同照片的图像的软比较。
Skaperen

@Skaperen您的建议很棒,但是Ubuntu是否存在这样的工具?我曾经在Windows的某个地方提到过它-但这似乎有一个可怕的界面..等
Fasterz 2012年

ImageDupeless是Windows应用程序,将捕获外观相似但有一些差异的照片。它会捕获一些旋转,裁剪,调整大小,颜色变化,水印等……您必须扫描您的资料库,并告诉它您接受多少差异,然后它会很高兴地向您显示文件。但是,成百上千的文件将非常繁琐,成千上万的文件将是可怕的。我也正在寻找与ImageDupeless等效的Linux。执行小波或其他影像魔术功能以分辨图像何时相似的应用程序。
Therealstubot 2012年

阅读手册页选项fdupes-有一个删除重复项的选项。 askubuntu.com/a/476732
rrauenza

1

dupeGuru Picture Edition是适用于Windows,Mac OS X和Linux的可自定义的重复图像查找器。

dupeGuru有几种版本(标准版,音乐版和图片版),图片版使您可以通过位图块比较算法以及其他方法(例如EXIF原始图像时间戳或文件完全相同)来查找视觉上相似的图像。。

它具有多种其他有用的功能,例如排除文件夹,对iPhoto / Aperture库的支持以及对如何检测重复项以及如何处理重复项的自定义功能。


0

重复的照片是什么意思?您的意思是相同的文件吗,比如说只是复制了一两个额外的时间?还是说“看起来”相同的照片。

如果您指的是相同的文件,则可以在所有文件上使用“ shasum”,然后对结果进行排序,并使用“ uniq”找到唯一的行,然后运行“ diff”以查看已消除的内容。在Ubuntu Shell中一切都很容易。


这些都不是容易或方便的。与仅计算SHA相比,下面提到的fdupes已经做得更好。现在有可以寻找图像相似性的Unix工具吗?如果是这样,那就太好了。
Fasterz 2012年

对于曾经使用uniq工具的人来说,这很容易和方便,这就是uniq,sort,diff,shasum等。但是我同意,如果您不定期使用它们,可能会很难使用。我不知道任何可以“看起来像”的东西,包括Aperture和Lightroom,我所看到的一切都是一样的,实际上只是md5或shasum
Pat Farrell

我经常使用unix工具,但我发现这个答案有些愚蠢。首先,当文件大小比较可以解决问题时,盲目执行SHA会很慢。其次,SHA或MD5可能会发生冲突-因此仅SHA比较就足够了。如果同时考虑这两个因素,那么您将了解fdupes的功能。
Fasterz 2012年

同样,一旦正确地想到了这样做的咒语,输出仍然不是很有用。充其量您可以得到fdupes的输出,这只是类似文件的转储。以我为例,我有数以万计的人,很难挑选出这些数据以查看如何消除重复项。
Fasterz 2012年

1
SHA在理论上会发生冲突,但在实践中并不会发生冲突。是的,这需要永远。没有任何事情会很快。但是您应该能够将其启动并在一两天内回来。这只是一个建议,我不会对此进行战争。
Pat Farrell 2012年

0

有一个称为“ bleachbit”的应用程序,它可以通过大小,名称和其他过滤器查找重复的文件。您可以从ubuntu中的synapctic软件包管理器安装它。


找到重复项后该怎么办?它只是显示一个列表吗?我有成千上万的重复项,并且一个不错的GUI可以帮助解决这些问题。
Fasterz 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.