Алгоритм поиска похожих изображений - PullRequest
74 голосов
/ 16 сентября 2008

Мне нужен алгоритм, который может определить, являются ли два изображения «похожими» и распознает сходные закономерности цвета, яркости, формы и т. Д. Мне могут понадобиться некоторые указатели относительно того, какие параметры человеческий мозг использует для «категоризации» изображений. ..

Я смотрел на сопоставление по Хаусдорфу, но это в основном для сопоставления преобразованных объектов и шаблонов формы.

Ответы [ 16 ]

2 голосов
/ 16 сентября 2008

Звучит как проблема со зрением. Возможно, вы захотите взглянуть на Adaptive Boosting, а также алгоритм Burns Line Extraction. Концепции в этих двух должны помочь в решении этой проблемы. Обнаружение кромок - еще более простое начало, если вы новичок в алгоритмах зрения, поскольку оно объясняет основы

Насколько параметры для категоризации:

  • Цветовая палитра и местоположение (расчет градиента, гистограмма цветов)
  • Contained Shapes (Ada. Повышение / Обучение для определения фигур)
1 голос
/ 17 октября 2016

Извиняюсь за позднее участие в обсуждении.

Мы даже можем использовать методологию ORB для обнаружения сходных точек между двумя изображениями. Следующая ссылка дает прямую реализацию ORB в Python

http://scikit -image.org / документы / DEV / auto_examples / plot_orb.html

Даже openCV имеет прямую реализацию ORB. Если вам нужна дополнительная информация, следуйте статье, приведенной ниже.

https://www.researchgate.net/publication/292157133_Image_Matching_Using_SIFT_SURF_BRIEF_and_ORB_Performance_Comparison_for_Distorted_Images

1 голос
/ 03 июня 2011

Мне очень помогла эта статья, объясняющая, как она работает:

http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html

1 голос
/ 16 сентября 2008

В качестве первого прохода вы можете попробовать использовать цветные гистограммы. Однако вам действительно необходимо сузить область проблем. Общее сопоставление изображений является очень сложной проблемой.

1 голос
/ 16 сентября 2008

Вы можете выполнить своего рода оценку движения с согласованием блоков между двумя изображениями и измерить общую сумму невязок и затрат на вектор движения (так же, как это было бы в видеокодере). Это компенсирует движение; для бонусных баллов выполните оценку движения с аффинным преобразованием (компенсирует увеличение и растяжение и т. п.). Вы также можете сделать перекрывающиеся блоки или оптический поток.

0 голосов
/ 16 сентября 2008

В другой ветке есть несколько хороших ответов на этот вопрос, но мне интересно, сработает ли что-то, включающее спектральный анализ? То есть, разбейте изображение на информацию о фазе и амплитуде и сравните их. Это может избежать некоторых проблем с обрезкой, трансформацией и различиями в интенсивности. Во всяком случае, это только я размышляю, так как это кажется интересной проблемой. Если вы искали http://scholar.google.com Я уверен, что вы могли бы придумать несколько статей по этому вопросу.

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