Я сейчас посавлю digikam и посмотрю сколько времени он будет искать дубликаты в папке с 5000 картинок.
С GPU интересно было бы поразбираться. Это в самом деле на порядки бы ускорило такие операции.
Но в моем ноуте стоит интеловская графика, к сожалению, нет CUDA.
==========================================================================================
Поставил. Посмотрел.
Как они обрабатывают с такой скоростью?
Точнее что они хранят в fingerprint?
Да-а-а-а... Мой скрипт нафиг не сдался...
Как у Лескова. В Сибири чувак в 18 веке дифиренциальное исчисление изобрел.
Пользователь решил продолжить мысль 19 Октября 2011, 05:01:31:
В digikam строится какая то внутренняя база, называемая fingerprint. Этот процесс достаточно долгий. У меня он занял часа 3 на 40000 картинках с разрешением больше, чем 1920х1080.
Затем практически мнгновенно, за десяток секунд происходит поиск дубликатов.
Затем выводится список из огромного количества дубликатов и предлагается тыкать мышкой. Это реальный фейл. Мне нужно их удалить, а сделать такую операцию в командном режиме программа не позволяет. Это тот "windows" случай, когда ГУЙ не сдался.
Колеги, а давайте пофантазируем, какие принципы могут быть заложены при поиске одинаковых или похожих изображений?
1. Нашел небольшую, но интересную статью на хабре:
«Выглядит похоже». Как работает перцептивный хэш2. Обмен знаниями очень важен. После просмотра процесса работы digikam появилась идея как ускорить поиск на порядки.
3. В общем ясно, что делает digikam. fingerprint это hash от HAAR-преобразования уменьшенной картинки. Я делаю примерно так же, но у меня не хранится база хэшей.
4. Нужно отсечь из списка те, которые явно отличаются и в коротком списке выполнять поиск дубликатов.
Я думаю, что сделаю это быстрее, чем digikam.