论文阅读|基于点云的端到端的3D目标检测——VoxelNet

论文相关信息

在这里插入图片描述

论文原文

Abstract

为了将高度稀疏的LiDAR点云与区域建议网络(RPN)连接,大多数现有的工作都集中在手工制作的特征表示上,例如鸟瞰图。在这项工作中,我们消除了对3D点云进行手动特征工程的需要,并提出了VoxelNet,这是一种通用的3D检测网络,它将特征提取和边界框预测统一为一个单阶段(one-stage)的,端到端的可训练深度网络。 具体来说,VoxelNet通过新引入的体素特征编码(VFE)层将点云分为等距的3Dvoxel,并将每个体素内的一组点转换为统一的特征表示。 这样,将点云编码为描述性体积表示,然后将其连接到RPN以生成检测。 在KITTI汽车检测基准测试上的实验表明,VoxelNet在很大程度上优于基于LiDAR的最新3D检测方法。此外,我们的网络学习了具有各种几何形状的对象的有效判别表示,使得只基于雷达的3D行人检测等工作取得进步成果。
在这里插入图片描述

1. Introduction

与基于图像的检测相比,LiDAR提供了可靠的深度信息,可用于精确定位对象并表征其形状[21,5]。 但是,与图像不同,由于3D空间的非均匀采样,传感器的有效范围,遮挡和相对姿态等因素,LiDAR点云稀疏且点密度高度变化。 为了解决这些问题,许多方法尝试手工制作用于3D目标检测的特征表示。一些方法将点云投影到透视视图中,并应用基于图像的特征提取技术。 其他方法将点云栅格化为3D体素网格并使用手工制作的特征对每个体素进行编码。 但是,这些手动设计选择引入了一个信息瓶颈,从而阻止了这些方法有效地利用3Dshape信息和检测任务所需的不变性。图片上的识别和检测任务的主要突破是因为由手工设计的特征转向了学习得到的特征。

近期出现的PointNet是个端到端深度神经网络,可直接从点云中学习点状特征。在3D目标识别,3D部件分割和点的语义分割上取得不错的成果,之后其改进版本PointNet++增加了对不同尺寸的局部结构的学习,但是这两种网络都是直接在输入所有的点云(~1K个点)上处理的,而一个典型雷达获取的点云大约100k个点云,直接在这样量级的点云上训练的话,所需的计算和内存代价都太过高昂。因此,将3D特征学习网络升级到更多数量级和3D检测任务是我们在本文中要解决的主要挑战。

RPN是高度优化的目标检测算法,但是其要求数据密集且组织成张量结构(例如图像,视频),而典型的LiDAR点云则不是这种情况。 在本文中,我们缩小了点集特征学习和用于3D检测任务的RPN之间的差距。

文章提出了VoxelNet,这是一种通用的3D检测框架,可同时从点云中学习判别性特征表示并以端到端的方式预测准确的3D边界框。如图2所示。作者设计了一个新颖的体素特征编码层(voxel feature encoding (VFE) layer),通过将点的特征和局部聚合特征项结合,让体素内的点间有了交互作用。堆叠多个VFE层可以学习复杂的功能,以表征局部3D形状信息。VoxelNet将点云划分为等距的3D体素,并通过堆叠的VFE层对每个体素进行编码,然后3D卷积进一步聚合局部体素特征,将点云转换为高维度的体积(volumetric)表示。 最后,RPN消耗体积表示并产生检测结果。 这种高效的算法既受益于稀疏点结构,又受益于体素格子的高效并行处理。在KITTI基准提供的鸟瞰图和全D检测任务上评估VoxelNet,取得了SOTA性能,并且效果超越其它一大截,并且在行人和自行车检测上也表现很亮眼。
在这里插入图片描述

1.1. Related Work

介绍了手工设计特征阶段的方法不能实用复杂形状和场景;基于图像做3D目标检测的方法受限于深度信息精度;还有尝试基于体素表示的方法;以及一些用多模式融合的方法,将图片和激光雷达点云结合来提高准确率,这些方法比只基于点云的方法精度更高,尤其是对于小物体。但是这种方法要求相机做到和激光雷达时间同步和校准,限制了其使用场景,并且对传感器故障模式敏感。

