特征点学习笔记 - SIFT

(2013-03-13 15:54:30)
   

最近在看一些特征点方面的文章,发现很多思路都来源于sift,所以决心回过头来把sift点温习一下,以便理解特征点构建的来龙去脉,下面是几个关键点。


一、尺度不变性:尺度不变性的根本原因是,极值点在提取上是在尺度空间上提取的,极值点的描述又是在尺度空间上建立的,因此具有尺度不变性。

尺度空间的构成:尺度空间由两部分构成,一部分为高斯(Gaussian)图像空间,一部分为高斯差分(DOG)图像空间,每一个Octave之间为如果为s层,则需要的Gassian图像数目为s+3。以s = 2为例子。在DOG空间中,每一个Octave由4副图像构成,极值点在中间的两幅图像产生(s = 2),上下两幅图像则是用来做极值点提取时的辅助图像(4副DOG图像)。而生成4副DOG图像则需要(2+3)副Gassian图像。


对于尺度不变性的理解:一个点,在距离远的时候是特征点,在距离近的时候因为纹理的逐渐的丰富,则不再是一个特征点,而变成了一块patch,如果把这一部分patch进行下采样,构建图像金字塔,则细节部分逐渐模糊,从而在某一层金字塔上具有和原来特征点相似的描述,这样就达到了匹配的结果。同样,当特征点的距离逐渐变远时,由于原来点的描述就是建立在多层的图像金字塔上的,因此在原来的特征点的金字塔中同样也可以找到相似的描述,这就是所说的尺度不变性。一句话概括,对于同一个特征来说,如果你把原始点和待匹配的点的描述都建成一个连续的无穷深的金字塔,总会有两组金字塔中的纹理是相似的,当然在现实中,只选取2-3个Octave也就可以了。


二、旋转不变性:旋转不变的主要原因是特征点被指定了主方向,然后通过这个主方向构建成了一个具有旋转不变描述。

所使用的图像:在统计patch中每一个像素点方向的时候,是在距离当前当前极值点最近的(因为金字塔是离散的,因此这里使用“最近的”这个严格的表达方式)一个sigma图层上统计的,也就是极值点所在的DOG图像(对应sigma)所对应的Gassian图像。

主方向的计算:对于每一个象素点,旋转方向为y轴梯度和x轴梯度比值的反正切函数,梯度的2范数作为其幅值。把[0,2pi]分为36个bin,然后统计角度直方图。需要注意的两点是:第一,这个直方图统计的不是落入某一个bin里面的方向的数目,而是每个方向乘以幅度后的值。第二,幅度是经过高斯加权后的值,这主要出于下面的考虑,距离特征点近的象素应该对于特征点的方向影响更大,而距离较远的应该影响小一些,这个加权函数是1.5*sigma的高斯函数。这样得到直方图后,找到极值点所对应的角度,即为主方向。当然可能会统计出多个接近的主方向,实验表明,这样的点只占15%左右,因此多数情况下是直接将这样的点去掉的。


构建具有旋转不变性的描述:计算出主方向后,则需要将特征点周围的方向全部旋转一个主方向的角度,这样相当于将patch转正,主方向为x轴。此后,把patch周围的象素点分为4*4个bin,然后在每一个bin中统计8个方向的梯度强度的直方图,因此一共有4*4*8 = 128维的信息。由于所有的点的描述都是在主方向为0度的情况下建立的,因此就构成了一个具备旋转不变的描述。这也就相当于每来一个特征点,都把它所在的patch转正后再匹配,因此无论一个点的怎么旋转,匹配都是在转正后的patch上匹配的,此匹配与旋转无关,这就是旋转不变的原因。


三、光照不变性:Sift点也具有一定的光照不变性,这个原因主要是在均匀光照下,象素之间的梯度是不会改变的,因此光照的变换不会影响描述的建立。但是当光照是非均匀,出现阴影或者高光的情况下,光照不变性则要大打折扣。在图像层面上,并没有严格的光照不变的特征,谁让图像本身是记录的是光度信息呢。


四、极值点的提取:一个函数二阶导的极值点就是函数的极值点,LOG图像实际上为图像的二阶导。DOG是LOG的近似,因此在DOG图像上找极值点就相当于找到原来图像上的极值点。


提取极值点:极值点是DOG图像空间上相邻的三层图像来决定的,实际上相当于在一个3*3*3的立方体中(1+8+9+9 = 27个象素)寻找极大值或者极小值,这样提取的极值点只是近似值,原因是DOG空间是离散的。有个这个近似值,就可以通过子像元差值的方法(泰勒展开,求极值)来得到一个精炼后的极值点位置以及其数值。


极值点的精炼:精炼后的极值点坐标如果相对于差值中心点(初始值)距离超过0.5个象素,说明这个值已经偏移到了邻近象素,也就是差值函数过于平滑,这个极值点不稳定,则删除;如果极值点的数值小于0.03的时候,说明这个极值和周围的区分度并不大,也删除。


