宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

众所周知,图像匹配中最重要的步骤是特征点的提取。 因为特征点对的好坏直接影响匹配的结果; 我想熟悉CV的人也知道有很多特征点检测的运算符,本博客将学习其中的一个“orb运算符”。

ORB是基于oFAST和rbriefRotatedbrief )的运算符,因此被称为有序快速和旋转brief,简称为ORB。 ORB在很多情况下可以代替SIFT和SURF。 如果不想同时使用后者,可以选择使用ORB。 一般来说,在室外场景中,ORB可能比SIFT或SURF更好。 SIFT适用于涂鸦场景。

在前面的文章中已经学习了FAST,讨论了有方向的FAST的计算方法,在这篇文章中学习了rBRIEF,理解了这两者之后,ORB自然浮出水面。

1.rBRIEF

BRIEF中一般使用高斯平滑核进行模糊化,所以最后生成的描述符与均值和方差有一定的关系,可以从下图理解他们的关系。

这里,x轴表示到0.5为止距离;

初期,可以看到brief有0.5的平均值和很大的方差。 这是brief的优势之一。 steered BRIEF也是一样。 一般来说,较大的方差会产生不同的响应,因此可以更好地区分特征。其次,brief和steered BRIEF在数学上一起具有较大的方差意味着具有较大的特征值,包含的信息量也较多。 因此,方差的急剧下降意味着BRIEF特征信息的消失。 再看一张图,很清楚:

特征值急剧下降,信息大量丢失,可以看出基本上所有的信息都保留在前面的10个主要成分中

另一方面,如果binary tests彼此独立且相关性小,则他们每个test都会为结果做出贡献,不会浪费空间和时间。 那么,面对这种情况,该如何恢复丢失的信息呢? 或者如何恢复方差损失,降低binary tests之间的相关性呢?

方法如下。

-获取训练集:从PASCAL 2006数据集中提取300k个特征点,作为训练集;

-枚举所有可能的binary test。 如果将各patch的大小设为MxM 通常为31×31 ),在各patch中取出NxN )通常为5×5)的子窗口,则得到M-N ) M-N )的子窗口,存在binary tests

-对所有训练图像patch进行二进制测试;

-按照到平均值0.5的距离从大到小的顺序对足球小将的所有tests进行排序,生成关于tests的矢量t;

-将第一个test存储在结果向量r中,并从t中删除;

从-t中取出第2个test,与r的所有要素进行比较,计算2个向量之间的相关系数的绝对值,大于1个阈值thres时排除; 相反,保留在r

重复上述步骤,直到-r有256个test; 在小于256个test的情况下,考虑增大阈值进行操作;

很明显,该算法贪婪地搜索0.5均值附近所有不相关的tests,这是rBRIEF的主要思想; 由上图可知,rBRIEF有效地改善了steered BRIEF的色散损失及相关问题。 因为rBRIEF的特征值正在缓慢下降。

2.ORB

现在,您应该知道了什么是ORB。 它检测具有方向的fast和rBRIEF的组合,即具有方向的FAST keypoints,并使用这些points提取rBRIEF特征描述符。 它可以像sift和surf一样,用于检测特征点和计算特征点描述符。

快三稳赚10大技巧出NxN )通常为5×5)的子窗口,则得到M-N ) M-N )的子窗口,存在binary tests

-对所有训练图像patch进行二进制测试;

-按照到平均值0.5的距离从大到小的顺序对足球小将的所有tests进行排序,生成关于tests的矢量t;

-将第一个test存储在结果向量r中,并从t中删除;

从-t中取出第2个test,与r的所有要素进行比较,计算2个向量之间的相关系数的绝对值,大于1个阈值thres时排除; 相反,保留在r

重复上述步骤,直到-r有256个test; 在小于256个test的情况下,考虑增大阈值进行操作;

很明显,该算法贪婪地搜索0.5均值附近所有不相关的tests,这是rBRIEF的主要思想; 由上图可知,rBRIEF有效地改善了steered BRIEF的色散损失及相关问题。 因为rBRIEF的特征值正在缓慢下降。

2.ORB

现在,您应该知道了什么是ORB。 它检测具有方向的fast和rBRIEF的组合,即具有方向的FAST keypoints,并使用这些points提取rBRIEF特征描述符。 它可以像sift和surf一样,用于检测特征点和计算特征点描述符。