1.2. Contributions

  • 我们为基于点云的3D检测提出了一种新颖的端到端可训练深度体系结构VoxelNet,该体系结构可直接在稀疏3D点上运行,避免了人工特征工程引入的信息瓶颈。后面实验表明核心就是端到端的可学习特征,去除了手工特征的瓶颈。
  • 我们提出了一种有效的方法来实现VoxelNet,这种方法收益于稀疏点云结构和在体素格子上的高效并行处理能力。
  • 我们在KITTI基准上进行了实验,并表明VoxelNet在基于LiDAR的汽车,行人和骑自行车的人的检测基准中产生了最先进SOTA的结果。

2. VoxelNet

本节介绍VoxelNet的架构,训练时的损失函数,一个实现网络的高效算法。

扫描二维码关注公众号,回复: 12822102 查看本文章

2.1. VoxelNet Architecture

VoxelNet由3部分组成,(1)特征学习网络,(2)卷积中间层,(3)区域建议网络(RPN),正如图2所示。

2.1.1 Feature Learning Network

Voxel Partition 。给定一个点云,我们将3D空间划分为等距的体素,如图2所示。假设点云包含的3D空间的范围为D,H,W,分别对应Z,Y,X轴。相应的,我们定义每个体素的尺寸为 v D , v H , 和 v W v_D,v_H,和v_W vD,vH,vW。最终的3D 体素格子的尺寸是 D ′ = D / v D , H ′ = H / v H , W ′ = W / v W D'=D/v_D,H'=H/v_H,W'=W/v_W D=D/vD,H=H/vH,W=W/vW。 为了简单,这里假设 D , H , W D,H,W D,H,W是多个 v D , v H , v W v_D,v_H,v_W vD,vH,vW

Grouping 。我们根据点所在的体素将它们分组。由于距离,遮挡,目标相对姿势和非均匀采样等因素,激光雷达点云空间上稀疏并且点密度高度变化。所以分组后,每个体素中包含的点的数量差异很大。图2很好解释了这一点,其中Voxel-1的点数明显高于Voxel-2和Voxel-4,而Voxel-3则没有点数。

Random Sampling 。通常,高清LiDARpoint云由约100k点组成。 直接处理所有点不仅在计算平台上增加了内存/效率负担,而且在整个空间中高度可变的点密度可能会使检测偏颇。 为此,我们从包含多于T个点的那些体素中随机抽取固定数量的点T。 这种采样策略有两个目的:(1)计算上的节省(有关详细信息,请参见第2.3节); (2)减少了体素之间的点的不平衡,从而减少了采样偏差,并增加了训练的变异性。

Stacked Voxel Feature Encoding 。关键创新是VFE层链。 为简单起见,图2说明了一个体素的分层特征编码过程。在不失一般性的情况下,我们使用VFE Layer-1来描述以下段落中的详细信息。 图3显示了VFE Layer-1的体系结构。
在这里插入图片描述

V = { p i = [ x i , y i , z i , r i ] T ∈ R 4 } i = 1... t V=\left\{p_i=[x_i,y_i,z_i,r_i]^T \in R^4\right\}_{i=1...t} V={ pi=[xi,yi,zi,ri]TR4}i=1...t 表示包含 t ≤ T t\leq T tT个点的非空体素。其中 p i p_i pi包含第i个点的XYZ坐标, r i r_i ri是接收到该点的反射率。首先计算局部均值作为V中所有点的质心,表示为 ( v x , v y , v z ) (v_x, v_y, v_z) (vx,vy,vz)。然后使用每个点 p i p_i pi相对于质心的偏移来增强每个点,得到输入特征集 V i n = { p i ^ = [ x i , y i , z i , r i , x i − v x , y i − v v y , z i − v v z ] T ∈ R 7 } i = 1... t V_{in}=\left\{\hat{p_i}=[x_i,y_i,z_i,r_i,x_i-v_x, y_i-vv_y, z_i-vv_z]^T \in R^7\right\}_{i=1...t} Vin={ pi^=[xi,yi,zi,ri,xivx,yivvy,zivvz]TR7}i=1...t 。然后每个增强后的点 p i ^ \hat{p_i} pi^通过全连接网络FCN转换成一个特征空间,在此特征空间中可以聚集来自特征点 f i ∈ R m f_i∈R^m fiRm的信息,以编码包含在体素内的表面的形状。这里FCN是由线性层,批量归一化(BN)层和整流线性单元(ReLU)层组成。 在获得逐点特征表示之后,我们对 f i f_i fi中所有关联到V的元素使用wise-wise MaxPooling来获得V的局部聚集特征 f ˉ ∈ R m \bar{f}\in R^m fˉRm。最后使用 f ˉ \bar{f} fˉ来增强每个 f i f_i fi来形成point-wise的拼接特征 f i o u t = [ f i T , f ˉ T ] T ∈ R 2 m f_i^{out} = [f_i^T,\bar{f}^T]^T\in R^{2m} fiout=[fiT,fˉT]TR2m。最后获得输出特征集 V o u t = { f i o u t } V_{out}=\left\{ f_i^{out}\right\} Vout={ fiout}。所有非空的体素都以同样的方式编码,并且它们共享相同的FCN参数设置。

