3D检测论文阅读简记

Source

论文读完之后很快忘记了, 写长篇的论文笔记又很耗时间; 因此打算换一种简洁的方式记录读过的一些3D检测论文: 论文的动机和主要的解决问题。

1. (arXiv 2205) BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation [code]

  • 多传感器融合对于可依赖的自动驾驶系统是至关重要的。目前融合的方式主要有Lidar-to-Camera和Camera-to-Lidar两种方式, 但这两种融合方式在多任务学习中存在一定问题: (1)Lidar-to-Camare方式会带来严重的几何扭曲(图像中相邻的像素, 深度值差别很大), 不利于geometric-oriented的任务, 如3D检测; (2) Camera-to-Lidar方式, 会带来图像中语义信息的丢失, 不利于semantic-oriented的任务, 如BEV map分割。
  • 因此, 作者提出了一种高效通用的多任务, 多传感器融合的框架BEVFusion。BEVFusion在BEV空间中分别表示Lidar和Camera特征, 同时保存了几何信息和语义信息。同时, 作者提出Precomputation和Interval Reduction来提升Camera-to-BEV变换的效率。BEVFusion在保证效率的同时, 在nuScenes的3D检测和BEV map分割任务上均达到SOTA。

2. (CVPR 2022) Not All Points Are Equal: Learning Highly Efficient Point-based Detectors for 3D LiDAR Point Clouds [code]

  • 在point-based的3D检测中, 为了节省内存和计算开销, 往往采用随机采样或FPS算法来对原始点云不断地下采样, 然而在3D检测任务中每个点并不是同等重要的: 前景点本质上比背景点更重要。
  • 因此, 作者提出point-based的单阶段3D检测器IA-SSD。在IA-SSD中, 作者设计了class-awarecentorid-aware这两种下采样策略, 保留更多的前景点, 设计了context centroid prediction模块来预测每个前景点的偏移量, 最终基于偏移后的中心点和其邻域特征, 进行box的分类和回归; 和3DSSD类似, IA-SSD也没有decoder, 直接在下采样后的点上进行box的预测。IA-SSD主打的是高效, 因此内存开销很低, 推理速度也很快; 同时在KITTI和Waymo数据集都达到了很高的精度。

3. (CVPR 2022) TransFusion: Robust LiDAR-Camera Fusion for 3D Object Detection with Transformers [code]

  • Point-level的Lidar-Camera多传感器融合存在两个问题:(1) 将Lidar和Camera特征通过hard方式关联, 易受传感器标定的影响, 也会导致丢失很多图像特征; (2) 通过拼接或相加等简单方式将Lidar和Camera特征融合的方式, 会在图像低质量时严重影响性能。
  • 因此, 作者提出了基于Transformer的soft关联的Lidar-Camera融合的检测框架TransFusion。TransFusion首先提取点云的BEV特征和图像特征, 并基于BEV特征和图像特征设计了input-dependent和category-aware的query初始化方式, 可以获得更好的query的初始位姿; 基于Lidar数据, 通过Transformer增强(Q: query, K, V: BEV特征)query的特征, 来预测box的类别和位姿; 基于图像数据, 设计了基于SMCA(spatially modulated cross attention)的Transformer (Q: 增强后的query特征, K, V: 投影到BEV的图像特征), 来融合图像特征, 预测box的类别和位姿。TransFusion的优势体现在检测远处的物体, 对低质量图像和传感器标定性能鲁棒, 其在nuScenes数据集的检测和跟踪任务上性能达到SOTA, 在Waymo也有不错的结果。

4. (CVPR 2020) SA-SSD: Structure Aware Single-stage 3D Object Detection from Point Cloud [code]

  • 单阶段lidar-based检测器往往需要不断的下采样, 这使得数据丢失了空间信息, 不能够充分利用点云(object)的空间结构,从而导致检测中定位性能下降; 相反, 两阶段检测器由于在第2阶段利用细粒度的空间信息, 预测的box更加精确。另一方面, 作者注意到bbox分类和回归的不一致性(Specifically, classification confidences are related to the current locations of employed feature maps while the predicted bounding boxes usually deviate from their current locations. This misalignment may lead to suboptimal results in NMS post-processing)。
  • 因此, 作者既想保持单阶段检测器的高效性, 又想充分利用点云数据中的空间信息和object的结构信息, 在训练时添加了2个point-wise辅助任务使得学习到的特征能够学习到结构信息: (1) 前/背景点分割; (2) 中心点预测。同时这个辅助任务在测试时是移除的, 因此也保证了检测的高效。为了解决bbox分类和回归的不一致性的问题, 作者简介R-FCN, 设计了PSRoIAlign, 对分类特征图上进行空间变换, 使得分类更加精准。SA-SSD在KITTI(只做了Car类别)的检测任务上达到SOTA。

