QcraftWeb / qcraft-article

0 stars 1 forks source link

[2020/09/07]QBlog 01 | 3D物体检测、行为预测和运动检测,一文解析激光雷达中时序融合的研究现状和发展方向 #18

Open gameclub000 opened 3 years ago

gameclub000 commented 3 years ago

头图2 在自动驾驶领域,基于激光雷达 (LiDAR) 的3D物体检测和运动行为预测是一种普遍的方案。目前绝大部分关于激光雷达的物体检测算法都是基于单帧的。激光雷达的多帧时序数据,提供了对于检测物体的多视角观测 (multiple views),历史记忆 (history memory),安全冗余 (redundant safty),以及运动特征 (motion kinematics) 等丰富的信息;可用来帮助提高检测速度和精度,并且增加检测结果的可靠性。对于感知的下游模块,例如追踪和预测,时序信息则更为重要。

在传统视频理解领域,时序信息融合研究相对比较成熟,具体方法主要通过后处理 (post-processing) 来建立检测物体间的对应关系 [1,2];借助光流 (optical flow) 跨越多帧来传播高层特征 [3,4];或者利用记忆对准 (memory alignment) 直接融合多帧特征信息 [5,6]。相较于视频或者图像,激光雷达的点云非常稀疏,导致对其提取的特征图谱 (feature maps) 也非常稀疏;此外,在点云鸟瞰图 (bird’s eye view) 中绝大多数前景物体如车辆和行人只占据很小的空间范围。所以如何有效融合激光雷达的时序信息对于学术界和工业界仍然是一个开放的问题。

时序融合—3D物体检测

FaF是一个具有代表性的考虑激光雷达时序信息的物体检测和行为预测算法:《Fast and Furious: Real Time End-to-End 3D Detection, Tracking and Motion Forecasting with a Single Convolutional Net》发表于CVPR 2018。该论文提出了一种结合检测,跟踪和预测于一体的网络结构。通常自动驾驶系统包含检测,跟踪,轨迹预测与规划等模块,下游模块以上游模块的结果作为输入。这样的解决方案存在一个问题,即每个模块的误差会在下游逐步累积,例如误检或漏检的物体会对后续的跟踪与预测带来很大影响,从而造成错误的规划,最终对乘车舒适度甚至安全造成负面影响。FaF提出了一种端到端的网络用以同时完成检测,追踪和预测三项任务,从而在一定程度上缓解了各个模块错误的逐级累积。其具体做法是首先将相邻若干帧激光雷达扫描得到的点云转换到同一坐标系下,把每一帧的点云进行体素化 (voxelization);同时为了避免在单帧上使用3D卷积及其所引入的计算复杂度,将高度这一维作为通道 (channel),从而将每一帧表示成为一个三维张量以便使用2D卷积处理。网络以多帧点云的鸟瞰图作为输入,直接输出当前输入5帧的检测结果以及未来10帧的预测结果 (如下图所示)。 1 对于多帧点云的时序信息,FaF提出了两种融合方式:早期融合 (early fusion) 和后期融合 (late fusion),具体做法如下图所示。早期融合 (下图a) 对输入的每一帧体素表示采取1D时间卷积,空间维度共享权重,将多帧信息合并在一起。这种做法十分高效,可以达到和单帧几乎一样的检测速度;论文中的实验指出,单帧处理需要9ms,早期融合处理5帧需要11ms;但早期融合的缺点是无法准确地捕捉复杂的运动信息。后期融合 (下图b) 则采取逐级融合的方式,通过3D时空卷积逐步将多帧时序信息融合在一起。论文在Uber内部数据集上报告的结果显示,后期融合效果最好,但推理时间也相应增加到30ms。 2 最近的一篇关于激光雷达时序融合的论文《LiDAR-based Online 3D Video Object Detection with Graph-based Message Passing and Spatiotemporal Transformer Attention》收录于CVPR 2020。该论文首先利用图神经网络 (graph neural networks) 构建体柱信息传输网络PMPNet (Pillar Message Passing Network) 从而增加每个体柱特征的感受野 (receptive field) 来增强单帧激光雷达的特征提取。文中进一步提出了结合注意力机制的门控循环卷积AST-GRU (Attentive Spatio-temporal Transformer GRU) 进行时空建模。AST-GRU包含两部分:STA (Spatial Transformer Attention) 和TTA (Temporal Transformer Attention)。STA关注于前景物体检测,TTA用以处理运动物体在特征图谱上的对齐,具体操作是通过可变形卷积 (deformable convolution) 来对齐前后两帧特征图谱中的运动物体。该方法的网络结构如下图所示,它在nuScenes的3D物体检测数据集上相比于单帧算法有较大提升。 3

