3D点云处理:点云粗配准(Fast PPF)

文章目录

  • 0. 效果
  • 1. 论文基本内容
    • 1.1 Model Description
    • 1.2 Voting Scheme
    • 1.3 Pose Verification
      • 1.3.1 Compute Pose Candidates
      • 1.3.2 Pose Verification
      • 1.3.3 Multiple Selection
  • 2. 参考

0. 效果

3D点云处理:点云粗配准(Fast PPF)_第1张图片
节拍和效果也有待改进

1. 论文基本内容

3D点云处理:点云粗配准(Fast PPF)_第2张图片
  • PPF主要内容:整体建模,局部匹配;
  • 离线创建模板,在线实现模板与场景匹配;

1.1 Model Description

3D点云处理:点云粗配准(Fast PPF)_第3张图片
  • 场景点云(scene)和模板点云(model),并且已计算每个点的法向量;
    • s i ∈ S s_{i}\in S siS 场景中的点;
    • m i ∈ M m_{i}\in M miM 模板中的点;
  1. Point Pair Feature
    PPF方法是定义一个点对特征(Point Pair Featre)描述两个有向点的相对位置和方向。
    假定一个点对为 m 1 m_{1} m1 m 2 m_{2} m2,法向量为 n 1 n_{1} n1 n 2 n_{2} n2,并且两个点之间的向量为: d = m 2 − m 1 d = m_{2}-m_{1} d=m2m1,则可定义点对之间的特征F(如 Figure2.(a) 所示):
    ∠ ( a , b ) ∠(a,b) (a,b)表示向量之间的角度,范围在 [ 0 , 180 ] [0,180] [0,180];且F特征是非对称。使用F创建Global Model Description。

  2. Global Model Descripition
    离线构建Global Model Description。

    • 计算Model所有点对的特征F: m i , m j ∈ M m_i,m_j\in M mi,mjM,其中 d 和 a n g l e d 和 angle dangle进行降采样,降采样步长:距离步长 d d i s t d_{dist} ddist,角度步长 d a n g l e = 2 ∗ P I / n a n g l e d_{angle}=2*PI/n_{angle} dangle=2PI/nangle。目的是后续作为键在场景中查找对应的点对时可找到相同的键信息。
    • 构建哈希表(hash table),将具有相同 feature vector 的 point pair 放在一起,即哈希表的键(key )为F,值(value)为具有相同特征矢量的点对集 ,如 Figure2.(b) 所示。

1.2 Voting Scheme

  1. Local Coordinates
  • 从 scene 中选取任意一个reference point( s r ∈ S s_r\in S srS),假设在物体的表面上,若假设正确,则在 model 存在一个点 m r ∈ M m_r\in M mrM s r s_r sr对应;
  • 将配准后的两个点的位置和法向量对齐,之后让 model 绕 s r s_r sr的法向轴转动一定角度与 scene 配准;
  • 因此,从 model space 到 scene space 的刚体变换可以由 model 中的一点和转动角度 α α α来描述。将 ( m r , α ) (m_r,α) (mr,α)定义为 model 相对于参考点 s r s_r sr的Local Coordinates 。
          具体变换如下图:
    3D点云处理:点云粗配准(Fast PPF)_第4张图片
  1. Voting Scheme
          找到最优的 local coordinates 使得 scene 中落在 model 表面的点最多,即可求出物体 pose。
          通过投票机制实现,定义一个二维的 accumulator array,行(rows)数 N m N_m Nm 为 model 采样点 ∣ M ∣ |M| M的个数,列(columns)数 N n N_n Nn 为按采样步长 n a n g l e n_{angle} nangle的旋转角 α α α的个数。
    实现过程如下:
    3D点云处理:点云粗配准(Fast PPF)_第5张图片
    3D点云处理:点云粗配准(Fast PPF)_第6张图片3. Efficient Voting Loop
    3D点云处理:点云粗配准(Fast PPF)_第7张图片

