该功能匹配已在许多领域中广泛使用,例如计算机视觉和模式识别。常见方法是将其分为两个阶段:
两个阶段特征匹配流水线的第一步是建立一组初始相应的关系。当时的方法包括比例不变特征变换(SIFT),加快稳健特征(冲浪),定向快速和旋转的简介(ORB)这些经典的特征媒人在效率和鲁棒性方面表现出良好的表现,并且在各个领域被广泛使用。
检测兴趣的SIFT框架首先需要检测兴趣点,称为:键盘。使用高斯滤波器在图像上进行不同的标准卷积,然后获得连续的高斯模糊图像之间的差异(图像差异:减少相应的像素值在削弱图像的类似部分的两个图像中,突出显示了图像的变化)Essencethe essencethe of Ghussians(Dog)的最大/最小值(dog)可用为键盘。sigma)$定义为:$ d(x,y,sigma)= l(x,y,k_isigma)-l(x,y,k_jsigma)$ l(x,x,y,ksigma)$对于原始图像$ i(x,y)$ a $ g(x,y,ksigma)$ curly的结果。,ksigma)*i(x,y)$ $
也就是说,在规模上,狗图的狗图$ k_isigma,k_jsigma $室是高斯在比例中模糊的高斯模糊图像之间的区别,$ k_isigma,k_jsigma $。
获得狗图后,将狗图像中的每个像素与相同比例的8个相邻像素和每个相邻尺度的9个相应的相邻像素进行比较。如果像素值是所有比较像素(或最小)中最大的,则将其用作候选者的关键点。
不必要的不必要点仅使用上述方法来生成太多的候选关键点,如下图所示,其中一些是不稳定的。主质量比(主曲线的比率)。
首先,每个候选关键点都使用附近数据的插值来准确确定其位置。插入计算使用高斯差异尺度空间函数的高斯尺度尺度空间函数,即$ d(x),y,sigma)$和候选键点作为Origin.taylor的扩展为:$ $ d(x)= d+frame {partial d} {partial x} x+frame {1} {2} x^tfrac {x^tfrac {部分} {partial x^2} x $ $
其中,$ d $及其指南是在候选关键点计算的,$ x =(x,y,sigma)^t $表示该点的偏移。
为了消除对比度低的关键点,在偏移$ hat {x} $的$ d(x)$的值中计算第二阶泰勒的值。如果小于0.03,它将放弃这一点。
狗的功能将沿边缘具有很强的响应,从而导致候选密钥点对少量噪声没有稳健性。因此,为了增加鲁棒性,不确定的关键点,但边缘响应很高。对于狗功能中定义较差的峰值,边缘的主要曲率将比边缘的主要曲率大得多。找到这些主要曲率相当于解决第二阶Hessian Matrix $ h $:
$ o h = left [begin {matrix} d {xx}&d {xy} d {xy}&d {yy} end end {matrix} ight] $ $
$ h $的特征值与$ d $的主要曲率成正比。美元r $如果大于$(r {tho {tho {tho {tho {tho {被认为是一个不确定的点,并消除了局势
在此步骤中,根据本地图像的梯度方向分配一个或多个方向。这是实现旋转不变性的关键步骤,因为关键点描述符可以由此方向表示,并且图像可以表示。旋转不变性。
对于高斯模糊图像$ l(x,y,sigma)$,Kepoint的规模$ sigma $使所有计算均以不变的比例执行。对于图像示例$ l(x,y)$ in accor $ sigma $,渐变$,渐变,渐变,梯度幅度(梯度幅度:梯度振幅是描述量表的局部变化率的标量)$ m(x,y)$和方向$ heta(x,y)$,使用像素差差预算:$ $ m(x,y)= sqrt {(l(x+1,y)-l(x -1,y)^2+l(x,y+1)-l(x,y -1)^2}heta(x,y)= atan2(l(x,y+1)-l(x,y -1),l(x+1,y)-l(x -1,y))$ $ $
计算高斯模糊图像L附近每个像素的梯度大小和方向,以形成36个箱方向的直方图,每个垃圾箱覆盖10度。
缺点筛查算法缺点
SIFT算法较慢,并且Surf是其加速版本。
使用高斯在筛分中找到比例空间,以近似Gaussian(log)的Laplacian(log)。Reduce计算并减少特征点的搜索时间。第二阶 - 阶microcompany hessian矩阵的等级(Hessian(DOH)的决定因素(DOH)可用于图像点检测(斑点检测的显着性和原理)
冲浪介绍
ORB是Orientd快速和旋转简短的缩写。ORB的诞生主要是因为SIFT和SURF在Time.orb中是免费的。在特征检测期间,Orb的性能与SIFT(比Surf更好)一样好,几乎是两个定量词。ORB基于快速关键点检测器和简短描述符。
快速(来自加速段测试的功能)关键点检测
但是,快速功能没有方向组件和多尺度功能。ORB算法使用多尺度图像金字塔。图像金字塔是单个图像的多尺度表示。它由图像序列组成。所有这些图像都是不同分辨率的图像版本。金字塔中的每个图层包含一个低样本图像,而不是上一层。通过检测每一层的关键点,ORB算法可以有效地定位不同标准的关键点,以便该算法以便本地规模是看不见的。
在关键点所在之后,您需要将方向分配到每个关键点,例如左或右,具体取决于密钥点周围的变化程度。为了检测强度的变化,ORB算法使用力量的中心。强度中心假设一个角点的强度从其中心转移,并且可以使用向量估算方向。定义一个补丁矩:$ $ m {pq} = sum {x,x,y} x^py^py^py^pi^pi(x,y)$ $
在这些时刻,我们可以找到Patch Master的中心,也就是说
$ $ c =(frac {m {10}} {m {00}},frac {m {01}}} {m {00})
我们可以从中心$ o $ to-oc $构造一个向量到中心到角的中心,然后将补丁的方向定义为:$ $ heta = atan2(m {01},m{10})$$
$ atan = tan^{ - 1} $,下图是以方向计算的示例:
一旦计算出斑块的方向,我们就可以将其旋转为常规旋转,然后计算描述符以获得一定的旋转不变性。
#简介(二进制鲁棒独立的基本功能)简介使用通过快速算法找到的所有关键点并将其转换为二进制特征向量,以便将对象一起表示。BinaryFeature Vectors也称为二进制功能描述符,仅包含1个。和0特征向量。简而言之,每个关键点由由128-512位字符串组成的特征向量描述。
首先,使用高斯核平滑图像防止描述符对高频噪声敏感。在像素周围定义的相邻域称为斑块,这是像素的宽度和高度正方形。随机对的第一个像素来自与Sigma一致的关键点的高斯分布。随机对的第二像素来自以第一个像素为中心的高斯分布,其标准差异或标准偏差为2.,如果第一个像素,则比第二像素更明亮,它将给出相应的位值1,否则为0。
再次选择一个随机对并为它们分配一个值。对于128个位置向量,它只需重复此过程128次,以使一个关键点旋转,因此Orb使用rbrief(旋转 - 意识到的简介)。
对于平滑的图像补丁P.A二进制测试$ AU $定义为:
$ p(x)$表示$ x $点$ p $的强度。该功能定义为$ n $二进制测试值的向量:
$ $ f(n)= sum_ {1 <n} 2^{i-1} au(p; x_i,y_i)$ $ $
当飞机旋转超过几个度时,简短的匹配性能急剧降低。orb提出了一种在关键点方向上控制简介的方法。对于特征$ n $ n $二进制测试值,位置$(x_i,y_i)$,我们需要一个2xn矩阵:
使用补丁方向$ heta $及其相应的旋转矩阵$ r heta $,并构建$ s_ heta $:
$ s heta = r heta s $
然后简短的操作员变成:
然后将角度分离到2π/30(12度),并构造一个预期的简短图形搜索表。
原始:https://juejin.cn/post/7096826597449138207