5. (CVPR 2020) PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection [code]

  • 在3D检测中, voxel-based的方法是计算高效的, 并且可以产生高质量的3D候选框, 但由于量化导致的信息丢失降低了定位的精度; point-based的方法具有灵活的感受野, 保存了精确的位置信息, 但具有更高的计算代价。
  • 因此, 作者提出了PointVoxel-RCNN (PV-RCNN), 将voxel-based和point-based方法有效的结合在一起, 提高了3D检测的性能, 在KITTI数据集中达到SOTA, 在Waymo数据集中也有很好的性能。PV-RCNN主要包括3个阶段: (1) 采用voxel-based的方法产生多尺度的voxel特征和3d候选框; (2) 采用FPS算法产生少量的关键点(keypoints), 并提出voxel-to-keypoint编码将voxel特征, 原始点云特征和bev特征编码到keypoints, 同时基于每个点是否在gt bbox来学习每个点的权重, 进而修正每个keypoint的特征; (3) 对于每个3D候选框采样216个grid points, 并提出keypoint-to-grid 池化得到每个proposal的特征, 预测位姿的偏移量和置信度。

6. (CVPR 2019) - PointRCNN: 3D Object Proposal Generation and Detection From Point Cloud [code]

  • 现有的3D Lidar 检测方法分为两大类: (1) 把点云投影到bird’s view, frontal view 或 3D voxels, 这种方法会带来信息损失; (2) 利用2D检测算法提供候选框, 再利用候选框cropped的点云在3D点云中预测3D box, 这种方法依赖于2D检测器的性能, 不能利用3D信息产生候选框。然而, 直接在无规则的点云中做检测需要面对巨大的搜索空间。作者注意到在无人驾驶的场景中, 3D boxes是彼此分离的, 直接提供了3D语义分割的mask。基于这个观察, 作者提出了直接在点云中做检测的2阶段的3D检测框架PointRCNN。
  • PointRCNN包括两个阶段: stage-1用于以bottom-up的方式生成3D候选框, stage-2在规范(canonical)坐标系细化候选框, 来获得最终的检测结果。Stage-1子网络通过把点云中的点分割成前景点和背景点, 直接从点云中以bottom-up的方式产生少量的高质量的候选框(bin-based); Stage-2子网络把stage-1子网络产生的每一个候选框中的points变换到规范坐标系来更好的学习局部空间特征, 并结合stage-1产生的语义特征用于精确的预测框和置信度的细化。PointRCNN仅用点云作为输入, 在KITTI上达到SOTA, 远超其它模型。

7. (CVPR 2020) 3DSSD: Point-based 3D Single Stage Object Detector [code]

  • Point-based的检测方法主要包括两个阶段: (1) 提取点云的特征, 并使用RPN在每个点处生成候选框; 提取点云特征一般涉及点云下采样和使用特征传播(feature propagation, FP)进行上采样; (2) Refiment 模块, 主要是对框的进行优化和分类。因此, point-based的方法往往推理时间比较长。作者观察到point-based方法中, FP层和Refiment模块占据了一半的推理时间, 但移去这FP会导致一些前景实例会丢弃不少的点或全部的点。因此, 取出FP和Refinement都会导致模型性能的下降。
  • 因此, 作者提出了单阶段的point-based的检测器3DSSD。为移去FP层, 提出了F-FPS, 结合特征空间和距离空间进行点云下采样, 同时提出Fusion Sampling, 来保存更多的前景点和一定数量的背景点。为了精度和速度, 在box预测模块, 作者使用candidate points生成模块(对F-FPS得到点进行偏移)和anchor-free的回归头, 同时采用了3D center-ness为每一个candidate point分配真值用于分类。作者在KITTI和nuScenes上评估了3DSSD, 3DSSD远超所有voxel-based的单阶段方法, 和2阶段的point-based的方法具有相当的性能, 推理速度超过25FPS, 比以前SOTA的point-based的方法快2倍多。

8. (CVPR 2021) Center-based 3D Object Detection and Tracking [code]

  • 很多3D检测算法模仿成熟的2D检测算法, 基于与坐标轴平行的anchor box在3D空间中进行物体检测。但由于在3D空间中, box的角度是任意的, 采用与坐标轴平行的anchor很难fit这样的box; 同时, 考虑使用更多朝向的anchor将会增加计算代价和误报。
  • 因此, 作者提出两阶段的CenterPoint, 采用point来表示, 检测和跟踪物体(objects)。在第1阶段, 基于VoxelNet或PointPillars提取特征, 并为每个类别(k)预测一张特征图, 局部最大值的位置即为预测的object的中心, 类别为k; 同时基于特征回归中心点的偏移值, z值, 框的大小, 角度, 速率(用于追踪)等。 经过第1阶段, 得到了一些候选框, 在第2阶段, 利用边界信息, 基于候选框的面中心点的特征, 进一步对置信度分数和框进行优化。在跟踪任务中, 根据预测的point的速度, 投影到上一帧点云中, 根据最近距离进行object(point)的匹配。在nuScenes数据集的检测和跟踪任务中, CenterPoint达到SOTA; 在Waymo数据集中也获得了不错的性能; 同时模型的检测和跟踪也可以做到实时的。