Алгоритм поиска визуально похожих фотографий из базы данных? - программирование
Подтвердить что ты не робот

Алгоритм поиска визуально похожих фотографий из базы данных?

TinEye, Google и другие предлагают "обратный поиск изображений" - вы можете загрузить фотографию, и в течение нескольких секунд она найдет похожие фотографии.

Есть ли версия этих алгоритмов с открытым исходным кодом?


Я знаю о "SIFT" и других алгоритмах для поиска "визуально похожих" фотографий, но они работают только для сравнения одной фотографии непосредственно с другой. например, для поиска похожих фотографий на заданную фотографию является операцией O(n), чтобы найти все визуально похожие фотографии были бы O(n^2) - оба из них являются чрезмерно медленными.

Мне нужен дескриптор функции, который индексируется с помощью [реляционной] базы данных, чтобы уменьшить набор результатов на что-то более управляемое.

Под "визуально подобным" я имею в виду очень похожи. то есть фото, которое слегка коснулось/перекрасило в Photoshop, слегка обрезали или изменяли размер, фотографии, сделанные в быстрой последовательности одной и той же сцены, или перевернутые или повернутые изображения.

4b9b3361

Ответ 1

Допустимым подходом, который вы можете рассмотреть, является модель Bag-of-Words.

В принципе, вы можете выполнять автономное вычисление целевых изображений. Вы можете извлечь из этих изображений кучу функций, чтобы создать кодовую книгу с такими алгоритмами, как k-mean clustering. Поиск ближайших изображений приведет к применению алгоритма, такого как Поиск ближайшего соседа в пространстве кодовой книги.

Для поиска соседей вы можете использовать FLANN

Посмотрите также на: Визуальный алгоритм поиска сходства

Это только возможность, и, надо сказать правду, эта тема действительно сложна, и на ней действительно огромна.

Несколько ссылок: