Frustum PointNets for 3D Object Detection from RGB-D Data

原文链接:https://blog.csdn.net/cuichuanchen3307/article/details/80156433 转载自己存档
摘要:本文研究室内和室外的三维目标检测技术,用RGB-D数据。之前的方法着重于2维图像或3维体素,这样会模糊三维数据本身的模式和三维数据的不变性。本文直接在原始点云数据上操作,通过popping up RGB-D scans。但是,这个方法的一个关键挑战是,如何在大场景的点云数据下有效地找到物体位置,即region proposal 。因此,本文利用发展成熟的二维目标检测和三维深度学习网络来实现定位,效率很高并且对小目标召回率很高。直接从点云数据学习的好处是,能够在强遮挡或非常稀疏的点下精确估计3D边界框。

1、介绍

三维传感器数据通常是点云的形式,如何表示点云、用什么样的深度网络结构检测三维目标仍然是开放性的问题。现在大多数的方法:将三维点云投影成二维图像,或通过量化将其转换为体积网格,接着使用卷积网络。但是,这些数据表示会模糊三维数据本身的模式和不变性。近来,一些论文提出不转换点云数据形式,直接在点云上操作。例如一个新型的深度网络结构叫PointNets,在三维解译任务如三维目标分类和语义分割方面表现卓越。

虽然PointNets能够对点云中的每个点进行分类或预测语义类,但不清楚该架构如何用于实例级3D对象检测。为实现这一目标,我们必须解决一个关键挑战:如何在3D空间中有效地提出3D对象的可能位置。 仿照图像检测实践,通过滑动窗口[8]或3D区域提议网络(例如[33])来枚举候选3D盒子非常简单。 然而,3D搜索的计算复杂度通常在分辨率方面立方增长,并且对于大场景或实时应用(例如自动驾驶)而言太昂贵。

相反,在这项工作中,我们遵循降维原则减少搜索空间:我们利用成熟的2D物体检测(图1)。 首先,我们通过从图像检测结果的二维边界框来提取物体的三维边界视锥体。然后,在由每个3D视锥体裁剪的3D空间内,我们使用PointNet的两个变体连续执行3D对象实例分割和3D边界框回归。 分割网络预测感兴趣对象的3D掩模(即实例分割); 并且回归网络估计三维边界框(覆盖整个对象,即使只有部分是可见的)。

与之前将RGB-D数据处理成二维图像并送入CNN的方法相比,我们的方法更加以3D为中心,因为我们将深度图提升为3D点云并使用3D工具处理它们。这种以3D为中心的视图能够以更有效的方式探索3D数据的优点。首先,在我们的结构中,*连续地在三维坐标系上应用几个变换,*这些变换将点云对齐排列成为更约束和规范的序列。这些对齐因素决定了数据中的姿态变化,从而使3D几何图案更加明显,*从而使3D学习的工作更轻松 *。其次,在3D空间学习可以更好地利用3D空间的几何和拓扑结构。原则上,所有物体都生活在3D空间中;因此,我们认为许多几何结构(例如重复,平面度和对称性)更自然地能够直接在三维空间中捕获、学习并参数化。这种以3D为中心的网络设计理念的实用性得到了最近的许多实验证据的支持。

本文方法的主要贡献:

我们提出了一种新的基于RGB-D数据的三维物体检测框架,称为Frustum PointNets。

我们展示了如何在我们的框架下训练3D物体检测器,并在标准3D物体检测基准上实现最先进的性能。

我们提供广泛的量化评估来验证我们的设计选择以及丰富的定性结果,以便了解我们方法的优势和局限性。

2、相关工作

3D Object Detection from RGB-D Data:多种方法来表示RGB-D数据:

基于前视图的方法:[4,24,41]采用单目RGB图像并形成先验或遮挡图案来推断3D边界框。 [18,7]将深度数据表示为二维图像,并将CNN应用于二维图像中的物体定位。 相比之下,我们将深度数据表示为点云,并使用先进的3D深度网络(PointNets)来更有效地利用3D几何特性。

