CVPR2020:利用图像投票增强点云中的三维目标检测(ImVoteNet)
CVPR2020:利用图像投票增强点云中的三维目标检测(ImVoteNet)
ImVoteNet: Boosting 3D Object Detection in Point Clouds With Image Votes
论文地址:
摘要
由于在点云的深度学习方面的进步,三维物体检测已经取得了快速的进展。最近的一些作品甚至展示了仅使用点云输入(例如VoteNet)的最新性能。然而,点云数据有其固有的局限性。它们是稀疏的,缺乏颜色信息,经常受到传感器噪声的影响。另一方面,图像具有高分辨率和丰富的纹理。因此,它们可以补充点云提供的三维几何图形。然而,如何有效地利用图像信息来辅助基于点云的检测仍然是一个有待解决的问题。在这项工作中,我们在VoteNet的基础上,提出了一种专门用于RGB-D场景的三维检测体系结构ImVoteNet。ImVoteNet是基于融合图像中的2D投票和点云中的3D投票。与以往的多模态检测相比,我们从二维图像中明确地提取出几何特征和语义特征。我们利用摄像机参数将这些特征提升到三维,为了提高二维-三维特征融合的协同性,我们还提出了一种多塔式训练方案。我们在具有挑战性的SUN RGB-D数据集上验证了我们的模型,通过5.7 mAP将最新的结果推进。我们也提供丰富的烧蚀研究来分析每种设计选择的贡献。
1.介绍
三维环境中物体的识别和定位是实现完整场景理解的重要第一步。即使这样的低维场景表示也可以服务于自主导航和增强现实等应用。最近,随着点云数据深度网络的发展,一些作品[33,56,41]展示了以点云为唯一输入的最先进的三维检测结果。其中,Qi等人最近提出的VOTENET[33]工作,仅考虑三维几何输入,与以往利用所有RGB-D通道的工作相比,在室内目标识别方面有了显著的改进。这就引出了一个有趣的研究问题:三维几何数据(点云)对于三维检测来说是否足够,或者RGB图像是否可以进一步增强电流检测器?通过检查点云数据和RGB图像数据的特性(例如参见图1),我们认为答案是明确的:RGB图像在3D对象检测中具有价值。事实上,图像和点云提供了互补的信息。RGB图像的分辨率高于深度图像或激光雷达点云,并且包含在点域中不可用的丰富纹理。此外,图像可以覆盖有源深度传感器的“盲区”,这些区域通常是由于反射面而出现的。另一方面,由于缺乏三维点云所能提供的目标深度和尺度的绝对度量,图像在三维检测任务中受到限制。这些观察,增强了我们的直觉,即图像可以帮助基于点云的三维检测。然而,如何在3D检测流水线中有效地利用2D图像仍然是一个有待解决的问题。一种简单的方法是直接将原始RGB值附加到点云上,因为点像素对应关系可以通过投影建立。但是由于三维点比较稀疏,这样做会丢失图像域中的密集图案。鉴于此,最近提出了更先进的方法来融合二维和三维数据。一个工作线[34,52,19]使用成熟的二维探测器以截头的形式提供初步建议。这限制了用于估计三维边界框的三维搜索空间。然而,由于其级联设计,它在初始检测中没有利用三维点云。特别是,如果一个物体在二维中丢失,它在三维中也会丢失。另一项工作[45,18,48,11]采取了一种更注重3D的方式,在将中间ConvNet特征从2D图像连接到3D体素或点,以丰富3D特征,然后将其用于对象建议和框回归。这种系统的缺点是不直接使用二维图像进行定位,这可以为三维目标的检测提供有益的指导。在我们的工作中,我们在成功的VOTENET架构[33]的基础上,设计了一个用于三维目标检测的联合2D-3D投票方案IMVOTENET。它利用了更成熟的二维探测器[38],但同时仍保留了从完整点云本身提出物体的能力,将两种工作线的优点结合起来,同时避免了每种方法的缺点。我们设计的一个动机是利用二维图像中的几何和语义/纹理线索(图1)。几何线索来自于图像中精确的2D边界框,例如2D检测器的输出。我们不再仅仅依赖于目标提议的2D检测[34],而是将提议过程推迟到3D,给定一个2D方框,在图像空间生成2D投票,每个投票从对象像素连接到2D amodal box中心。为了将2D投票传递到3D,我们通过基于相机内部和像素深度的几何变换来提升它们,从而生成“伪”3D投票。这些伪3D投票成为附加到3D对象提案种子点的额外特征。除了来自2D投票的几何线索外,每个像素还将语义和纹理线索传递给3D点,或者作为每个区域提取的特征,或者作为每个像素提取的特征。
在将图像中的所有特征提升并传递到3D之后,我们将它们与来自点云主干网的3D点特征连接起来[35,36]。接下来,在VOTENET管道之后,这些融合了2D和3D特征的点生成了3D Hough选票[12]——不受2D方框的限制——指向对象中心,并聚集投票,以产生3D中的最终目标检测。由于种子特征同时具有2D和3D信息,对于恢复严重截断的对象或具有较少点的对象,它们直观上更具信息量,并且在区分几何相似对象方面更具说服力。此外,我们认识到,当融合二维和三维源时,必须仔细平衡来自两种模式的信息,以避免一种模式被另一种模式控制。为此,我们进一步引入了一种具有梯度混合的多塔网络结构[49],以确保我们的网络能够充分利用二维和三维特征。在测试过程中,只使用基于2D-3D特征的主塔,最大限度地降低了效率方面的牺牲。我们在具有挑战性的SUN RGB-D数据集上评估IMVOTENET[43]。我们的模型实现了最先进的结果,同时显示了一个显着的改进(+5.7地图)三维几何纯VOTENET,验证了图像投票和二维特征的有用性。我们也提供广泛的消融研究,以证明每个单独的组成部分的重要性。最后,我们还探讨了使用颜色来补偿深度点稀疏的可能性,特别是对于质量较低的深度传感器或使用移动单目相机(SLAM)估计深度的情况,显示了我们的方法在更广泛的使用情况下的潜力。总之,我们工作的贡献是:
第一,一种将二维目标检测线索融合到基于点云的三维检测管道中的几何原理方法。
第二,设计的深网络IMVOTENET在SUN RGB-D上实现了最先进的三维目标检测性能。
第三,广泛的分析和可视化,以了解系统的各种设计选择。
2.相关工作
三维传感设备的进步导致了一系列用于识别和定位三维场景中物体的方法。最相关的工作是使用点云进行检测和使用完整的RGB-D数据进行检测。我们还简要讨论了多模数据融合领域的一些其他相关工作。
基于点云的三维目标检测
为了使用纯粹的几何信息定位对象,一种流行的方法是基于模板匹配,使用一组干净的CAD模型直接[21,28,25],或通过提取的特征[44,2]。最近的方法是基于点云深网[35,56,20,41,33]。在三维场景理解的背景下,语义和实例分割也取得了令人满意的结果[53,4,9]。与我们的工作最相关的是PointRCNN[41]和Deep Hough Voting(VOTENET)[33](与早期的Hough投票思想[47,50,16,15]),它们分别展示了室外和室内场景中最先进的三维物体检测技术。值得注意的是,这些结果是在不使用RGB输入的情况下实现的。为了利用这些额外的信息,我们在这项工作中提出了一种进一步提高检测性能的方法。
基于RGB-D数据的三维目标检测
深度和颜色通道都包含有用的信息,这些信息可以用于三维对象检测。现有的融合这两种模式的方法大致分为三类:二维驱动、三维驱动和特征连接。第一种方法[19,34,6,52]从二维图像中的目标检测开始,然后用于引导3D中的搜索空间。通过3D驱动,我们参考了首先在3D中生成区域建议,然后利用2D特征进行预测的方法,例如深滑动形状[45]。最近更多的工作集中在融合过程中早期的二维和三维特征,如多模体素网[48]、AVOD[18]、多传感器[22]和3D-SIS[11]。然而,所有这些都是通过二维特征到三维特征的连接来实现融合的。我们提出的方法与第三种类型更为密切相关,但在两个重要方面不同。首先,我们建议明确使用来自二维检测器的几何线索,并以伪3D投票的形式将其提升到3D。第二,我们使用多塔体系结构[49]来平衡来自两种模式的特性,而不是简单地对连接的特性进行培训。
学习中的多模态融合
如何融合来自多个模式的信号是一个开放的研究问题,在其他领域的三维目标检测。三维场景的语义分割通常同时使用RGB和深度数据[10,27]。视觉和语言研究为视觉问答等任务开发了联合推理视觉数据和文本的方法[7,32,54]。另一个活跃的研究领域是视频+声音[30,8],其中附加的音轨既可以提供监督信号[31],也可以提出有趣的任务来测试对两个流的联合理解[55]。针对所有这些任务,我们提出了一种新的梯度混合方法[49],以使多模式网络更加健壮(对过拟合和不同的收敛速度),我们的方法也采用了这种方法。
3.ImVoteNet架构
基于最近提出的deep Hough投票框架(VOTENET[33]),我们设计了一个适用于RGB-D场景的3D对象检测解决方案,通过将几何和语义/纹理线索从2D图像传递到投票过程(如图2所示)。在本节中,在简要总结了VOTENET管道的原始情况之后,我们将描述如何借助RGB上的2D检测器来构建“2D投票”,并解释如何将2D信息提升到3D并传递到点云以改进3D投票和提案。最后,我们描述了我们的多塔式结构,将二维和三维检测与梯度混合结合起来[49]。更多的实现细节在补充中提供。
3.深度霍夫投票
VOTENET[33]是一个前馈网络,它消耗一个三维点云,并为三维目标检测输出对象建议。受广义Hough变换[3]开创性工作的启发,VOTENET提出了一种对象检测投票机制,以适应完全可微的深度学习框架。具体来说,它由一个点云特征提取模块组成,该模块利用高维特征丰富场景点(称为种子)的子采样集(图2的底部从N×3个输入点到K×(3+F)种子)。然后,这些特性通过多层接收(MLP)来生成投票。每一次投票既是三维空间中的一个点,它的欧几里德坐标(3dim)被监督接近目标中心,又是为最终检测任务(F-dim)学习的特征向量。投票在对象中心附近形成聚集的点云,然后由另一个点云网络进行处理,以生成对象建议和分类分数。这个过程相当于图2中的管道,只使用了点塔,而没有进行图像检测和融合。VOTENET最近在RGB-D中实现了室内3D目标检测的最新成果[33]。然而,它仅仅是基于点云的输入,而忽略了图像通道,正如我们在这篇文章中所展示的,图像通道是非常有用的信息来源。在IMVOTENET中,我们利用了额外的图像信息,并提出了一个从2D投票提升到3D投票的提升模块,提高了检测性能。接下来,我们将解释如何在图像中获得2D投票,以及如何将几何线索与语义/纹理线索一起提升到3D。
3.2.二维检测的图像投票
我们根据一组二维探测器的候选框生成图像投票。在其几何部分中,图像投票仅仅是连接图像像素和像素所属的2D对象边界框的中心的向量(参见图1)。每个图像投票还通过其源像素的特征来增强其语义和纹理线索,使得每个图像投票具有F′维,如图2中的融合块中所示。为了形成给定RGB图像的盒子集,我们应用现成的2D检测器(例如更快的R-CNN[38]),在RGB-D数据集的颜色通道上进行预训练。检测器输出最有争议的边界框及其相应的类。我们为检测框中的每个像素分配一个投票给框中心。多个框中的像素被赋予多个投票权(每个像素对应的3D种子点被复制),任何框外的像素都被填充零。接下来我们将详细介绍如何获得几何、语义和纹理线索。
几何提示:将图像投票提升到3D平移2D投票为3D对象定位提供了有用的几何线索。给定摄像机矩阵,图像平面中的2D对象中心成为3D空间中连接3D对象中心和摄像机光学中心的光线(图1)。将此信息添加到种子点可以有效地将对象中心的3D搜索空间缩小到1D。具体地说,如图3所示,给定3D中的对象,其检测到的2D边界框位于图像平面中,我们将三维物体中心表示为C,它在图像上的投影表示为C。物体表面上的一个点P与其在图像中的投影点P相关联,因此知道了2D物体中心C的二维投票,就可以将3D中心的搜索空间缩小到光线OC上的一维位置。现在,我们推导出将光线信息传递到三维种子点的计算。在摄像机坐标系中定义P=(x1,y1,z1),在图像平面坐标系中,P=(u1,v1),c=(u2,v2),我们试图恢复3D物体中心c=(x2,y2,z2)(3D点P的投票目标)。
3.3.特征融合与多塔训练
利用提升后的图像投票及其对应的语义和纹理线索(图2中融合块中的K×F′)以及具有种子点K×F的点云特征,每个种子点可以生成3D投票并将其聚合以提出3D边界框(通过类似于[33]中的投票和提议模块)。然而,优化深层网络以充分利用所有模式的线索需要格外小心。正如最近的一篇论文[49]所提到的,如果没有一个仔细的策略,多模态训练实际上会比单一模态训练导致性能下降。原因是不同的模式可能会以不同的速度学习解决任务,因此,如果不注意,某些特征可能会主导学习并导致过度调整。在这项工作中,我们遵循[49]中介绍的梯度混合策略来加权不同模态塔的梯度(通过加权损失函数)。在我们的多塔公式中,如图2所示,我们有三个塔以三组特征提取种子点:仅点云特征、仅图像特征和联合特征。每座塔都有相同的探测3D物体的目标任务——但它们都有各自独立的3D投票和盒子提案网络参数以及各自的损失。
4.实验测试
在图4中,我们突出显示原始VOTENET[33](仅使用点云输入)和我们的IMVOTENET(点云加图像输入)的检测结果,以显示图像信息如何以各种方式帮助3D检测。第一个例子展示了二维对象定位和语义的帮助。我们看到一个杂乱无章的书架被VOTENET遗漏了,但由于图像中的二维检测,我们有足够的信心在我们的网络中识别它。图像语义也有助于我们的网络避免VOTENET输出中的误报椅子(咖啡桌和蜡烛混淆了网络)。第二个例子展示了图像如何补偿深度传感器的限制。由于黑色沙发的颜色和材质,几乎没有为它捕捉到任何深度点。虽然VOTENET完全错过了沙发,但我们的网络却能把它捡起来。第三个例子展示了图像线索如何通过恢复远处的物体(后面的桌子和椅子)来突破3D检测性能的极限,这些物体甚至在地面真实性注释中被遗漏了。
几何线索分析
为了验证从2D投票中提取的几何线索是否有帮助,我们消融了表2a中传递给3D种子点的几何特征(如等式6所示)。
我们可以看到,从第1行到第3行,不使用任何二维几何提示会导致2.2点的下降。另一方面,不使用光线角度会导致1.2点的下降,这表明光线角度有助于为伪3D投票提供校正提示。
语义线索分析
表2b显示了不同类型的2D图像对3D区域检测性能的影响。我们可以看到,一个热门类得分向量(检测到的类的概率得分,其他类设置为0)虽然简单,但会导致最佳结果。直接使用来自更快的R-CNN网络的1024个dim RoI特征实际上得到了最差的数字,这可能是由于将高亮度特征与静止点特征融合的优化挑战。将1024个dim特性减少到64dim有帮助,但是仍然不如简单的one hot score特性。
纹理线索分析
表2c显示了不同的低级图像特征(纹理特征)如何影响末端检测性能。很明显,原始的RGB特征已经是有效的,而更复杂的每像素CNN特征(来自更快的RCNN检测器的特征金字塔[23])实际上可能由于过度设置而造成伤害。
渐变混合
表3研究了塔架重量对梯度混合训练的影响。我们用几组具有代表性的重量,从单塔训练(第一排)、每个塔的主要重量(第二排到第四排)和我们的最佳设置。值得注意的是,即使只使用图像特征(第一行,第四列),即伪投票和来自图像的语义/纹理线索,我们已经可以优于以前的几种方法(见表1),显示了我们的融合和投票设计的威力。
稀疏点云检测
虽然深度图像为场景提供了密集的点云(通常为10k到100k点),但其他场景中只有稀疏点可用。一个例子是通过视觉里程计[29]或运动结构(SfM)[17]计算点云,其中三维点位置是通过估计多个视图中单目相机的姿势来三角化的。在如此稀疏的数据下,拥有一个仍能获得良好检测性能的系统是很有价值的。为了分析稀疏点云模型的潜力,我们通过两种类型的点子采样来模拟用更少的点进行扫描:均匀随机子采样(以均匀分布移除现有点)和基于ORB[40]关键点的子采样(对图像上的ORB关键点进行采样,只保留投影到这些2D关键点附近的3D点)。在表4中,我们给出了不同分布和密度的点云输入的检测结果。我们看到在“点云”一栏中,随着点数的减少,三维检测性能迅速下降。另一方面,我们看到包含图像提示可以显著提高性能。当采样点来自更不均匀分布的ORB关键点时,这种改进最为显著。
CVPR2020:利用图像投票增强点云中的三维目标检测(ImVoteNet)的更多相关文章
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- 利用更快的r-cnn深度学习进行目标检测
此示例演示如何使用名为“更快r-cnn(具有卷积神经网络的区域)”的深度学习技术来训练对象探测器. 概述 此示例演示如何训练用于检测车辆的更快r-cnn对象探测器.更快的r-nnn [1]是r-cnn ...
- CVPR2020:点云三维目标跟踪的点对盒网络(P2B)
CVPR2020:点云三维目标跟踪的点对盒网络(P2B) P2B: Point-to-Box Network for 3D Object Tracking in Point Clouds 代码:htt ...
- 3D目标检测(CVPR2020:Lidar)
3D目标检测(CVPR2020:Lidar) LiDAR-Based Online 3D Video Object Detection With Graph-Based Message Passing ...
- CVPR2020:三维实例分割与目标检测
CVPR2020:三维实例分割与目标检测 Joint 3D Instance Segmentation and Object Detection for Autonomous Driving 论文地址 ...
- (转)如何用TensorLayer做目标检测的数据增强
数据增强在机器学习中的作用不言而喻.和图片分类的数据增强不同,训练目标检测模型的数据增强在对图像做处理时,还需要对图片中每个目标的坐标做相应的处理.此外,位移.裁剪等操作还有可能使得一些目标在处理后只 ...
- 夜晚场景图像ISP增强算法
夜晚场景图像ISP增强算法 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)摄像头标定参数(中心位置(x,y)和5个畸变 系数(2 ...
- 【Tool】Augmentor和imgaug——python图像数据增强库
Augmentor和imgaug--python图像数据增强库 Tags: ComputerVision Python 介绍两个图像增强库:Augmentor和imgaug,Augmentor使用比较 ...
- CVPR2020|3D-VID:基于LiDar Video信息的3D目标检测框架
作者:蒋天园 Date:2020-04-18 来源:3D-VID:基于LiDar Video信息的3D目标检测框架|CVPR2020 Brief paper地址:https://arxiv.org/p ...
随机推荐
- C/C++ 介绍的PE文件遍历工具
在前面的笔记中,我总结了Pe结构的一些结构含义,并手动编写了几段PE结构遍历代码,这里我直接把之前的C语言代码进行了封装,形成了一个命令行版的PE文件查看工具,该工具只有20kb,但却可以遍历出大部分 ...
- hdu4814 模拟(黄金分割进制转换)
题意: 给你一个十进制数,让你把他转化成Q进制数,Q是黄金分割比 = (1+√5)/2. 思路: 首先要明确的就是虽然q是实数,但是依然可以转换成q进制数,因为任何数num, ...
- Android内核模块编译执行
Author: GeneBlue 0X01 前言 内核驱动是漏洞的高发区,了解Android驱动代码的编写是分析.利用驱动漏洞的基础.本文以一个"hello"驱动为例,简单介绍内核 ...
- UVA11137(立方数之和)
题意: 给你一个n(<=10000),问他如果由立方数之和组成,那么有多少种方法? 思路: 一个地推公式,d[i][j] 表示用不大于i的数字去组合j这个数字有多少种方 ...
- UVA11134传说中的车(放棋子)
题意: 给你一个n*n的棋盘,让你在棋盘上放n个棋子,要求是所有棋子不能相互攻击(同行或者同列就会攻击),并且每个棋子都有一个限制,那就是必须在给定的矩形r[i]里,输出每个棋子的位置,s ...
- Ravindrababu Ravula老师的数据结构与算法
最关键的问题是,作为印度裔,他的英语口音真的真的很好懂!!!而且语速很慢,适合大家学习. 作为一哥热衷于搬砖的小伙,我将他的视频搬运到了B站,大家可以前往我的B站观看,搜索"爱码士Noe&q ...
- 【python】Leetcode每日一题-最大数
[python]Leetcode每日一题-最大数 [题目描述] 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数. 注意:输出结果可能非常大,所以你需要返回一个 ...
- PHP Excel文件导入数据到数据库
1.php部分(本例thinkphp5.1): 下载PHPExcel了扩展http://phpexcel.codeplex.com/ <?phpnamespace app\admin\contr ...
- 快速上手NumPy
NumPy is the fundamental package for scientific computing in Python. NumPy是一个开源的Python科学计算库. 官网:ht ...
- c++debug&注意事项 自用 持续更新
cin后回车程序直接退出: 加system("pause");在return 0;前面 C++ 控制cout输出的小数位数 C++中的cout.setf().cout.precis ...