[文章解读] CVPR2020 What You See is What You Get: Exploiting Visibility for 3D Object Detection

前言

研究单位:
1 卡内基梅隆大学
2 Argo AI

摘要

[文章解读] CVPR2020 What You See is What You Get: Exploiting Visibility for 3D Object Detection
如a图所示,点云图像不能区分空白点和被遮挡点。但是激光雷达是在遇到物体后进行反射,所以在b图中利用激光投射可视化*空间,其中绿色是*的,白色是未知的。本文是通过区分空白点和被遮挡点和占据点,在目标检测网络中添加额外的点的状态特征来提高检测精度。

主要问题描述

在实时扫描得到的点云只是物体表面的点,被遮挡的点不能被检测到,所以点云数据应该只能是2.5D。只有重建被遮挡的部分,获得的完整的点云才能算作是3D。

本文的主要贡献

提出了一种深度学习方法,可以有效地增强点云的可见性。
具体贡献是三方面的;
(1)首先(重新)引入raycasting 算法,以有效地计算体素网格的实时可见性。 证明了这些可以纳入基于批次的梯度学习中。
(2)接下来,描述一种简单的方法来增强具有可见性的基于体素的网络:添加体素化的可见性图作为附加输入流,探索早期和晚期融合的替代方法;
(3)最后,证明了可见性可以与最新技术网络共有的两个关键修改相结合:虚拟对象的合成数据增强和LiDAR在多个时间范围内的时间聚集。 我们表明可见性提示可用于更好地放置虚拟对象。 我们还证明了在多个时间范围内的可见性推理类似于在线占用率映射。

本文对目前主流的3D物体检测算法进行概括,发现这些算法主要的创新点有两个:
第一,在训练集中添加虚构数据以提高网络最终的准确率;
第二,将多个不同时间段的瞬时点云数据进行聚合。

Object augmentation
它将对象点云从一个场景复制粘贴到另一个场景,从而生成新的训练数据。 这种增强技术既提高了收敛速度,又提高了最终性能,并已在所有最新的3D检测器中采用。

Temporal aggregation
通过一系列LiDAR扫描学习3D对象检测器时,事实证明,跨时间聚合信息很有帮助。

网络结构

将可见性集成到PointPillars模型中时,探索早期融合和晚期融合。 在早期融合(a)中,在应用骨干网络进行进一步编码之前将可见性体积与支柱特征连接在一起。 对于后期融合,为每个流构建一个单独的骨干网络,并将每个流的输出连接到最终的多通道特征图中。
[文章解读] CVPR2020 What You See is What You Get: Exploiting Visibility for 3D Object Detection

通过射线投影计算可见性

a)将点云中的每一个点分别与激光雷达中心连接成一条线段。
b)以3D栅格为例,将点云空间划分成离散的空间集合。
c)计算出所有线段与栅格的相对关系,得到栅格的三种属性:占据、*(空闲)以及未知。线段端点所在的栅格属性为占据;而该线段穿过的栅格都为*栅格;超出线段端点所在栅格外的即被标记为未知。

高效的体素遍历

在体素遍历阶段。算法会枚举体素的六个面,判断哪一个面与出射光线相交。然后找到共享该面的体素。一直到找到包含点的体素为止。

增强对象的射线投影

在原始点云中进行对象增强时,有可能会破坏可见性规则。如b所示,在遮挡的围墙后面,添加了对象。所以作者提出了两种方法来解决这个问题。

[文章解读] CVPR2020 What You See is What You Get: Exploiting Visibility for 3D Object Detection
c中作者删除了增强的对象(紫色部分)解决可见性不一致问题。但是这样就和没有进行对象增强一样了。所以又提出了d的方法,把遮挡住增强对象的围墙钻孔(黄色部分),使得增强的对象变得可见。

在线占用率映射

为了将瞬时的可见性视图扩展到连续时间语境中,作者使用基于贝叶斯后验概率预测的方法,将多帧图像融合进了一帧中,提高计算效率。最后,得到的单帧点云与其对应的可见性视图以及多帧融合的点云与可见性视图

[文章解读] CVPR2020 What You See is What You Get: Exploiting Visibility for 3D Object Detection
其中,蓝色表示*空间,灰色表示栅格状态未知,红色表示占据。红色越明显,则被占据的概率越大。

消融实验

[文章解读] CVPR2020 What You See is What You Get: Exploiting Visibility for 3D Object Detection
Table 3: OA stands for object augmentation and TA stands for temporal aggregation.

对本文的思考

为什么作者区分了空白点和被遮挡点之后就可以提升检测精度呢?现有的网络结构本来也不会对空白点和被遮挡点建立proposal或者其他的操作。想明白再来写。