中文标题:VoxNet:用于实时对象识别的 3D 卷积神经网络
作者:Daniel Maturana等
期刊:IROS
年份:2015
引用数:2013
摘要
强大的物体识别是机器人在现实世界环境中自主运行的一项关键技能。 LiDAR 和 RGBD 相机等距离传感器越来越多地出现在现代机器人系统中,提供了丰富的 3D 信息来源,可以帮助完成这项任务。然而,当前的许多系统并没有充分利用这些信息,并且难以有效地处理大量点云数据。在本文中,我们提出了 VoxNet,这是一种通过将体积占用网格表示与受监督的 3D 卷积神经网络 (3D CNN) 集成来解决该问题的架构。我们使用 LiDAR、RGBD 和 CAD 数据在公开可用的基准上评估我们的方法。 VoxNet 在每秒标记数百个实例的同时实现了超越现有技术的准确度。
1 介绍
语义对象识别是自主机器人在非结构化真实环境中运行的一项重要能力。同时,LiDAR 和 RGBD 摄像头等主动距离传感器是现代自动驾驶汽车(包括汽车 [1]、四旋翼飞行器 [2] 和直升机 [3])越来越普遍的传感器选择。虽然这些传感器被大量用于避障和地图绘制,但它们对环境语义理解的潜力仍然相对未开发。我们希望充分利用这种数据进行物体识别。
在本文中,我们解决了在给定 3D 点云段的情况下预测对象类标签的问题,其中可能包括背景杂波。该问题中的大多数当前技术水平都遵循传统的流程,包括提取和聚合手工设计的特征,然后将这些特征输入到现成的分类器中,例如 SVM。直到最近,这也是基于图像的对象识别和计算机视觉中类似任务的最新技术。然而,这种方法已经在很大程度上被基于深度学习的方法所取代 [6],其中特征和分类器是从数据中联合学习的。特别是,卷积神经网络 (CNN) [7] 显着改善了图像对象识别的最新技术。此后,CNN 已在各种其他任务中显示出其有效性 [8]。
虽然将基本方法扩展到体积数据在概念上很简单,但尚不清楚哪些架构和数据表示(如果有)会产生良好的性能。此外,体积表示很容易变得难以计算;也许由于这些原因,3D 卷积网络被描述为“噩梦”[9]。
本文的主要贡献是 VoxNet,这是一种基本的 3D CNN 架构,可用于为 3D 点云数据创建快速准确的对象类检测器。正如我们在实验中所展示的那样,该架构使用三种不同的 3D 数据源:LiDAR 点云、RGBD 点云和 CAD 模型,在对象识别任务中实现了最先进的准确性。
2 相关工作
A.使用点云数据进行对象识别
使用来自 LiDAR 和 RGBD 传感器的 3D 点云进行物体识别的大量工作。这项工作的大部分使用将各种手工制作的特征或描述符与机器学习分类器([10]、[11]、[12]、[13])相结合的管道。语义分割的情况类似,使用结构化输出分类器而不是单个输出分类器([14]、[15]、[16])。与这些方法不同,我们的架构学习从原始体积数据中提取特征并对对象进行分类。我们的体积表示也比点云更丰富,因为它将自由空间与未知空间区分开来。此外,基于点云的特征通常需要空间邻域查询,这在大量点的情况下很快就会变得棘手。
B.2.5D 卷积神经网络
继 CNN 在使用 RGB 图像的任务上取得成功之后,几位作者已将其使用扩展到 RGBD 数据([17]、[18]、[19]、[20])。这些方法简单地将深度通道与 RGB 通道一起视为附加通道。虽然简单,但这种方法并没有充分利用数据中的几何信息,并且很难跨视点整合信息。
对于 LiDAR,[4] 提出了一种使用 2.5D 表示局部描述扫描的特征,[21] 结合无监督特征学习的形式研究了这种方法。 [22] 提出了一种编码,可以更好地利用深度的 3D 信息,但仍然以 2D 为中心。我们的工作与这些不同,因为我们采用了完全的体积表示,从而对环境进行了更丰富和更具辨别力的表示。
C.3D 卷积神经网络
具有体积(即空间 3D)卷积的架构已成功用于视频分析([23]、[24])。在这种情况下,时间充当第三维。从算法上讲,这些架构的工作原理与我们的相同,但数据的性质却大不相同。
在 RGBD 域中,[25] 使用无监督的体积特征学习方法作为管道的一部分来检测室内对象。这种方法基于稀疏编码,通常比卷积模型慢。在并发工作中,[26] 提出了一个生成的 3D 形状卷积模型,并将其应用于 RGBD 对象识别等任务。我们在实验中将这种方法与我们的方法进行比较。
在 LiDAR 领域,[27] 是一项早期工作,它研究了 3D CNN,用于与具有二进制分类任务的 LiDAR 数据一起使用。还有我们自己之前的工作 [28],其中介绍了用于无人机着陆区检测的 3D CNN。与这项工作相比,我们使用来自不同模态的 3D 数据来处理更一般的对象识别任务。我们还研究了占用率的不同表示,并提出了在数据在规模和方向上显着变化时提高性能的技术。
3 方法
我们算法的输入是一个点云片段,它可以源自分割方法,如 [12]、[29],或者如果执行检测,则可以使用“滑动框”。该段通常由点云与边界框的交集给出,可能包括背景杂波。我们的任务是预测该段的对象类标签。我们用于此任务的系统有两个主要组件:一个表示我们对空间占用率估计的体积网格,以及一个直接从占用网格预测类别标签的 3D CNN。我们在下面描述每个组件。
A. 体积占用网格
占用网格 ([30], [31]) 将环境状态表示为随机变量的 3D 点阵(每个对应于一个体素),并根据传入的传感器数据和先验知识维护对其占用的概率估计。
我们使用占用网格有两个主要原因。首先,它们使我们能够从距离测量中有效地估计空闲空间、占用空间和未知空间,即使是来自不同视角和时间的测量。这种表示比那些只考虑占用空间与自由空间(如点云)的表示更丰富,因为自由空间和未知空间之间的区别可能是一个有价值的形状提示。其次,它们可以用简单有效的数据结构进行存储和操作。在这项工作中,我们使用密集阵列来执行我们所有的 CNN 处理,因为我们使用小体积(
3
2
3
32^3
323 体素)并且 GPU 最适合处理密集数据。为了在内存中保留更大的空间范围,我们使用分层数据结构并根据需要将特定段复制到密集数组。从理论上讲,这允许我们在使用小占用网格进行 CNN 处理的同时存储潜在的无界体积。
B. 参考系和分辨率
在我们的体积表示中,每个点
(
x
,
y
,
z
)
(x, y, z)
(x,y,z) 都映射到离散体素坐标
(
i
,
j
,
k
)
(i, j, k)
(i,j,k)。映射是统一的离散化,但取决于空间中体素网格的原点、方向和分辨率。体素化对象的外观在很大程度上取决于这些参数。
对于原点,我们假设它是作为输入给出的,例如通过分割算法获得或由滑动框给出。
对于方向,我们假设网格框架的 z 轴与重力方向大致对齐。这可以通过 IMU 或简单地保持传感器直立来实现。这仍然留有一定的自由度,即围绕 z 轴的旋转(偏航)。如果我们为每个对象定义了一个规范的方向并且能够自动检测这个方向,那么总是将网格与这个方向对齐是合理的。然而,在实践中从稀疏和嘈杂的点云中检测这个方向通常是非常重要的。在本文中,我们提出了一种基于数据增强的简单替代方案,在 3-F节 中进行了讨论。
对于分辨率,我们采用两种策略,具体取决于数据集。对于我们的 LiDAR 数据集,我们使用固定的空间分辨率,例如
(
0.1
m
)
3
(0.1 m)^3
(0.1m)3 的体素。对于其他数据集,选择分辨率以使感兴趣的对象占据
24
×
24
×
24
24 × 24 × 24
24×24×24 体素的子体积。在所有实验中,我们使用大小为
32
×
32
×
32
32 × 32 × 32
32×32×32 体素的固定占用网格。这两种策略之间的权衡是,在第一种情况下,我们维护由物体的相对尺度给出的信息(例如,汽车和人往往具有一致的物理尺寸);在第二种情况下,我们避免了当体素太小(物体比网格大)或体素太大(细节因混叠而丢失)时形状信息的丢失。
C. 占用模型
令
{
z
t
}
t
T
=
1
\{z^t\}^T_t=1
{zt}tT?=1?? 是一系列距离测量值,它们要么命中
(
z
t
=
1
)
(z^t = 1)
(zt=1)?? 要么通过
(
z
t
=
0
)
(z^t = 0)
(zt=0)? 坐标为
(
i
,
j
,
k
)
(i,j,k)
(i,j,k)? 的给定体素。假设一个理想的光束传感器模型,我们使用 3D 光线追踪 [32] 来计算每个体素的命中和通过次数。鉴于此信息,我们考虑三种不同的占用网格模型来估计占用:
二元占用网格。在这个模型中,假设每个体素都有一个二元状态,被占用或未被占用。每个体素的占用率的概率估计是用数值稳定性的对数赔率计算的。使用 [31] 中的公式,我们将光束穿过的每个体素更新为
l
i
j
k
t
=
l
i
j
k
t
?
1
+
z
t
l
o
c
c
+
(
1
?
z
t
)
l
f
r
e
e
(1)
l_{ijk}^t = l_{ijk}^{t-1}+z^t l_{occ}+ (1-z^t) l_{free} \tag{1}
lijkt?=lijkt?1?+ztlocc?+(1?zt)lfree?(1) 其中
l
o
c
c
l_{occ}
locc? 和
l
f
r
e
e
l_{free}
lfree? 分别是给定测量命中或未命中单元格的单元格被占用或空闲的对数几率。我们将这些设置为 [33] 中建议的值,
l
f
r
e
e
=
?
1.38
l_{free}= -1.38
lfree?=?1.38 和
l
o
c
c
=
1.38
l_{occ}= 1.38
locc?=1.38?? 并将对数赔率限制为 (-4,4) 以避免数值问题。根据经验,我们发现在合理范围内,这些参数对最终结果几乎没有影响。占用的初始概率设置为 0.5,或
l
i
j
k
0
=
0
l_{ijk}^0=0
lijk0?=0。在这种情况下,网络作用于对数奇数值
l
i
j
k
l_{ijk}
lijk?。
密度网格。在该模型中,假设每个体素具有连续密度,对应于体素阻挡传感器光束的概率。我们使用 [34] 中的公式,其中我们跟踪 Beta 参数
α
i
j
k
t
\alpha_{ijk}^t
αijkt?和
β
i
j
k
t
β^t_{ijk}
βijkt?,对于所有
(
i
,
j
,
k
)
(i, j, k)
(i,j,k) 具有统一的先验
α
i
j
k
0
=
β
i
j
k
0
=
1
\alpha^0_{ijk}= \beta^0_{ijk}= 1
αijk0?=βijk0?=1。受测量
z
t
z^t
zt 影响的每个体素的更新为
α
i
j
k
t
=
α
i
j
k
t
?
1
+
z
t
β
i
j
k
t
=
β
i
j
k
t
?
1
+
(
1
?
z
t
)
\alpha_{ijk}^t = \alpha_{ijk}^{t-1} + z^t \\ \beta_{ijk}^t = \beta_{ijk}^{t-1}+(1-z^t)
αijkt?=αijkt?1?+ztβijkt?=βijkt?1?+(1?zt) 并且 (i, j, k) 处单元格的后验平均值是
u
i
j
k
t
=
α
i
j
k
t
α
i
j
k
t
+
β
i
j
k
t
(2)
u_{ijk}^t = \frac{\alpha_{ijk}^t}{\alpha^t_{ijk}+\beta_{ijk}^t} \tag{2}
uijkt?=αijkt?+βijkt?αijkt??(2) 在这种情况下,我们使用
μ
i
j
k
μ_{ijk}
μijk? 作为网络的输入。
命中网格。该模型只考虑命中,而忽略了未知空间和空闲空间之间的差异。每个体素都有一个初始值
h
i
j
k
0
=
0
h^0_{ijk}= 0
hijk0?=0? 并更新为
h
i
j
k
t
=
min
?
(
h
i
j
k
t
?
1
+
z
t
,
1
)
(3)
h_{ijk}^t = \min(h_{ijk}^{t-1}+z^t,1) \tag{3}
hijkt?=min(hijkt?1?+zt,1)(3) 虽然这个模型丢弃了一些潜在的有价值的信息,但在我们的实验中它表现得非常好。此外,它不需要光线追踪,这在计算受限的情况下很有用。
Fig.1 VoxNet 架构。
C
o
n
v
(
f
,
d
,
s
)
Conv(f, d, s)
Conv(f,d,s) 表示大小为
d
d
d 且步幅为
s
s
s 的
f
f
f 个过滤器,
P
o
o
l
(
m
)
Pool(m)
Pool(m)? 表示区域为
m
m
m 的池化,
F
u
l
l
(
n
)
Full(n)
Full(n)? 表示具有
n
n
n 个输出的全连接层。我们展示了我们实验中两个实例的输入、示例特征图和预测输出。左侧的点云来自 LiDAR,是悉尼城市对象数据集 [4] 的一部分。右侧的点云来自 RGBD,是 NYUv2 [5] 的一部分。我们使用横截面进行可视化。
D.3D 卷积网络层
对于我们的任务来说,CNN 是一个有吸引力的选择,主要有以下三个原因。首先,他们可以明确地利用我们问题的空间结构。特别是,他们可以学习对分类任务有用的局部空间过滤器。在我们的例子中,我们期望输入级别的滤波器对空间结构进行编码,例如不同方向的平面和角。其次,通过堆叠多个层,网络可以构建代表更大空间区域的更复杂特征的层次结构,最终导致输入占用网格的全局标签。最后,推理纯粹是前馈,可以使用商品图形硬件有效地执行。
在本文中,我们考虑由以下类型的层组成的 CNN,如图 1 所示。每个层类型都以名称(超参数)格式表示速记描述。
输入层。该层接受固定大小的
I
×
J
×
K
I×J×K
I×J×K? 体素网格。在这项工作中,我们使用
I
=
J
=
K
=
32
I = J = K = 32
I=J=K=32?。根据C.占用模型,每个网格单元的每个值都从等式 1、等式 2 或等式 3 更新。在所有三种情况下,我们减去 0.5 并乘以 2,所以输入在 (-1,1) 范围内;没有做进一步的预处理。虽然这项工作只考虑标量值输入,但我们的实现可以简单地接受每个单元格的附加值,例如 LiDAR 强度值或来自相机的 RGB 信息。
卷积层
C
(
f
,
d
,
s
)
C(f, d, s)
C(f,d,s)。这些层接受四维输入体积,其中三个维度是空间维度,第四个维度包含特征图。该层通过将输入与形状为
d
×
d
×
d
×
f
′
d × d × d × f^{'}
d×d×d×f′ 的
f
f
f 个学习滤波器卷积来创建
f
f
f?? 个特征图,其中
d
d
d 是空间维度,
f
′
f^{'}
f′ 是输入特征图的数量。卷积也可以应用于空间步长
s
s
s?。输出通过参数为 0.1 的有泄漏的整流非线性单元 (ReLU) [35]。
池化层
P
(
m
)
P(m)
P(m)。这些层通过用它们的最大值替换每个
m
×
m
×
m
m × m × m
m×m×m 非重叠体素块,沿空间维度以
m
m
m 倍的因子对输入体积进行下采样。
全连接层
F
C
(
n
)
FC(n)
FC(n)。全连接层有
n
n
n 个输出神经元。每个神经元的输出是前一层所有输出的学习线性组合,通过非线性。我们将 ReLU 用于最终输出层,其中输出的数量对应于类别标签的数量,并且使用 softmax 非线性来提供概率输出。
E.建议的架构
鉴于这些层及其超参数,有无数可能的架构。为了探索这个空间,在我们之前的工作 [28] 中,我们在模拟 LiDAR 数据的简单分类任务上对数百个 3D CNN 架构进行了广泛的随机搜索。与用于图像数据的最先进网络相比,一些表现最佳的网络具有少量参数; [7] 有大约 6000 万个参数,而我们大多数最好的模型使用的参数不到 200 万。
虽然很难有意义地比较这些数字,但鉴于任务和数据集的巨大差异,我们推测点云的体积分类在某种意义上是一项更简单的任务,因为图像数据中的许多变化因素(透视、照明、视点效果)减弱或不存在。
在此先例的指导下,我们的基本模型 VoxNet 是
C
(
32
,
5
,
2
)
?
C
(
32
,
3
,
1
)
?
P
(
2
)
?
F
C
(
128
)
?
F
C
(
K
)
C(32,5,2)?C(32,3,1)?P(2)?FC(128)?FC(K)
C(32,5,2)?C(32,3,1)?P(2)?FC(128)?FC(K),其中
K
K
K 是数字类(图 1)。 VoxNet 本质上是 [28] 中报告的两阶段模型的更简单版本。这些变化旨在减少参数数量并提高计算效率,使网络更容易、更快地学习。该模型有 921736 个参数,其中大部分来自输入到第一个密集层。
F.旋转增强和投票
正如在第 3-B 小节中讨论的那样,保持对象围绕 z 轴的一致方向是非常重要的。为了解决这个问题,点云的许多特征被设计为旋转不变的(例如[36]、[37])。我们的表示对于大的旋转没有内置的不变性;我们提出了一种简单但有效的方法来处理这个问题。
在训练时,我们通过为每个输入实例创建
n
n
n? 个副本来扩充数据集,每个副本围绕 z 轴旋转
360
°
/
n
360°/n
360°/n 间隔。在测试时,我们将输出层的激活集中在所有 n 个副本上。在本文中,n 是 12 或 18。这可以看作是一种投票方法,类似于 [7] 等网络如何对输入图像的随机裁剪和翻转进行平均预测;然而,它是在详尽的轮换抽样中执行的,而不是随机选择。
这种方法的灵感来自将卷积解释为跨翻译的权重共享;隐含地,我们在轮换之间共享权重。这种方法的初始版本是通过在训练期间以与测试期间相同的方式对网络的密集层进行最大池化或均值池化来实现的。然而,我们发现上述方法产生了可比较的结果,同时收敛速度明显更快。
G.多分辨率输入
对 LiDAR 数据集的目视检查表明,
(
0.2
m
3
)
(0.2 m^3)
(0.2m3)?? 分辨率可保留分类所需的所有信息,同时为大多数较大的物体(如卡车和树木)提供足够的空间背景。但是,我们假设更精细的分辨率将有助于区分其他类别,例如交通标志和交通灯,尤其是对于稀疏数据。因此,我们实施了一个多分辨率 VoxNet,其灵感来自 [24] 用于视频分析的“中心凹”架构。在这个模型中,我们使用两个具有相同 VoxNet 架构的网络,每个网络接收不同分辨率的占用网格:
(
0.1
m
)
3
(0.1 m)^3
(0.1m)3 和
(
0.2
m
)
3
(0.2 m)^3
(0.2m)3。两个输入都集中在同一位置,但较粗的网络以低分辨率覆盖较大的区域,而较细的网络以高分辨率覆盖较小的区域。为了融合来自两个网络的信息,我们将它们各自的
F
C
(
128
)
FC(128)
FC(128) 层的输出连接起来,并将它们连接到一个 softmax 输出层。
H.网络训练细节
网络参数的训练由具有动量的随机梯度下降 (SGD) 执行。目标是多项式负对数似然加上 0.001 倍用于正则化的 L2 权重范数。 SGD 的初始学习率为 LiDAR 数据集的 0.01,其他数据集的学习率为 0.001。动量参数为 0.9。批次大小为 32。对于 LiDAR 数据集,每 8000 个批次和其他数据集中的每 40000 个批次,学习率降低 10 倍。
在每一层的输出之后加入Dropout正则化。卷积层用 [38] 提出的方法初始化,而密集层从
σ
=
0.01
σ = 0.01
σ=0.01 的零均值高斯初始化。
遵循 CNN 训练的常见做法,我们通过添加每个实例的随机扰动副本来增加数据。扰动副本是在训练期间动态生成的,由随机镜像和移位的实例组成。镜像是沿 x 和 y 轴完成的;沿所有轴在 -2 到 2 个体素之间进行移位。
我们的实现结合了 C 和 Python。
L
a
s
a
g
n
e
1
Lasagne^1
Lasagne1 库用于计算梯度并加速 GPU 上的计算。在我们的 K40 GPU 上,训练过程大约需要 6 到 12 个小时,具体取决于网络的复杂性。
1 https://github.com/Lasagne/Lasagne 2 http://www.acfr.usyd.edu.au/papers/SydneyUrbanObjectsDataset.shtml Fig.2 从上到下,一个来自悉尼对象数据集的点云,一个来自 NYUv2 的点云,以及来自 ModelNet40 的两个体素化模型。
4 实验
为了评估 VoxNet,我们考虑使用来自三个不同领域的数据进行基准测试:LiDAR 点云、RGBD 点云和 CAD 模型。图 2 显示了每个示例。
-
LiDAR 数据 - 悉尼城市对象:我们的第一组实验是在
悉
尼
城
市
对
象
数
据
集
2
悉尼城市对象数据集^2
悉尼城市对象数据集2?上进行的,其中包含对 26 个类别的 631 个城市对象进行标记的 Velodyne LiDAR 扫描。我们选择这个数据集进行评估,因为它提供了标记的对象实例和用于计算占用率的 LiDAR 视点。在对点云进行体素化时,我们使用对象周围边界框中的所有点,包括背景杂波。为了使我们的结果与已发表的工作相媲美,我们遵循数据集作者采用的协议。我们报告了按类别支持加权的平均
F
1
F_1
F1? 分数,针对四个标准训练/测试分组的 14 个类别的子集。对于这个数据集,我们以每个实例 18 次旋转执行增强和投票。 -
CAD 数据 - ModelNet:ModelNet 数据集由 Wu 等人介绍。 [26] 评估 3D 形状分类器。 ModelNet40 有 151,128 个 3D 模型,分为 40 个对象类别,ModelNet10 是基于在 NYUv2 数据集中频繁发现的类别的子集 [5]。作者提供了 3D 模型以及体素化版本,这些版本经过 12 次旋转增强。我们使用提供的体素化和训练/测试分割进行评估。在这些体素化中,对象已被缩放以适合 30 × 30 × 30 的网格;因此,我们不希望从多分辨率方法中受益,我们使用单分辨率 VoxNet。为了比较性能,我们报告了每个类的平均准确率。 -
RGBD 数据 - NYUv2:Wu 等人还评估了他们对从 NYUv2 数据集获得的 RGBD 点云的方法 [5]。我们使用作者提供的训练/测试分割,它使用来自
R
M
R
C
3
RMRC^3
RMRC3 挑战的 538 张图像进行训练,其余用于测试。在选择与 ModelNet10 共享标签的框后,我们获得 1386 个测试框和 1422 个训练地面实况框。 Wu 等人报告了这些具有
高
深
度
质
量
4
高深度质量^4
高深度质量4的框子集的结果 4,而我们报告使用所有框的结果,可能会使任务变得更加困难。我们将提供拆分以方便比较。
3 http://ttic.uchicago.edu/~rurtasun/rmrc/ 4 Personal communication.
Fig.3 悉尼对象数据库中 VoxNet 第一层的三个 5 × 5 × 5 滤波器的横截面,右侧有相应的特征图。
Fig.4 在 ModelNet40 和 NYUv2 数据集中学习的选定第一层滤波器沿 x、y 和 z 轴的横截面。
Fig.5 当使用图 1(右)中的点云作为 12 个不同方向的输入时,VoxNet 的两个完全连接层的神经元激活。对于第一个全连接层,只显示了 48 个特征。每行对应一个围绕 z 的旋转,每列对应一个神经元。激活显示近似的旋转不变性。右侧的神经元对应于输出类别。最后一栏是厕所,是正确的答案。接近 90°,物体与椅子混淆(第三列);通过对所有方向进行投票,我们得到了正确的答案。
A. 定性结果
学习过滤器。图 3 描绘了一些从输入层学习到的过滤器的横截面,以及从悉尼对象数据集中的输入学习到的相应特征图。该层中的过滤器似乎对边、角和“斑点”等基元进行编码。图 4 显示了在 NYUv2 和 ModelNet40 数据集中学习的过滤器。过滤器在数据集之间是相似的,类似于图像数据发生的情况。
旋转不变性。一个自然的问题是网络是否学习了某种程度的旋转不变性。图 5 是支持该假设的示例,其中两个完全连接的层在输入的 12 次旋转中显示出高度(但不完全)不变的响应。
Table 1 旋转增强和投票的影响 Table 2 占用网格的影响
B. VoxNet 变体
旋转增强。我们研究了旋转增强的四种不同情况,具体取决于它是否在悉尼对象和 ModelNet40 数据集的训练时间(作为增强)和测试时间(作为投票)应用。对于在测试时不进行投票的情况,对测试实例应用随机方向,并报告四次运行的平均值。对于不进行训练时间增强的情况,有两种情况。在 ModelNet40 中,我们选择具有规范姿势的对象作为训练实例。对于悉尼物体,此信息不可用,我们使用数据中未修改的方向。表1显示了结果。他们表明训练时间增加更为重要。正如上面的定性示例所暗示的那样,即使没有明确强制执行,网络也会学习一定程度的旋转不变性。然而,在训练时投票仍然有小幅提升。对于 ModelNet40,正如预期的那样,当我们在规范姿势上训练但在任意姿势上进行测试时,我们看到性能大幅下降。对于悉尼对象数据集来说,没有这种不匹配,也没有明显的效果。由于旋转增强似乎始终是有益的,因此在结果部分的其余部分,我们在测试时和运行时都使用带有旋转增强的 VoxNet。
占用网格。我们还研究了表 2 中占用网格表示的效果。我们发现 VoxNet 对不同的表示非常稳健。与预期相反,我们发现 Hit 网格的性能与其他方法相当或更好,尽管差异很小。这可能是因为区分自由空间和未知空间所提供的任何优势都被 Density 和 Binary 网格相对于 Hit 网格的额外视点引起的可变性所抵消。默认情况下,我们将在下面的实验中使用 Density 网格。
Table 3 与其他方法在悉尼对象数据集中的比较
Table 4 与 MODELNET 中的 SHAPENET 的比较 (AVG ACC)
Table 5 与 NYUV2 中的 Shapenet 的比较(AVG ACC)
解决方案。对于悉尼对象数据集,我们使用大小为 0.1 m 和 0.2 m 的体素评估了 VoxNet。我们发现它们的表现几乎没有区别,F1 分数为 0.72。另一方面,将两者与 3-G 小节中描述的多分辨率方法融合在一起,得分略高于两者,得分为 0.73。
- 与其他方法的比较:这里我们将 VoxNet 与文献中公开的结果进行比较。表 3 显示了我们最好的 VoxNet 与来自 [21] 的最佳方法的对比,该方法结合了无监督形式的深度学习与 SVM 分类器,以及 [37],它设计了一个旋转不变的描述符并用非线性 SVM 对其进行分类。我们显示相对于这些方法的准确性略有增加。此外,我们希望我们的方法比基于非线性 SVM 的方法快得多,因为它们不能很好地扩展到大型数据集。
最后,我们在 ModelNet10、ModelNet40 和 NYUv2 数据集的分类任务中,以及使用在 ModelNet10 上训练的模型对 NYUv2 数据集进行分类的任务中,与 Wu 等人 [26] 提出的 Shapenet 架构进行了比较。 Shapenet 也是一种体积卷积架构。它通过判别式微调进行生成性训练,并且还使用旋转增强进行训练。 ShapeNet 是一个比较大的架构,有超过 1240 万个参数,而 VoxNet 不到 100 万个。我们不对 NYUv2 使用预训练,而是从头开始训练。表 4 显示了 ModelNet 数据集中的结果,表 5 显示了涉及纽约大学数据集的两个任务的 Density 网格 (VoxNet) 和 Hit 网格 (VoxNet Hit) 的结果。
尽管我们使用了更不利的测试集,但 VoxNet 在除跨域任务(第二行)之外的所有任务中都优于 ShapeNet。我们不确定是什么导致了这种差异。两种模型都在训练时进行旋转增强; VoxNet 在测试时也对轮换进行投票,但这仅占 1-2% 的改进。当使用纯判别训练时,VoxNet 更简单的架构可能会导致更好的泛化。另一方面,跨域任务的性能较差可能是因为判别训练处理域转移的能力较差,或者因为我们没有使用掩码来选择点。
C. 耗时
我们在实验中使用 Tesla K40 GPU。我们最慢的配置,带旋转投票的多分辨率 VoxNet,在单独分类时需要大约 6 毫秒,在大小为 32 的批次上平均需要大约 1 毫秒。根据点的数量,光线跟踪也可能是一个瓶颈;对于大约 2000 个点(对于 LiDAR 来说是典型的),我们的实现需要大约 2 毫秒,而对于 200k 点则需要半秒,RGBD 可能会发生这种情况。对于这种情况,可以使用 Hit 网格,或使用文献中的几种光线追踪优化策略之一。
5.结论
在这项工作中,我们提出了 VoxNet,这是一种 3D CNN 架构,用于从 LiDAR 和 RGBD 点云高效准确地检测目标,并研究了各种设计选择对其性能的影响。我们最好的系统在实时执行分类的同时,在各种基准测试中都优于最先进的系统。
将来,我们对来自其他模态(例如相机)的数据的集成感兴趣,并将这种方法应用于其他任务,例如语义分割。
参考文献
[1] C. Urmson, J. Anhalt, H. Bae, J. A. D. Bagnell, C. R. Baker, R. E. Bittner, T. Brown, M. N. Clark, M. Darms, D. Demitrish, J. M. Dolan, D. Duggins, D. Ferguson , T. Galatali, C. M. Geyer, M. Gittleman, S. Harbaugh, M. Hebert, T. Howard, S. Kolski, M. Likhachev , B. Litkouhi, A. Kelly , M. McNaughton, N. Miller, J. Nickolaou, K. Peterson, B. Pilnick, R. Rajkumar, P . Rybski, V . Sadekar, B. Salesky, Y .-W. Seo, S. Singh, J. M. Snider, J. C. Struble, A. T. Stentz, M. Taylor , W. R. L. Whittaker, Z. Wolkowicki, W. Zhang, and J. Ziglar, “Autonomous driving in urban environments: Boss and the urban challenge,” JFR, vol. 25, no. 8, pp. 425–466, June 2008.
[2] A. S. Huang, A. Bachrach, P . Henry, M. Krainin, D. Maturana, D. Fox, and N. Roy, “Visual odometry and mapping for autonomous flight using an rgb-d camera,” in ISRR, Flagstaff, Arizona, USA, Aug. 2011.
[3] S. Choudhury, S. Arora, and S. Scherer, “The planner ensemble and trajectory executive: A high performance motion planning system with guaranteed safety,” in AHS, May 2014.
[4] A. Quadros, J. Underwood, and B. Douillard, “An occlusion-aware feature for range images,” in ICRA, May 14-18 2012.
[5] P . K. Nathan Silberman, Derek Hoiem and R. Fergus, “Indoor segmentation and support inference from rgbd images,” in ECCV, 2012.
[6] Y . LeCun, Y . Bengio, and G. Hinton, “Deep learning,” Nature, vol. 521, 2015.
[7] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification with deep convolutional neural networks,” in NIPS, 2012, pp. 1097– 1105.
[8] A. S. Razavian, H. Azizpour, J. Sullivan, and S. Carlsson, “CNN features off-the-shelf: an astounding baseline for recognition,” CoRR, vol. abs/1403.6382, 2014.
[9] G. Hinton, “Does the brain do inverse graphics?” Brain and Cognitive Sciences Fall Colloquium.
[10] A. Frome, D. Huber, and R. Kolluri, “Recognizing objects in range data using regional point descriptors,” ECCV, vol. 1, pp. 1–14, 2004.
[11] J. Behley, V . Steinhage, and A. B. Cremers, “Performance of histogram descriptors for the classification of 3D laser range data in urban environments,” in ICRA, 2012, pp. 4391–4398.
[12] A. Teichman, J. Levinson, and S. Thrun, “Towards 3D object recognition via classification of arbitrary object tracks,” in ICRA, 2011, pp. 4034–4041.
[13] A. Golovinskiy, V . G. Kim, and T. Funkhouser, “Shape-based recognition of 3D point clouds in urban environments,” ICCV, 2009.
[14] D. Munoz, N. V andapel, and M. Hebert, “Onboard contextual classification of 3-D point clouds with learned high-order markov random fields,” in ICRA, 2009.
[15] H. Koppula, “Semantic labeling of 3D point clouds for indoor scenes,” NIPS, 2011.
[16] X. Ren, L. Bo, and D. Fox, “RGB-(D) scene labeling: Features and algorithms,” in CVPR, 2012.
[17] I. Lenz, H. Lee, and A. Saxena, “Deep learning for detecting robotic grasps,” in RSS, 2013.
[18] Richard Socher and Brody Huval and Bharath Bhat and Christopher D. Manning and Andrew Y . Ng, “Convolutional-Recursive Deep Learning for 3D Object Classification,” in NIPS, 2012.
[19] L. A. Alexandre, “3D object recognition using convolutional neural networks with transfer learning between input channels,” in IAS, vol. 301, 2014.
[20] N. H¨ oft, H. Schulz, and S. Behnke, “Fast semantic segmentation of RGBD scenes with gpu-accelerated deep neural networks,” in 37th Annual German Conference on AI, 2014, pp. 80–85.
[21] M. De Deuge, A. Quadros, C. Hung, and B. Douillard, “Unsupervised feature learning for classification of outdoor 3d scans,” in ACRA, 2013.
[22] S. Gupta, R. Girshick, P . Arbel′ aez, and J. Malik, “Learning rich features from RGB-D images for object detection and segmentation,” in ECCV, 2014.
[23] S. Ji, W. Xu, M. Y ang, and K. Y u, “3D convolutional neural networks for human action recognition,” IEEE TPAMI, vol. 35, no. 1, pp. 221– 231, 2013.
[24] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei, “Large-scale video classification with convolutional neural networks,” in CVPR, 2014.
[25] K. Lai, L. Bo, and D. Fox, “Unsupervised feature learning for 3D scene labeling,” in ICRA, 2014.
[26] Z. Wu, S. Song, A. Khosla, F. Y u, L. Zhang, X. Tang, and J. Xiao, “3d shapenets: A deep representation for volumetric shape modeling,” in CVPR, 2015.
[27] D. Prokhorov, “A convolutional learning system for object classification in 3-D lidar data,” IEEE TNN, vol. 21, no. 5, pp. 858–863, May 2010.
[28] D. Maturana and S. Scherer, “3D convolutional neural networks for landing zone detection from lidar,” in ICRA, 2015.
[29] B. Douillard, J. Underwood, V . Vlaskine, A. Quadros, and S. Singh, “A pipeline for the segmentation and classification of 3D point clouds,” in ISER, 2010.
[30] H. Moravec and A. Elfes, “High resolution maps from wide angle sonar,” in ICRA, 1985.
[31] S. Thrun, “Learning occupancy grid maps with forward sensor models,” Auton. Robots, vol. 15, no. 2, pp. 111–127, 2003.
[32] J. Amanatides and A. Woo, “A fast voxel traversal algorithm for ray tracing,” in Eurographics ’87, Aug. 1987, pp. 3–10.
[33] D. H¨ ahnel, D. Schulz, and W. Burgard, “Map building with mobile robots in populated environments,” in IROS, 2002.
[34] G. D. Tipaldi and K. O. Arras, “FLIRT - interest regions for 2D range data,” in ICRA, 2010.
[35] A. L. Maas, A. Y . Hannun, and A. Y . Ng, “Rectifier nonlinearities improve neural network acoustic models,” in ICML, vol. 30, 2013.
[36] A. Johnson, “Spin-images: A representation for 3-D surface matching,” Ph.D. dissertation, Robotics Institute, Carnegie Mellon University, Pittsburgh, PA, 1997.
[37] T. Chen, B. Dai, D. Liu, and J. Song, “Performance of global descriptors for velodyne-based urban object recognition,” in IV, June 2014, pp. 667–673.
[38] K. He, X. Zhang, S. Ren, and J. Sun, “Delving deep into rectifiers: Surpassing human-level performance on imagenet classification,” CoRR, vol. abs/1502.01852, 2015.
|