由于输出VFE的输出特征结合了point-wise特征和局部聚合特征,所以堆叠VFE 层能够编码一个体素内的交互的点信息,使得最终的特征表示能够学习形状描述信息。voxel-wise通过将第n层的VFE输出传入FCN,之后做元素级别的Maxpool后得到,如图2所示。

Sparse Tensor Representation 。通过处理非空体素,获得了一个体素特征列表,每个都与特定非空体素的空间坐标相关联。如图2所示,获取的voxel-wise特征可以通过一个稀疏4D tensor来表示,其尺寸为 C × D ′ × H ′ × W ′ C × D′ × H′ × W′ C×D×H×W。虽然带女友包含约100k点,但是通常90%的体素是空的。表明非空体素特征可以作为一种稀疏tensor,进而能够在反向传播时极大地减少内存使用和计算代价,这也是我们高效计算的关键一步。

2.1.2 Convolutional Middle Layers

使用 C o n v M D ( c i n , c o u t , k , s , p ) ConvMD(c_{in},c_{out},k,s,p) ConvMDcincoutksp表示一个M维卷积算子,其中 c i n c_{in} cin c o u t c_{out} cout分别是输入和输出通道的数量,k,s和p分别是M维向量,对应于内核大小,步幅大小和填充大小。 当M维的大小相同时,k,s,p可以用一维表示,如Conv2D(128,64,2,1,1)等价于Conv2D(128,64,(2,2),(1,1),(1,1))。

每个卷积中间层顺序地应用了3D卷积,BN层和ReLU层。卷积中间层聚集了感受野逐渐增大的voxel-wise特征,并且增加了更多上下文背景做形状描述。卷积中间层的过滤器的详细信息见第3节。

2.1.3 Region Proposal Network

在这里插入图片描述

最近一些SOTA的3D目标检测方法中都是用来RPN,本文对RPN做了几处改进,将其与特征学习网络和卷积中间层结合起来形成一个端到端的可训练pipeline。

RPN的输入是卷积中间层提供的特征图。 该网络的架构如图4所示。 该网络具有3块完全卷积的层。 每个块的第一层通过stride为2的卷积对特征图进行一半下采样,然后跟着是stride为1的卷积序列(x q表示应用q个过滤器)。 每个卷积层之后,应用BN和ReLU操作。然后,我们将每个块的输出上采样到固定大小,并拼接以构建高分辨率功能图。 最后,将此特征图映射到所需的学习目标:(1)概率分数图和(2)回归图。

2.2. Loss Function

{ a i p o s } i = 1... N p o s \left\{ a_i^{pos}\right\}_{i=1...N_{pos}} { aipos}i=1...Npos表示 N p o s N_{pos} Npos个正样本, { a j n e g } j = 1... N n e g \left\{ a_j^{neg}\right\}_{j=1...N_{neg}} { ajneg}j=1...Nneg表示 N n e g N_{neg} Nneg个负样本,将3D真实框参数化为 ( x c g , y c g , z c g , l g , w g , h g , θ g ) (x_c^g,y_c^g,z_c^g,l^g,w^g,h^g,\theta^g) (xcg,ycg,zcg,lg,wg,hg,θg),前三个表示gt box的中心坐标,后四个分别表示长宽高和绕Z轴的旋转度。为了从参数化为 ( x c a , y c a , z c a , l a , w a , h a , θ a ) (x_c^a,y_c^a,z_c^a,l^a,w^a,h^a,\theta^a) (xca,yca,zca,la,wa,ha,θa)的正样本anchor中检索真实框,定义一个7维的残差向量 u ∗ ∈ R 7 u^* \in R^7 uR7,即包含∆x, ∆y, ∆z,∆l, ∆w, ∆h,∆θ,它们计算方式如下:
在这里插入图片描述

其中 d a = ( l a ) 2 + ( w a ) 2 d^a=\sqrt{(l^a)^2+(w^a)^2} da=(la)2+(wa)2 代表anchor box底部的对角线。

损失函数定义如下:
在这里插入图片描述

