点云检测算法之PointNe++t深度解读

点云检测算法之PointNet++深度解读

论文链接 : PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

Github链接:有关于环境感知方面的网络介绍及代码链接


背景和亮点

背景

有关于PointNet缺点,可以参考我上一篇文章ComputerVersion/PointNet.md at main · Victor94-king/ComputerVersion , 我觉得最主要的在于其利用了maxpooling 整合了全局的信息,但是没有利用邻域的信息,基于此,PointNet++就针对领域信息的提取做出了改善。

  1. point-wise MLP,仅仅是对每个点表征,对局部结构信息整合能力太弱 --> PointNet++的改进:sampling和grouping整合局部邻域
  2. global feature直接由max pooling获得,无论是对分类还是对分割任务,都会造成巨大的信息损失 --> PointNet++的改进:hierarchical feature learning framework,通过多个set abstraction逐级降采样,获得不同规模不同层次的local-global feature
  3. 分割任务的全局特征global feature是直接复制与local feature拼接,生成discriminative feature能力有限 --> PointNet++的改进:分割任务设计了encoder-decoder结构,先降采样再上采样,使用skip connection将对应层的local-global feature拼接



网络结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MKij3wDp-1681716298239)(image/PointNet++/1681713756304.png)]

这里的网络使用的是典型的encoder - decoder 结构, 先用过级联的set-abstraction 不断的扩大点云感受野,最后的点云大小由最开始的N downsample至聚合了邻域信息的N’个点,特征也从最开始的d + C维度变成了d + C’维度 。 再通过各自的Decoder结构从而实现分类和分割的任务。下面会从分别介绍Encoder 和 Decoder结构

Encoder

encoder部分可以看成是N个级联的set abstrction组合,其中又可以细分成以下结构:

  1. Sampling : FPS (最远点采样),对点集进行降采样,将输入点集从规模 N1 降到更小的规模N2 。FPS可以理解成是使得采样的各个点之间尽可能远,这种采样的好处是可以降采样结果会比较均匀。
  2. Grouping: 将采样后点的点作为中心与未采到的点进行进行聚合,为了整理成batch所以会要求每个中心group的话包含相同个数的K个点,所以对于grouping有以下两种方式,然后这里变成了(N’ , K , d + C)维 :
    1. KNN
    2. Radius NN + random sample
  3. PointNet: 上一步的特征已经变成了每个downsample的点都带了其K近邻的特征,随后我们通过一个mlp将这K个点的特征由d + C维 转变成 d + C’维并且去除了K
    这个维度。(另外为了去除绝对距离带来的影响,这里的d的空间信息,是每个group里的点相对于其中心点的相对距离,即d = d - d(center) )
  4. 重复多次结构123组合,从而实现感受野的不断扩张, 从图上就可以看出最后橙色图片上的一个点就代表了最开始蓝色图片上的N个点的信息。


Decoder

在得到具有语义特征的特征后,分类网络与原始pointnet一样做mlp然后去分类,这里就不赘述了。而对于分割网络,作者借鉴了2D网络的结构,通过一系列的跨层连接进行特征融合,除此之外,作者在这里还提出了interpolation,简单的理解就是将原始特征图上的点 ,根据距离大小加权平均从而得新的点的特征从而恢复到原始特征图点云大小数量的特征。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PV0opRd8-1681716298240)(image/PointNet++/1681715648664.png)]




改进

MRG (深度融合)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eqjdcWkG-1681716298241)(image/PointNet++/1681715844559.png)]

除了原始的pointNet++,作者还提出了两种不同的改进方法,上图就是MRG(multi-resolution grouping)。可以看出原始的point特征就是由上一层的点云进行特征提取,而MRG就是从深度上进行拓展,不仅看了上一层的特征还加上了上两层的特征进行提取,提取后的特征进行拼接。这样的精度会有提升,同样的速度也会降低。


MSG(广度融合)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GmBVO27m-1681716298241)(image/PointNet++/1681716038402.png)]

还有一种改进思路就是MSG(Multi-scale grouping) 广度融合,从上图可以看到这里每次融合的特征的r范围r, 由不同的范围拼接而成,从而提高精度。

参考文献: 搞懂PointNet++,这篇文章就够了! - 知乎 (zhihu.com)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼城周杰伦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值