计算机视觉大型攻略 —— 特征与匹配(2)特征的变与不变

上一篇文章写了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角点使用了梯度,I_{x}^{'}=aI_{x} , I_{y}^{'}=aI_{y}。平移量b没有影响,但缩放量a会影响到梯度。

如上图,对比度不受影响,但是绝对值由于a变化的发生了变化。考虑到Harris角点算法使用了一个门槛过滤角点,因此会影响到Harris特征。所以说,Harris特征受到部分光强变化的影响

平移

由于Harris角点仅使用了梯度,M矩阵均由梯度构成,因此,Harris角点具有平移不变性

旋转

Harris角点M可以看做一个二次型。

                              \begin{bmatrix} u &v \end{bmatrix} M \begin{bmatrix} u\\v \end{bmatrix} = const

其中一个切面可以看做一个椭圆,

                              

\lambda _{1}, \lambda _{2}代表了长轴和短轴,R是旋转量。旋转变换可以看做该椭圆保持长短轴不变的旋转变化。如下图,

                                

C只和\lambda _{1}, \lambda _{2}有关,因此,Harris角点具有旋转不变性。更加准确的来说,应该是采用了高斯窗口的Harris角点才具备旋转不变性。

传送门:Harris角点

缩放

通常角点需要两个以上方向的梯度有明显变化,然而如上图,经过放大后,如果采用同样的窗口寻找角点,原来被认为Corner的区域,会被误认成很多Edge区域。Harris角点算法没有对这种情况做特殊处理,因此,不具备尺度不变性

剪切变换(Shearing)

如上文所说,Harris角点算法的M可以看做一个椭圆,剪切变换会改变特征值\lambda _{1}, \lambda _{2}。因此不具备剪切变换不变性。

尺度不变性算法

早期的[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=\sigma ^{2}(G_{xx}(x,y,\sigma)+G_{yy}(x,y,\sigma))

LoG先对图像做高斯滤波,再分别对x, y求偏导,最后将两个偏导数相加。不过通常在具体实现的时候,只需要卷积一个2-D LoG模板即可一步完成。

Difference of Gaussian(DoG)

类似的,[5]SIFT采用DoG算子,求局部极值,获得角点。DoG算子获取不同标准差下的高斯变换的差。

DoG=G(x,y,k\sigma)-G(x,y,\sigma)

DoG无需计算导数,只需要计算高斯金字塔,是对LoG的一种近似。

Harris-Laplace

上面两种算法均与Harris无关。[4]在原始Harris算法的基础上,引入Harris-Laplace算法,使其具备尺度不变性。该算法首先在每一个Scale上计算Harris角点,然后通过LoG算子选择Scale。

仿射不变性算法

这一块过去接触的不多,只能大体写一写。

解决仿射不变性,首先需要选一个初始点P,P是局部光强的极值点。从P开始,沿射线方向扫描。同时定义函数f。当f到达极值值时,扫描结束。如此定义的区域,特征具有仿射不变性。该区域可以看做前面几种方法的高斯窗口。

如上图,如此定义的区域,可以使用椭圆形代表这个区域。

算法步骤

  1. 寻找局部光强极值点。
  2. 以该点作为起点,沿射线方向扫描,直到f到达极值。
  3. 将这些点连接,形成区域边界。
  4. 计算二阶几何矩,得到近似椭圆。
  5. 使用该椭圆表示这块区域。

这一类算法典型的就是MSER(Maximally Stable Extremal Regions.

 

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值