资讯详情

(CVPR 2017)VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection

摘要

准确检测3D点云的目标是自主导航、家政机器人、增强/虚拟现实等诸多应用的核心问题。高度稀疏LiDAR点云与区域proposal网络 (RPN) 现有的工作大多集中在手工制作的特征表达上,如鸟瞰投影。在这项工作中,我们消除了对3D提出了点云手动特征工程的需要VoxelNet,这是通用3D检测网络,将特征提取和边界框预测统一到单阶段、端到端训练的深度网络。具体来说,VoxelNet将点云划分为等间距的3D通过新引入的体素特征编码体素 (VFE) 层将每个体素中的一组点转换为统一的特征表示。这样,点云被编码成描述性体积,然后连接到RPN生成检测。在KITTI汽车检测基准上的实验表明,VoxelNet大大优于基础LiDAR的最先进的3D检测方法。此外,我们的网络学习了各种几何形状的目标的有效判断,因此仅基于LiDAR3行人和骑自行车的人D测试取得了令人鼓舞的结果。

1.介绍

基于点云的3D目标检测是自主导航[11、14]、家政机器人[26]、增强/虚拟现实[27]等各种现实世界应用的重要组成部分。基于点云的3D目标检测是自主导航[11、14]、家政机器人[26]、增强/虚拟现实[27]等各种现实世界应用的重要组成部分。与基于图像的检测相比,LiDAR可用于准确定位目标并表示其形状[21, 5]。为了应对这些挑战,许多方法手动为点云制作特征表示,针对3D调整了目标检测。将点云投影到透视图中,并应用基于图像特征的提取技术[28、15、22]。其他方法将点云光栅化为3D体素网格,并以手工制作的特点编码[41、9、37、38、21、5]。然而,这些手动设计选择引入了信息瓶颈,阻碍了3的有效使用D检测任务所需的形状信息和不变性。图像识别[20]和检测[13]任务的重大突破是从手工特性转向机器学习的特点。

图1、VoxelNet直接在原点云上运行(无特征工程),并使用单端到端训练网络生成3D检测结果。

