欢迎光临散文网 会员登陆 & 注册

nuScenes&SemanticKITTI分割第一!最新多模态LIDAR分割网络

2023-09-26 22:00 作者:3D视觉工坊  | 我要投稿

作者:泡椒味的口香糖  | 来源:3D视觉工坊

在公众号「3DCV」后台,回复「原论文」即可获取论文pdf和代码链接。

添加微信:dddvisiona,备注:3D点云,拉你入群。文末附行业细分群。


LiDAR点云分割一直是一个很经典的问题,学术界和工业界都提出了各种各样的模型来提高精度、速度和鲁棒性。但因为室外的复杂环境,所以室外点云的语义分割和全景分割的性能都还不是太好。

今天,笔者将带领读者阅读上海AI Lab的新作UniSeg,使用RGB图像来增强点云分割,并且将点云转换为体素、Range图像等多模态数据来做进一步增强,效果非常好。另一方面,作者声称他们开源了目前最大、最全面的室外LiDAR分割算法库,可以直接调用14种SOTA分割算法!这里也推荐「3D视觉工坊」新课程《彻底搞懂基于Open3D的点云处理教程》。

首先来看看UniSeg与其他SOTA LiDAR分割算法在Semantic KITTI和nuScenes上的分割精度对比(感觉他们现在很喜欢以时间轴为单位画图?)。可以发现UniSeg性能远超之前的2DPASS、RPVNet、Panoptic-PHNet、Lidar MultiNet等算法。


再看看分割的定性对比,红色表示分割错误。可以发现UniSeg性能还是很不错的。

当然,这篇文章最重要的不是提出了一个很好的LiDAR分割算法,而是开源了一个可以随时调用的LiDAR算法库。相比著名的mmdetection3d库,作者开源的OpenPCSeg库拥有14个开源LiDAR算法。作者花费了一年时间来复现、调参、优化、后处理,生成OpenPCSeg里的开源算法的性能均超越原始论文中的指标!

点视图( point-view )、体素视图( voxel-view )和范围视图( range-view )是点云的三种代表性形式。它们都具有精确的三维测量,但缺乏颜色和纹理信息。RGB图像是这些点云视图的自然补充,充分利用它们的综合信息有利于获得更鲁棒的感知。本文提出了一种统一的多模态LiDAR分割网络Uni Seg,利用RGB图像和点云的三视图信息,同时完成语义分割和全景分割。具体来说,我们首先设计了可学习的跨模态关联( LMA )模块,将体素视图和范围视图特征与图像特征自动融合,充分利用了图像丰富的语义信息,并且对标定误差具有鲁棒性。然后,将增强后的体素视图和范围视图特征转换到点空间,并通过可学习的交叉视图关联模块( LVA )对点云特征的3个视图进行自适应融合。值得注意的是,Uni Seg在Semantic KITTI、nu Scenes和Waymo Open Dataset ( WOD )三个公开基准测试中取得了良好的效果;它在两个基准测试中排名第一,包括nuScenes的LiDAR语义分割挑战和SemanticKITTI的全景分割挑战。此外,我们构建了Open PCSeg码库,这是目前规模最大、最全面的室外LiDAR分割码库。它包含了大多数流行的室外LiDAR分割算法,并提供了可重复的实现。

分割任务为啥要使用多模态信息呢?

主要原因是可以集合不同模态的优点。RGB图像提供了丰富的颜色、纹理和语义信息,而点云则包含了各种物体的精确三维位置。举例,下图中红色矩形的行人在图像中很难发现,但在点云中却是可见的。因此,多模态和多视角的结合有利于获得更鲁棒和全面的感知。

因此,UniSeg希望利用RGB图像和点云,输出点云语义分割和全景分割结果。

整个Pipeline框架非常通俗易懂,基本原理是,首先利用球投影和最大池化获得Range图像和体素网格。UniSeg的输入是点云的三个不同表征(体素、Range图像、点云)以及RGB图像,然后四个输入分别进行编码,得到四个特征。其中,体素特征和Range图像特征分别和RGB特征进行融合(VI和RI)。之后,将Range图像特征和体素特征投影到点云空间,三个表征就可以通过RPV模块进行融合,之后再反变换回原有的体素空间和Range空间。这样,相当于使用LMA模块进行了多模态融合,使用LVA模块进行了交叉视角数据关联。最后再使用两个head就可以输出语义分割和全景分割结果。

