局部不变特征与尺度空间理论
局部不变性:尺度不变性与旋转不变性。
尺度不变性:人类在识别一个物体时,不管这个物体或远或近,都能对它进行正确的辨认,这就是所谓的尺度不变性。
尺度空间理论经常与生物视觉关联,有人也称图像局部不变性特征为基于生物视觉的不变性方法。
旋转不变性:当这个物体发生旋转时,我们照样可以正确地辨认它,这就是所谓的旋转不变性。
一、局部不变特征
全局特征:从整个图像中抽取的特征。较多的运用在图像检索领域,如图像颜色直方图。
局部特征:从图像的局部区域中抽取的特征,而这个局部区域往往是图像中的一个像素及它周围的邻域。
一种好的局部特征应该具有下面的特性:
1)可重复性:同一个物体在不同时间,不同角度拍到图像中,检测到的特征对应的越多越好。
2)独特性:特征在该物体上表现为独特性,能与场景下其他物体区分。
3)局部性:特征往旆是物体某个局部的特点,这样才可以避免遮挡时不能匹配的问题。
4)数量性:检测到的特征数目一定要多,密集度最好能在一定程度上反映图像的内容。
5)准确性:得到的特征应该能被精确定位,能够精确到像素。
6)高效性:特征检测算法运算要快。
二、图像尺度空间理论
当用一个机器视觉系统分析未知场景时,计算机没有办法预先知识图像中物体尺度,因此,我们需要同时考虑图像在多尺度下的描述,获知感兴趣物体的最佳尺度。
所以在很多时候,我们会在将图像构建为一系列不同尺度的图像集,在不同的尺度中去检测我们感兴趣的特征。
2.1 金字塔分辨率
图像金字塔化的一般步骤:首先,图像经过一个低通滤波器进行平滑(这个步骤会使图像变模糊,好像模仿人的视觉中远处的物体没有近处的清晰的原理),然后,对这个平滑后的图像进行抽样(一般抽样比例在水平和竖直方向上都为1/2),从而得到一系列的缩小的图像。
Mat image = imread("../cat.png"); Mat kernel = getGaussianKernel(3, 0.5);// 3*3的 方差为2高斯核 Mat pyrImage; filter2D(image, pyrImage, image.depth(), kernel); resize(pyrImage, pyrImage, Size(),0.5,0.5);
图像的金字塔化能高效地(计算效率也较高)对图像进行多尺度的表达,但它缺乏坚实的理论基础,不能分析图像中物体的各种尺度。
信号的尺度空间刚提出是就是通过一系列单参数、宽度递增的高斯滤波器将原始信号滤波得到到组低频信号。那么一个很明显的疑问是:除了高斯滤波之外,其他带有参数t的低通滤波器是否也可以用来生成一个尺度空间。
后来Koenerink、Lindeberg[Scale-space theory in computer vision]、Florack等人用精确的数学形式通过不同的途径都证明了高斯核是实现尺度变换的唯一变换核。
使用高斯滤波器对图像进行尺度空间金塔塔图的构建,让这个尺度空间具有下面的性质:
1)加权平均和有限孔径效应
信号在尺度t上的表达可以看成是原信号在空间上的一系列加权平均,权重就是具有不同尺度参数的高斯核。
信号在尺度t上的表达也对应于用一个无方向性的孔径函数(特征长度为$\sigma=\sqrt{t}$)来观测信号的结果。这时候信号中特征长度小于$\sigma$的精细结构会被抑制。
2)层叠平滑
$$g(\mu,\sigma_1)\ast g(\mu,\sigma_2)=g(\mu,\sigma_1+\sigma_2)$$
这个性质的意思就是说不同的高斯核对图像的平滑是连续的。
3)局部极值递性
这个特征可以从人眼的视觉原理去理解,人在看一件物体时,离得越远,物体的细节看到的越少,细节特征是在减少的。
高斯核对图像进行滤波具有压制局部细节的性质。
4)尺度伸缩不变性。
这里只是一个公式推导的问题,对原来的信号加一个变换函数,对变换后的信号再进行高斯核的尺度空间生成,新的信号的极值点等特征是不变的。
Young对经生理学的研究中发现,哺乳动物的视网膜和视觉皮层的感受区域可以很好地用4阶以内的高斯微分来建模。
2.2 尺度的选择
一般我们采集到的图像中,我们并不知道我们感兴趣的目标在图像中的尺度,在这样的情况下,我们对图像进行分析时就无法选择合适的参数,比如边缘检测,可能由于参数不当,而造成过多的局部细节。
在实际操作中,我们需要定义一个特征响应函数,在不同的尺度空间上寻找一个极值点。
需要注意的是,图像结构往往是在粗糙的尺度上被检测到,此时位置信息未必是最准确的,因此通常图像的尺度分析包含两个阶段:首先在粗尺度上进行特征(结构)检测,然后再在细尺度上进行精确定位。