基于鸟瞰图的方法:MV3D [6]将Li-DAR点云投射到鸟瞰图上,并为3D边界框proposal训练一个region proposal网络(RPN [29])。 然而,该方法在检测诸如行人和骑车人等小物体方面滞后,并且不能容易地适应具有垂直方向上的多个物体的场景。

基于3D的方法:[38,34]从点云上提取手工设计的几何特征,用SVM来训练3D对象分类器,然后使用滑动窗口搜索来定位对象。 [8]通过用体素化3D网格上的3D CNN取代SVM来扩展[38]。 [30]为点云中的三维物体检测设计新的几何特征。 [35,17]将整个场景的点云转换为体积网格,并使用3D体积CNN作为对象提议和分类。由于3D卷积和大型3D搜索空间的昂贵成本,这些方法的计算成本通常相当高。最近,[16]提出了一种2D驱动的3D物体检测方法,与我们的思想类似。然而,他们使用手工制作的特征(基于直方图的点坐标)和简单的全连接网络来回归3D盒子的位置和姿态,这在速度和性能上都是次优的。相反,我们提出了一个更加灵活和有效的深度3D特征学习解决方案(PointNets)。

点云的深度学习:在特征学习之前,大多数现有方法将点云转换为图像或体积网格形式。 [40,23,26]将点云体素化为体积网格,并将图像CNN推广到3D CNN。 [19,31,39,8]设计更有效的3D CNN或利用点云稀疏性的神经网络体系结构。 然而,这些基于CNN的方法仍然需要以某种体素分辨率对点云进行量化。 最近,一些方法[25,27]提出了一种新型的网络体系结构(PointNets),它直接使用原始云而不将其转换为其他格式。 虽然PointNets已经应用于单个对象分类和语义分割,但我们的工作探讨了如何扩展体系结构以达到三维对象检测的目的。

3、问题定义

以RGB-D数据为输入,我们的目标是在3D空间中对对象进行分类和定位。 从LiDAR或室内深度传感器获得的深度数据在RGB摄像机坐标中表示为点云。投影矩阵也是已知的,所以我们可以从2D图像区域获得3D视锥体。 每个目标都由一个类(k个预定义类中的一个)和一个3D边界框表示。 即使目标的一部分被遮挡或截断,该边界框也会框住整个对象。 3D边界框的表示参数有:大小h; w; l(高、宽、长),中心坐标cx;cy; cz和方向(3个角度:俯仰角、翻滚角、方位角),相对于每个类别的预定义的典型姿态。 在我们的实验中,我们只考虑朝向角θ(物体前进方向,围绕上轴)。

4、3D Detection with Frustum PointNets

如图2所示,我们的三维物体检测系统由三个模块组成:视锥体建议,三维实例分割和三维边界框估计。 我们将在下面的小节中介绍每个模块。 我们将重点关注每个模块的网络组成和功能,并且对涉及的深层网络的特定架构进行补充。

在这里插入图片描述

4.1. Frustum Proposal

由大多数3D传感器产生的数据的分辨率,特别是实时深度传感器,仍然低于商品相机拍摄的RGB图像。因此,我们利用成熟的二维物体检测器在RGB图像中提供二维对象区域以及对物体进行分类。

使用已知的相机投影矩阵,可以将2D边界框提升到定义该对象的3D搜索空间的视锥体(由深度传感器范围指定的近平面和远平面)。然后,我们收集视锥体内的所有点以形成视锥体点云。如图4(a)所示,视锥体可能朝向许多不同的方向,这导致点云布置的变化很大。因此,我们通过将它们朝向中心视图旋转来使它们归一化,使得视锥体的中心轴与像平面正交。这种规范化有助于提高算法的旋转不变性。我们称这一整个过程为从RGB-D数据视锥体建议生成中提取视锥体点云。

我们的3D检测框架与2D区域建议网络是分开的两部分,2D区域建议网络采用基于FPN [20]的模型。 我们在ImageNet分类和COCO目标检测数据集上预先训练模型权重,并在KITTI 2D目标检测数据集上进一步对其进行微调以分类和预测2D边界框。 补充资料中提供了2D检测器训练的更多细节。

在这里插入图片描述

4.2. 3D Instance Segmentation

