点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【3D目标检测】技术交流群
后台回复【3D检测综述】获取最新基于点云/BEV/图像的3D检测综述!
点云序列通常用于在自动驾驶等应用中准确检测3D目标,当前性能最好的多帧检测器大多遵循Detect and Fuse框架,该框架从序列的每一帧中提取特征并将其融合以检测当前帧中的目标。然而,这不可避免地导致许多冗余的计算,因为相邻帧是高度相关的。本文提出了一种高效的运动引导序列融合(MSF)方法,该方法利用目标运动的连续性来挖掘当前帧中用于目标检测的有用序列上下文。首先在当前帧上生成3D proposal,并基于估计的速度将其传播到之前的帧,然后从序列中汇集兴趣点,并将其编码为proposal特征。进一步提出了一种新的双向特征聚合(BiFA)模块,以促进proposal特征在帧间的交互。此外,通过基于体素的采样技术优化点云 pooling,以便在几毫秒内处理数百万个点。所提出的MSF方法不仅比其他多帧检测器实现了更好的效率,而且精度领先,在Waymo Open Dataset的LEVEL1和LEVEL2测试集上分别达到83.12%和78.30%的mAP!
代码:https://github.com/skyhehe123/MSF
领域现状
3D目标检测是自动驾驶的关键技术之一,有助于车辆更好地了解周围环境,并在下游任务中做出关键决策。作为自动驾驶系统中不可或缺的传感设备,激光雷达以点云的形式收集场景的3D检测结果。然而,激光雷达一次只能产生部分场景视图,而点云的稀疏和不完整表示给3D目标检测任务带来了相当大的挑战,在实践中,激光雷达传感器将持续感知环境,并随着时间的推移产生一系列点云帧。随着车辆的移动,多帧数据可以提供场景的更密集的表示,因此,如何融合这些多帧点云数据,实现更准确的目标检测,值得深入研究!
最近的工作主要集中在与多帧点云的深度特征融合上,例如,通过Transformer模型聚集密集的鸟瞰图特征,将体素特征传递给LSTM或GRU模块进行时间建模,一些性能最好的检测器专注于融合proposal特征,其中跟踪器被用来跨帧关联3D proposal,并且基于区域的网络被应用来通过合并proposal轨迹中的上下文特征来细化当前proposal。这些方法通常遵循“检测和融合”框架,如图1(a)所示,其中模型需要处理序列的每个帧,并且对当前帧的预测依赖于先前帧的结果。由于在线检测是一个因果系统,如果网络在加载当前帧时仍在处理前一帧,则这种检测框架可能会导致显著延迟。
本文提出了一种高效的运动引导序列融合(MSF)方法,如图1(b)所示,该方法利用物体运动的连续性从点云序列中提取有用的上下文,并改进当前帧的检测。具体来说,考虑到物体的运动在短序列中相对平滑,作者基于物体的速度将当前帧上生成的proposal传播到之前的帧,并从序列中采样可靠的兴趣点。通过这种方式,绕过了在序列的每个帧上提取特征,这减少了冗余计算和对先前帧的结果的依赖。然后通过两种编码方案将采样点转换为proposal特征,并将其传递给基于区域的网络以进行进一步细化。具体而言,采用自注意模块来增强提案内点特征的交互,同时提出了一种新的双向特征聚合(BiFA)模块来加强跨帧提案之间的信息交换。因此,改进的提案特征既捕捉了空间细节,又捕捉了序列的长期相关性,从而实现了更准确的边界框预测!
现有的点云池化方法效率低下,在处理来自连续点云的数百万个点时,耗时超过40毫秒。作者发现,主要的瓶颈在于n个点和m个proposal之间的成对距离的大量计算,这会导致O(nm)的复杂性。为了进一步提高效率,本文使用体素采样技术对点云池进行了优化。改进的池化操作具有线性复杂性,可以在几毫秒内处理数百万个点,比原始方法快八倍多!
本文的贡献如下:
提出了一种高效的运动引导序列融合(MSF)方法,通过基于目标运动将当前帧的proposal传播到先前帧,在region级别融合多帧点云;
引入了一个新的双向特征聚合(BiFA)模块,以促进proposal特征在框架之间的交互;
点云池化方法采用基于体素的采样技术进行了优化,显著减少了大规模点云序列的运行时间;
所提出的MSF方法在Waymo开放数据集上进行了验证,并在LEVEL1和LEVEL2测试集上以快速的速度实现了领先的精度!
相关的一些工作
单帧3D目标检测:最近对单帧3D物体检测的研究主要集中在点云上的表示学习,基于体素的检测器将点云光栅化为体积表示,然后3D CNN以提取密集特征。一些工作将点云转换为2D鸟瞰图range图表示,并使用更高效的2D CNN进行处理。继PointNet++之后,基于点的方法直接处理连续空间中的点云,并通过一系列下采样和集合抽象层提取高解析特征。体素-点方法采用混合表示,其中探索了基于体素和基于点的表示之间的灵活转换,从而在效率和性能之间实现更好的平衡。本文的方法使用高质量的基于体素的检测器CenterPoint作为proposal生成网络来预测当前帧及其运动的3D proposal,然后使用一个高效的基于区域的网络,通过从点云序列中挖掘序列点来进一步完善这些proposal!
从点云序列中检测3D目标:多帧点云提供了更丰富的环境三维信息,虽然一些单帧检测器可以通过简单地连接多帧点云作为输入来适应点云序列,但改进通常是微不足道的,并且当遇到移动物体时,性能可能更差。 Fast-andfurious[13]探索了一种中间融合,通过连接backbone网络的隐藏特征图来对齐多帧点云,然而,它仍然受到长序列中快速移动的物体带来的错位影响。最近的方法[8,32]表明,使用递归网络可以实现深度融合,但使用单个内存跨帧存储和更新功能会造成潜在的瓶颈。为了解决这些限制,3D-MAN首先尝试使用注意力机制来对齐3D目标的不同视图,然后利用内存库来存储和聚合长序列的多帧特征。最近,Offboard3D和MPPNet大大提高了检测性能,它们将序列中每一帧的检测框关联为提案轨迹,并通过对轨迹上的连续点云进行采样来提取高质量的proposal特征。
本文的MSF方法也对序列中的点进行采样,但它与那些具有proposal轨迹的方法的不同之处在于,只在当前帧上生成proposal,并传播它们来探索先前帧中的特征,这使得MSF方法更加高效,并且有利于在线检测!
运动引导的时序融合
本节介绍了运动引导序列融合(MSF)方法,用于点云序列上的高效3D目标检测,MSF的总体架构如图2所示。
1)运动引导的Sequential Pooling
当前的多帧检测方法主要探索proposal轨迹,以生成高质量的点云表示。然而,这样的方案依赖于逐帧的proposal生成,这不适合于在线检测系统。本文观察到,在点云序列中,尽管物体以不同的速度移动,但它们的运动相对平稳。也就是说,可以估计它们的运动位移,并粗略地定位它们在先前帧中的位置。为此,给定点云序列{},我们建议基于它们的估计速度将在当前帧It上生成的建议传播到之前的帧{}。由于移动物体可能会稍微偏离前几帧中的估计位置,本文对每个提案的圆柱形区域中的兴趣点进行采样,并随着提案的传播,逐渐将该区域的直径增加因子γ。
将当前帧的proposal表示为(,,,,,,θ),其中(,,)表示其中心位置w、l、h和θ分别表示其宽度、长度、高度和偏航角。假设物体具有单位时间速度,,从帧t采样的相应兴趣点(,,)将满足以下条件:
在初步研究中,作者比较了提出的方法和基于轨迹的方法之间前景点的总体召回率,如表1所示,提出的方法可以在4帧序列上获得与proposal轨迹方法非常接近的结果。对于8帧序列,由于很难估计快速移动物体在远处帧上的位置,使用γ=1.1来调用更多的点,并获得与proposal轨迹方法相当的结果。即使使用了16帧序列,召回率也仅略有下降。有趣的是,论文发现设置γ=1.1不仅有利于检测快速移动的物体,而且有利于提高对慢速和静止物体的性能。作者认为这是因为从不同大小的区域采样的点包含关于目标的多层次上下文信息。
2)Region-based网络
在对每个proposal中的K个点进行采样后,论文采用两种编码方案来生成proposal特征。首先根据[19]计算每个感兴趣点之间的相对偏移和proposal框的九个关键点(八个角点加一个中心点)。然后,将得到的偏移转换为球面坐标,并通过多层感知器(MLP)转换为几何嵌入,该几何嵌入对采样点和proposal框之间的空间相关性进行编码,编码方案可以公式化为:
时间偏移∆t也被级联,导致在帧t处的运动嵌入为:
建议特征可以公式化为几何嵌入和运动嵌入的总和:
双向功能聚合:MSF采用基于区域的网络来探索proposal特征之间的时空依赖性,并将它们融合到全局表示中,以进行最终的边界框细化。如图2所示,基于区域的网络由三个学习块组成,每个块包括一个传统的多头自注意(MHSA)层,然后是馈网络(FFN),以及提出的双向特征聚合(BiFA)模块。MHSA层旨在对提案中丰富的空间关系和点相关性进行编码,以细化点特征,而所提出的BiFA模块旨在通过促进跨帧proposal之间的信息交换来对时间信息进行编码!
BiFA包括前向路径和后向路径,代表了沿着序列的两种信息流方式。由于proposal特征具有无序表示,本文利用Max pool&Repeat张量操作来获得汇总的上下文特征。在前向路径中,除了序列中的第一帧与它自己的上下文特征相连接之外,其它帧中的每一个都沿着信道维度与其前一帧的上下文特征进行连接。采用逐点卷积层来细化级联特征并将其信道减半,给定当前帧及其前一帧的提案特征和,帧t的前向输出(用表示)可以通过以下方式获得:
然而仅引入前向路径将导致不同帧之间的信息不平衡,即当前帧从其他帧接收信息,而最后一个在前帧没有接收到来自该序列的信息。为了克服这一限制,作者增加了反向路径,其中帧t的特征与帧t+1的上下文特征聚合,从而产生如下的反向输出:
通过这种方式,每个帧可以同时从两个方向与其两个相邻帧交换信息,并且信息可以在三个学习block之后传播到更远的帧。所得到的proposal特征可以捕获点云序列上的长期依赖性。值得注意的是,同一路径中卷积层的参数可以共享,并且所有张量运算都可以并行执行,这使得BiFA模块比其它多框架融合模块更轻、更高效。
最后,通过基于查询的转换器-解码器层将每个proposal的逐点特征聚合为全局表示,其中可学习的查询特征通过交叉注意模块关注提案特征的每个点向量,解码器层可以描述如下:
3)高效的点云池化
作者优化了点云池化方法,以更有效地从每个proposal的圆柱形区域中采样固定数量的点,如图3所示,分两步执行基于proposal的点采样,即体素内采样和体素场采样。在第一步中,将输入空间离散为体素大小为v的体素网格,考虑到圆柱形区域具有无限的高度,这里省略了z axis中的体素分割。然后,在每个体素中保留多达k个点,并且如果体素具有少于k个点则插入填充点。由于将所有体素存储在密集网格中所需的高内存消耗,本文遵循[14]在连续内存中仅存储非空体素,并使用哈希表将非空体元的坐标与其索引之间的映射存储在内存空间中。
在第二步中,首先为每个proposal查询n-by-n体素字段,并计算其中体素的坐标。接下来将体素的坐标转换为散列键,并查找表以查询从第一层次生成的采样点。如果没有找到键,哈希表将返回“-1”,这意味着它是一个空的体素。然后,如果满足以下条件,则从这些体素中绘制被查询的点,并将其存储在输出缓冲器中:1)它是有效点,2)它落入圆柱形区域,即满足等式1。
复杂性和效率:本文在连续空间中对提出的优化池化方法和以前的圆柱形池化方法进行了深入分析。给定N个点、M个proposal以及每个proposal中采样K个点的要求,由于计算点和proposal之间的成对距离,原始方法的复杂性为O(NM)+O(MK)。相比之下,本文的优化版本的复杂性为O(N)+O(M)+O(MK),其中第一项是体素内采样的成本,第二项是查询每个proposal的体素场的成本,而第三项是从查询的体素中绘制点的成本。论文评估了不同长度序列上点云池的延迟,如表2所示,优化的池化方法可以比原始池化方法实现8倍的加速!
实验结果
1)实验设置
数据集:在Waymo开放数据集(WOD)上评估了MSF,这是一个用于自动驾驶的大规模多模态数据集。WOD包含1150个序列,分别分为798个训练序列、202个验证序列和150个测试序列。每个序列长20秒,由64线激光雷达传感器以10Hz的频率捕获,WOD中使用的评估指标是平均精度(mAP)和通过航向精度加权的mAP(mAPH)。评估了三个目标类别,“车辆”、“行人”和“骑车的人”。每个对象类被进一步分类为两个难度级别,即LEVEL1和LEVEL2。前者是指得分超过5分的目标,后者是指得分低于5分但至少为1分的目标。
采用传统的CenterPoint作为区域proposal网络(RPN),为了包括运动信息,在输入处连接四个相邻帧,并添加一个额外的头部来预测目标的速度。在实验中,首先使用OpenPCDet的官方设置来训练RPN,并使用它生成WOD的proposal。基于这些proposal,通过使用ADAM优化器对基于区域的网络进行6个epoch的训练,初始学习率为0.003,批量大小为16。学习率随着“一个周期”政策而衰减,动量设置在[85%,95%]之间。在训练过程中,对IoU>0.5的区域proposal进行采样,并根据PointRCNN进行提案扩充。对于每个方案,随机采样128个原始激光雷达点,在基于体素的采样中使用的体素大小v和每个体素k的点分别设置为0.4和32。学习block中的每个点的特征维度被设置为256,在训练阶段,通过将损失添加到每个学习block的输出中来使用中间监督,并将所有中间损失相加来训练模型,在测试阶段,只使用边界框和从最后一个学习block预测的置信度分数。
2)WOD上的结果
Waymo验证集:表3比较了MSF的性能和当前最先进的方法,可以看出,多帧检测器通常优于单帧方法。到目前为止,最好的两种多帧方法是基于proposal轨迹的MPPNet和基于transformer模型的CenterFormer。使用相同数量的帧,MSF方法在LEVEL1和LEVEL2上分别显著优于CenterFormer 3.4%的APH和1.2%的APH。这表明在区域级融合多帧特征比使用卷积特征的融合更有效,与同样基于区域级融合的MPPNet相比,本文的方法在几乎所有情况下都优于它,除了车辆LEVEL1的APH。需要注意的是,MSF方法只使用8帧,而MPPNet使用16帧。MSF在不同的帧中使用不同的pooling大小,因此为每个目标生成多层次的上下文特征,具有4帧和8帧的MSF模型分别实现了74.62%和75.13%的mAPH,记录了新的技术状态。此外,CenterFormer和MPPNet都在序列的每一帧上提取特征,需要一个内存库来存储前一帧的中间结果,而本文的方法只在当前帧上执行proposal生成,这对在线推理更实用!
Waymo测试集:在表4中,通过将预测结果提交给在线服务器进行评估来显示8帧模型的结果,本文方法优于之前发布的所有方法。特别是,车辆和行人级别的改进是显著的,在LEVEL2上分别比最好的竞争对手CenterFormer高出1.91%的APH和1.89%的APH!
3)消融实验
在本节中,通过评估MSF的每个单独组件的有效性来对其进行深入分析,在WOD验证集上报告了4帧模型的APH度量,消融研究结果分别如表5至表8所示!
4)运行时分析
图4说明了不同方法的延迟分解,这里,延迟被计算为从WOD验证集随机抽取的100个样本的平均运行时间,该验证集由单个Nvidia GeForce RTX A6000 GPU测测试。由于所有方法都使用相同的骨干网络,为了更好地进行比较,将backbone的运行时间从延迟中排除。对于MPPNet和CenterFormer,假设前面帧中的功能已经在内存库中可用。可以看出,MPPNet在特征编码阶段花费了大量时间,因为它执行集合抽象来对代理点上的原始点进行分组,这需要在连续空间中操纵点云。相比之下,本文的方法只需要4毫秒就可以将原始点编码为proposal特征。MPPNet、CenterFormer和MSF的总延迟分别为99、80和50毫秒。表9进一步分解了MPPNet和MSF中关于空间和时间模块的网络延迟,可以看出,自注意模块和BiFA模块分别比MLP Mixer和交叉注意模块效率高得多。得益于优化的点云池化操作,MSF实现了更高的效率,甚至与直接对卷积特征进行特征融合的CenterFormer相比!
参考
[1] MSF: Motion-guided Sequential Fusion for Efficient 3D Object Detection from Point Cloud Sequences.
视频课程来了!
自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)
(扫码学习最新视频)
国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称