【6Dof位姿估计】PointPoseNet:Accurate Object Detection and 6 Dof pose Estimation In Point Clouds论文理解

PointPoseNet:Accurate Object Detection and 6 Dof pose Estimation In Point Clouds论文理解

解决什么问题

点云物体的6D估计


提出了一个端到端的只依靠点云的6D估计方法


前人方法

不是全局利用点云,可能只是用来refine


方法

在这里插入图片描述

方法概述

由两部分组成,一个是分类器,一个是分割器:

  • 将场景点划分成多个anchor,将anchor周围的2048个点输入分类器中,做有无物体的二值分类
  • 将3D模型下采样成K个关键点,分割器处理第一步得分最高的前10个anchor点,将每个anchor点周围的2048个点分割成K+1块(还有背景)

然后用3D-3D的对应计算6D变换,再用ICP做refine


推理

物体的表达
提供作为真实model的可以是CAD模型也可以是点云,但是点的数量还是很多,为了减轻训练压力,从物体表面的均匀采样关键点,根据经验设置距离为2.5cm
作者使用的方法是PCL中的voxel网格下采样,最终采样的数量是50到几百
在这里插入图片描述

输入处理
输入的场景只有点云,也可加上RGB信息,对场景进行了下采样,还是2.5cm间距,最后大约3000-5000个anchor点,这些anchor用来进行有无物体的分类
在这里插入图片描述
分类推荐
上面的anchor点都是物体中心的候选,使用二值分类来估计每个anchor是物体的概率,但是分类不是只对anchor点做的,而是在anchor周围的球形邻域中采样2048个场景点,对他们做逻辑回归

这块anchor的用法和6PACK还挺像的
球形采样和PointNet++的思路差不多,扩大感受野,获得全局信息,但是没有这么多,一共才几千个点,采样了2048个
这个值还得根据场景调整吧,并不鲁棒
但是,这个球形邻域的大小是如何确定的呢?

分割得关键点
只对得分最高的前16个anchor点及邻距进行处理,目标就是将这2048个点划分为背景和物体表面点,如果是K个关键点,就是(K+1)way 逐点分割网络,背景设置为黑色
在这里插入图片描述

得到6D估计
标记的结果是多对少的对应,很多个输入点都会分配到一个关键点中,如上图,同颜色的都是同一个关键点,所以对同颜色平均就得到估计的关键点的位置,希望很多点的位移误差能相互抵消

处理还蛮简单的,此处是不是可以做些改动?加一些约束?这里只是直接分割,位置等信息没有用到

然后使用rotational subgroup voting algorithm算法来处理两个点集的匹配,直接计算6D变换,最后使用ICP做refine

算法论文,2017年的


数据准备

样本生成

样本和label设置
将mesh用pose投影到场景中,所有和投影的点的距离在2cm以外的为背景,1cm以内为前景,1cm-2cm的做难负例挖掘,对于每个前景点,laben分配为最近的关键点

就是每个前景点都有label,这个lable不是class,而是关键点的label,每个点选离自己最近的关键点为自己的label

位移不变性的正样本
为了增强对平移的鲁棒性,随机在物体表面采样20个前景点来为PointNet创造positive样本,这样比起只考虑质心对平移更鲁棒。然后在每个采样点的附近构建一个球形,球的直径只物体3D模型的对角线长度的0.6倍,在这个球里均匀采样2048个点,这样就有了20个正样本

就是说并不是最近的,而是跟模型大小相关,所以要已知是什么类别?
答:对,因为这里是生成训练数据,生成数据的时候必然是直到用什么模型生成的
随机采样,为啥不是计算分数?
答:随机采样有利于增强鲁棒性
这块只是生成数据,而不是训练?
答:对,生成要用来训练的数据

简单和困难负样本
Easy:随机采样20个,要离物体实例足够远
Hard:在物体周围采样,既不是背景,也不是物体的点(应该就是1cm-2cm那部分),共10个

对称处理
将对称物体的训练的关键点减到了最少,个例子是一个对称圆柱,它可以只用沿着主轴的一条点线来描述

太狠了

数据增强

所以现在一共50个样本,每个周围都有2048点,接下来要对这些获取的样本做数据增强:

  • 对于positive,移除背景点并插入easy negative中随机采样的背景;positve点云随机位移一小段距离,围绕着目标关键点的随机分割也被从点云中移除。背景点云会随机位移,这个位移根据object对角的一半的长度进行,最后进行切割,使所有的点都在对角线的0.6倍的圆里

    20个?关键点周五i的随机分割是不是指hard negative?

  • 另外创造20个正样本,但是没有背景
  • 最后,还创建了20个混合背景片段,将easy负样本在随机背景上进行训练

    这个类似PVNet的Fusion吧

总之,除了原来的每个实例50个训练示例外,还增加了60个具有相同数量的positive和negative标签的示例。
然后对上面的所有做常规的增强,抖动、以0为中心标准差是0.01的高斯噪声


训练

输入
XYZ坐标 + 法向量坐标 + 局部曲率,后面两个都是用PCL计算的,半径为1cm;如果考虑颜色,再加三个通道就行了

比point net多了法向量和局部曲率,比PVN3D多了局部曲率

网络结构
在PointNet的后面加了联合训练的分类和分割头

参数设置

参数 数值
LineMod epoch 80
Occlusion epoch 20
优化器 Adam
batch 16
学习率
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值