其中 p i p o s 和 p j n e g p_i^{pos}和p_j^{neg} pipospjneg分别表示positive anchor和negative anchor的softmax输出, u i , u i ∗ u_i,u_i^* ui,ui对应预测的回归输出和相对真实框的回归。 L c l s 表 示 的 是 二 至 交 叉 熵 损 失 , L_{cls}表示的是二至交叉熵损失, Lcls α , β \alpha,\beta α,β是用来平衡二者重要性的权重, L r e g L_{reg} Lreg是回归损失,采用的是SmoothL1函数。

2.3. Efficient Implementation

GPU已针对处理密集的张量结构进行了优化。 直接使用点云的问题在于,这些点稀疏地分布在整个空间中,并且每个体素都有可变数量的点。 我们设计了一种方法,可将点云转换为密集的张量结构,在其中可以在点和体素之间并行处理堆叠的VFE操作。
在这里插入图片描述

该方法啊如图5所示,我们初始化一个K×T×7维张量结构以存储体素输入特征缓冲区,其中K是非空体素的最大数量,T是每个体素的最大数量,7是每个点的输入时的编码维数,C是经过堆叠的VFE之后Voxel-wise特征的维度。 这些点在处理之前被随机化。 对于点云中的每个点,我们检查相应的体素是否已经存在。 使用哈希表将体素坐标用作哈希键,可以在O(1)的时间复杂度中有效地完成此查找操作。 如果体素已经初始化,托体素中点数量小于T,则将点插入到体素位置,否则将忽略该点。 如果体素未初始化,我们将初始化一个新的体素,将其坐标存储在体素坐标缓冲区中,然后将点插入此体素位置。 可以通过对点列表进行一次遍历来构造体素输入要素和坐标缓冲区,因此其复杂度为O(n)。 为了进一步提高存储/计算效率,可以仅存储有限数量(K)个体素,忽略来自具有很少点的体素的点。构造体素输入缓冲区后,堆叠的VFE仅涉及点级和体素级密集操作 可以在GPU上并行计算。 请注意,在VFE中进行串联操作后,我们将与空点(voxel input buffer中没有点的那部分,即图5中白色格子部分)相对应的特征重置为零,以使它们不影响计算的体素特征。 最后,使用存储的坐标缓冲区,我们将计算的稀疏体素结构重组为密集体素网格(如图5下部分的虚线表示那样,体素级特征在Buffer中属于密集tensor的,但其实它们对应的是稀疏tensor上分散的位置)。之后卷积中间层和RPN操作在密集体素网格上工作,可以在GPU上高效实现。

3. Training Details

在本节中,我们将解释VoxelNet的实现细节和培训过程。

3.1. Network Details

我们的实验设置基于KITTI数据集的LiDAR规范。

Car Detection 。对于此任务,我们考虑分别在Z轴,Y轴和X轴的[-3,1]×[−40,40]×[0,70.4]米范围内的点云。 投影到图像边界之外的点将被删除。一个体素大小为 v D = 0.4 , v H = 0.2 , v W = 0.2 v_D= 0.4, v_H= 0.2, v_W= 0.2 vD=0.4,vH=0.2,vW=0.2 (米),从而每个维度上体素的个数分别为D′= 10,H′= 400,W′= 352。每个非空体素中最大点数T=35。我们使用两个VFE层VFE-1(7,32)和VFE-2(32,128)。最终的FCN把VFE-2输出映射到 R 128 \mathbb{R}^{128} R128。所以该特征学习网络生成形状为128×10×400×352的稀疏张量,为了聚集voxel-wise的特征,我们顺序使用三个卷积中间层:Conv3D(128, 64, 3,(2,1,1), (1,1,1)), Conv3D(64, 64, 3, (1,1,1), (0,1,1)),以及Conv3D(64, 64, 3, (2,1,1), (1,1,1)),然后生成一个尺寸为64×2×400×352的4D张量(已自己计算验证)。

reshaping之后,RPN的输入是尺寸为128×400×352的特征图,其中尺寸对应于3D张量的通道,高度和宽度。图4中有该架构的细节。我们仅使用一个anchor尺寸, l a = 3.9 , w a = 1.6 , h a = 1.56 l^a = 3.9,w^a = 1.6,h^a = 1.56 la=3.9wa=1.6ha=1.56米,中心在 z c a z_c^a zca = -1.0米处,有0度和90度两个旋转角度。我们的anchor匹配条件如下: 如果anchor与一个ground truth的IoU最高或具有高于0.6的IoU(在鸟瞰图中),则为正。 如果anchor与所有ground truth框之间的IoU小于0.45,则认为该anchor是负样本。 与gt的IoU 0.45≤IoU≤0.6的anchor忽略。 我们在损失函数(等式2)中设置α= 1.5和β= 1。

