基于深度学习的点云分割网络及点云分割数据集

来源|新机器视觉
作者丨泡椒味的泡泡糖
“点云分割是根据空间、几何和纹理等特征对点云进行划分 , 使得同一划分内的点云拥有相似的特征 。 ”
01PointNet/PointNet++
说起点云分割网络 , 就不得不介绍PointNet , 它来源于CVPR的论文“DeepLearningonPointSetsfor3DClassificationandSegmentation” 。 PointNet是首个输入3D点云输出分割结果的深度学习网络 , 属于开山之作 , 成为了后续很多工作的BaseLine , 网络的总体结构如图1所示 。
基于深度学习的点云分割网络及点云分割数据集
文章图片
图1PointNet网络
整体的PointNet网络中 , 除了点云的感知以外 , 还有T-Net , 即3D空间变换矩阵预测网络 , 这主要是由于点云分类的旋转不变性 , 当一个N×D在N的维度上随意的打乱之后 , 其表述的其实是同一个物体 , 因此针对点云的置换不变性 , 其设计的网络必须是一个对称的函数 。
在PointNet网络中 , 对于每一个N×3的点云输入 , 网络先通过一个T-Net将其在空间上对齐(旋转到正面) , 再通过MLP将其映射到64维的空间上 , 再进行对齐 , 最后映射到1024维的空间上 。 这时对于每一个点 , 都有一个1024维的向量表征 , 而这样的向量表征对于一个3维的点云明显是冗余的 , 因此这个时候引入最大池化操作 , 将1024维所有通道上都只保留最大的那一个 , 这样得到的1×1024的向量就是N个点云的全局特征 。
PointNet网络在ShapeNet数据集上的实验效果如表1所示 , 可以看出 , 大多数分割都取得了SOAT效果 。 部分分割结果如图2所示 , 可以看出分割结果相当平稳 , 并且具有很强的鲁棒性 。
表1PointNet在ShapeNet上的分割效果对比
基于深度学习的点云分割网络及点云分割数据集
文章图片
图2PointNet部分分割结果
PointNet++主要是为了克服PointNet自身的一些缺点 , 其中最大的缺点就是缺失局部特征 。 由于PointNet直接暴力地将所有的点最大池化为一个全局特征 , 因此局部点与点之间的联系并没有被网络学习到 。 在分类和物体的PartSegmentation中 , 这样的问题还可以通过中心化物体的坐标轴部分地解决 , 但在场景分割中 , 这就会导致效果变差 。
为了克服PointNet的缺点 , 作者在PointNet++中主要借鉴了CNN的多层感受野的思想 。 CNN通过分层不断地使用卷积核扫描图像上的像素并做内积 , 使得越到后面的特征图感受野越大 , 同时每个像素包含的信息也越多 。 而PointNet++就是仿照了这样的结构 , 先通过在整个点云的局部采样并划一个范围 , 将里面的点作为局部的特征 , 用PointNet进行一次特征的提取 。 因此 , 通过了多次这样的操作以后 , 原本的点的个数变得越来越少 , 而每个点都是有上一层更多的点通过PointNet提取出来的局部特征 , 也就是每个点包含的信息变多了 。
PointNet++的网络结构如图3所示 , 同时作者对比了PointNet和PointNet++的分割效果如图4所示 , 可见PointNet++的效果全面优于PointNet 。
基于深度学习的点云分割网络及点云分割数据集
文章图片
图3PointNet++网络结构
基于深度学习的点云分割网络及点云分割数据集
文章图片
图4PointNet++分割结果
02PCT网络
基于深度学习的点云分割网络及点云分割数据集】近年来 , NLP领域的Transformer大火 , 同时也有大量学者将其从NLP领域迁移到图像和点云领域 。 清华大学将Transformer应用于3D点云分割技术 , 设计了全新的PCT(PointCloudTransformer)网络,其网络结构如图5所示 。