1.构建尺度空间
图1.尺度空间与高斯差分其中:
阶(Octave)数:
每阶有效样本(Sample)数:
每阶总样本数:
高斯空间:每个Octave中的左半部分
高斯差分空间:每个Octave中的右半部分
2.关键点检测
图2.粗定位(左)与细定位(右)2.1:粗定位
对每个Octave中的有效高斯差分图(图1红色)中的每个点,在位置和尺度构成的三维空间中寻找极值(图2左)。
2.2:细定位
假设经过粗定位检测到的点为图二右侧绿色的点,如何将其进一步精确化呢?
假设绿色点为,红色点为,。
变量空间如下图:
图3.差分图(DoG)对应的变量空间设差分函数为,则:
一阶导数:
二阶导数:
根据二阶泰勒展开式得:
删除的点。
2.3:消除边缘响应
DoG在边缘处值较大,需要避免检测到边缘,记关键点处的海森矩阵为
(海森矩阵详细介绍见:https://www.jianshu.com/p/4cf554bfc058),保留满足公式
的关键点。
3.确定关键点方向
在以关键点为中心的8x8窗口内统计方向直方图,每隔10度算一个方向,总共36个bin,360度。
图4.确定主方向,注意左图每个箭头长度不一样计算公式如下:
窗口内每个点的方向为,方向对应的模长为,统计窗口内所有点得到图4右侧的图,选取
bin最大的作为主方向,如果有别的bin大于最大bin的百分之80,则也将那个bin对应的方向作
候选主方向。
4.生成描述子
将以关键点为中心的16x16图像窗口分成4x4=16个block,每个block统计梯度直方图。
图5.图像窗口划分block并计算每个block的梯度直方图将每个block对应的梯度直方图串联起来,形成128维特征向量,注意图4的颜色对应。
图6.将block对应的梯度直方图按顺序串联起来,形成特征向量归一化处理:特征向量模长为1且每个维度不大于0.2。
网友评论