Подобное программное обеспечение для поиска изображений (например, TinEye)
На одном из наших сайтов сообщества мы разрешаем пользователям загружать изображения. Эти изображения одобрены или отклонены нашими модераторами.
Чтобы ограничить работу, необходимую нашим администраторам, мы хотим "зарегистрировать" каждое изображение, которое отклонено, в какую-либо базу данных и выполнить поиск в этой базе данных перед отправкой изображения на утверждение. Если подобное изображение уже было отклонено, загруженное изображение не будет отправлено на утверждение.
Мы, конечно, можем просто записывать такие вещи, как имя файла, размер и MD5 изображения, для сходства, но мы определенно могли бы найти по-разному обрезанные или измененные изображения.
TinEye.com предоставляет аналогичную функциональность.
Знаете ли вы какое-либо программное обеспечение с открытым исходным кодом, способное на это? У тебя есть другие идеи?
Спасибо!
3 ответа
Вы можете создать список с "похожими изображениями", если им не гарантировано 100% сходство. Сходство может быть рассчитано с учетом отпечатка пальца изображения (как сказал Виннер, вы можете масштабировать его до стандартного размера и построить из него контрольную сумму). Также можно использовать "средний" цвет и "цветной" вариант.
Исходя из этого, вы можете отобразить список "похожих изображений" (кликабельные пальцы), которые администратор сортировал в порядке "наиболее вероятно, что они похожи"
Вы также можете посмотреть на Image:: Compare http://linux.softpedia.com/get/Programming/Widgets/Perl-Modules/Image-Compare-43727.shtml и jpegDiff http://www.marengo-ltd.com/open_source/index.php
Чтобы обнаружить измененные и сжатые с потерями изображения, вы можете изменить размер изображения до некоторого стандартного размера (например, 40x40 пикселей), а затем вычесть известное изображение из нового изображения и сравнить расстояние до порогового значения.
К сожалению, это не работает с вращением или обрезкой. В этом случае вам необходимо извлечь масштабируемые инвариантные элементы изображения.
Еще одна проблема этого подхода состоит в том, что при наивной реализации вычислительные затраты линейны по размеру списка известных изображений, поэтому быстрое сравнение нового изображения со всеми старыми изображениями может оказаться слишком дорогим.
Я разработал сервис, похожий на TinEYE для частных коллекций изображений. В настоящее время он проходит альфа-тестирование, но отлично работает с 50000 изображений моих клиентов... Вы даже можете распознать напечатанные изображения в электронных документах:)
Попробуйте это на http://example.askbubo.com/ (только поиск изображений моих клиентов)
На http://askbubo.com/ вы можете прочитать больше. Также не стесняйтесь связаться со мной напрямую на хаджо (в) spratpix (точка) ком.
Хотя позже я планирую взимать плату за услугу, я с радостью отдам ее бесплатно людям, которые участвовали в альфа-тестировании и дали хорошие отзывы.