赞
踩
点云物体的6D估计
提出了一个端到端的只依靠点云的6D估计方法
不是全局利用点云,可能只是用来refine
由两部分组成,一个是分类器,一个是分割器:
然后用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点,接下来要对这些获取的样本做数据增强:
20个?关键点周五i的随机分割是不是指hard negative?
这个类似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 |
学习率 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。