那么具体如何进行跨模态特征融合呢?

首先是VI(Voxel-Image)融合模块,也就是体素和图像进行融合。首先获取体素中心对应的图像特征,然后利用学习到的偏移来采样图像特征。将体素特征处理为Query,采样后的图像特征表示为Key和Value。将体素和采样的图像特征送入多头交叉注意力模块,得到图像增强的体素特征。将这些特征与原始特征进行拼接,就可以得到最终的融合特征。

另一个RI(Range-Image)融合模块和VI模块的原理就完全一样,不再赘述了。

这样就获得了使用图像增强的体素和Range图像特征,接下来如何再次增强特征呢?

这就是LVA(Learnable cross-View Association)模块,用于将体素、Range图像和点云进行融合。首先将体素和Range图像特征投影到点云空间,通过Tv2p和Tr2p变换使用插值来解决数量不匹配问题。之后,给定体素、点和Range视角特征,LVA提取其全局表示和视角自适应特征。通过残差连接,获得跨视图融合特征,并通过Tp2v和Tp2r变换投影回原始体素和范围图像空间。

最后,通过LMA和LVA得到的融合特征直接通过分类器得到语义分割预测。将语义预测传递给全景头,估计不同物体的实例中心位置和偏移量,从而产生全景分割结果。

最后的损失函数也没有设置很多trick,估计是想证明性能提升来源于LMA和LVA两个模块设计,而不是其他什么东西。整个损失函数包含交叉熵损失、Lovasz-softmax损失、通过MSE损失的热力图回归、通过L1损失的偏移图回归四部分组成。

实验这一块,使用了nuScenes,SemanticKITTI,和WOD(Waymo Open Dataset)三个数据集,作者报告他们在nuScenes语义分割和SemanticKITTI全景分割任务达到了第一。评价指标方面,语义分割就使用了常规的IoU和mIoU,全景分割使用了PQ(全景质量)。

GPU用的A100,训练了36轮,初始学习率0.12(不大吗?),使用1个epoch来warm up,用余弦退火来调整学习率,SemanticKITTI和WOD数据集体素大小为0.05,nuScenes体素大小0.1,点云分支还使用了随机翻转、缩放、平移这些trick(炼丹真是个技术活和体力活)。

下面几个定量比较依次是在SemanticKITTI上的语义分割对比、nuScenes上的语义分割对比、SemanticKITTI上的全景分割对比、nuScenes上的全景分割对比、WOD上的语义分割对比结果。在SemanticKITTI上,UniSeg比2DPASS高了2.3 mIoU,比Panoptic-PHNet搞了2.6 PQ。在nuScenes上,UniSeg比第二名LidaMultiNet搞了2.1 mIoU,全景分割达到了78.4 PQ,也非常优秀。

下面是一个效率和准确性的对比,UniSeg用了4个单独的编码器,还有3个特征融合模块,2个输出头,所以参数量必然很大。但有意思的是,作者对每层通道剪枝80%后再进行实验,发现可以以相同的参数量达到和其他模型更高的精度

下面来思考一个问题,相机到雷达的外参很难标定准确,因此必然有标定误差。作者做了很多种尝试,比如直接添加或者聚合图像-点特征、使用PointPainting、使用PointAugmenting以及使用LMA,发现LMA模块可以缓解标定误差

然后探索了如何利用不同模态数据的优势。作者对比的baseline是将所有模态数据转移到点视角,然后直接将它们相加或拼接,性能分别为70.4 mIoU和70.5 mIoU。其次尝试自注意力进行特征融合,但无法实现改进。最后发现LVA模块可以根据学习到的注意力权重自适应地融合不同模态的数据。这里也推荐「3D视觉工坊」新课程《彻底搞懂基于Open3D的点云处理教程》。

最后是一个消融实验,验证每个模态对最终性能的影响。此外,UniSeg在不同距离上也优于单模态baseline。显然由于强稀疏性,baseline在远距离处会发生退化。

今天笔者带领大家阅读了UniSeg的分割原理,还介绍了一个开源的室外LiDAR分割算法库OpenPCSeg。整体来看,UniSeg的设计思路并没有那么惊艳,主要是设计了多模态和多视角融合模块来做点云分割的增强,但是实验效果很好。而且开源分割库也能帮助读者更好得调用现成算法。

nuScenes&SemanticKITTI分割第一!最新多模态LIDAR分割网络的评论 (共 条)

分享到微博请遵守国家法律