ORB特征提取

作者: 低调小帅哥 | 来源:发表于2020-05-18 23:19 被阅读0次

    1. 创建图像金字塔,默认层数为8,比例因子为1.2

    2. 在金字塔每层中进行FAST-12检测

    图1,fast关键点检测

        1)记点P的像素值I_{P} ,圆周上的像素值I_{i} ,若\vert I_{P}-I_{i}   \vert >t,则称为满足条件。

        2)以点P为圆心构造一个半径为3的圆,检测1、9、5、13位置上的灰度值,如果四个位置上有3个或3个以上的的像素值都满足条件。则将P点作为候选点。

        3)将圆周上的其他点像素值与点P像素值比较,如果圆周上有连续12个点的像素值满足条件,则将P记为初选点。

    3. 对所有初选点进行非极大值抑制,进行二次筛选。

    4. 根据每个FAST角点的harris响应对角点排序,进行第三次筛选得到前N个关键点

    5. 对第4步得到的N个关键点计算方向

    灰度质心法:

        以每个关键为中心构建长宽都为31的图像块B

        定义图像块B上的矩:

                C_{mn}= \sum_{x,y\in B} x^m y^nI(x,y) ,其中m,n=\left\{ 0,1 \right\}

        图像块B的质心:

                O^{´}=(\frac{C_{10}}{C_{00}} ,\frac{C_{01}}{C_{00}} )

        方向角:

                \theta =arctan(\frac{C_{01}}{C_{10}} )

    图2.计算描述子的样本空间(共256对,只画出了一对)

    6. 计算步骤4得到的关键点的描述子

    定义函数:

                \tau(P,x,y)=
 \begin{matrix}
   1:Q(x)<Q(y)  \\
   0:Q(x)\geq Q(y) 
  \end{matrix}

                其中P为关键点,Q(x)为以x为中心,边长为5的窗口内的所有像素值的和,Q(y)              类似。

    选取256对样本x,y(如何选取?作者在公开数据集上做实验,得到样本空间):

                S=\left\{
 \begin{matrix}
   x_1 & ... & x_{256} \\
   y_1 & ... & y_{256} 
  \end{matrix}
  \right\}

                  其中S为根据实验得到的,是固定在关键点周围的采样空间(除非自己用其他数据重

                  新做实验或者改变获取采样空间的策略)

    对样本空间S加关键点的旋转角\theta ,得到最终的样本空间:

                  S_{\theta } =R_{\theta } S,其中R_{\theta } \theta 对应的旋转矩阵

                  R_{\theta } =\left[
 \begin{matrix}
   \cos \theta   & -\sin \theta   \\
   \sin \theta   & \cos \theta   
  \end{matrix}
  \right]

    对最终的样本空间S_{\theta } 上的每一对样本计算\tau (P,x,y)得到256维度的二进制描述子

                

    相关文章

      网友评论

        本文标题:ORB特征提取

        本文链接:https://www.haomeiwen.com/subject/xfmmohtx.html