作者:泡椒味的口香糖 | 来源:3D视觉工坊
在公众号「3D视觉工坊」后台,回复「原论文」即可获取论文pdf和代码。
添加微信:dddvisiona,备注:目标检测,拉你入群。文末附行业细分群。
0. 笔者个人体会
3D目标检测方案分为Offboard检测和Online检测,主要区别是是否在线运行。Online检测又快又准,但是没办法在长序列中实现鲁棒的目标跟踪,目标轨迹容易出现碎片化。相较而言,Offboard检测利用了多帧点云信息,可以学习长期连续点云的复杂表示。
Offboard检测的精度很高,虽然无法实时运行,但这种方案主要用途是实现长序列雷达点云的3D目标标注,其标注精度甚至超越了手工标注。但是目前Offboard检测相关的文献还特别少,比较经典的就是2021 CVPR的工作3DAL。今天,笔者将带领读者阅读最新的DetZero工作,其在Waymo上的精度实现了断层式的第一,并且算法开源,可以用来做高精度的3D点云标注。这里也推荐「3D视觉工坊」新课程《面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)》。
1. 效果展示
这个表做的很有新意,以时间线来排列SOTA方案。从各个SOTA方案提出的时间线来看,DetZero无疑是实现了精度的断层式增长。
实际运行起来效果也很好,生成的3D目标检测和真值几乎完全一致。
DetZero这项工作已经开源了,感兴趣的小伙伴可以追踪一下作者的Github。
2. 摘要
现有的offboard 3D探测器总是遵循模块化的流水线设计,以利用无限序列点云的优势。我们发现,offboard 3D检测器的全部潜力没有被发掘,主要是由于两个原因:( 1 ) onboard多目标跟踪器无法生成足够完整的目标轨迹;( 2 )目标的运动状态对以目标为中心的精炼阶段利用长期的时间上下文表示提出了不可避免的挑战。为了解决这些问题,我们提出了一种新的3D目标检测范式,命名为DetZero。具体来说,本文提出了一种结合多帧检测器的离线跟踪器,以关注生成的目标轨迹的完整性。提出了一种注意力机制优化模块,以加强跨长期序列点云的上下文信息交互,用于使用分解回归方法进行目标优化。在Waymo Open Dataset数据集上的大量实验表明,DetZero优于所有最新的onboard和offboard 3D检测方法。值得注意的是,DetZero以85.15 m APH ( L2 )的检测性能在Waymo 3D目标检测排行榜1中名列第1。进一步的实验验证了用这样高质量的结果来代替人类标注的应用。我们的实证研究导致了对惯例的反思和有趣的发现,这些发现可以指导未来关于offboard 3D目标检测的研究。
3. 算法解析
常见的3D目标检测都是online检测,又快又准,有什么问题?
主要还是一个连续性问题,在进行长时间跟踪时,跟踪轨迹很容易碎片化,同一个目标的ID也很容易跟丢,而且会出现假阳性问题。这样得到的检测结果肯定没办法直接用,后面想利用其他网络来优化的话,也会因为上下文信息不完整而扩大误匹配。
那么什么是Offboard 3D目标检测?
简单总结:就是在不关心模型尺寸和检测速度的前提下,利用多帧点云信息提高3D检测精度。其实就是同时输入多帧雷达点云进行3D目标检测和跟踪,输出帧间一致的3D目标标注结果。
之前的方案都是怎么做的?
Offboard 3D目标检测认为多帧点云序列可以提供互补信息,但直接将单帧检测扩展到多帧会导致严重的性能下降。这是因为点云本身是无序的,直接堆叠多帧点云非常混乱。所以不再使用frame-centric的方案,而是使用object-centic的方案,就是将不同点云序列处理为object,再进行融合。所以之前的方案基本都是先进行多帧3D目标检测,获得目标的初始候选框,然后分配ID进行目标跟踪,再对每个ID提取点云序列特征,进行进一步优化,最后进行实例化标注。
这种方法的主要问题是,没有利用目标特征的共性。例如,对于动态目标轨迹,当目标点稀疏时,传统优化模型( a )无法利用t2帧的稠密点特征,在t1帧输出的框尺寸并不准确。而在DetZero( b )中,将目标点合并(从原点O1到O2),然后从每一帧中的点可以有助于精确的尺寸预测。
DetZero这个方案具体有啥不同?
DetZero首先使用多帧目标检测和离线跟踪模块生成完整的目标轨迹,然后引入基于注意力机制的优化模块,以利用长期的时间上下文信息来预测目标属性(尺寸、位置、置信度),最后进行世界坐标系到帧坐标系的变化得到auto labeling检测结果。DetZero强调在上游进行高召回率的检测和跟踪,在下游进行具有长期时间上下文的精细的高精度优化。
目标数据准备这一块,得到的是特定ID的目标轨迹(点云、包围盒序列、置信度),还需要进行进一步的优化。以往的object-centric是使用基于状态的策略来搞,但这样会导致误分类的传播,而且会忽略目标之间潜在的相似性。但DetZero这篇文章的作者发现了两个现象:(1)刚性物体无论运动状态如何,在连续一段时间的几何形状不会发生明显变化。(2)目标的运动状态呈现出规则的模式,并在相邻时刻具有很强的一致性。
基于这两个观察,作者提出使用注意力机制将上游任务获得的边界框分解为三个不同的模块,分别预测物体的几何形状、位置、置信度。细化目标的包围框以后,再进行坐标变化,就可以得到最终的auto labeling结果。
4. 实验
DetZero在Waymo数据集上做了非常大量的实验,使用的评估指标包括AP(平均精度)、APH(加权平均精度),包含L1和L2两个级别。L1评价包括具有5个以上LiDAR点云的物体,L2评价只包括至少具有1个且不超过5个LiDAR点的3D标签。注意,最重要的指标是mAPH ( L2 )。这里也推荐「3D视觉工坊」新课程《面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)》。
相较于其他SOTA方案,DetZero的mAPH L2达到了85.15,在Vehicle上以5.93 ( L1 )和9.51 ( L2 ) mAPH超越了同类型的3DAL(2021 CVPR),表现出很强的利用长时间序列点云进行3D目标检测的能力。
下面是其他SOTA方案和只包括上游部分和全部模块的对比,有点像消融实验。得益于上游模块生成的高质量目标轨迹,全模型得到了显著改进:Vehicle为6.49 ( L1 )和7.68 ( L2 ) mAPH,Pedestrian为3.99 ( L1 )和4.67 ( L2 ) mAPH。
后面这个实验很有意思,说明DetZero标注能力超越了人工标注。
消融实验,证明每个模块的作用。
最后这个泛化实验感觉很重要,主要面向的就是最后的优化模块,作者将三个不同质量的上游结果作为输入进行推理。low代表baseline优化模块,refine就是作者提出的模块,improvement代表利用图像信息进一步提升上游候选框性能。
5. 总结
DetZero是一种使用长时间序列点云作为输入的SOTA Offboard 3D检测器,主要思想就是先使用多帧目标检测器和离线跟踪器获得目标轨迹,然后利用交叉注意力机制对几何、位置和置信度进行优化,获得auto labeling结果。DetZero取得了Waymo数据集的第一,精度很好,可以用于3D目标检测标注。最后,受于篇幅限制,并没有将全部的实验结果贴上来,感兴趣的读者可以深入阅读一下论文原文。
—END—高效学习3D视觉三部曲
第一步 加入行业交流群,保持技术的先进性
目前工坊已经建立了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视觉某一个细分方向想系统学习[从理论、代码到实战],推荐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]如何将深度学习模型部署到实际工程中?(分类+检测+分割)