| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Графика > Сравнить изображения, найти дубликаты |
| Автор: Elfer 7.10.2016, 15:27 |
| Привет. Мне нужен алгоритм, код тут необязательно. Код будет второй задачей для меня и возможно сам с ним справлюсь. Здесь пока что нужна только логика, по каким шагам делать. Задача следующая: На сайте имеются тысячи картинок (демотиваторы, карикатуры, комиксы, фотографии с фотика) загружаемые со всего интернета. Нужно найти дубликаты. Задача усложняется тем, что размеры картинок могут быть разные, а также качество сохранения картинок, расширения (например, gif и jpg). Также картинка может быть сбоку чуть обрезана, либо со всех краёв по немногу. Учитывать то, что изображения могут быть перевёрнуты - не нужно (такого не будет). Какой я вижу алгоритм:
|
| Автор: samssrus 8.10.2016, 09:17 |
| ...описанные шаги весьма ресурсозатратны и займут очень много времени. для начала я бы посоветовал сделать, например, md5 хеши с файлов и сравнивать их. для начального этапа это будет реально быстрее. сейчас сложно вспомнить, но где-то уже встречал (скорее всего на хабре) описание подобного механизма анализа и сравнения картинок (возможно, что-то связанное с поиском тел на изображениях). Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravnit-izobrazheniya-nayti-dublikaty-id57f7954aadbd5f204444e8a2#findElement_E7045_57f88f6086c4c56d5d3f3ec7_0 |
| Автор: samssrus 8.10.2016, 09:17 |
| ...описанные шаги весьма ресурсозатратны и займут очень много времени. для начала я бы посоветовал сделать, например, md5 хеши с файлов и сравнивать их. для начального этапа это будет реально быстрее. сейчас сложно вспомнить, но где-то уже встречал (скорее всего на хабре) описание подобного механизма анализа и сравнения картинок (возможно, что-то связанное с поиском тел на изображениях). Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravnit-izobrazheniya-nayti-dublikaty-id57f7954aadbd5f204444e8a2#findElement_E7045_57f88f6086c4c56d5d3f3ec7_0 |
| Автор: samssrus 8.10.2016, 09:17 |
| ...описанные шаги весьма ресурсозатратны и займут очень много времени. для начала я бы посоветовал сделать, например, md5 хеши с файлов и сравнивать их. для начального этапа это будет реально быстрее. сейчас сложно вспомнить, но где-то уже встречал (скорее всего на хабре) описание подобного механизма анализа и сравнения картинок (возможно, что-то связанное с поиском тел на изображениях). Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravnit-izobrazheniya-nayti-dublikaty-id57f7954aadbd5f204444e8a2#findElement_E7045_57f88f6086c4c56d5d3f3ec7_0 |
| Автор: samssrus 8.10.2016, 09:17 |
| ...описанные шаги весьма ресурсозатратны и займут очень много времени. для начала я бы посоветовал сделать, например, md5 хеши с файлов и сравнивать их. для начального этапа это будет реально быстрее. сейчас сложно вспомнить, но где-то уже встречал (скорее всего на хабре) описание подобного механизма анализа и сравнения картинок (возможно, что-то связанное с поиском тел на изображениях). Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravnit-izobrazheniya-nayti-dublikaty-id57f7954aadbd5f204444e8a2#findElement_E7045_57f88f6086c4c56d5d3f3ec7_0 |
| Автор: samssrus 8.10.2016, 09:17 |
| ...описанные шаги весьма ресурсозатратны и займут очень много времени. для начала я бы посоветовал сделать, например, md5 хеши с файлов и сравнивать их. для начального этапа это будет реально быстрее. сейчас сложно вспомнить, но где-то уже встречал (скорее всего на хабре) описание подобного механизма анализа и сравнения картинок (возможно, что-то связанное с поиском тел на изображениях). Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravnit-izobrazheniya-nayti-dublikaty-id57f7954aadbd5f204444e8a2#findElement_E7045_57f88f6086c4c56d5d3f3ec7_0 |
| Автор: Elfer 8.10.2016, 14:03 |
| Да согласен, что для начала хеш сравнить. Храню хеши всех картинок и сравниваю. Это уже сделано, но этого мало. Вот поэтому и пришёл к этой сложной задаче. Понимаю, что вышеописанный мной механизм - ресурсозатратный. Оптимизация - это уже вторая часть. В качестве оптимизации - хранить результат обработки фотографий в базе. Т.е. центральную часть фотографий, а именно массив приведённых оттенков цветов к определённому цвету. Салатовый и темно-зелёный к зеленому, светло-белый и темно белый - к белому и т.д. Когда добавляем новую фотографию - обрабатывать ее, результат помещать в базу и затем брать из базы другие центр. части (массив цветовых переходов) и делать сравнение. На данный момент это самый идеальный вариант, перечитал кучу топиков на хабре и на других форумах. |