Как искать картинки, которые выглядят как загруженные картинки - PullRequest
3 голосов
/ 21 февраля 2012

У меня есть база данных, которая индексирует несколько тысяч картинок. Они передаются приложением, поэтому я технически меняю картинки. Теперь я хочу реализовать поиск, который находит изображения, которые выглядят как данное изображение. Я мог бы использовать временную метку, но небольшая разница в изображении или метаданных изображения помешала бы найти правильное изображение.

Поэтому мне нужен инструмент командной строки, который может находить изображения, похожие на заданную картинку, было бы оптимальным, если бы они также соответствовали изображениям, которые имеют другую сущность, но с тем же содержанием.

Наконец, я реализую это в приложении ruby ​​on rails, используя system, но я не думаю, что это проблема, если у меня есть соответствующий инструмент.

Ответы [ 3 ]

0 голосов
/ 22 февраля 2012

Я думаю, что большинство движков схожести изображений, таких как Tin Eye , используют хеширование, чувствительное к местности некоторой формы.Я не уверен, есть ли какие-нибудь рубиновые библиотеки, но один простой алгоритм - это сжатие изображения, скажем, до 16x16.Сделайте это путем усреднения блока пикселей в один пиксель.Затем вы можете использовать сумму разностей (или сумму разностей квадратов ...), чтобы получить дельту между любыми двумя изображениями.

0 голосов
/ 22 февраля 2012

Я нашел решение, которое работает для меня. То, что мешает мне использовать веб-методы, заключается в том, что эти изображения содержат достоверные данные, поэтому мне нужна служба, которая работает локально и без какого-либо подключения к внешней службе.

Я установил isk-Daemon Сервис, который поставляется с крошечным веб-сервером, SOAP и механизмом XML-RPC для работы с ним. Поэтому я также написал класс IskClient, который добавляет изображения в базу данных и соединяет их с изображением в базе данных MySQL, а также выполняет запросы для получения похожих изображений. Я мог бы построить драгоценный камень из этого класса.

0 голосов
/ 21 февраля 2012

Может быть, вы могли бы проверить рекомендовать .Со страницы github:

Recomify - механизм рекомендаций на основе ruby ​​/ redis - рекомендации могут обновляться / обрабатываться постепенно и на нескольких хостах.Работник реализован в простом рубине и родном C.

Здесь также есть пример совпадения фотографий здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...