Pedestrian and Cyclist Detection 。输入范围沿着Z,Y,X轴分别为[-3,1]×[-20,20]×[0,48]米。 我们使用与汽车检测相同的体素大小,从而每个维度上体素的个数分别为D = 10,H = 200,W =240。为了获得更多的LiDAR点以获得更好的形状信息捕获,我们将T = 45。 特征学习网络和卷积中间层与汽车检测任务中使用的网络相同。 对于RPN,对图4中的块1进行了修改,我们将第一个2D卷积中的stride大小从2更改为1。从而在anchor匹配中实现更高的分辨率,这对于检测行人和骑自行车的人来说是必需的。 我们使用anchor大小 l a = 0.8 , w a = 0.6 , h a = 1.73 l^a = 0.8,w^a = 0.6,h^a = 1.73 la=0.8wa=0.6ha=1.73米,中心在 z a c = − 0.6 米 z_a^c = -0.6米 zac=0.6,旋转0度和90度用于行人检测;使用anchor大小 l a = 1.76 , w a = 0.6 , h a = 1.73 l^a = 1.76,w^a = 0.6,h^a = 1.73 la=1.76wa=0.6ha=1.73米,中心位于 z a c = − 0.6 z_a^c = −0.6 zac=0.6,旋转0和90度,用于骑自行车者检测。 具体的anchor匹配条件如下:如果anchor与一个ground truth的IoU最高或具有高于0.5的IoU(在鸟瞰图中),则为正。 如果anchor与所有ground truth框之间的IoU小于0.35,则认为该anchor是负样本。与gt的IoU 0.35≤IoU≤0.5的anchor忽略。

训练时使用tochastic gradient descent(SGD) ,学习率前150epochs 为0.01,最后的10个epochs减少到0.001 。batchsize为16个点云。

3.2. Data Augmentation

如果少于4000个训练点云,从头开始训练我们的网络将不可避免地遭受过度拟合的影响。为减少此问题,我们引入了三种不同形式的数据增强。 增强的训练数据是即时生成的,无需存储在磁盘上。

定义集合 M = { p i = [ x i , y i , z i , r i ] T ∈ R 4 } i = 1 , . . . , N M = \left\{p_i = [x_i, y_i, z_i, r_i]^T ∈ \mathbb{R}^4\right\}i=1,...,N M={ pi=[xi,yi,zi,ri]TR4}i=1,...,N 为整个点云,由N个点组成, 我们将一个3D边框 b i b_i bi参数化为 ( x c , y c , z c , l , w , h , θ ) (x_c, y_c, z_c, l, w, h, θ) (xc,yc,zc,l,w,h,θ),分别对应中心坐标,边框的长宽高,θ是绕Z轴的偏航旋转。定义 Ω i = { p ∣ x ∈ [ x c − l / 2 , x c + l / 2 ] , y ∈ [ y c − w / 2 , y c + w / 2 ] , z ∈ [ z c − h / 2 , z c + h / 2 ] , P ∈ M } Ω_i=\left\{ p| x\in[x_c-l/2,x_c+l/2], y\in[y_c-w/2,y_c+w/2], z\in[z_c-h/2,z_c+h/2], P \in M \right\} i={ px[xcl/2,xc+l/2],y[ycw/2,yc+w/2],z[zch/2,zc+h/2],PM}为边框 b i b_i bi中的所有点的集合, p = [ x , y , z , r ] p=[x,y,z,r] p=[x,y,z,r]指该集合中的一个点。

第一种数据增强形式将扰动独立地应用于每个gt 3D边界框以及框内的那些LiDAR点。具体而言,我们绕着z轴以相对其中心的一个均匀分布的随机变量∆θ∈[−π/10,+π/10]来旋转 b i b_i bi和和其对应的点云 Ω i Ω_i i ,然后给边框和点云的XYZ分量增加一个平移(∆x,∆y,∆z),其中∆x,∆y,∆z服从独立于均值为零且标准偏差为1.0的高斯分布。为了避免物理上不可能的结果,在扰动之后,在任意两个盒子之间进行碰撞测试,如果检测到碰撞,则还原为增强的样子。

