赞
踩
作者:泡椒味的口香糖 | 来源: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的设计思路并没有那么惊艳,主要是设计了多模态和多视角融合模块来做点云分割的增强,但是实验效果很好。而且开源分割库也能帮助读者更好得调用现成算法。
—END—目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等;[三维重建方向]NeRF、colmap、OpenMVS;[无人机方向]四旋翼建模等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。
针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」
学习3D视觉核心技术,扫描查看,3天内无条件退款本星球:3D视觉岗求职星球 依托于公众号「3D视觉工坊」和「计算机视觉工坊」、「3DCV」,旨在发布3D视觉项目、3D视觉产品、3D视觉算法招聘信息,具体内容主要包括:
收集汇总并发布3D视觉领域优秀企业的最新招聘信息。
发布项目需求,包括2D、3D视觉、深度学习、VSLAM,自动驾驶、三维重建、结构光、机械臂位姿估计与抓取、光场重建、无人机、AR/VR等。
分享3D视觉算法岗的秋招、春招准备攻略,心得体会,内推机会、实习机会等,涉及计算机视觉、SLAM、深度学习、自动驾驶、大数据等方向。
星球内含有多家企业HR及猎头提供就业机会。群主和嘉宾既有21届/22届/23届参与招聘拿到算法offer(含有海康威视、阿里、美团、华为等大厂offer)。
发布3D视觉行业新科技产品,触及行业新动向。
如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com
科研论文写作:
基础课程:
[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶
[2]面向三维视觉的Linux嵌入式系统教程[理论+代码+实战]
工业3D视觉方向课程:
[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]
SLAM方向课程:
[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战
[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战
[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化
[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析
[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)
视觉三维重建:
[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进)
自动驾驶方向课程:
[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)
[2] 国内首个面向自动驾驶目标检测领域的Transformer原理与实战课程
[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)
[1] 零基础入门四旋翼建模与控制(MATLAB仿真)[理论+实战]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。