Deep MANTA: A Coarse-to-fine Many-Task Network for joint 2D and 3D vehicle analysis from monocular image
1.引言
目前深度学习方法中 2D 目标检测已经能够在实际场景中提供较为有效的信息, 但是它们仍然不能够准确地描述 3D 真实世界场景. 而本文目的就是为了解决基于单目视觉图像(大多数汽车仅配备单个摄像头)的 2D 及 3D 车辆分析问题. 对于无人驾驶汽车来说, 了解交通状况, 并根据从场景图像中提取的信息预测紧急情况是非常必要的. 为了恢复周围车辆的速度和方向, 需要结合时间对车辆进行 3D 定位和定向描述. 例如需要精确定位车辆上的高光位置——车辆方向指示器的位置, 而要定位车辆方向指示器, 则需要了解车辆部位的准确位置. 此外, 若要描述整个场景, 还需要获得车辆部件的可见性特征. 这样的话, 当车辆被遮挡时, 我们才能准确得知该车辆的状态. 本文提出了一种方法, 只需给定单张图像, 就能提供精确的车辆检测、车辆部件定位、车辆部件可见性、3D 定位与定向等信息. 具体见 Figure 1.
本文主要有以下贡献:
- 1 通过车辆的关键点信息对 3D 车辆信息进行编码: 由于车辆是刚性物体, 这就决定了车辆部件相较于车辆的相对位置不会发生改变, 因此即使车辆被遮挡, 我们也能够通过剩余关键点信息回归出被遮挡的关键点位置. 针对这一特点, 本文特地制作了一批 3D 车辆数据集, 也就是构建一个标准车辆的 3D 模型, 并记录下车轮、大灯等车辆部件所对应的 3D 点的位置, 这样通过投影就能实现 3D 坐标点与 2D 图像点之间的转换.
- 2 多任务卷积神经网络: 本文针对无人驾驶这一具体任务设计出一个多任务网络——MANTA, 该网络同时优化6个任务, 分别为: region proposal, detection, 2D 框回归, 部件定位, 部件可见性以及 3D 模版预测.
- 3 提出了一个半自动的标注方法: 深度学习训练需要大量标签数据, 手动标注不仅工作量大, 而且对于图像上的不可见部位进行标注的困难较大. 本文提出了一种半自动的标注方法, 他通过生成的 3D 模型来辅助进行标注.
2.相关工作
略
3.Deep MANTA 方法
3.1. 3D shape and template datasets
本文构建了一个 3D 模型数据集, 数据集包含 个模型, 每个模型对应一种常见的车辆类型, 如轿车, SUV 等. 对于每个 3D 模型 , 都注释 个顶点(这里称为 3D 部件). 这些部件对应车辆上的特定区域. 对于 3D 模型 , 我们在一个统一规范中描述它的形状:
这里的 , 分别对应第 个部件的 3D 坐标.
对于 3D 模型 , 它们对应的 3D 模版定义为:
这里的 分别代表 3D 模型的宽, 高以及长度.
3D 形状和 3D 模版的见 Figure 3.
3.2. 2D/3D vehicle model
本文采用 2D/3D model 来表示单目图像中的车辆, 具体定义为:
其中:
- 表示车辆的 2D 框, 为中心点坐标, 为宽高;
- 表示车辆的 3D 框, 表示 3D 中心点坐标, 表示定向, 表示其对应的 3D 模版;
- 表示车辆 2D 部件位置坐标;
- 表示车辆 3D 部件位置坐标;
- 表示部件可见性. 可见性分类标准:
- 可见
- 被别的物体遮挡
- 被车辆自身遮挡
- 超出图像范围
2D/3D vehicle model 示例见 Figure 4.
3.3. Deep MANTA Network
Deep MANTA 采用由粗到精的 bounding box 回归方式.
- Coarse-to-fine forward: 由粗到精. 对于给定的输入图像, MANTA 网络首先采用 Faster RCNN 中的 RPN 方法提取 个 object proposal, 用 表示, . 之后会从 Feature Map 上找到这些区域并输入到 ROI Pooling 中. 这些区域将通过后续的 , 进行 Bounding Box 微调, 同样, , . 具体过程见 Figure 2. MANTA 方法与 Faster RCNN 最大的不同是它增加了 Bounding Box 微调的次数, 使得最终检测框结果更加精确. 此外, 本文方法是从 first convolution feature maps 中提取 region 输入至 ROI Pooling 中的, 这样有利于检测到困难的目标.
- Many-task prediction: 多任务预测. MANTA 网络的最终输出是 . 同时对于 中的每个 Bounding Box (包括 2D 框和 3D 框), MANTA 网络还输出它们的部件的 2D 坐标 , 部件可见性 , 以及 3D 模版相似度 . 模版相似度 的定义为 模版相似度 , 表示检测生成的 3D 模型与 3D 模版 进行比较得到的比例因子. 其实表示了当前检测目标车辆与所有 3D 模版的相似度.
最后通过 NMS, 可以得到 个最终检测结果, 检测结果属性: .
3.4. Deep MANTA Inference
MANTA 网络的推理过程分为如下步骤:
- 第 1 步: 网络输出的检测目标 的形状与 3D 模版数据 进行一一对比得到模版相似度 , 这里定义结果目标的 3D 模型为 , 那么最佳匹配模版 应为 与 距离最小的那个, 即:
第 2 步: 使用 3D 形状 进行 2D/3D 匹配. 主要方法是将 MANTA 获得的 3D 模型 进行缩放以匹配 , 然后姿态估计算法就会将缩放后的 3D 形状 同 2D 形状 进行标准的 2D/3D 匹配.
第 3 步: 输出 3D Bounding Box 坐标 以及 3D 部件坐标 .
4. Deep MANTA Training
MANTA 方法最终的 Loss 有 5 类, 分别是:
- : 同 Faster RCNN 的 RPN 层的 Loss 意义相同.
- : 检测(detection)的 Loss, 包括区分是车辆目标还是背景的分类 Loss 以及 Bounding Box 回归 Loss.
- : 车辆部件定位的 Loss.
- : 车辆部件可见性的 Loss.
- : 模版相似度 Loss.
如果给定一幅图像, 其最终的 Loss 为:
这里:
这里的 是 proposal 目标的索引. 这 3 个 Loss 分别代表 MANTA 网络的 3 个阶段的 Loss.
4.1. Many-task loss functions
关于上面提到的几种损失, 这里做一个详细的解释. 现设定第 个阶段索引为 的 box 为 , 然后确定其对应的 groundtruth box , 对应的 groundtruth 部件 , 对应的 groundtruth 部件可见性 以及对应的 groundtruth 模版 . 此外, 我们记标准的 log softmax loss 为 , robust SmoothL1 loss 为 .
Detection loss: 检测 loss. 记第 阶段的第 个 proposal 为 , 如果是车辆的话, 则 , 否则 . 分类标准是根据 proposal box 和 groundtruth box 之间的 IOU 是否大于某一阈值来确定. 这里记 MANTA 网络预测的类别为 . 目标 box 的回归向量 定义为:
记 MANTA 网络预测得出的回归向量为 , 那么最终 Detection loss 定义为:
这里的 和 分别代表分类和回归的正则化参数.
Part loss: 部件 loss. 通过 groundtruth 部件 及预测得出的 box 标准化 2D 部件坐标 , 其中
记 MANTA 网络预测得到的标准化 2D 部件坐标为 , 则 part loss 定义为:
这里 为 part loss 的正则化参数.
Visibility loss: 可见性 loss. 该 loss 仅在阶段 3 时才有, 知 groundtruth 部件可见性 和 MANTA 网络预测得到的可见性向量 , 则 visibility loss 定义为:
这里 表示 visibility loss 的正则化参数.
Template similarity loss: 模版相似度 loss. 该 loss 仅在阶段 3 时才有. 知 groundtruth 模版向量为 , MANTA 网络预测得到的模版向量为 , 则 template similarity loss 定义为:
这里 表示 template similarity loss 的正则化参数.
需注意的是, 如果 proposal 被判定为负例, 即 , 那么回归 loss, 部件定位, 部件可见性, 模版相似度的损失则全为 0.
4.2. Semi-automatic annotation
本文提及一种半自动的标注方法. 本文方法建立了一个 3D CAD 的车辆模型数据集, 该数据集包含 种车辆模型, 每种车辆模型都手工标记了 个部件点坐标位置, 并连线得到车辆模型的特征轮廓. 之后的标注过程中, 我们只需要需要对图像数据中的车辆的 3D 边框进行大致的手动标注, 该工具会自动计算当前车辆模型和数据集中的哪种车辆模型的 3D 形状边框更为接近. 选出对应的车辆模型后, 该车辆的部件点的位置及可见性都可以通过该模型进行映射得出. 具体见 Figure 5.
5. 实验
算法评估所用数据集为 KITTI, 其包含 7481 张训练图片以及 7518 张测试图片. 但是由于测试集是没有标注的, 这里将训练集重新划分为一个训练集和一个验证集. 为了和已有方法进行比较, 本文采用两种方法划分训练集/验证集. 本文实验采用的 3D CAD 数据集包含 个 3D 车辆模型, 每个模型标注 个部件点坐标. 本文实验训练 Deep MANTA 网络采用两种基础网络, 分别为 GoogLeNet 和 VGG16, 并采用标准的 SGD 优化器. 训练时采用在 ImageNet 上训练好的预训练模型进行 Finetune. 本文采用 7 种长宽比, 10 种尺度, 共 70 个 anchor. 训练时, 正例的选择需要样本与 GroundTruth 的交并比达到 0.7 以上. 除了 以外, 其他所有 的值都为 1.
2D vehicle detection and orientation: 2D 车辆检测与定向结果.
- 采用 mAP 指标来判定 2D 车辆检测的优劣, 采用的 IOU 阈值为 0.7;
- 采用 AOS 指标来表示定向的准确性.
最终结果如 Table 1 所示.
测试集上效果如 Table 2 所示.
MANTA 算法全面胜出.
此外, 为了验证 MANTA 网络采用的 3 阶段模型以及采用第一次卷积作为 Feature Map 的有效性, 本文设置了 3 组对比实验: 第一组不采用 refinement, 且和 RPN 算法一样采用最后一层作为 Feature Map; 第二组不使用 refinement, 但采用第一次卷积后的 Feature Map; 最后一组使用 refinement, 且采用第一次卷积后的 Feature Map. 最终的测试结果如 Table 3 所示.
可以看到这两种改进方法都对网络性能提升起到一定作用.
3D localization: 3D 定位. 其衡量指标为 Average Localization Precision(ALP), 其意义是设定一个阈值, 如果某一个目标物的 3D位 置到 GroundTruth 位置的距离小于该阈值, 则判定正确, 以此计算出准确率. 测试结果图 Table 4 所示.
P-R 曲线如 Figure 6 所示, 这里采用两种统计精度的方法, 即当定位误差小于 1m 时的精度以及当定位误差小于 2m 时的精度.
3D template, part localization and visibility: 3D 模版相似度, 部件定位, 以及可见性评估. 具体是通过设定阈值的方式进行评估, 测试结果如 Table 5 所示.
Many-task and regularization parameters: 多任务网络正则化系数分析. 主要得出的结论是 效果好. 具体参见 Table 6.
6. Conclusion
略