给定2D图像区域(及其相应的3D视锥体),可以使用几种方法来获得对象的3D位置:一个直接的解决方案是使用2D CNN从深度图直接回归3D对象位置(例如,通过3D边界框)。 然而,这个问题并不容易,因为遮挡物体和背景杂波在自然场景中很常见(如图3),这可能会严重影响3D定位任务。 由于物体在物理空间中自然是分开的,所以3D点云中的分割比图像(图中远处物体的像素可以彼此靠近,使得分辨困难)更加自然和容易。 观察到这一事实后,我们建议直接在三维点云中进行处理而不是二维图像或深度图。 类似于Mask-RCNN [14],它通过对图像区域中的像素进行二进制分类来实现实例分割,我们使用基于PointNet的网络在平截头体中的点云上实现3D实例分割。

基于3D实例分割,我们能够实现基于残差的3D定位。 也就是说,我们预测在局部坐标系中的3D边界框中心 - 3D掩膜,而不是回归传感器偏移量在大范围内变化的绝对三维位置(例如KITTI数据中从5m到超过50m) 坐标如图4(c)所示。

在这里插入图片描述
3D Instance Segmentation PointNet:

该网络采用平截头体的点云,并预测每个点的概率分数,表明该点属于感兴趣对象的可能性。 请注意,每个平截头体只包含一个感兴趣的对象。 在这里,这些“其他”点可以是不相关区域的点(例如地面,植被)或其他隐藏或关注感兴趣对象的实例。 与2D实例分割中的情况类似,根据平截头体的位置,一个平截头体中的对象点在另一个平截头体内可能变成杂乱点或遮挡点。 因此,我们的分割PointNet正在学习遮挡和杂波模式,以及识别某个类别的对象的几何特性。

在多类别检测案例中,我们还利用二维检测器的语义进行更好的实例分割。 例如,如果我们知道感兴趣的对象是行人,那么分割网络可以在找到看起来像人的几何图形之前使用它。 具体而言,在我们的体系结构中,我们将语义类别编码为一个单独的热类矢量(对于预定义的k类别为k维),并将单热矢量连接到中间点云特征。 补充说明了具体体系结构的更多细节。

在3D实例分割之后,被分类为感兴趣对象的点被提取(图2中的“masking”)。在获得这些分割的对象点之后,我们进一步对其坐标进行归一化以提高算法的平移不变性,遵循相同的 如在截锥体建议步骤中的原理。 在我们的实现中,我们通过将质心减去XYZ值,将点云转换为局部坐标。 这在图4(c)中示出。 请注意,我们故意不缩放点云,因为部分点云的边界球尺寸会受到视点的很大影响,并且点云的实际尺寸有助于盒尺寸估计。

在我们的实验中,我们发现如上所述的坐标变换和以前的平截头体旋转对于3D检测结果是关键的,如表8所示。

4.3. Amodal 3D Box Estimation

给定分割对象点(在3D蒙版mask坐标中),该模块通过使用箱回归PointNet和预处理变换器网络一起估计对象的面向amodal的3D边界框。

Learning-based 3D Alignment by T-Net:基于学习的3D对齐–T-Net

尽管我们已经根据它们的质心位置对齐了分割的对象点,但我们发现,掩模坐标框架的起点(图4(c))仍然可能离amodal box中心很远。 因此,我们建议使用轻量级回归PointNet(T-Net)来估计整个物体的真正中心,然后转换坐标,使预测中心成为原点(图4(d))。

我们的T-Net的架构和训练类似于[25]中的T-Net,它可以被认为是一种特殊类型的空间变换网络(STN)[15]。 然而,与对转换没有直接监督的原始STN不同,我们明确地监督我们的翻译网络以预测从mask坐标原点到实际物体中心的中心残差。

Amodal 3D Box Estimation PointNet:

对于在3D物体坐标中给定物体点云的物体(图4(d)),边界框估计网络预测了边界框(对于整个物体,即使其中的一部分是不可见的)。 网络体系结构类似于目标分类[25,27],但输出不再是目标类别分数,而是三维边界框的参数。

