Я хотел бы задать несколько вопросов, на базе все той же статьи
https://habrahabr.ru/post/106302/Для начала определим окно (окрестность) ключевой точки, в котором будут рассмотрены градиенты. По сути, это будет окно, требуемое для свертки с гауссовым ядром, причем оно будет круглым и радиус размытия для этого ядра (sigma) равен 1.5*масштаб_ключевой_точки. Для гауссова ядра действует так называемое правило «трех сигм». Оно состоит в том, что значение гауссова ядра очень близко к нулю на расстоянии, превышающем 3*sigma. Таким образом, радиус окна определяется как [3*sigma].
Направление ключевой точки найдем из гистограммы направлений O. Гистограмма состоит из 36 компонент, которые равномерно покрывают промежуток в 360 градусов, и формируется она следующим образом: каждая точка окна (x, y) вносит вклад, равный m*G(x, y, sigma), в ту компоненту гистограммы, которая покрывает промежуток, содержащий направление градиента theta(x, y).
То есть, если у меня Гауссом используется коэффициент 2, то на данном этапе я изучаю окрестность с радиусом 6? Или можно "произвольно" взять радиус, например 4?
И насчет вклада, как я понял, m это величина градиента и ее надо домножить на значение экстремума в этой точке? То есть возможно домножение на 0?
Направление ключевой точки лежит в промежутке, покрываемом максимальной компонентой гистограммы. Значения максимальной компоненты (max) и двух соседних с ней интерполируются параболой, и точка максимума этой параболы берётся в качестве направления ключевой точки. Если в гистограмме есть ещё компоненты с величинами не меньше 0.8*max, то они аналогично интерполируются и дополнительные направления приписываются ключевой точке.
Зачем приписываются дополнительные направление(если таковые есть), если при построении дескриптора мы повернем точку и окружение на угол равный основному направлению?
Здесь схематично показана часть изображения (слева) и (справа) полученный на её основе дескриптор. Для начала посмотрим налево. Здесь вы можете видеть пиксели, обозначенные маленькими квадратиками. Эти пиксели берутся из квадратного окна дескриптора, которое в свою очередь поделено ещё на четыре равных части (дальше будем называть их регионами). Маленькая стрелочка, в центре каждого пикселя обозначает градиент этого пикселя. Интересно то, что центр этого окна находится между пикселями. Его надо выбирать как можно ближе к точным координатам ключевой точки. Последняя деталь, которую можно увидеть — это круг, обозначающий окно свертки с гауссовым ядром (аналогично окну для вычисления направления ключевой точки). Для этого ядра определяется sigma, равное половине ширины окна дескриптора. В дальнейшем значение каждой точки окна дескриптора будет домножаться на значение гауссова ядра в этой точке, как на весовой коэффициент.
Какой брать радиус исследования, опять 3*сигма? Или можно как там на изображении по 4? Значение гауссова ядра в этой точке - что именно имеется ввиду, экстремум?
Дескриптор ключевой точки состоит из всех полученных гистограмм. Как уже было сказано размерность дескриптора на рисунке 32 компоненты (2x2x8), но на практике используются дескрипторы размерности 128 компонент (4x4x8).
Полученный дескриптор нормализуется, после чего все его компоненты, значение которых больше 0.2, урезаются до значения 0.2 и затем дескриптор нормализуется ещё раз. В таком виде дескрипторы готовы к использованию.
То есть как итог, дескриптор для точки - это массив из 32 значение, где 4 "региона", в которых определено 8 направлений? Но что в таких случаях делать с точками у края изображения, они не рассматриваются(у них же такие окрестности будут урезаны)?
Нормализация - как для векторов? Деление на корень из суммы квадратов всех 32 значений?