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