如第3部分所述,我们通过中心(cx,cy,cz),大小(h,w,l)和航向角θ来参数化3D边界框。 我们采用“残差”方法进行边界框中心估计。 由边界框估计网络预测的中心残差与来自T-Net的先前中心残差和掩蔽点的质心组合以恢复绝对中心(等式1)。 对于边界框的大小和方位角,我们遵循以前的方法[29,24],并使用分类和回归公式的混合。 具体而言,我们预先定义NS尺寸模板和NH等分角度箱。 我们的模型将大小/航向(尺寸的NS分数,航向的NH分数)分类到这些预先定义的类别,并且预测每个类别的残差数量(3×NS 残差维度:高度,宽度,长度,NH残差角度:航向)。 最终净输出3 + 4×NS + 2×NH个数字。

在这里插入图片描述

4.4. Training with Multitask Losses

我们同时优化了涉及多任务损失的三个网络(3D实例分割PointNet,T-Net和amodal盒估计PointNet)(如公式2)。 Lc1

5、实验

KITTI : 图1显示了我们的3D检测器在KITTI上的性能,大大地优于现在方法。虽然MV3D [6]使用多视图特征聚合和复杂的多传感器融合策略,但我们基于PointNet [25](v1)和PointNet ++ [27](v2)的方法在设计上更加清晰。虽然超出了这项工作的范围,但我们期望传感器融合(尤其是用于3D检测的图像特征的聚合)可以进一步改善我们的结果。
我们还在Tab2中显示了我们方法在3D对象定位(鸟瞰图)上的表现。在3D定位任务中,边界框被投影到鸟瞰视图平面,IoU在定向2D框上进行评估。 同样,我们的方法明显优于以前的工作,包括在投影的LiDAR图像上使用CNN的DoBEM [42]和MV3D [6],以及在体素化点云上使用3D CNN的3D FCN [17]。

我们的网络输出在图6中可以看出,即使在非常具有挑战性的情况下,我们也可以观察到精确的3D实例分割和边界框预测。 我们将关于成功和失败案例模式的更多讨论放在到Sec5.3。 我们还在Tab3、4中报告了KITTI val集(与[6]中相同的训练/验证集拆分方式)的性能(用于汽车)支持与更多已发表的作品进行比较,并在Tab5中(供行人和骑自行车者)参考。

5.2. Architecture Design Analysis

实验设置:除非另有说明,否则本节中的所有实验均基于我们在KITTI数据上的v1模型,使用[6]中的train / val split。 为了解耦2D检测器的影响,我们使用地面真实2D框用于区域提议,并使用3D框估计精度(IoU阈值0.7)作为评估指标。 我们只关注训练数据最多的汽车这一类。

与三维检测的替代方法相比:在这一部分中,我们使用2D掩模评估了一些基于CNN的方法以及我们网络的消融版本和变体。

在Tab6的第一行,我们显示来自两个基于CNN的网络的3D边界框估计结果。基准方法在RGB-D图像的地面真值框上训练了VGG [32]模型,并采用相同的框参数和损失函数作为我们的主要方法。 虽然第一行中的模型直接估计来自vanilla RGB-D图像块的三位边界框的位置和参数,但另一个(第二行)使用从COCO数据集训练的FCN进行2D掩模估计(如Mask-RCNN [14]中那样) 并且仅使用来自掩膜区域的特征进行预测。 还通过减去2D掩模内的中值深度来转换深度值。 然而,与我们的主要方法相比,两个CNN基准方法都得到了更糟糕的结果。

为了理解CNN基准表现不佳的原因,我们在图7中可视化典型的2D掩模预测。虽然估计的2D掩模在RGB图像上以高质量出现,但2D掩模中仍然存在大量杂波和前景点。 相比之下,我们的3D实例分割得到了更加清晰的结果,这大大简化了下一个模块的精细定位和边界框回归。