最近,Qi等人[29]提出PointNet,深度神经网络端到端,直接从点云中学习逐点特征。这种方法在3D目标识别、3D令人印象深刻的结果显示在目标部分分割和逐点语义分割任务上。引入[30]PointNet改进版本使网络能够学习不同规模的局部结构。这两种方法在所有输入点都有令人满意的结果(~1k特征变换器网络在点上训练。由于使用LiDAR典型的点云包含~10万个点,训练架构如[29,30]会导致高计算和内存要求。将3D特征学习网络扩展到更多的数量级点和3D本文解决了检测任务的主要挑战。

区域proposal网络(RPN)[32]是一种高度优化的算法,用于高效的目标检测[17、5、31、24]。然而,这种方法要求数据密集并以张量结构(例如图像、视频)进行组织,而典型的LiDAR点云不是这样。本文填写了点集特征学习和三维检测任务RPN差距。

我们提出了VoxelNet,这是一个通用的3D检测框架,同时从点云中学习识别特征,以端到端的方式预测准确的3D如图2所示,边界框。我们设计了一种新颖的体素特征编码(VFE)层,通过将逐点特征与局部聚合特征相结合,可以实现体素间交互。堆叠多个VFE允许学习用于表征局部3D形状信息的复杂特征。具体来说,VoxelNet将点云划分为等间距的3D通过堆叠体素VFE层编码每个元素,然后3D卷积进一步聚合局部体素特征,将点云转化为高维体积。最后,RPN用体积表示并产生检测结果。这种高效算法受益于稀疏点结构和体素网格的高效并行处理。

图2、VoxelNet结构。特征学习网络以原始点云为输入,将空间划分为体素,将每个体素中的点转换为表征形状信息的向量表示。这个空间是稀疏的4D张量。卷积中间层处理4D聚合空间上下文张量。RPN生成3D检测。

我们在KITTI基准[11]提供的鸟瞰检测和完整的3D评估检测任务VoxelNet。实验结果表明,VoxelNet大大优于最先进的基础LiDAR的3D检测方法。VoxelNet在从LiDAR在点云中检测行人和骑自行车的人取得了令人鼓舞的成绩。

1.1.相关工作

3D传感器技术的快速发展促进了研究人员对云中目标的检测和定位。一些早期的特征表达方法是 [39, 8, 7, 19, 40, 33, 6, 25, 1, 34, 2]。当有丰富而详细的3D当形状信息可用时,这些手工制作的特征会产生令人满意的结果。然而,它们无法适应更复杂的形状和场景,也无法从数据中学习所需的不变性,导致自主导航等无法控制的场景的有限成功。

鉴于图像提供了详细的纹理信息,许多算法从2开始D图像中推断出3D边界框[4, 3, 42, 43, 44, 36]。然而,基于图像的3D受深度估计的准确性限制,检测方法的准确性。

几种基于LIDAR的3D用体素网格表示目标检测技术。[41, 9]用6个统计量编码每个非空体素,它来自体素中包含的所有点。[37]将多个局部统计数据据来表示每个元素。[38]计算体素网格上的符号距离。[21]对3D二进制编码用于体素网格。[5]通过计算鸟瞰图中的多通道特征图和前视图中的圆柱形坐标,引入了 LiDAR 点云多视图表示。将点云投影到透视图上,然后使用基于图像的特征编码方案[28、15、22]。

还有几种多模态融合方法可以结合图像和激光雷达来提高检测精度[10、16、5]。与仅使用LiDAR的3D与检测相比,这些方法提供了改进性能,特别是对于小物体(行人、骑自行车的人)或当物体很远时,因为相机提供的测量值比LiDAR多一个数量级。但是,需要一个和LiDAR额外的时间同步和校准摄像头限制了它们的使用,使解决方案对传感器故障模式更加敏感。在这项工作中,我们只专注于LiDAR检测。

1.2.贡献

  • 以点云为基础,提出了一种新颖的端到端训练深度架构D检测VoxelNet,它直接对稀疏 3D 点进行操作,避免了手动特征工程引入的信息瓶颈。

  • 我们提出了一个实现 VoxelNet 该方法既受益于稀疏点结构,又受益于体素网格的高效并行处理。

  • 我们在KITTI在基准上进行了实验,结果LiDAR在汽车、行人和自行车检测基准中,VoxelNet产生最先进。

2.VoxelNet

本节将解释VoxelNet实现网络的架构、用于训练的损失函数和有效算法。

2.1.VoxelNet架构

提出的VoxelNet由三个功能块组成:(1)特征学习网络,(2)卷积中间层,以及(3)区域proposal如图2所示,网络[32]。下一章将详细介绍VoxelNet。

2.1.1 特征学习网络

给定一个点云,我们将3D空间细分为等间距体素,如图2所示。假设点云包含3D空间,范围为D、H、W,分别沿Z、Y、X轴。我们相应地将尺寸定义为 v D v_{D} vD、 v H v_{H} vH​ 和 v W v_{W} vW​的每个体素。生成的3D体素网格的大小为 D ′ = D / v D D^{\prime}=D / v_{D} D′=D/vD​, H ′ = H / v H H^{\prime}=H / v_{H} H′=H/vH​, W ′ = W / v W W^{\prime}=W / v_{W} W′=W/vW​。在这里,为简单起见,我们假设D、H、W是 v D v_{D} vD​、 v H v_{H} vH​、 v W v_{W} vW​的倍数。

我们根据这些点所在的体素对它们进行分组。由于距离、遮挡、物体的相对姿态和非均匀采样等因素,LiDAR点云是稀疏的,并且在整个空间中具有高度可变的点密度。因此,分组后,一个体素将包含可变数量的点。图2显示了一个示例,其中Voxel-1的点明显多于Voxel-2和Voxel-4,而Voxel-3不包含任何点。

通常,高清LiDAR点云由10万个点组成。直接处理所有点不仅会增加计算平台的内存/效率负担,而且整个空间中高度可变的点密度可能会使检测产生偏差。为此,我们从包含超过 T T T个点的体素中随机抽取一个固定数量的点 T T T。这种抽样策略有两个目的,(1)节省计算量(详见第 2.3 节); (2) 减少体素之间的点不平衡,从而减少采样偏差,并为训练增加更多变化。

关键的创新是VFE层。为简单起见,图2说明了一个体素的分层特征编码过程。不失一般性,我们在下一段中使用VFE Layer-1来描述细节。图3显示了VFE第1层的架构。

图3、Voxel特征编码层。

将 V = { p i = [ x i , y i , z i , r i ] T ∈ R 4 } i = 1 … t \mathbf{V}=\left\{\mathbf{p}_{i}=\left[x_{i}, y_{i}, z_{i}, r_{i}\right]^{T} \in \mathbb{R}^{4}\right\}_{i=1 \ldots t} V={ pi​=[xi​,yi​,zi​,ri​]T∈R4}i=1…t​表示为包含 t ≤ T t ≤ T t≤T个LiDAR点的非空体素,其中 p i p_{i} pi​包含第 i i i个点的XYZ坐标, r i r_{i} ri​是接收到的反射率。我们首先将局部均值计算为 V \mathbf{V} V中所有点的质心,记为 ( v x , v y , v z ) \left(v_{x}, v_{y}, v_{z}\right) (vx​,vy​,vz​)。然后我们用相对于质心的相对偏移量来增加每个点 p i p_{i} pi​并获得输入特征集 V in  = { p ^ i = [ x i , y i , z i , r i , x i − v x , y i − v y , z i − v z ] T ∈ R 7 } i = 1 … t \mathbf{V}_{\text {in }}=\left\{\hat{\mathbf{p}}_{i}=\left[x_{i}, y_{i}, z_{i}, r_{i}, x_{i}-v_{x}, y_{i}-v_{y}, z_{i}-v_{z}\right]^{T} \in \mathbb{R}^{7}\right\}_{i=1 \ldots t} Vin ​={ p^​i​=[xi​,yi​,zi​,ri​,xi​−vx​,yi​−vy​,zi​−vz​]T∈R7}i=1…t​。接下来,每个 p i p_{i} pi​通过全连接网络(FCN)转换到特征空间,在该空间中,我们可以聚集来自点特征 f i ∈ R m \mathbf{f}_{i} \in \mathbb{R}^{m} fi​∈Rm的信息,以对体素内包含的表面形状进行编码。FCN由线性图层、批量归一化(BN)图层和校正线性单位(ReLU)图层组成。在获得逐点特征表示后,我们在与 V \mathbf{V} V关联的所有 f i \mathbf{f}_{i} fi​上使用逐元素MaxPooling来获得 V \mathbf{V} V的局部聚合特征 f ~ ∈ R m \tilde{\mathbf{f}} \in \mathbb{R}^{m} f~∈Rm。最后,我们用 f ~ \tilde{\mathbf{f}} f~增加每个 f i \mathbf{f}_{i} fi​以形成逐点连接特征 f i out  = [ f i T , f T ] T ∈ R 2 m \mathbf{f}_{i}^{\text {out }}=\left[\mathbf{f}_{i}^{T}, \mathbf{f}^{T}\right]^{T} \in \mathbb{R}^{2 m} fiout ​=[fiT​,fT]T∈R2m。因此我们得到输出特征集 V out  = { f i out  } i … t \mathbf{V}_{\text {out }}=\left\{\mathbf{f}_{i}^{\text {out }}\right\}_{i \ldots t} Vout ​={ fiout ​}i…t​。所有非空体素都以相同的方式编码,并且它们在FCN中共享相同的参数集。

我们使用VFE-i( c i n c_{in} cin​, c o u t c_{out} cout​)来表示第i个VFE层,它将维度 c i n c_{in} cin

标签: 传感器1130

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台