Что такое ключевые точки в обработке изображений?
при использовании OpenCV,например, алгоритмы, такие как SURF, часто используются для обнаружения ключевых точек. Мой вопрос в том, что на самом деле являются эти точки?
Я понимаю, что это какие-то "точки интереса" в изображении. Я также знаю, что они масштабно инвариантны и круговые.
кроме того, я узнал, что у них ориентация, но я не мог понять, что это на самом деле. Это угол а между радиусом и что? Можете ли вы дать некоторые объяснения? Я думаю, что мне нужно то, что мне нужно сначала, это что-то более простое, и после этого будет легче понять документы.
2 ответов:
Это очень хорошие вопросы. Давайте рассмотрим каждый пункт по одному:
мой вопрос в том, что на самом деле являются эти точки?
ключевые точки-это то же самое, что и точки интереса. Это пространственные местоположения или точки На изображении, которые определяют, что такое интересные или что выделяется в изображения. Причина точки особенным, потому что независимо от того, как изображение меняется... является ли изображение вращается, сжимается/расширяется, переводится (все это будет аффинного преобразования кстати...) или подвержен искажению (т. е. проективному преобразованию или фонетическое письмо), вы должны быть в состоянии найти то же самое ключевые точки в этом измененном изображении при сравнении с исходным изображением. Вот пример из поста, который я написал некоторое время назад:
источник: модуль' объект не имеет атрибута 'drawMatches' opencv python
изображение справа-это повернутая версия левого изображения. Я также показал только 10 лучших матчей между двумя изображениями. Если вы посмотрите на топ-10 матчей, это моменты, на которых мы, вероятно, хотели бы сосредоточиться, что позволило бы нам вспомнить, о чем было изображение. Мы хотели бы сосредоточиться на лице оператора, а также на камере, штативе и некоторых интересных текстурах на зданиях фон. Вы видите, что эти же точки были обнаружены между картинки и они были успешно подобраны.
таким образом, то, что вы должны отнять от этого, что это точки На изображении, которые интересны и что они должны быть найдены независимо от того, как изображение искажается.
Я понимаю, что это какие-то "точки интереса" изображения. Я также знаю, что они масштабно инвариантны, и я знаю, что они круговой.
вы правы. Масштабный инвариант означает, что независимо от того, как вы масштабируете изображение, вы все равно сможете найти эти точки.
теперь мы собираемся отправиться в дескриптор часть. Что делает ключевые точки разные между фреймворками-это то, как вы описания эти точки. Это то, что известно как дескрипторов. Каждой характерной точки, которые вы обнаружили связан дескриптор, который сопровождает его. Некоторые фреймворки выполняют только обнаружение ключевых точек, в то время как другие фреймворки являются просто фреймворком описания, и они не обнаруживают точки. Есть также некоторые, которые и - они обнаруживают и опишите ключевые точки. SIFT и SURF-это примеры фреймворков, которые обнаруживают и описывают ключевые точки.
описатели в первую очередь связаны с масштаб и ориентация из ключевая точка. Ключевые точки мы прибили эту концепцию, но нам нужно дескриптор часть, если это наша цель, чтобы попытаться соответствовать между ключевыми точками в различных изображениях. Теперь, что вы подразумеваете под "кольцевым"... это коррелирует со шкалой, в которой была обнаружена точка. Возьмите, например, это изображение, которое взято из VLFeat Toolbox tutorial:
вы видите, что все, что желтое интерес точки, но некоторые из этих точек имеют другой радиус окружности. Они имеют дело с масштаб. Как работают точки интереса в общем смысле, мы разложим изображение на несколько масштабов. Мы проверяем процентные точки На каждой шкале, и мы объединяем все эти процентные точки вместе, чтобы создать конечный результат. Чем больше "круг",больше шкала состояла в том, что точка была обнаружена. Кроме того, есть линия, которая излучает от центра круга до край. Это и есть ориентация из ключевой точки, которую мы рассмотрим далее.
также я узнал, что у них ориентация, но я не мог понять, что на самом деле это. Это угол а между радиусом и что?
в основном, если вы хотите выявить точки, независимо от масштаба и направленности, когда они говорят о ориентация из ключевых точек, что они действительно означают, что они ищут пиксель окрестности это окружает ключевую точку и выясняет, как эта пиксельная окрестность ориентирована или в каком направлении этот патч ориентирован. Это зависит от того, на какую дескрипторную структуру вы смотрите, но общий jist заключается в обнаружении наиболее доминирующего ориентация углов градиента в патче. Это важно для соответствующего так что вы можете сопоставить точки вместе. Взгляните на первый рисунок у меня с двумя операторами - один вращается, а другой нет. Если вы посмотрите на некоторые из этих точек, как мы выясним, как одна точка совпадает с другой? Мы можем легко определить, что верхняя часть оператора в качестве точки интереса совпадает с повернутой версией, потому что мы смотрим на точки, которые surround ключевая точка и посмотреть, в какой ориентации все эти точки находятся... и оттуда, вот как вычисляется ориентация.
обычно, когда мы хотим обнаружить точки, мы просто взглянем на местах. Однако, если вы хотите матч ключевые точки между изображениями, то вам определенно нужно масштаб и ориентация, чтобы облегчить это.
надеюсь, что это помогает!
Я не так хорошо знаком с серфингом, но могу рассказать вам о SIFT, на котором основан серфинг. Я дал несколько заметок о серфинге в конце, но я не знаю всех деталей.
просеять стремится найти очень отличительные места (или точки) в изображении. Местоположения - это не только 2D-местоположения на изображении, но и местоположения в изображении масштаб пространства, что означает, что у них есть три координаты:x, y и масштаб. Процесс поиска ключевых точек SIFT:
- размытие и повторная выборка изображения с различной шириной размытия и частотой дискретизации для создания масштабного пространства
- использовать разница Гаусса метод обнаружения больших двоичных объектов в разных масштабах; центры больших двоичных объектов становятся нашими ключевыми точками в заданном x,y и масштаб
- назначить каждой ключевой точке ориентация путем вычисления гистограммы градиентных ориентаций для каждого пикселя в его окрестности и выбора ячейки ориентации с наибольшим количеством отсчетов
- назначьте каждой ключевой точке 128-мерный функция Vector на основе градиентных ориентаций пикселей в 16 локальных районах
Шаг 2 дает нам масштабную инвариантность, Шаг 3 дает нам инвариантность вращения, а Шаг 4 дает нам" отпечаток пальца", который может использоваться для идентификации ключевой точки. Вместе они могут использоваться для сопоставления вхождений одного и того же объекта в любой ориентации и масштабе на нескольких изображениях.
SURF стремится достичь тех же целей, что и SIFT, но использует некоторые умные трюки, чтобы увеличить скорость.
для обнаружения blob он использует определитель Гессиана метод. Доминирующая ориентация определяется путем изучения горизонтальных и вертикальных ответов на Харр вейвлеты. Дескриптор объекта аналогичен SIFT, рассматривая ориентации пикселей в 16 локальных окрестностях, но приводит к 64-мерному вектору.
SURF функции могут быть рассчитаны до 3 раз быстрее, чем просеять функции, но так же надежны в большинстве ситуаций.
Для справки:


Comments