在Tab6的第三行,我们尝试了一个没有3D实例分割模块的截锥版PointNet的消融版本。 毫不奇怪,该模型比我们的主要方法得到更糟糕的结果,这表明我们的3D实例分割模块的关键效果。 在第四行中,代替3D分割,我们使用来自2D掩模深度图(图7)的点云来进行3D盒估计。 然而,由于2D蒙版无法清晰地分割3D对象,因此性能比3D分割(第五行中的主要方法)差12%以上。 另一方面,2D和3D蒙版的组合使用 - 在2D掩模深度图上对点云应用3D分割 - 也显示比我们的主要方法稍差的结果可能是由于来自不准确的2D掩模预测的累积误差。

点云归一化的作用:如图4所示,我们的视锥体PointNet采用一些关键的坐标转换来规范化点云,以便更有效地学习。 Tab7示出了每个归一化步骤如何帮助3D检测。 我们看到平截头体旋转(使得平截头体点具有更相似的XYZ分布)和掩模质心减法(使得对象点具有更小且更规范的XYZ)是关键的。 此外,T-Net对象点云与对象中心的额外对齐也极大地提高了性能。

回归损失方程和角点损失的作用:在Tab8中,我们比较了不同的损失选项,并表明“cls-reg”损失(航向和尺寸回归的分类和残差回归方法)和规范化的角点损失的组合可以获得最佳结果。仅使用单纯的回归损失(首先 因为回归目标的范围很大(物体大小从0.2m到5m),所以得到了不令人满意的结果。 相比之下,cls-reg损失和标准化版本(由标题箱尺寸或模板形状尺寸标准化的残差)实现了更好的性能。 在最后一行,我们表明正常的角落损失进一步有助于优化。

5.3. Qualitative Results and Discussion

优点:在图6中,我们可视化我们的视锥体PointNet模型的代表性输出。 我们看到,对于合理距离的非遮挡物体的简单情况(因此我们得到足够数量的点),我们的模型输出非常精确的3D实例分割掩模和3D边界框。 其次,我们惊讶地发现我们的模型甚至可以从具有少量点的部分数据(例如平行停放而造成遮挡的汽车)中正确地预测三维边界框的姿态,这种情况下人为(对遮挡车辆)标注都很困难。 第三,在某些情况下,在具有大量附近或甚至重叠的2D框的图像中看起来非常具有挑战性,当转换为3D空间时,定位变得更容易(例如,第二行第三列中的P11)。

缺点:另一方面,我们确实观察到几种失效模式,这些模式表明了未来努力的可能方向。第一个常见错误是由于稀疏点云中的姿势和大小估计不准确(有时小于5个点)。我们认为图像功能可以极大地帮助。因为我们甚至可以访问远距离物体的高分辨率图像补丁。第二种类型的挑战是在平截头体中存在来自同一类别的多个实例(例如两个人待命)。由于我们当前的管道在每个平截头体中假定一个感兴趣的对象,因此当出现多个实例时可能会混淆,从而输出混合的分割结果。如果我们能够在每个平截头体内提出多个3D边界框,则可以减轻这个问题。第三,有时我们的2D检测器由于暗光或强遮挡而错过物体。由于我们的平截头体提议基于区域提议,因此在没有2D检测的情况下不会检测到3D对象。但是,我们的3D实例分割和amodal 3D盒估计PointNets不限于RGB视图提议。如补充说明所示,相同的框架也可以扩展到鸟瞰图中提出的3D区域。

补充:Details on Frustum PointNets

一、网络结构

    我们采用与PointNet [25]和PointNet ++ [27]的原始工作分别作为我们的v1和v2模型类似的网络架构。 不同的是,我们添加额外的类一热矢量链接,以便实例分割和边界框估计可以利用从RGB图像预测的语义。 详细的网络架构如图8所示。

    对于v1模型,我们的体系结构包含基于来自全局特征和每个点的聚合信息的点嵌入层(作为独立于每个点上的共享MLP),一个池化层(max pooling)和每点分类多层感知器(MLP),以及一个 -hot类矢量。 请注意,我们不使用[25]中的变压器网络,因为平截点是基于视点的(不像[25]中的完整点云),并且已经通过平截头体旋转进行了归一化。 除XYZ外,我们还利用LiDAR强度作为第四个通道。

对于v2模型,我们使用集合抽象层进行点云中的分层特征学习。 此外,由于LiDAR点云越来越稀疏,因此功能学习必须对这些密度变化具有鲁棒性。 因此,我们使用了一种鲁棒类型的集合抽象层 - 如[27]中为分段网络引入的多尺度分组(MSG)层。 凭借分层特征和对不同密度的学习鲁棒性,我们的v2模型在分割和边界框估计中表现出优于v1模型的性能。

B.2. Data Augmentation and Training

Data augmentation:数据增强在防止模型过度拟合方面起着重要作用。 我们的增强包括两个分支:一个是2D边界框增强,另一个是平截头体点云增强。

我们使用地面真值2D框来为Frustum PointNets训练产生平截头体点云,并通过随机平移和缩放来增加2D框。 具体来说,我们首先计算2D边界框高度(h)和宽度(w),然后分别在u,v通过均匀地从[-0.1w,0.1w]和[-0.1h,0.1h]取样。 高度和宽度也通过从[0.9,1.1]比例均匀采样来增强。

我们通过三种方式扩充每个视锥云点。 首先,我们从平截头体点云中随机抽取一个点子集(KITTI为1,024,SUN-RGBD为2,048)。 对于从我们预测的3D蒙版分割的对象点,我们从其中随机采样512个点(如果少于512个点,我们将随机重新采样以弥补该数字)。 其次,我们在相机坐标中沿着YZ平面随机翻转平截头体点云(在将平截头体旋转到中心之后)(Z向前,Y向下)。 第三,我们通过在Z轴方向上移动整个平截头体点云来扰乱点,从而增加点的深度。 与所有数据增强一起,我们相应地修改3D掩模和标题的地面实况标签。

KITTI训练:KITTI中的物体检测基准为车辆,行人和骑自行车者提供同步RGB图像和LiDAR点云以及地面真实的二维和三维盒子注释。 训练集包含7,481帧,未公开的测试集包含7,581帧。 在我们自己的实验中(测试集除外),我们按照[4,6]将官方训练集分成3,717帧的训练集和3769帧的验证集,使得训练集/验证集中的帧属于不同的 视频剪辑。 对于在测试集上评估的模型,我们在我们自己的训练/测试集中训练我们的模型,其中使用大约80%的训练数据,使得模型可以通过看到更多示例来实现更好的概括。

为了获得3D实例分割的地面真值,我们只需将落入真实3D边界框的所有点都视为对象点。 尽管有时来自地面点或来自其他近距离物体的点(例如,待命的人)会成为假对象点,但是自动标记的分割基础事实通常是可接受的。

对于我们的v1和v2模型,我们使用Adam优化器,启动学习率为0.001,每60k迭代逐步衰减(减半)。 对于除最后一个分类或回归分类之外的所有可训练层,我们使用批量归一化,起始衰减率为0.5,并逐渐将衰减率衰减到0.99(每20k迭代中逐步衰减,速率为0.5)。 我们对v1型号使用批量大小32,对v2型号使用批量大小24。 所有三个Point-Nets都经过端到端的训练。

在单个GTX 1080 GPU上进行训练,需要大约一天时间训练v1模型(所有三个网络)200个epoch,而v2模型需要大约三天。 我们选择了前(200个epoch)的模型进行评估。

C. Details on RGB Detector

对于2D RGB图像检测器,我们使用编码器 - 解码器结构(例如DSSD [9],FPN [20])使用focal loss【21】从多个特征图生成区域建议[21]并使用fast R-CNN [12]来预测 来自区域提案的最终2D检测边界框。

为了使检测器更快,我们从SSD [22]采用简化的VGG [32]基础网络架构,每层采样一半通道,并将所有最大池层更改为3×3内核大小和2步幅的卷积层。 然后我们在ImageNet CLS-LOC数据集上对其进行微调,进行400k次迭代,批量大小为260,在10个GPU上。所得到的基础网络架构在CLS-LOC验证数据集上具有约66.7%的前1个分类精度,仅需要大约1.2 ms来处理224? NVIDIA GTX 1080上的224图像。

作者:jilijilicao
来源:CSDN
原文:https://blog.csdn.net/cuichuanchen3307/article/details/80156433
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/qq_41581769/article/details/88287464