时序融合—3D物体行为预测和运动检测

FaF的后续工作《IntentNet: Learning to Predict Intention from Raw Sensor Data》收录于CoRL 2018。IntentNet在FaF的基础上进一步加入动态高精地图作为输入来提供静态 (如车道,交叉口,交通指示牌等) 和动态 (如红绿灯的状态转换) 语意地图 (semantic map)。包含时序信息的动态高精地图为3D物体检测,意图分类和轨迹预测提供了丰富的线索。为了更好的挖掘和利用激光雷达和动态地图的时序信息,如下图所示,IntentNet的输出端在FaF的3D物体检测 (detection) 和轨迹预测 (regression) 的基础上加入了行为意图分类 (intention classification,例如左/右转,停/泊车,变道等) 一起进行端到端 (end-to-end) 的训练。如下图所示,行为意图分类的结果被连接补充到共享特征 (shared features) 上进行基于行为意图分类的轨迹预测,使得轨迹预测获得了丰富的背景环境信息 (context)。相比于FaF,IntentNet的检测和预测的结果均有所提升。 4

利用时序信息进行物体运动检测是另一个值得关注的方向。这一方向近期有两篇论文发表,《MotionNet: Joint Perception and Motion Prediction for Autonomous Driving Based on Bird's Eye View Maps》发表于CVPR 2020,以及《Any Motion Detector: Learning Class-Agnostic Scene Dynamics from a Sequence of LiDAR Point Clouds》发表于ICRA 2020。这两篇论文的核心方法相近,都是利用多帧点云作为输入,通过网络在鸟瞰图上回归物体的运动行为。MotionNet通过时空金字塔网络 (spatio-temporal pyramid network) 内部的2D空间卷积和1D时间卷积来实现时空信息的提取和融合,从而实现鸟瞰图上以体柱 (pillar) 为单位的语意和状态分类以及运动检测。Any Motion Detector则提出自运动补偿层 (ego-motion compensation layer) 并结合循环2D卷积 (recurrent convolution) 来实现时序信息的高效融合。如下图所示,这类方法的优势在于检测激光雷达视野中所有运动的物体,包括训练集中没有见过的物体,这对自动驾驶的安全性十分有意义。目前点云算法对于常见的物体,例如车辆,行人和骑单车的人,具有较高的检测准确率;而对于不常见的物体 (尤其是运动的物体) 和突发状况,其结果往往并不满意。这类方法也为物体检测和感知提供了一种新的思路。

时序融合—总结

本文对于激光雷达的时序融合这一前沿方向进行了简单的梳理和总结。融合时序信息,可以提升对于3D物体检测的准确率;而对于3D物体的行为预测和运动检测,时序信息则更是必不可少。时序融合同时也为整合自动驾驶系统的感知,跟踪,预测甚至决策等模块提供了信息基础和可能性。相对于视频理解领域,时序融合在激光雷达中的研究和应用还处于相对早期阶段,希望这一重要方向能够吸引越来越多的研发和工程力量来得以不断推进和完善。 5 6

———— QBlog编辑附言: 作者 罗晨旭,轻舟智航实习生,约翰·霍普金斯大学(Johns Hopkins University)计算机科学系博士研究生,在CVPR、ICCV等发表过高质量计算机视觉科研文章。 杨晓东,轻舟智航高级科学家、机器学习技术总监,曾任英伟达(NVIDIA)高级科学家,在NeurIPS、CVPR、ICCV、ECCV等发表过多篇重量级计算机视觉科研文章。 轻舟智航(QCraft)成立于美国硅谷,世界前沿的无人驾驶公司,致力于打造适应城市复杂交通环境的“老司机”,将无人驾驶带进现实。专注于为合作伙伴提供城市复杂交通环境下的可量产无人驾驶解决方案。 其核心团队成员来自Waymo、特斯拉、Uber、福特、英伟达等世界顶级公司,实现了无人驾驶关键技术模块的全栈覆盖,现轻舟智航多个岗位正面向全球持续热招中。

John122-art commented 8 months ago

请问一下,这篇文章的代码是不是没开源?