匹配算法,角点介绍

https://www.zhangshengrong.com/p/wrad8o2EaB/

  • Harris角点

以一点为中心,画一个窗口,让该窗口在该点周围移动,看灰度值是否有变化,有变化证明是角点,该cost可以表达为 𝑐(𝑥,𝑦;Δ𝑥,Δ𝑦)≈𝐴Δ𝑥^2+2𝐶Δ𝑥Δ𝑦+𝐵Δ𝑦^2,2次函数可以看作是椭圆,因此可以利用椭圆的性质判断是否是角点

[Δ𝑥,Δ𝑦]𝑀(𝑥,𝑦)[Δ𝑥Δ𝑦]^T=1,问题就转化为判断M矩阵的2个特征向量,这2个特征向量代表椭圆的两个半轴的长度,可以根据这两个特征值的大小关系,判断这个点是否是角点。在实际应用中,为了变成方便,定义了一个相应函数,该函数只与特征值有关,通过该相应函数的大小来判断是否为角点。
优点:对光照和对比度变化不敏感
缺点:无尺度不变性
1.Harris资料1
2.Harris资料2

  • SIFT角点

1.对图像进行不同尺度gauss卷积,得到不同模糊程度的图层;对倒数第二张图层进行降采样,再重复同样的不同尺度的gauss卷积模糊,这样就可以得到多组不同分辨率的图层,每组内的图层都有不同的gauss模糊,这就是Gauss金字塔
2.对每组内的相邻尺度图层进行相减,得到DOG金字塔
3.每组内的图层的一个点,进行与本图层8个点和上下两个相邻图层的18个共26个点进行比较,获得极值点,即DOG域的极值点检测
4.对每个极值点进行精确定位,就是对其位置进行微调,原理是在位置(X,Y)空间域内进行泰勒展开,求导等于0,获得原极值点的偏差
5.找到极值点后,然后去除不稳定的极值点,不稳定极值点一般出现在边缘,而边缘的主曲率比较大,利用这个特点可以去除不稳定极值点,具体方法为求该点的Hessian矩阵,去除Hessian行列式为负的点和曲率大的点,实际计算时是判断Hessian矩阵两个特征值的关系,即\frac{Tr(H)^{2}}{Det(H)}<\frac{(r_{0}+1)^{2}}{r_{0}},其中Tr(H)=\alpha +\beta ,Det(H)=\alpha \beta ,\alpha =\gamma \beta\alpha ,\beta是Hessian矩阵的两个特征值,其实和Harris中判断特征值的方法底层原理一样,因为特征值代表着该点的曲率,其中一个特征值越大,代表某一个方向上曲率越大,也就是边缘的概率越大。
6.接着需要给该极值点赋值一个方向,方法为采集该点所在gauss金字塔层周围像素的梯度和方向,然后将周围的像素的梯度和方向进行统计,找出最大值和次大值,并记录最大值和次大值的方向,至此特征点就有了位置,尺度,方向三个属性
7.接着就统计该特征点周围的梯度,共128个值作为该特征点的描述子,在统计时,需要考虑到该特征点的方向,也就是以主方向为基础,选择周围的矩形区域内像素,统计梯度作为描述子。这样特征点就获得结束了。
优点:旋转不变性,较鲁邦
缺点:实时性不高,特征点少
1.SIFT特征点资料1
2.SIFT特征点资料2
3.SIFT特征点资料3

  • SURF角点

SURF是对SIFT的加速,因此其流程和SIFT类似

1.该步骤对应SIFT的1和2步,与SIFT类似得到金字塔,不同的是通过Hessian矩阵行列式图像得到金字塔,Hessian矩阵的行列式可以通过Gauss卷积核的二阶偏导数卷积原图像,再行列式计算得到,Gauss卷积核的二阶偏导数有3个Gxx,Gxy,Gyy,它们进一步简化成盒式滤波器,该滤波器卷积时可以利用积分图加速,在计算行列式时,原本应该时Lxx*Lyy-Lxy^2变成了Lxx*Lyy-(0.9*Lxy)^2,其中0.9系数就是为了弥补简化盒造成的误差,另外在生成金字塔时,不同组间盒式滤波器尺寸不同,避免了下采样图像的时间,同一组内不同层模糊尺度不同。
2.对应SIFT3和5步,类似SIFT,只是不需要再考虑边缘问题,因为1步的Hessian已经考虑到了
3.对应SIFT的6,需要给特征点赋一个方向,不同的是,SURF的方法是统计特征点周围像素的Haar小波(就是梯度)的响应值(gauss加权)和方向,找最大值和方向
4.对应SIFT的7,描述子也是类似SIFT,不同的是,SURF统计的是周围像素的Haar值,每个像素4个值Σdx、Σ|dx|、Σdy、Σ|dy|,最终描述子维度为4x4x4个值
1.SURF特征点资料1
2.SURF特征点资料2
3.SURF特征点资料3

  • FAST角点

本质就是查找周围一圈像素和自己的灰度值的差别,如果有3/4都连续大于或小于自己的像素,则认为是角点(实际中为了加速,一般先判断4个垂直方向上的至少3个点与自己差别大就作为候选点,然后再判断是否连续12(也有用9个的)个点满足大于或者小于自己),然后做一个最大值抑制,即在一个3x3(5x5)的临域内保留响应值最大的角点,响应值为那一圈16个像素与自己灰度值的差的绝对值之和。

  • ORB角点

ORB角点的本质是对SIFT的简化,利用SIFT的思路,把各个步骤简化而设计的角点

1.生成图像的金字塔,类似SIFT,只是更简单,每个分辨率只有一层图像
2.首先利用Fast角点检测的方法检测初始的角点
3.然后利用Harris的响应值的方法,进一步筛选最大的N个角点,当然这一步也可以去掉
4.给检测到的角点进行赋值一个方向,方向取本身和质心连线向量的方向,质心的本质是周围像素灰度值的平均值所在的位置(质心哪个地方亮就向哪个地方移动),有具体的计算公式
5.在角点周围SxS(31x31)区域内,随机选取N(默认为256)个点对,把坐标安步骤4计算的方向旋转,然后每个点对比较灰度值生成N位长的向量(大于取1,小于取0)这里实际在操作的时候,因为旋转的原因造成256维的向量在匹配的时候可区分性较低(相似性较高),因此采取了特别的方法,即建立了300k个特征点的数据集,然后每个特征点选择SxS(31x31)临域内生成M(C_{N}^{2},N=(31-5+1)*(31-5+1),5是小patch的大小)个点对,从这M个中挑选可区分性最大的256个点对作为最终的编码,这里300k特征点我不是理解,不懂什么东西。
1.ORB特征点资料1
2.ORB特征点资料2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值