Найти и удалить дубликаты изображений из отсека ± 2 миллиона изображений

Новостной портал компании имеет два сервера (ОС = Centos 6):

Первый сервер № 1 имеет около 1 миллиона изображений (.jpg, .png), а сервер № 2 получил почти такое же количество — 1 миллион изображений. Некоторые из них являются идентичными дубликатами, некоторые — дубликатами с измененным размером, некоторые с размытостью, некоторые без размытия, некоторые — совершенно уникальные изображения. Имена файлов в основном тоже разные.

Миссия — объединить два медиа-каталога серверов в один. После объединения дубликаты должны быть восстановлены (чтобы освободить хранилище).

Я сделал несколько тестов с Imagemagick compare -metric RMSE, но я думал, что это займет много времени, чтобы сравнить каждый файл с каждым файлом с двух серверов. Таким образом, будет 1 млн х 1 млн = 1 триллион операций, это займет много времени …

Любые предложения здесь?

0

Решение

использование GNU Parallel рассчитать только один раз для каждого изображения:

  • контрольная сумма только для данных

  • перцептивный хэш

Затем откажитесь от всех с одинаковыми контрольными суммами и просмотрите те с похожими перцепционными хэшами.


Получить контрольную сумму по только данные изображения (то есть не включая метаданные, например другую дату в ваших изображениях), используя ImageMagick следующим образом:

identify -format "%#" a.jpg
9e51c9cf53fddc7d318341cd7e6c6e34663e5c49f20ede16e29e460dfc63867

Ссылки на генерацию Perceptual Hash:

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector