SLAM技术交流视觉slam与三维重建

ORB特征提取

2020-05-18  本文已影响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维度的二进制描述子

            

上一篇下一篇

猜你喜欢

热点阅读