-
Notifications
You must be signed in to change notification settings - Fork 0
yuriy-zhilovets2/dupfinder
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Поиск дубликатов для сайта Pastvu.com Предполагается, что дубликаты фотографий слабо отличаются друг от друга и представляют собой копии с измененными цветами, подкрученной контрастностью или резкостью, нанесенными небольшими надписями, и другими правками косметического характера. Алгоритм не стоек к обрезке картинок и позволяет найти только дубликаты, лишь слегка отличающиеся друг от друга в плане кадрирования (например, обрезанные на несколько пикселей со всех сторон). Описание использованных алгоритмов хеширования (dhash) и поиска: https://habr.com/ru/post/715714/ В библиотеке также имеется функция для расчета усредненного хэша (ahash). ahash дает большее число ложных срабатываний, но позволяет найти более сильно отличающиеся друг от друга изображения. Алгоритмы проверялись на базе MySQL (MariaDB 10.6) размеров в 1.200.000 различных изображений и показали приемлемую скорость работы (15 сек для поиска на компьютере с HDD и процессором AMD Phenom(tm) 8450 X3 - 1 Ghz). ################################ Алгоритм создания хэшей dhash не совсем детерминированный и может зависеть от версии установленной библиотеки GraphicMagic. Необходима осторожность, поэтому поиск лучше проводить на том же компьютере, где создавались хэши, или как минимум проверить, что на обоих компьютерах для одного и того же изображения создаются одинаковые хэши. Тестовые картинки и скрипт test-samples для вычисления хэшей находятся в каталоге samples. На моем компьютере они дают следующие результаты (имя файла, хэш, расстояние от эталонного dj.jpg): dj.jpg 00800207250F8780 dj-crop3.jpg 00000703640507C3 12 dj-crop.jpg 0080030324050380 7 dj-bw.jpg 00800203250F8780 1 dj-crop2.jpg 00800207250F8780 0 dj-color.jpg 00800207250F8780 0 dj-letter.jpg 00800207250F87C0 1 dj-br.jpg 00000207250F8780 1 dj-mirror.jpg FFFE9F1F5B0F1EFE 37 dj-sharp.jpg 00800207250F8780 0 ############################### Зеркально отраженные изображения найти невозможно, но можно отразить искомое изображение и провести поиск еще раз. ############################### Собственно, рабочие модули: image-hash.js Модуль с функцией расчета дифференциального хэша dupfinder.js Модуль с функциями для добавления хэша в базу и поиска в базе Примеры использования: spider.js Скрипт рекурсивного индексирования каталога с изображениями find-dup.js Скрипт поиска изображения в базе ################################ Основые модули для индексации в базе используют разбиение хэша на 10 частей по 7, 6 и 6 бит каждая. Это позволяет искать изображения, находящиеся на расстоянии 9 друг от друга.
About
Finder of duplicate images
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published