参考
https://arxiv.org/pdf/1612.00496.pdf
https://cs.gmu.edu/~amousavi/papers/3D-Deepbox-Supplementary.pdf
正文
我们提出了一种从单个图像进行 3D 对象检测和姿态估计的方法。
与目前仅回归对象 3D 方向的技术相比,我们的方法首先使用深度卷积神经网络回归相对稳定的 3D 对象属性,然后将这些估计与 2D 对象边界框提供的几何约束相结合,以生成完整的 3D 边界框。
我们第一个网络输出估计 3D 对象方向( 3D object orientation ),(使用新颖的混合离散连续损失hybrid discrete-continuous loss,其性能明显优于 L2 损失。)
第二个输出对 3D 对象维度(3D object dimensions,)进行回归,与替代方案相比,其差异相对较小,并且通常可以针对许多对象类型进行预测。这些估计与 2D 边界框对平移施加的几何约束相结合,使我们能够恢复稳定且准确的 3D 对象姿态。
尽管概念上很简单,但我们的方法优于利用语义分割、实例级分割和平坦先验 [4] 和子类别检测 [23] [24] 的更复杂且计算成本更高的方法。
我们的离散连续损失discrete-continuous loss 也为 Pascal 3D+ 数据集上的 3D 视点估计产生了最先进的结果 [26]
1 介绍
3D 对象检测问题在需要与现实世界中的对象进行决策或交互的机器人应用中尤为重要。 3D 对象检测从图像中恢复 6 DoF 姿态和对象的尺寸。虽然最近开发的 2D 检测算法能够处理视点和杂波方面的大变化,但尽管最近有一些有希望的工作,但准确的 3D 对象检测在很大程度上仍然是一个悬而未决的问题。现有的将姿态估计与最先进的物体检测器集成的努力主要集中在视点估计上。他们利用观察对象的外观作为视点的函数而变化,并且视点的离散化(由方位角和仰角参数化)产生了可以有区别地训练的子类别 [23]。
[23] Y. Xiang, W. Choi, Y. Lin, and S. Savarese. Data-driven 3d voxel patterns for object category recognition. In Pro-ceedings of the IEEE International Conference on Computer
Vision and Pattern Recognition, 2015. 1, 3, 6
在更严格的驾驶场景中,全 3D 姿态估计的替代方案使用各种上下文和语义线索探索所有假设的详尽采样和评分 [4]
在这项工作中,我们提出了一种从 2D 边界框和周围图像像素估计姿势 (R,T) ∈ SE(3) 和对象 3D 边界框尺寸的方法。我们简单而有效的方法适用于许多现实世界的应用,包括自动驾驶汽车。我们的方法的主要贡献在于为问题选择回归参数和相关的目标函数。我们首先回归方向和对象尺寸,然后将这些估计与几何约束相结合以产生最终的 3D 姿势。这与尝试直接回归到姿势的先前技术形成对比。
1、通过训练深度卷积神经网络 (CNN) 来回归对象的 3D 边界框的方向及其尺寸,从而扩展了最先进的 2D 对象检测器 [3]。
2、给定估计的方向和尺寸以及 3D 边界框的投影与 2D 检测窗口紧密匹配的约束,我们恢复平移和对象的 3D 边界框。虽然概念上很简单,但我们的方法基于几个重要的见解。我们表明,方向回归的新型 MultiBin 离散连续公式明显优于更传统的 L2 损失。通过回归到车辆尺寸来进一步约束 3D 框被证明特别有效,因为它们的方差相对较低并导致稳定的最终 3D 框估计。
我们在 KITTI [2] 和 Pascal 3D+[26] 数据集上评估我们的方法。在 KITTI 数据集上,我们对估计的 3D 框与其他最先进的 3D 对象检测算法的结果进行了深入比较 [24, 4]。用于 3D 边界框估计的官方 KITTI 基准仅评估 3D 框方向估计。我们引入了三个额外的性能指标来衡量 3D 框的准确性:到框中心的距离、到最近边界框面中心的距离以及整个边界框与真实框重叠,使用 3D 测量联合交集 (3D IoU) 得分。我们证明,如果有足够的训练数据,我们的方法在上述所有 3D 指标上都优于最先进的方法。由于 Pascal 3D+ 数据集没有标注物理尺寸并且相机内在参数是近似的,我们只评估视点估计精度,表明我们的 MultiBin 模块在那里也达到了最先进的结果
总之,我们论文的主要贡献包括: 1) 一种使用投影几何提供的约束从 2D 边界框估计对象的完整 3D 姿态和尺寸的方法,并使用回归的对象方向和大小的估计一个深度的 CNN。与其他方法相比,我们的方法不需要任何预处理阶段或 3D 对象模型。 2) 一种新的离散连续 CNN 架构,称为 MultiBin 回归,用于估计对象的方向。 3) 用于评估超出 KITTI 数据集方向精度的 3D 框的三个新指标。 4) 实验评估证明了我们的方法对 KITTI 汽车的有效性,这也说明了在我们的 3D 姿态估计框架内具体选择回归参数的重要性。 5) 在 Pas-cal 3D+ 数据集上的观点评估
2. Related Work
从单个 2D 图像对对象实例进行 6 DoF 姿态估计的经典问题以前被视为纯几何问题,称为透视 n 点问题 (PnP)。假设图像中的 2D 关键点与对象的 3D 模型之间存在对应关系的几个封闭形式和迭代解决方案可以在 [10] 和其中的参考资料中找到。其他方法侧重于构建对象实例的 3D 模型,然后在图像中找到与模型最匹配的 3D 姿势 [19, 6]
随着新的具有挑战性的数据集 [2, 26,25, 12] 的引入,3D 姿态估计已扩展到对象类别,这需要处理由于姿态变化引起的外观变化和类别内的外观变化[ 9, 15]。在 [16, 26] 中,基于判别部分的模型 (DPM) 的目标检测框架用于解决姿势估计问题,该问题联合制定为结构化预测问题,其中每个混合分量代表不同的方位角部分。然而,此类方法仅预测相对于规范对象框架的欧拉角子集,而未估计对象尺寸和位置
另一个方向是利用 3D 形状模型的可用性并将其用于 3D 假设采样和细化。例如,Mottaghi 等人 [13] 对对象视点、位置和大小进行采样,然后使用 HOG 特征测量对象的渲染 3D CAD 模型与检测窗口之间的相似性。 [29] 在机器人桌面设置中探索了一种使用 CAD 模型对象实例的投影来估计姿势的类似方法,其中检测问题的挑战性较小。给定从基于 DPM 的检测器获得的粗略姿态估计,通过估计投影的 3D 模型和图像轮廓之间的对应关系来细化连续的 6 DoF 姿态。评估是在 PASCAL3D+ 或简单的桌面设置上进行的,杂乱或比例变化有限。在[22]中探索了将这些方法扩展到具有显着遮挡的更具挑战性的场景,它使用从 3D CAD 模型中学习的 3D 体素模式字典,这些模型表征对象的形状和常见的遮挡模式
最近,深度卷积神经网络 (CNN) 显着提高了 2D 对象检测的性能,并且已经提出了一些扩展来包括 3D 姿态估计。在 [21] 中,R-CNN [7] 用于检测物体,并将检测到的区域作为输入传递给姿势估计网络。姿势网络使用 VGG [20] 进行初始化,并使用 Pascal 3D+ 的地面实况注释对姿势估计进行微调。这种方法类似于[8],不同之处在于对每个类别使用单独的姿势权重,并使用大量带有姿势注释基本事实的合成图像进行训练。在 [17] 中,Poirson 将对象视点离散化并训练一个深度卷积网络来联合执行视点估计和 2D 检测。该网络在所有类中共享姿势参数权重。在 [21] 中,Tulsiani 等人探索了粗视点估计之间的关系,然后是关键点检测、定位和姿态估计。 Pavlakos 等人 [14] 使用 CNN 定位关键点,并使用关键点及其网格中的 3D 坐标来恢复姿势。然而,他们的方法需要带有注释关键点的训练数据。
最近的几种方法已经探索了用于驾驶场景的 3D 边界框检测,并且与我们的方法最相关。 向等人 [23, 24] 将可能的对象姿势集(pos-sible object poses)聚类为视点相关的子类别(viewpoint-dependent subcategories)。
这些子类别是通过对之前介绍的 3D 体素模式进行聚类获得的 [22]; 学习图案词典需要3D CAD模型。
子类别(subcategories )捕获形状、视点和遮挡模式(shape, viewpoint and occlusion patterns),然后使用深度 CNN 进行有区别的分类 [24]。
Chen 等人 [4] 的另一种相关方法通过在假设平面约束的情况下对物理世界中的 3D 框进行采样来解决该问题。这些框使用高级上下文、形状和类别特定特征进行评分。上述所有方法都需要复杂的预处理,包括高级特征,例如分割或 3D 形状存储库,并且可能不适合计算资源有限的机器人
3. 3D Bounding Box Estimation
为了利用 2D 对象检测现有工作的成功进行 3D 边界框估计,我们利用 3D 边界框的透视投影应紧密配合其 2D 检测窗口这一事实。我们假设 2D 对象检测器已经过训练,可以生成与投影的 3D 框的边界框相对应的框。 3D 边界框由其中心 T = [tx,ty,tz]T、尺寸 D = [dx,dy,dz] 和方向 R(θ,φ,α) 描述,此处由方位角、仰角和滚动角度。给定相机坐标系中物体的姿态 (R,T) ∈ SE(3) 和相机内在矩阵 K,3D 点 Xo = [X,Y,Z,1]T 在物体坐标中的投影帧到图像 x = [x,y,1]T 是:
假设物体坐标系的原点在 3D 边界框的中心并且物体尺寸 D 已知,那么 3D 边界框顶点的坐标可以简单地描述为 X1 =[dx/2,dy/ 2,dz/2]T, X2 = [-dx/2,dy/2,dz/2]T, … ,X8 = [-dx/2,-dy/2,-dz/2]T。 3D 边界框与 2D 检测窗口紧密配合的约束要求 2D 边界框的每一侧都被至少一个 3D 框角的投影所触及。
例如,考虑一个 3D 角 X0= [dx/2,−dy/2,dz/2]T 的投影,它接触坐标为 xmin 的 2D 边界框的左侧。这个点对边对应约束导致等式:
其中 (.)x 指的是透视投影的 x 坐标。可以为剩余的 2D 盒边参数 xmax ,ymin ,ymax 推导出类似的方程。 2D 边界框的边总共为 3D 边界框提供了四个约束。这不足以约束九个自由度 (DoF)(三个用于平移,三个用于旋转,三个用于框尺寸)。
我们可以从盒子的视觉外观估计几个不同的几何属性,以进一步约束 3D 盒子。主要标准是它们应该与视觉外观密切相关,并进一步限制最终的 3D 框。
3.1. Choice of Regression Parameters
D 边界框由其
- 中心 T = [tx,ty,tz]T、
- 尺寸 D = [dx,dy,dz]
- 方向 R(θ,φ,α) 描述,此处由方位角、仰角和滚动角度。
1、对 3D 边界框有强烈影响的第一组参数是围绕每个轴 (θ, φ, α) 的方向。
2、除了它们之外,我们选择回归框尺寸 D 而不是平移 T,因为尺寸估计的方差通常较小(例如,汽车的尺寸往往大致相同)
并且不会随着对象方向的变化而变化:
如果我们也在回归方向参数,这是一个理想的属性。
此外,维度估计与特定对象子类别的外观密切相关,如果我们可以对该子类别进行分类,则可能会准确恢复。在第 5.4 节中,我们进行了回归与平移相关的替代参数的实验,发现参数的选择很重要:我们使用该参数化获得了不太准确的 3D 框重建。 CNN 架构和此回归问题的相关损失函数在第 2 节中讨论。 4.
3.2. Correspondence Constraints
使用 CNN 和 2D 检测框的 3D 框的回归尺寸和方向,我们可以求解平移 T,该平移 T 使相对于方程 2 中的初始 2D 检测框约束的重投影误差最小。如何求解平移的详细信息包含在补充材料中[1]。
2D 检测框的每一边可以对应于 3D 框的八个角中的任何一个,从而产生 8^4 = 4096 个配置。
每个不同的配置都涉及求解线性方程组的过度约束系统,该系统计算速度快并且可以并行完成。
在许多情况下,可以假设对象始终是直立的。在这种情况下,2D 框的顶部和底部仅分别对应于 3D 框顶部和底部的顶点投影,这将对应的数量减少到 1024。
此外,当相对对象滚动为接近于零,垂直 2D 盒边坐标 xmin 和 xmax 只能对应点从垂直 3D 盒边的投影。同样,ymin 和 ymax 只能对应于水平 3D 盒边的点投影。因此,二维检测框的每个垂直边可以对应于 [±dx/2,.,±dz/2] 并且二维边界的每个水平边对应于 [.,±dy/2,±dz /2],产生 4^4 = 256 种可能的配置。
在 KITTI 数据集中,对象俯仰角和滚动角都为零,这进一步将配置数量减少到 64。图 2 可视化了 2D 盒边和 3D 盒点之间可能发生的一些可能的对应关系。
附录
1.1. 2D Box Constraints
正如论文中提到的,K 表示已知的内在参数,R 是相应的旋转矩阵,D 是框的估计维度,两者都使用 CNN 进行了回归。 让2D边界框的垂直边对应Xio,3D框的第i个角则对应的约束如下:
唯一的未知数是翻译 T = [Tx,Ty,Tz]。 类似地,对于水平边,我们有以下等式:
在上面的等式中,I是一个 3 ×3 的单位矩阵
有 4 个不同的方程对应于 2D 框的 4 个边,我们要求解平移参数 T。 方程 (1) 和 (2) 的约束重新排列为 Ax = 0 的形式和解 使用 SVD 分解找到
4. CNN Regression of 3D Box Parameters
在本节中,我们将描述我们的回归方法
3D 边界框方向和尺寸
图 3. 左:汽车尺寸,汽车的高度等于 dy。右:局部方向 θl 和汽车全局方向 θ 的图示。 局部方向是相对于穿过作物中心的光线计算的。 作物的中心光线由蓝色箭头指示。 请注意,裁剪中心可能不会穿过对象的实际中心。 汽车的方向 θ 等于 θray + θl 。 训练网络来估计局部方向 θl。
4.1. MultiBin Orientation Estimation
论文作者说:障碍物车辆在往前直线行使,他的全局的方位角θ是0,没有变化。但是自身车辆看到的障碍物的局部方位角Θl 却在不断变化。
如这个图所示:
仅从检测窗口裁剪的内容估计相机参考系中的全局对象方向 R ∈ SO(3) 是不可能的,因为还需要裁剪在图像平面内的位置。考虑仅由方位角 θ (yaw) 参数化的旋转 R(θ)。图 4 显示了汽车沿直线移动的示例。尽管汽车(它的 3D 边界框)的全局方向 R(θ) 没有改变,但它的局部方向 θl 与通过裁剪中心的光线发生了变化,并在裁剪后的外观上产生了变化图片
这个图片比较形象。
可以明确的是,对于深度学习,我们回归到这个局部方向 θl。
对于车辆全局方位角θ = θl +θray
图 4 显示了一个示例,其中局部方向角 θl 和射线角θray以这样一种方式变化,即它们的组合效果是汽车的恒定全局方向。
给定固有的相机参数,特定像素的光线方向计算起来很简单。在推理时,我们将裁剪中心的光线方向与估计的局部方向结合起来,以计算对象的全局方向。
众所周知,使用 L2 损失并不适合许多复杂的多模态回归问题。 L2 损失鼓励网络将所有模式的损失最小化到平均,这导致对任何单个模式的估计都可能很差。这已经在图像着色问题的上下文中观察到,其中 L2 范数为衣服等物品产生不切实际的平均颜色 [27]。类似地,诸如 Faster R-CNN [18] 和 SSD [11] 之类的目标检测器不直接回归边界框:而是将边界框的空间划分为几个称为锚框的离散模式,然后估计连续偏移需要应用于每个锚框。
我们在我们提出的 MultiBin 架构中使用类似的想法进行方向估计。我们首先将方向角离散化并将其划分为 n 个重叠的 bin。对于每个 bin,CNN 网络估计输出角度位于第 i 个 bin 内的置信概率 ci 和需要应用于该 bin 中心光线方向的残差旋转校正以获得输出角度。剩余旋转由两个数字表示,分别为角度的正弦和余弦。这导致每个 bin i 有 3 个输出:(ci,cos(Δθi),sin(Δθi))。有效的余弦和正弦值是通过在二维输入之上应用 L2 归一化层获得的。因此,MultiBin 方向的总损失为:
置信损失 Lconf 等于每个 bin 的置信度的 softmax 损失。
Lloc 是一种损失,它试图最小化覆盖地面实况角的每个 bin 中估计的角度和地面实况角之间的差异,相邻的 bin 具有重叠覆盖范围。在定位损失 Lloc 中,所有覆盖真实角度的 bin 都被迫估计正确的角度。定位损失试图最小化真实值与覆盖该值的所有 bin 之间的差异,这相当于最大化余弦距离,如补充材料 [1] 所示。
有效的余弦和正弦值是通过在二维输入之上应用 L2 归一化层获得的
定位损失 Lloc 计算如下:
其中 nθ∗ 是覆盖真实角度 θ∗ 的 bin 数量,ci 是 bin i 中心的角度,Δθi 是需要应用于 bin i 中心的变化。
在推理过程中,选择具有最大置信度的 bin,并通过将该 bin 的估计 Δθ 应用于该 bin 的中心来计算最终输出。 Multi-Bin 模块有 2 个分支。一个用于计算置信度 ci,另一个用于计算 Δθ 的余弦和正弦。因此,需要为 n 个 bin 估计 3n 个参数。
在 KITTI 数据集中,汽车、货车、卡车和公共汽车都是不同的类别,类别实例的对象维度分布是低方差和单峰的。例如,汽车和骑自行车的人的尺寸差异约为几厘米。因此,我们没有使用像上面的 MultiBin 损失那样的离散连续损失,而是直接使用 L2 损失。按照标准,对于每个维度,我们估计相对于在训练数据集上计算的平均参数值的残差。维度估计 Ldims 的损失计算如下:
其中 D∗ 是框的真实维度,̄D 是某个类别对象的平均维度,δ 是相对于网络预测的均值的估计残差
我们的参数估计模块的 CNN 架构如图 5 所示。共有三个分支:两个分支用于方向估计,一个分支用于维度估计。 所有的分支都来自相同的共享卷积特征,总损失是 L = α ×Ldims + Lθ 的加权组合
6. 结论和未来方向
在这项工作中,我们展示了如何从单个视图中恢复已知对象类别的 3D 边界框。 使用新的 MultiBin 损失进行方向预测和有效选择框尺寸作为回归参数,我们的方法估计稳定和准确的 3D 边界框,无需额外的 3D 形状模型,或具有复杂预处理管道的采样策略
未来的一个方向是探索在我们的方法中使用使用立体计算的单独深度通道来增强 RGB 图像输入的好处。 另一个是探索视频中的 3D 框估计,这需要有效地使用时间信息,并且可以预测未来的物体位置和速度