Хороший способ определить похожие изображения? [закрыто

StackOverflow https://stackoverflow.com/questions/2838775

Вопрос

Я разработал простой и быстрый алгоритм в PHP для сравнения изображений для сходства.

Его быстро (~ 40 в секунду для изображений 800x600) в хэш и неоптимизированный алгоритм поиска могут проходить через 3000 изображений в 22 минутах.

Основной обзор вы получаете изображение, повторно вскакаете его до 8x8, а затем преобразуйте эти пиксели для HSV. Втенок, насыщенность и значение затем усекаются до 4 битов, и она становится одной большой шестигранной строкой.

Сравнение изображений в основном проходит вдоль двух струн, а затем добавляет различия, которые он находит. Если общее число ниже 64, то одинаковое изображение. Различные изображения обычно находятся около 600 - 800 - ниже 20 и чрезвычайно похожи.

Есть ли улучшения этой модели, которую я могу использовать? Я не посмотрел на то, как актуальны различные компоненты (оттенок, насыщенность и ценность) для сравнения. Hue, вероятно, довольно важно, но другие?

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

Я использовал набор данных 3000 фотографий (в основном уникальных), и там не было никаких ложных срабатываний. Его полностью невосприимчив к изменению изменений и довольно устойчивых к яркости и контрастным изменениям.

Это было полезно?

Решение

То, что вы хотите использовать:

  1. Извлечение функций
  2. Хеширование
  3. Локально осведомленное расцвеление хеширование.

  1. Большинство людей используют ПРОСЕЯТЬ Особенности, хотя у меня был лучший опыт с несовмешающимися инвариантными. В основном вы используете детектор по краям, чтобы найти интересные моменты, а затем в центре вашего изображения на этих точках. Таким образом, вы также можете обнаружить подсылки.

  2. То, что вы реализовали, это хеш-метод. Есть тонны, чтобы попробовать, но твои должны работать нормально :)

  3. Решающий шаг, чтобы сделать это быстро, - это хеш-х хэши. Вы преобразуете свои значения в унарное представление, а затем сделайте случайное подмножество битов в качестве нового хеша. Сделайте это с 20-50 случайными образцами, и вы получаете 20-50 хэш-таблиц. Если какая-либо особенность совпадает с 2 или более из этих 50 хэш-таблиц, функция будет очень похожей на то, что вы уже сохранены. Это позволяет преобразовать ABS (XY)

Надеюсь, что это поможет, если вы хотите попробовать мой саморазвитый поиск сходства, брось мне письмо на Hajo в spreatpix.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top