Waymo 新作: 端到端多角度融合的 3D 点云目标检测

date
Apr 1, 2022
Last edited time
Mar 27, 2023 09:02 AM
status
Published
slug
Waymo新作:端到端多角度融合的3D点云目标检测
tags
DL
CV
3D
summary
转载
type
Post
origin
Field
Plat
Waymo新作: 端到端多角度融合的3D点云目标检测
本文是VoxelNet作者Yin Zhou对于VoxelNet的既有问题提出的改善方法,其核心思想是透过 原有的两个角度(BEV与perspective)的体素特征融合,改善传统体素化的缺点。虽然未能够刷榜Kitti,但方法颇具启发性,对于voxel缺陷整理得较好,后续voxel系列的3D目标检测,皆能够应用类似方法,进一步提升精度。 摘要: 近期的3D点云目标检测中许多方法透过体素化(voxelization)的方式将点云进行切割,并用特征提取器将体素内点云进行特征提取,将无序点云变成有序的体素特征,接下来则能回归成2D点云的目标检测过程。而在这过程中,将点云体素化过程中,不可避免的会将同个物体的点云进行切割,尤其点云在远处时的稀疏问题与小物体的点云特征不足的问题(远处的人与骑行者),容易受到这种切割方式降低最终预测精准度。 为了解决以上问题,本文提出MVF,能够融合BEV与perspective下的体素特征,两个角度的特征各有其优缺点,融合后即能互相弥补。 具体来说,本文提出的dynamic voxelization比起传统的hard voxelization有以下四个优势: 不需要预设固定大小的体素化tensor 解决体素格中固定点云上限,造成的点云丢失的问题 确定性的体素特征 提供点云-体素的双向对应关系,能够自然的将不同角度的体素进行融合 MVF在Waymo dataset跟 Kitti上做了评价,显示MVF能够显著超越baseline Pointpillar。 貢獻: 端到端融合两个同个点云但不同视角的算法(MVF),一个视角是BEV(使用pointpillar),另一个视角的Frustum。两个视角弥补了特定视角的缺点。其过程中先将point与其两个视角中的其他points进行融合,再将point-level的embedding最终融合成voxel-level embedding。这种算法的好处是,point-level的embedding能够很容易地融合到其他算法上。 提出dynamic voxelization,比起传统hard voxelization有以下四大好处: 方法 : Multi-View Fusion dynamic voxelization不需要限制voxel内的最大点云数,可以有效地降低信息损失。 不需要填充voxel到预定地范围,传统voxelnet在远处很稀疏时,会有大量的空voxel,造成不必要的计算量 减少point与voxel丢失问题,模型更鲁棒 point-level embedding 提供从不同视角提供区域特征信息 MVF主要由兩個組件構成,dynamic voxelization 跟 feature fusion network 先將raw point cloud用FC层变成高维特徵,然后使用dynamic voxelization对BEV跟PV(perspective view)做双向对应关系(FV (pi) 和 FP (vj ))。 其中对应关系可以被建模成以下关系: FV (pi) = vj , ∀i (3) -> 特定点属于特定voxel FP (vj ) = {pi | ∀pi ∈ vj}, ∀j ->  特定voxel有对应点云集合 然后再将各自视角的voxel用FC+maxpooling(简易pointnet),进行特徵抽取,并使用CNN进行卷积扩大感受野(但维持相同解析度,没有进行降采样) 简单说,就是做成两个视角的voxel,透过类似pointnet进行encoding, 并且透过CNN扩大每个voxel感受野,这时候会有两个视角的feature map,融合他的方法就是透过原先建立起的point到voxel的对应map,举个例子,一个点被多两种voxel涵盖,透过这个对应mapping找出其所在voxel,提取其voxel feature,做成point-level的语意特徵。 这里读的不是很明白,做成point-level语意信息后,应该是打回pointpillar架构下,使用原来的anchor head detection做回归。我的理解是point升级成point - level feature之后,其所在的cart位置不变,再透过原先建立的mapping机制打回pointpillar的BEV结构,此时BEV结构中的点云特徵是带有perspective view的,如有错,请纠正~ 实验结果: 因此接下来的操作皆如Second与Pointpillar一样,有兴趣的读者可以去原文看loss function。 实验在Waymo dataset跟kitti做,Waymo ...
Waymo新作: 端到端多角度融合的3D点云目标检测
End-to-End Multi-View Fusion for 3D Object Detection in LiDAR Point Clouds
本文是 VoxelNet 作者 Yin Zhou 对于 VoxelNet 的既有问题提出的改善方法,其核心思想是透过 原有的两个角度 (BEV 与 perspective) 的体素特征融合,改善传统体素化的缺点。虽然未能够刷榜 Kitti,但方法颇具启发性,对于 voxel 缺陷整理得较好,后续 voxel 系列的 3D 目标检测,皆能够应用类似方法,进一步提升精度。

摘要

近期的 3D 点云目标检测中许多方法透过体素化 (voxelization) 的方式将点云进行切割,并用特征提取器将体素内点云进行特征提取,将无序点云变成有序的体素特征,接下来则能回归成 2D 点云的目标检测过程。而在这过程中,将点云体素化过程中,不可避免的会将同个物体的点云进行切割,尤其点云在远处时的稀疏问题与小物体的点云特征不足的问题(远处的人与骑行者),容易受到这种切割方式降低最终预测精准度。
为了解决以上问题,本文提出 MVF,能够融合 BEV 与 perspective 下的体素特征,两个角度的特征各有其优缺点,融合后即能互相弥补。
具体来说,本文提出的 dynamic voxelization 比起传统的 hard voxelization 有以下四个优势:
  1. 不需要预设固定大小的体素化 tensor
  1. 解决体素格中固定点云上限,造成的点云丢失的问题
  1. 确定性的体素特征
  1. 提供点云 - 体素的双向对应关系,能够自然的将不同角度的体素进行融合
MVF 在 Waymo dataset 跟 Kitti 上做了评价,显示 MVF 能够显著超越 baseline Pointpillar。

Hard Voxelization

对于输入的点云 , 使用 Hard Voxelization 将会得到一个固定大小的输出 . 其中 是点云中点的数量, 是点的特征维度.
HV 方法一般都是预先设定 Voxel 的个数 , 每一个 Voxel 包含的点的个数 . 如果一个 Voxel 内点的个数大于设定的数量, 则会随机丢弃一些点, 如果小于设定的点数, 则补0.
定义 为点 到体素 的映射关系, 为体素 到点的集合 的映射关系.
  • 缺点
      1. 点和体素在超出设定的容量范围之外的情况下会被丢弃, 可能会丢弃对模型来说有用的信息
      1. 当体素范围内的点的数量大于设定值的时候, 就会对体素里的点进行随机采样, 导致不稳定的检测结果
      1. 对体素进行填充导致了不必要的计算

Dynamic Voxelization

DV 与 HV 方法不同的是, DV 保留完整的点与体素的映射关系.因此,体素的数量和每个体素的点数都是动态的,取决于具体的映射函数。
DV 方法不会导致任何的信息损失, 产生的结果也是固定的, 不会因为随机采样而发生变化.
notion image
有了mapping关系之后,这些无序的点还需要组织成能使用conv操作的有序的形式,因此采用了fc+max操作的方式(max操作保证了每个voxel内特征维度的一致性),而缺失点的voxel依然需要补0(虽然文章没说,但是猜测是这么做的)。之后便采用了2d-conv(借鉴了FPN)。

© Lazurite 2021 - 2024