1.3 Pose Verification

1.3.1 Compute Pose Candidates

按照原始的PPF算法框架计算可能的Poses,并只计算20%的场景点(这部分应该是基于测试发现20%的点足以计算原始的位姿,并可提速),只取前 N p N_p Np个local coordinates;

1.3.2 Pose Verification

  1. 将场景点云分割成小立方体素(small cubic voxels)边长( cubic length) = L v o x e l L_{voxel} Lvoxel;
  2. 计算 V o x e l ( s i ) V_{oxel}(s_i) Voxel(si) V o x e l ( s i ) V_{oxel}(s_i) Voxel(si)表示场景点云 s i s_i si所在的立方体素;
    • V o x e l ( s i ) V_{oxel}(s_i) Voxel(si)的计算方法:
    • 3D点云处理:点云粗配准(Fast PPF)_第8张图片
  3. 将创建的立方体素的值置为-1,表明在该立方体素中没有场景点;
  4. 通过公式3计算每一个场景点 s i s_i si所在的立方体素,并将其和邻域的立方体素设置为 i i i;
  5. 验证计算的位姿 P k P_k Pk,将模板点通过位姿 P k P_k Pk变换到场景点云中,对于每一个变换后的模板点 m i m_i mi,如果 V o x e l ( m i ) V_{oxel}(m_i) Voxel(mi)不等于-1,则意味着在 m i m_i mi附件存在一个场景点,该模板点作为一个待拟合点,如Fig.23D点云处理:点云粗配准(Fast PPF)_第9张图片
  6. 计算分数
    • 分数 S c o r e ( P k ) S_{core}(P_k) Score(Pk)是被拟合模板点的点数之和,该方法的鲁棒性和速度都是比较好的,但是对于多个物体的检测并不是非常有效;
    • 分数计算过程
      • 对于每一个场景点 s i s_i si都被初始化到一个二进制中: E x i s t ( s i ) = 1 E_{xist}(s_i) =1 Exist(si)=1;
      • 对于每一个 P k P_k Pk,一个场景点集 S S ( P k ) SS(P_k) SS(Pk)被初始化为存储每一个拟合模板点对应的场景点;也就是通过变换位姿将模板点变换到场景点中,把对应的场景点存储到 S S ( P k ) SS(P_k) SS(Pk)中;
      • S c o r e ( P k ) S_{core}(P_k) Score(Pk) S c o r e ( p k ) = ∑ n = 1 s i z e ( S S ( P k ) ) E x i s t ( S S ( p k ) n ) S_{core}\left( p_{k}\right) =\sum ^{size\left( SS\left( P_{k}\right) \right) }_{n=1}Exist\left( SS\left( p_{k}\right) _{n}\right) Score(pk)=n=1size(SS(Pk))Exist(SS(pk)n) 公式4

1.3.3 Multiple Selection

  • 假设 P 0 P_0 P0作为第一个最高分对应的位姿;
  • 找到 P 0 P_0 P0变换后对应的场景点并删除,将对应的 E x i s t ( s i ) E_{xist}(s_i) Exist(si)二进制值设置为0;
  • 对于剩余待验证的 P k P_k Pk,其对应的分数 S c o r e ( P k ) S_{core}(P_k) Score(Pk)是对应的二进制 E x i s t ( s i ) E_{xist}(s_i) Exist(si)等于1的累加值;按照公式4进行计算,并查找最大值作为下一个验证后的位姿;
  • 跳出循环的方法是:如果当前的 E x i s t ( s i ) E_{xist}(s_i) Exist(si)累加值大于或等于上一轮最大累加值就跳出;
    3D点云处理:点云粗配准(Fast PPF)_第10张图片

2. 参考

  • Model Globally, Match Locally: Efficient and Robust 3D Object Recognition
  • Fast and Robust Pose Estimation Algorithm for Bin Picking Using Point Pair Feature

你可能感兴趣的:(3D视觉,3d)