第二,我们将全局缩放(Scale)应用于整个点云M上的所有ground truth。 具体来说,我们将XYZ坐标和每个 b i b_i bi的三个维度以及所有点的XYZ坐标乘以从均匀分布[0.95,1.05]中提取的随机变量。 如基于图像的分类[37,18]和检测任务[12,17]所示,引入全局规模增强可提高网络用于检测各种大小和距离的对象的鲁棒性。

最后,我们将全局旋转应用于所有的ground truth box和整个点云 。 沿Z轴并围绕(0,0,0)施加旋转。 全局旋转偏移通过根据均匀分布[-π/ 4,+π/ 4]进行采样来确定。 通过旋转整个点云,我们可以模拟车辆转弯。

4. Experiments

我们在KITTI 3D对象检测基准上评估VoxelNet,该基准包含7,481个训练图像/点云和7,518个测试图像/点云,涵盖了三类:汽车,行人和骑自行车的人。 对于每个类别,将根据三个难度级别(轻松,中等和困难)对检测结果进行评估,这三个难度级别是根据对象大小,遮挡状态和截断级别确定的。 由于无法获得测试集的基本事实,并且访问测试服务器受到限制,因此我们使用MV中所述的协议进行全面评估,并将训练数据细分为训练集和一个验证集。这样就得到了3,712个用于训练的数据样本和3,769个用于验证的数据样本。 避免来自相同序列的样本被包含在训练和验证集中。 最后,我们还介绍了使用KITTI服务器的测试结果。

为了分析端到端学习的重要性,作者还实现了一个强大的基线模型,该基线模型是从Vox-elNet架构派生而来的,但使用手工制作的功能而不是建议的功能学习网络。 我们将此模型称为hand-crafted baseline (HC-baseline)。该模型在特征学习网络和卷积中间层上做了替换,训练方式与VoxelNet相似。

4.1. Evaluation on KITTI Validation Set

Metrics 遵循官方的KITTI评估协议,其中汽车类的IoU阈值为0.7,行人和自行车的IoU阈值为0.5。 鸟瞰图和完整3D评估的IoU阈值均相同。 我们使用平均精度(AP)指标比较这些方法。

Evaluation in Bird’s Eye View
在这里插入图片描述

其中VoxelNet达到了SOTA,而其派生版本HC-baseline也不错,表明RPN结构很有效,但是VoxelNet还是高出HC-baseline很多,这表明基于点云的目标检测核心是端到端的学习。

Evaluation in 3D
在这里插入图片描述

与只需要在2D平面中精确定位对象的鸟瞰图检测相比,3D检测是一项更具挑战性的任务,因为它需要在3D空间中对形状进行更好的定位。如表2所示,在3D检测上VoxelNet也是表现最佳,而且相比鸟瞰图的评估,3D检测优势更明显,表明其更适合用于3D检测。

4.2. Evaluation on KITTI Test Set

在这里插入图片描述

通过将检测结果提交给官方服务器,对KITTI测试集上的VoxelNet进行了评估。 结果总结在表3中。在所有任务(鸟瞰图和3D检测)和所有困难上,VoxelNet的性能均明显优于先前发布的最新技术。 我们想指出的是,KITTI基准测试中列出的许多其他领先方法同时使用RGB图像和Li-DAR点云,而VoxelNet仅使用LiDAR。

时间

在一个 TitanX GPU 和1.7Ghz CPU上,VoxelNet的推理时间为33毫秒:体素输入特征计算耗时5毫秒,特征学习网络耗时16毫秒,卷积中间层耗时1毫秒,重提案网络耗时11毫秒。

5. Conclusion

基于LiDAR的3D检测中大多数现有方法都依赖于手工制作的特征表示,例如鸟瞰图。 在本文中,我们消除了手动特征工程的瓶颈,并提出了VoxelNet,这是一种基于点云的3D检测的新型端到端可训练深度架构。 我们的方法可以直接在稀疏3D点上运行,并有效捕获3D形状信息。 我们还提出了VoxelNet的有效实现,该实现得益于点云稀疏性和体素网格上的并行处理。 我们对KITTI汽车检测任务的实验表明,VoxelNet在很大程度上优于基于LiDAR的最新3D检测方法。 在更具挑战性的任务上,例如对行人和骑自行车的人进行3D检测,VoxelNet还展示了令人鼓舞的结果,表明它提供了更好的3D表示。 未来的工作包括扩展Voxel-Net以用于联合LiDAR和基于图像的端到端3D检测,以进一步提高检测和定位精度。

猜你喜欢

转载自blog.csdn.net/yanghao201607030101/article/details/114708548