Ответ 1
Это очень хорошие вопросы. Давайте рассмотрим каждую точку один за другим:
Мой вопрос в том, что на самом деле эти ключевые точки?
Ключевые точки - это то же самое, что и точки интереса. Это пространственные местоположения или точки на изображении, которые определяют, что интересно или что выделяется на изображении. Обнаружение точек интереса на самом деле представляет собой подмножество обнаружения BLOB- объектов, целью которого является поиск интересных областей или пространственных областей на изображении. Причина, по которой ключевые точки являются особыми, заключается в том, что независимо от того, как изображение изменяется... независимо от того, вращается ли оно, сжимается/расширяется, переводится (все это, между прочим, было бы аффинным преобразованием...) или подвержено искажениям ( проективное преобразование или гомография), вы должны быть в состоянии найти те же ключевые точки в этом измененном изображении при сравнении с исходным изображением. Вот пример из поста, который я написал недавно:
Источник: модуль 'У объекта нет атрибута' drawMatches 'opencv python
Изображение справа - это повернутая версия левого изображения. Я также показал только 10 лучших совпадений между двумя изображениями. Если вы посмотрите на 10 лучших матчей, то это те моменты, на которых мы, вероятно, хотели бы сосредоточиться, которые позволили бы нам вспомнить, о чем шла речь. Мы бы хотели сфокусироваться на лице оператора, а также на камере, штативе и некоторых интересных текстурах зданий на заднем плане. Вы видите, что эти же точки были найдены между двумя изображениями, и они были успешно сопоставлены.
Следовательно, от этого следует отказаться, так как эти точки на изображении интересны и должны быть найдены независимо от того, как изображение искажено.
Я понимаю, что они являются своего рода "достопримечательностями" изображения. Я также знаю, что они масштабно инвариантны, и я знаю, что они круговые.
Ты прав. Инвариант масштабирования означает, что независимо от того, как вы масштабируете изображение, вы все равно сможете найти эти точки.
Теперь мы углубимся в дескрипторную часть. Что делает различные ключевые точки между рамками путем вы охарактеризовали эти ключевые точки. Это то, что известно как дескрипторы. Каждая обнаруженная вами ключевая точка имеет связанный с ней дескриптор. Некоторые платформы только обнаруживают ключевые точки, в то время как другие платформы являются просто структурой описания, и они не обнаруживают точки. Есть также некоторые, которые делают оба - они обнаруживают и описывают ключевые точки. SIFT и SURF являются примерами структур, которые как обнаруживают, так и описывают ключевые точки.
Дескрипторы в первую очередь касаются как масштаба, так и ориентации ключевой точки. Ключевыми точками мы утвердили эту концепцию, но нам нужна часть дескриптора, если наша цель - попытаться сопоставить ключевые точки на разных изображениях. Теперь, что вы подразумеваете под "круговой"... это соответствует шкале, в которой была обнаружена точка. Возьмем, к примеру, это изображение, взятое из учебника по VLFeat Toolbox:
Вы видите, что любые точки, которые являются желтыми, являются точками интереса, но некоторые из этих точек имеют другой радиус окружности. Это касается масштаба. То, как точки интереса работают в общем смысле, состоит в том, что мы разлагаем изображение на несколько масштабов. Мы проверяем точки интереса в каждой шкале и объединяем все эти точки интереса вместе, чтобы создать окончательный результат. Чем больше "круг", тем больше масштаб, в котором была обнаружена точка. Кроме того, есть линия, которая излучает от центра круга к краю. Это ориентация ключевой точки, которую мы рассмотрим далее.
Также я узнал, что у них есть ориентация, но я не мог понять, что это на самом деле. Это угол, но между радиусом и чем-то?
В основном, если вы хотите обнаруживать ключевые точки независимо от масштаба и ориентации, когда они говорят об ориентации ключевых точек, они на самом деле имеют в виду, что они ищут пиксельную окрестность, которая окружает ключевую точку, и выясняют, как эта пиксельная окрестность ориентирована или в каком направлении этот патч ориентирован на. Это зависит от того, на какую структуру дескриптора вы смотрите, но общий шаг заключается в определении наиболее доминирующей ориентации углов градиента в патче. Это важно для сопоставления, чтобы вы могли сопоставлять ключевые точки вместе. Посмотрите на первую фигуру, которую я имею с двумя операторами - один повернут, а другой нет. Если вы посмотрите на некоторые из этих пунктов, как мы выясним, как одна точка совпадает с другой? Мы можем легко определить, что вершина оператора в качестве точки интереса совпадает с повернутой версией, потому что мы посмотрим на точки, которые окружают ключевую точку, и посмотрим, в какой ориентации находятся все эти точки... и оттуда, как ориентация вычисляется.
Обычно, когда мы хотим определить ключевые точки, мы просто смотрим на места. Однако, если вы хотите сопоставить ключевые точки между изображениями, вам определенно необходим масштаб и ориентация, чтобы облегчить это.
Надеюсь это поможет!