当前位置:   article > 正文

IROS 2023开源 | 最新的雷达点云动态目标分割算法!_motionseg3d 运行

motionseg3d 运行

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

在公众号「3D视觉工坊」后台,回复「原论文」即可获取论文pdf。

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

0. 笔者个人体会

视觉也好,激光也好,如何剔除动态物体的影响都是一个很麻烦的课题。一方面要检测动态物体,另一方面要建立去除干扰的静态环境地图。现有的动态物体剔除的工作其实有很多了,但是都有一个问题:如何解决分割的假阳性和假阴性。其实这也是CV很经典的问题"如何信任深度学习的结果"。

今天给大家介绍的这篇工作就解决了这个问题,来源于2023 IROS,它将当前帧的Lidar扫描和局部地图都输入到网络中,以此来修正历史帧的漏检和误检。

这篇文章其实和之前2021 RAL/IROS"Moving Object Segmentation in 3D LiDAR Data: A Learning-based Approach Exploiting Sequential Data"的工作有点相似,陈谢沅澧也是两篇文章的共同作者,感兴趣的小伙伴可以追一下陈博的Github(https://github.com/Chen-Xieyuanli)。

注:本文使用MOS作为Moving Object Segmentation的简称。

1. 效果展示

算法将雷达点云做为输入,可以直接判定点是否属于动态物体。还能构建Volumetric Belief地图(可以理解为存储每个点是否动态的概率),构建完地图以后可以直接对点进行查询。但笔者觉得最重要的一点是,它可以修正历史帧的假阳性和假阴性判据,这一点是很多算法没有涉及的。这里也推荐「3D视觉工坊」新课程《三维点云处理:算法与实战汇总》

f9e8cc87a4e0eb8ef0cb2c607631da39.png

再来看一看动态环境下建图的结果,实心圆表示地图中动态物体的残留痕迹,虚线圆表示由于假阳性预测而被4DMOS移除的静态区域。整体来看,建立的动态环境地图还是很干净的。

934a51a305de6b30cd6663e5bf7b72ba.png

算法已经开源了,感兴趣的小伙伴可以去试试,下面来看具体的论文信息。

2. 摘要

在未知环境中导航的移动机器人需要时刻感知周围环境中的动态物体,以便进行建图、定位和规划。对当前观测中的运动物体进行推理,同时对静态世界的内部模型进行更新以确保安全是关键。在本文中,我们解决了在当前3D LiDAR扫描和环境局部地图中联合估计运动物体的问题。我们使用稀疏的4D卷积从扫描和局部地图中提取时空特征,并将所有3D点分割为移动和非移动点。此外,我们提出使用贝叶斯滤波器将这些预测融合在动态环境的概率表示中。这种Volumetric Belief模型表示环境中的哪些部分可以被运动对象所占据。我们的实验表明,我们的方法优于现有的运动目标分割基线,甚至可以推广到不同类型的LiDAR传感器。我们证明了在在线建图场景中,我们的Volumetric Belief融合可以提高运动目标分割的精度和召回率,甚至可以检索到先前丢失的运动目标。

3. 算法解析

算法的整体目标是识别当前Lidar扫描和局部地图中的动态物体,并融合生成一个概率 Volumetric Belief图。

Lidar点云过来以后,首先使用KISS-ICP(参考https://github.com/PRBonn/kiss-icp)进行注册,并对点云进行体素化,之后再进行分割。Scan2Map的输入为当前帧Lidar扫描和局部地图(居然不需要位姿)点云的4D信息(位置+时间戳),使用4D卷积网络MinkUNet进行动态目标预测,最后将预测结果融合到Volumetric Belief图中。其使用的分割思想有两个:

(1)动态物体的Lidar扫描和局部地图有差异;

(2)动态物体上点云的时间戳的变化和静态点不同;

引入时间信息有啥好处呢?

由于遮挡、有限FoV等因素,动态目标在短时间内很有可能是有遮挡的,如果使用固定长度的滑窗就没办法处理!而且这里还使用了一个trick,就是对序列的时间戳进行归一化处理,避免训练时对序列长度过拟合!

41c7cc28d883549835ee957604a50a73.png

那为啥还要输入局部地图信息,而不仅仅是当前的Lidar扫描呢?

这里主要是考虑到分割的假阴性和假阳性问题。如果之前帧没有成功识别动态物体,那么还可以通过局部地图来回溯错误。

a7153f79a69826cd2288ee62650bd38b.png

最后Volumetric Belief就是一个将多个独立预测随时间进行融合的过程。需要特别注意的是,这个Volumetric Belief存储的并不是每个点的预测,而是环境中哪部分有更高的概率包含动态对象。也就是说,不仅仅是要识别当前点是否为动态对象,还要确定地图的哪一部分被动态对象经过了(Dynamic Occupancy)。举个例子,就是如果一个点落入了动态体素中,那么就假设这个点也属于动态物体,如果一个体素被静态点占据,那么也就不再期望在这个体素中观察到动态物体。Volumetric Belief建立完成以后,也就可以根据概率查询其中哪个点是动态点。

4. 实验

作者所做的实验,其实是围绕四个点来进行:

(1) 基于过去观测的局部地图,将输入的LiDAR扫描精确地分割成动态和非动态的物体;

(2) 在实现最新性能的同时,很好地推广到新的环境和传感器设置;

(3) 通过将多个预测融合到Volumetric Belief中,提高MOS的精度和召回率;

(4) 通过Volumetric Belief从错误的预测中恢复到在线建图。

就数据集来说,作者除了在Semantic KITTISemantic KITTI MOS(参考https://codalab.lisn.upsaclay.fr/competitions/7088)这两个动态数据集上进行实验,还标注了KITTI TrackingApollo Columbia Park MapData、nuScenes这三个数据集中的子序列。评估指标就是分割任务常用的IoU。

先看一下在Semantic KITTI和Semantic KITTI MOS上的运动物体分割结果,分别对比了只是用当前帧(Scan)以及带有10帧的局部地图(Volumetric Belief)。验证集效果很好,但是测试集提升其实不太明显。效果比4DMOS好也就证明了使用时间信息对MOS是有利的。这里LMNet就是陈博之前的工作,RVMOS性能好是因为使用了额外的标签训练。

5aba8a0c3d11717792d200763704a7b3.png

泛化性实验很有价值,主要还是因为MOS是有监督任务,并且标注成本极高(也推荐一个半监督点云分割框架https://ldkong.com/LaserMix)。LMNet和MotionSeg3D性能很差,是因为对Lidar安装位置和点云强度过拟合了。而4DMOS和作者的方法只是用时间信息,因此可以适应新的Lidar内参标定。这里也推荐「3D视觉工坊」新课程《三维点云处理:算法与实战汇总》

7e8c9d133e532121598330da139e67ba.png

最后一个实验证明的是Volumetric Belief的具体设置如何提升IoU、召回和精度。表中的No Delay代表局部地图的点为动态点(主要还是做一个运行时间的平衡)。结果表明,Volumetric Belief可以在先验地图中排除假阳性,虽然有时精度和召回略低,但是IoU提升很明显。

1b0f9cc332a3fdc639ff6be984341bc1.png

5. 总结

跟动态视觉SLAM不同,动态雷达SLAM还是有很多可研究的点,但主要思想还是利用动态物体上scan和scan、scan和map之间的矛盾。可以直接利用这种矛盾做几何一致性判据,也可以输入到网络里进行训练。从这个角度出发,读者也可以构思新的判别方式,设计自己的动态点云检测算法。

IROS的文章都很精简,很多信息没办法从论文中获取,还是得死磕代码来解决问题。所以对论文细节感兴趣的小伙伴不妨阅读一下代码。

—END—

高效学习3D视觉三部曲

第一步 加入行业交流群,保持技术的先进性

目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶方向,细分群包括:[工业方向]三维点云、结构光、机械臂、缺陷检测、三维测量、TOF、相机标定、综合群;[SLAM方向]多传感器融合、ORB-SLAM、激光SLAM、机器人导航、RTK|GPS|UWB等传感器交流群、SLAM综合讨论群;[自动驾驶方向]深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器讨论群、多传感器标定、自动驾驶综合群等。[三维重建方向]NeRF、colmap、OpenMVS等。除了这些,还有求职、硬件选型、视觉产品落地等交流群。大家可以添加小助理微信: dddvisiona,备注:加群+方向+学校|公司, 小助理会拉你入群。

44c43409df7feddb4de85cecde697b19.jpeg
添加小助理微信:cv3d007, 拉你入群
第二步 加入知识星球,问题及时得到解答

针对3D视觉领域的视频课程(三维重建、三维点云、结构光、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业、项目对接为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:「3D视觉从入门到精通」

学习3D视觉核心技术,扫描查看,3天内无条件退款84299636e6af6991c991b644d92e09a0.jpeg

高质量教程资料、答疑解惑、助你高效解决问题
第三步 系统学习3D视觉,对模块知识体系,深刻理解并运行

如果大家对3D视觉某一个细分方向想系统学习[从理论、代码到实战],推荐3D视觉精品课程学习网址:www.3dcver.com

基础课程:

[1]面向三维视觉算法的C++重要模块精讲:从零基础入门到进阶

[2]如何学习相机模型与标定?(代码+实战)

[3]ROS2从入门到精通:理论与实战

[4]彻底理解dToF雷达系统设计[理论+代码+实战]

工业3D视觉方向课程:

[1](第二期)从零搭建一套结构光3D重建系统[理论+源码+实践]

[2]机械臂抓取从入门到实战课程(理论+源码)

[3]三维点云处理:算法与实战汇总

[4]彻底搞懂基于Open3D的点云处理教程!

[5]3D视觉缺陷检测教程:理论与实战!

SLAM方向课程:

[1]深度剖析面向机器人领域的3D激光SLAM技术原理、代码与实战

[1]彻底剖析激光-视觉-IMU-GPS融合SLAM算法:理论推导、代码讲解和实战

[2](第二期)彻底搞懂基于LOAM框架的3D激光SLAM:源码剖析到算法优化

[3]彻底搞懂视觉-惯性SLAM:VINS-Fusion原理精讲与源码剖析

[4]彻底剖析室内、室外激光SLAM关键算法和实战(cartographer+LOAM+LIO-SAM)

[5](第二期)ORB-SLAM3理论讲解与代码精析

视觉三维重建

[1]彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进)

自动驾驶方向课程:

[1] 深度剖析面向自动驾驶领域的车载传感器空间同步(标定)

[2]面向自动驾驶领域目标检测中的视觉Transformer

[3]单目深度估计方法:算法梳理与代码实现

[4]面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)

[5]如何将深度学习模型部署到实际工程中?(分类+检测+分割)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/890221
推荐阅读
相关标签
  

闽ICP备14008679号