(点、6)点对特征法(Point Pair Feature)

引言

6D位姿估计方法全局方法和局部方法。

全局方法使用一个全局描述来描述整个对象或其部分。全局描述通常需要对目标对象或目标部分进行分割,而忽略了局部细节的区分性。

局部方法通过使用围绕特定点的局部描述符来描述对象。局部方法通常对传感器噪声更敏感,并且它们倾向于在具有重复特征的对称对象或对象上表现出较低的性能。

点对特征法(Point Pair Feature)、

论文: PPF论文链接

算法分析参考:知乎PPF论文分析

1.融合了局部和全局方法优点的折中解决方案。PPF算法精髓:整体建模,局部匹配。

2.研究方向:3D物体点云的识别

3.论文创新点:依据点云周围的点,创建全局模型(Model Globally:creates a global model description based on oriented point pair features)来描述周围的点对特征,并在局部范围内使用一种快速投票的方法进行模型匹配(Match Locally:matches that model locally using a fast voting scheme)

4.解释global model description

5.representation 的优点:稀疏采样,提升算法速度

6.recognition:使用有效的投票机制在二维搜索空间里做局部匹配

7.针对场景:干扰、堆叠、部分遮挡

1.Model Globally

首先定义两个词:scene 和 model ,scene 是我们测得的真实场景(点云),model 是物体的真实模型(点云)。定义S为真实场景中点云的点,M为模型点云。

s_{i}\epsilon Spoints in the scene;
m_{i}\epsilon Mpoints in the model;

(1)PPF

定义PPF:Model Globally本质通过定义点对特征(Point Pair Feature)来构建特征矢量的集合及每个矢量特征对应的点对集,作为Global Model Desciption。

PPF描述了两个有向点(oriented points)的相对位置和姿态。假设有两个点m1和m2,法向量(normals)分别为n1和n2,d=m2-m1,则PPF定义为:

注:∠(a,b)∈[0;pai]为两个矢的夹角,且F是非对称的。有了PPF点对特征后,就可以定义Global Model Description了。

(2)Global Model Description

注:Global Model Description 是离线(in the off-line phase)构建的

实现方法:

  • 第一步:计算model表面所有point pairs的特征矢量F,其中distance和angles分别以d_{dist}d_{angles}=2pai/n_{angle}的步长做采样;
  • 第二步:构建哈希表,将具有相同F(特征向量feature vector)的ponit pair放在一起,即hash表的键key为feature vector F,值value为具有相同特征矢量的点对集A

 2.Match Locally

定义好Global Model Description(全局模型描述)后,就可以考虑局部匹配了

(1)Local Coordinates

大概思路:

  • 从 scene 中选取任意一个参考点 s_{r}S ,假设它在物体的表面上,若假设正确,则在 model 存在一个点 m_{r}M与 s_{r} 对应;
  • 将这两个参考点配准,需同时将点的位置和法向量对齐;
  • 让 model 绕s_{r} 的法向轴转动一定角度与 scene 配准

由此看来,从 model space 到 scene space 的刚体变换可以由 model 中的一点和转动角度 α 来描述,将这个 pair (m_{r},α) 定义为 model 相对于参考点 s_{r} 的Local Coordinates 。

思路:

  • 给定参考点s_{r} ,选取与 scene 点对 (s_{r},s_{i})∈S 具有相似 fecture vector F(same distance and relative orientation)的 model 点对 (mr,mi)∈M ;
  • 通过变换矩阵 T_{m}→g 将 mr 移动到 Local Coordinates 的原点,并且转动 model,使其法向轴 n_{r}^{m} 与 Local Coordinates 的 x 轴重合;
  • 同理,通过 T_{s}→g 对 scene 做相同操作;
  • 最后,将 model 中的一点 mi 绕 x 轴转动 R_{x}(α) 与 si 配准

通过上述描述,可以将从 model 到 scene 的 transformation 定义为: 

(2)Voting Scheme

 前面我们定义了 local coordinates,现在只需要通过一种方法找到最优的 local coordinates 使得 scene 中落在 model 表面的点最多,即可求出物体 pose。

论文通过投票机制实现,定义一个二维的 accumulator array,行(rows)数N_{m} 为 model 采样点\left | M \right | 的个数,列(columns)数 N_{n} 为按采样步长 n_{angle}的旋转角 α 的个数。 

具体实现:

(3)Efficient Voting Loop

注:

  • 对于 model 或者 scene 中的每个点对, t 都是唯一的
  • 对于 model 中的每个点对,a_{m} 可以在离线阶段求解
  • 对于 scene 中的每个点对, a_{s}只需要算一次

(4)Pose Clustering

之前的算法基于我们的假设:参考点是在物体表面的。因此,我们需要在 scene 点云中采样多个参考点s_{r} ,保证至少有一个参考点能在物体表面。

每个参考点可能返回多个位姿(投票相同),返回的位姿(retrieved poses)是否逼近 ground truth,取决于 model 和 scene 点的采样率和旋转角的采样。

我们对所有返回的位姿做聚类,每个 clutter 中位姿的位置、姿态的差异不超过设定的阈值,然后每个聚类的得分是其包含的所有位姿的总得分,找出得分最高的 clutter,则最终的位姿为得分最高的 clutter 里面包含位姿的平均值。

如果场景中存在物体的多个实例,则会返回多个 clutters。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值