边缘点的删除:边缘点的判断是根据极值点邻域的曲率来判断的,曲率大的时候,则是边缘点的可能性较小,反之,则较大。曲率可以使用Hessian矩阵特征值之间的比率来计算。这个和Harris点是一样的。Lowe在论文中将这个曲率的比率设置为10,大于10则删除,反之,则保留。

### 回答1: 张正友标定法是一种相机标定方法,可以用于确定相机内部参数和外部参数。该方法基于相机成像原理,通过拍摄不同角度的标定板图像,利用图像特征点计算相机的内部参数和外部参数。该方法具有精度高、适用范围广等优点,被广泛应用于机器视觉、三维重建等领域。 该方法的具体步骤包括:选择标定板、拍摄标定板图像、提取图像特征点、计算相机内部参数和外部参数。其,选择标定板需要考虑标定板的大小、形状、特征点数量等因素;拍摄标定板图像需要保证标定板在不同角度下都能被完整拍摄到;提取图像特征点需要使用特征点检测算法,如SIFT、SURF等;计算相机内部参数和外部参数需要使用张正友标定法的数学模型,通过最小化重投影误差来求解。 在实际应用,张正友标定法需要注意以下几点:标定板需要保持平整,避免出现弯曲、扭曲等情况;标定板需要在不同角度下拍摄多张图像,以提高标定精度;标定板需要在光线充足、均匀的环境下进行拍摄,避免光线不足或过强导致标定精度下降。 总之,张正友标定法是一种重要的相机标定方法,掌握该方法对于机器视觉、三维重建等领域的研究具有重要意义。 ### 回答2: 张正友标定法是用于相机投影模型标定的一种方法,其原理是在一组已知物点与其图像坐标的情况下,通过求解相机内参矩阵和外参矩阵,从而得出相机的几何参数,可用于后续的相机运动估计和三维重建。 首先,需要准备一组已知的物点和其对应的图像坐标。物点最好组成一个三维坐标系,如在测量机通过三维测量得到。接下来,通过张正友标定法求解相机的内参矩阵。内参矩阵包括了相机的焦距、像素尺寸、主点位置等参数,这些参数决定了像素坐标与实际物理坐标之间的转换关系。通过一些数学推导,可以得到内参矩阵的表达式,并且可以通过已知的物点和相应的图像坐标求解出内参矩阵。 接下来,需要求解相机的外参矩阵,即相机坐标系相对于物点坐标系的位姿关系。通过张正友标定法,可以得到物点在相机坐标系下的坐标,从而求解出相机的外参矩阵。外参矩阵包括了相机的旋转矩阵和平移向量,这些参数描述了相机在物点坐标系下的位姿。 最后,通过内参矩阵和外参矩阵,可以将相机坐标系下的物点坐标转换成像素坐标,从而可用于后续的三维重建和相机运动估计。需要注意的是,在实际应用,因为测量误差和噪声的存在,标定误差会影响到后续的应用效果,所以需要对标定结果进行一定的误差分析和修正。 总而言之,张正友标定法是一种基于已知物点和其图像坐标的相机标定方法,通过求解相机的内参矩阵和外参矩阵,可得到相机的几何参数,进而实现三维重建和相机运动估计等应用,具有广泛的应用价值。 ### 回答3: 张正友标定法是一种常用的摄像机标定方法,它的主要思想是通过成像偏移量和焦距的测量来确定相机的内参矩阵和外参矩阵,从而实现对摄像机的校准。张正友标定法的流程主要分为以下几个步骤。 第一步,数据采集。采集一组已知尺寸的平面图案,例如棋盘格,同时记录下相机对图案的姿态(位置和姿态),姿态可以通过用相机拍摄不同姿态下的图案来得到。 第二步,提取图案角点。使用角点检测算法,例如Harris角点检测、SIFT角点检测等,从图像提取出每个格子的四个角点。 第三步,计算图像坐标。对于每个角点,根据相机的内参矩阵和外参矩阵,可以计算出其在图像的坐标。 第四步,标定相机内部参数。利用上一步得到的图像坐标和对应的实际坐标,使用最小二乘法等求解相机的内参矩阵。 第五步,标定相机外部参数。同样利用上一步得到的图像坐标和对应的实际坐标,使用求解PnP问题的算法可以得到相机的外参矩阵。 通过以上步骤,就可以获得相机的内参矩阵和外参矩阵,从而实现对摄像机的标定。在实际应用,可以将标定结果用于建立相机-世界坐标系之间的转换关系,进而实现摄像机与物体的三维空间定位和跟踪等应用。 总之,张正友标定法是一种基于对摄像机成像原理的理解和应用的标定方法,是计算机视觉和机器视觉领域常用的技术之一,也是深度学习等领域的前置步骤。掌握该方法的原理和实现技巧,对于进一步深入了解计算机视觉和机器视觉技术体系,以及开展实际应用有着重要的意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值