上一篇文章写了Harris角点。这篇文章以Harris角点为基础,进一步分析角点特征。讨论特征不变性,或者说可重复性。
本文参考书籍:Computer Vision: Algorithms and Applications, Richard Szeliski
所谓的变与不变,指的是同一特征,如果图像的光强发生了变化,或者对其进行仿射变换,该特征是否还能保持稳定(不变)。只有稳定(不变)的特征才能在不同的图像中对其做匹配。
参考文献
[1] Obstacle Avoidance and Navigation in the Real World by aSeeing Robot Rover
[2] A COMBINED CORNER AND EDGE DETECTOR
[3] Evaluation of Interest Point Detectors
[4] Indexing based on scale invariant interest points
[5] Distinctive Image Features from Scale-Invariant Keypoints
[6] Feature Detection with Automatic Scale Selection
常见图像变换
特征检测和匹配算法需要特征满足至少两个特点:可区分性,可重复性。关于特征的可区分性,独特性在Harris角点一文中做了说明。这一章重点讨论特征的可重复性。以上图为例,左图与右图的光强发生了明显变化,右图跟角度有一定角度程度上的旋转。特征匹配算法要求在这种情况下,角点的位置仍然保持稳定,角点的特征仍然能够被检测到。
常见的图像变换包括仿射变换和光强变化。
光强变化
旋转平移
缩放
剪切
Harris角点特性
从Harris角点看图像变换对特征的影响。
光强变化
假设光强变化是一种仿射变换,即
Harris角点使用了梯度, ,
。平移量b没有影响,但缩放量a会影响到梯度。
如上图,对比度不受影响,但是绝对值由于a变化的发生了变化。考虑到Harris角点算法使用了一个门槛过滤角点,因此会影响到Harris特征。所以说,Harris特征受到部分光强变化的影响。
平移
由于Harris角点仅使用了梯度,M矩阵均由梯度构成,因此,Harris角点具有平移不变性。
旋转
Harris角点M可以看做一个二次型。
其中一个切面可以看做一个椭圆,
代表了长轴和短轴,R是旋转量。旋转变换可以看做该椭圆保持长短轴不变的旋转变化。如下图,
C只和有关,因此,Harris角点具有旋转不变性。更加准确的来说,应该是采用了高斯窗口的Harris角点才具备旋转不变性。
传送门:Harris角点
缩放
通常角点需要两个以上方向的梯度有明显变化,然而如上图,经过放大后,如果采用同样的窗口寻找角点,原来被认为Corner的区域,会被误认成很多Edge区域。Harris角点算法没有对这种情况做特殊处理,因此,不具备尺度不变性。
剪切变换(Shearing)
如上文所说,Harris角点算法的M可以看做一个椭圆,剪切变换会改变特征值。因此不具备剪切变换不变性。
尺度不变性算法
早期的[2]Harris88并不具备尺度不变性,后续又提出了很多改善尺度不变性的算法。
问题定义
解决尺度问题,就是要解决上图所描述的问题,
- 如何在两张图中分别找到合适的窗口大小。
- 如何定义响应函数f,使之作用在不同的窗口后,获得相同的值。
尺度选择算法—Auto scale selection
首先解决窗口大小的问题。[6]提出了Auto Scale Selection算法。 如上图所示,为像素点定义不同大小的窗口,并且通过f计算出Response。
在不同的图片上,都可以找到响应(Response)的极值点。该极值点对应的窗口,即为最合适的窗口。再归一到同一个固定的尺寸。
通常在算法实现时,并不会采用不同的窗口大小计算响应。而是采用同样大小的窗口,在图像高斯金字塔上计算。
接下来需要讨论响应函数f了。这个f需要在不同的窗口,确切的说要在不同的金字塔Scale上返回同样的值。即与Scale大小无关。
如下图所示,
其次,f还应该有一个稳定且容易找到的极值,如下图,
Laplacian of Gaussian(LoG)
[6]采用了Laplace-Gaussian算子, 将不同Scale的图像,归一化到同样大小。通过求局部极值,选取角点。由于LoG算子本身具有旋转不变性。所以LoG满足旋转和尺度不变性。
LoG先对图像做高斯滤波,再分别对x, y求偏导,最后将两个偏导数相加。不过通常在具体实现的时候,只需要卷积一个2-D LoG模板即可一步完成。
Difference of Gaussian(DoG)
类似的,[5]SIFT采用DoG算子,求局部极值,获得角点。DoG算子获取不同标准差下的高斯变换的差。
DoG无需计算导数,只需要计算高斯金字塔,是对LoG的一种近似。
Harris-Laplace
上面两种算法均与Harris无关。[4]在原始Harris算法的基础上,引入Harris-Laplace算法,使其具备尺度不变性。该算法首先在每一个Scale上计算Harris角点,然后通过LoG算子选择Scale。
仿射不变性算法
这一块过去接触的不多,只能大体写一写。
解决仿射不变性,首先需要选一个初始点P,P是局部光强的极值点。从P开始,沿射线方向扫描。同时定义函数f。当f到达极值值时,扫描结束。如此定义的区域,特征具有仿射不变性。该区域可以看做前面几种方法的高斯窗口。
如上图,如此定义的区域,可以使用椭圆形代表这个区域。
算法步骤
- 寻找局部光强极值点。
- 以该点作为起点,沿射线方向扫描,直到f到达极值。
- 将这些点连接,形成区域边界。
- 计算二阶几何矩,得到近似椭圆。
- 使用该椭圆表示这块区域。
这一类算法典型的就是MSER(Maximally Stable Extremal Regions.