3D检测论文阅读简记

论文读完之后很快忘记了, 写长篇的论文笔记又很耗时间; 因此打算换一种简洁的方式记录读过的一些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) 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也有不错的结果。

3. (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数据集都达到了很高的精度。

4. (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倍多。

5. (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。

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. (TPAMI 2020) From Points to Parts: 3D Object Detection from Point Cloud with Part-aware and Part-aggregation Network [code]

  • Part-A^2网络可以看做是PointRCNN的一个延伸。在3D Lidar检测中, gt box不仅可以包括了point的语义类别 (用在了PointRCNN), 还可以为object的内部points提供part location (可以理解为point相对于box的相对位置)。因此, 作者提出了基于点云的2阶段的3D检测网络Part-A^2网络 (part-aware和part aggregation), 在KITTI数据集中达到SOTA。
  • Part-A^2网络主要包括两个阶段: (1) 在part-aware阶段产生粗糙的候选框和预测每个point的语义类别和part location; (2) 在part-aggregation阶段, 基于RoI-aware pooling和每个point的part location, 优化最终box的分数和位姿。具体地, 不同于PointRCNN, Part-A^2将点云进行voxel操作(很小的voxel size: 5cm x 5cm x 10cm), 然后基于U-Net结构和稀疏卷积提取每个voxel的特征; 另外, 在encoder后的8倍下采样的特征图上, 基于anchors预测proposals, 也用于第2阶段对part location的聚合。在第2个阶段, 为了消除region pooling带来的歧义, 作者提出了RoI-aware pooling操作, 将候选框均匀地划分成固定数量的voxels (14 x 14 x 14), 对每一个voxel内的语义类别和part location信息进行均值pooling, 对每一个voxel内的特征进行最大值pooling; 然后基于稀疏卷积进行特征升/降维和拼接(cat), 得到每一个voxel的特征; 接着基于稀疏卷积和稀疏max-pooling学习特征和减小分辨率(7 x 7 x 7), 最后基于将7 x 7 x 7的voxels矢量化预测最终的box分数和位姿优化。

8. (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的特征, 预测位姿的偏移量和置信度。

9. (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数据集中也获得了不错的性能; 同时模型的检测和跟踪也可以做到实时的。

10. (ICCV 2019) STD: Sparse-to-Dense 3D Object Detector for Point Cloud

  • Point-based的框架在3D检测中面临着很大的问题: point的数量往往是巨大的, anchor的设置一般需要考虑0和90°的方向, 因此在训练和预测时都需要很大的计算量。另外, proposal特征的生成或者依赖于PointNet++或PointNet, 会带来昂贵的计算或者丢失局部结构信息。
  • 基于以上考虑, 作者提出了两阶段的STD检测框架: (1) 在原始的sparse点云生成候选框; (2)将候选框的point特征转化成dense的feature map特征, 进行第2阶段的box优化。 具体地, (1)在第一阶段, 通过PointNet++学习每个点的语义特征和属于前景点的分数score; 同时为每个点设置了一个无方向的球形anchor (每一个球形anchor对应了一个预定义参考框用于候选框的生成), 基于每个点的分数对所有球形anchor进行NMS操作, 过滤掉冗余的anchor。对于剩下的每一个anchor, 考虑其anchor内的点, 基于预定义的参考框, 预测一个候选框(分类和位姿); 训练时anchor的label通过PointsIoU生成。(2) 在第2阶段, 首先将候选框内的稀疏点通过类似于voxel的操作, 转化成规范坐标系的dense表示, 进行VFE特征编码。 然后对每个proposal的特征预测候选框的类别和偏移量, 生成box; 另一方面, box的score和定位精度并不是高度相关的, 因此基于proposal的特征, 又为每一个proposal预测了定位质量分数。在预测时, 基于预测的分类分数和定位质量分数的乘积, 通过NMS过滤boxes。STD在KITTI数据集上的mAP达到SOTA, 同时是point-based和multi-view方法里最快(10+FPS)的。

11. (ECCV 2020) SSN: Shape Signature Networks for Multi-class Object Detection from Point Clouds [code]

  • 主流的3D检测框架通常侧重于单个类别的检测(如汽车或行人等), 而在现实世界中, 自动驾驶汽车需要检测多个类别。如何区分类别对于对于多类3D检测是至关重要的。因为不同的类别的点云在尺度和形状上表现不同, 一种可行的方案是采用形状(shape)信息指导有区分性的特征的学习。但 1.如何进行简洁和鲁棒的shape信息编码呢 ? 2.如何把编码好的信息融入到3D检测网络呢 ?
  • 针对第1个问题, 作者提出了一种新的shape signature; 针对第2个问题, 作者提出了shape-aware group heads, 并基于shape signature设计了shape signature networks (SSN), 用于多类别的3D检测。具体地, 每一个gt box的shape signature编码包括: shape补全(将gt box及inner points变换到规范坐标系, 并通过中心对称补全)和shape embedding; embedding首先将点云进行多视角(bird, front, side)投影, 然后计算每一个投影下的2d点的凸包(对点云稀疏性鲁棒), 接着用Chebyshev对凸包的360个角度下的半径进行编码(对噪声鲁棒), 最终得到一个9维的向量(每一个投影视图对应3维向量); 通过shape signature, 每一个gt box被编码成了9维向量。SSN首先提取点云对应feature map (类似于PointPillars)的特征, 然后基于不同scale和shape的objects设计了不同head(bus, truck和 trailer共享一个head, bicycle and motorcycle共享一个head, cat用一个head), 物理尺寸越大的objects, 对应的head需要有更大的感受野(更多的下采样操作次数)。每一个head只负责对应的类别groups: 分类, box回归(基于anchor)和shape signature回归。需要注意的是shape signature回归是作为辅助loss, 帮助多类别检测学习有区分性的特征。
  • SSN在nuScenes和Lyft数据集上达到了SOTA或近似SOTA的性能; 并且, 提出的shape signature可以在不同的backbone(voxel, pillar)和不同的数据集(nuScenes, Lyft, KITTI)下均能work。

12. (ICCV 2019) Deep Hough Voting for 3D Object Detection in Point Clouds [code]

  • 由于深度传感器只能捕获到object的表面, 因此在点云数据中, object的center有可能处于空白处, 和每一个点都很远。从这些远离center的points回归出精确的box是很困难的。因此, 作者基于经典的Hough voting和point sets网络提出了直接作用于原始点云的3D检测网络VoteNet, 该网络在室内数据集ScanNet和SUN RGB-D数据集上达到了SOTA。(后来发现, voting思想也广泛出现于后来的3D检测网络(3DSSD等)中。)
  • VoteNet主要包括两步: (1)基于FPS采样的seed points产生votes; (2) 基于votes进行特征聚合, 预测box的位姿和类别。在第一步, 把N个points输入到PointNet++, 产生M (M < N, 因为上采样和下采样的数量不一样)个seed points及对应特征, 对一个seed point, 送入到共享的PointNet网络结构, 预测距离box center的偏移量和特征的残差项(residual), 因此得到M个votes及对应的特征。在第2步, 基于FPS采样K个votes, 对每一个采样的vote采用radius-based的搜索, 产生votes簇; 对K个簇进行特征聚合, 并预测是否有object, box的位姿和类别。(在回归box时, 采用的仍旧是基于anchor的方法)。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值