Эти алгоритмы обычно основаны на отпечатках пальцев. Отпечаток пальца - это относительно небольшая структура данных, похожая на длинный хэш-код. Тем не менее, цели функции отпечатков пальцев противоположны целям хэш-функции. Хорошая хеш-функция должна генерировать очень разные коды для очень похожих (но не равных) объектов. Функция отпечатка пальца, напротив, должна генерировать тот же отпечаток для похожих изображений.
Просто в качестве примера, это (не особенно хорошая) функция отпечатка пальца: измените размер изображения до квадрата 32x32, нормализуйте и квантовайте цвета, уменьшив количество цветов до 256. Затем у вас есть 1024 -байтовый отпечаток для изображения. Просто держите таблицу отпечатков пальцев => [список URL-адресов изображений]. Когда вам нужно посмотреть изображения, похожие на данное изображение, просто рассчитайте значение отпечатка пальца и найдите соответствующий список изображений. Легко.
Что непросто - чтобы быть полезным на практике, функция отпечатка пальца должна быть устойчивой к культурам, аффинным преобразованиям, изменениям контраста и т. Д. Построение хороших функций отпечатка пальца является отдельной темой исследования. Довольно часто они настраиваются вручную и используют много эвристик (то есть используют знания о типичном содержании фотографий, о формате изображения / дополнительных данных в EXIF и т. Д.)
Другим вариантом является использование более одной функции отпечатков пальцев, попробуйте применить каждую из них и объединить результаты. На самом деле, это похоже на поиск похожих текстов. Просто вместо «мешка слов» при поиске сходства изображений используется «мешок отпечатков пальцев» и обнаруживается, что элементы из одной сумки совпадают с элементами из другой сумки. Как сделать этот поиск эффективным - другая тема.
Теперь по поводу статей / статей. Я не смог найти хорошую статью, которая бы дала обзор различных методов. В большинстве известных мне публичных статей обсуждаются конкретные улучшения конкретных методов. Я мог бы порекомендовать проверить это:
«Отпечатки содержимого при помощи вейвлетов» . Эта статья об аудио-дактилоскопии с использованием вейвлетов, но тот же метод может быть адаптирован для дактилоскопии изображений.
ПЕРЕМЕННАЯ ГРУППА:
ИНТЕЛЛЕКТУАЛЬНЫЙ ДИЗАЙН ХЭШ-ФУНКЦИЙ ДЛЯ ПОЛУЧЕНИЯ АУДИО И ИЗОБРАЖЕНИЯ . Информация о локально-чувствительных хешах.
Функции объединения для крупномасштабного поиска частичных дубликатов веб-изображений . Очень хорошая статья, рассказывающая о SIFT и пакетных функциях для повышения эффективности. В конце также есть хорошая библиография