美文网首页
Deep MANTA 论文阅读

Deep MANTA 论文阅读

作者: 陈阿超 | 来源:发表于2018-09-20 22:15 被阅读0次

    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.

    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 模型数据集, 数据集包含 M 个模型, 每个模型对应一种常见的车辆类型, 如轿车, SUV 等. 对于每个 3D 模型 m, 都注释 N 个顶点(这里称为 3D 部件). 这些部件对应车辆上的特定区域. 对于 3D 模型 m, 我们在一个统一规范中描述它的形状:

    \mathbf{\overline{S}}_m^{3d}=(p_1,p_2,...,p_N)

    这里的 p_k=(x_k,y_k,z_k), 分别对应第 k^{th} 个部件的 3D 坐标.

    对于 3D 模型 m, 它们对应的 3D 模版定义为:

    \overline{t}_m^{3D}=(w_m,h_m,l_m)

    这里的 w_m,h_m,l_m 分别代表 3D 模型的宽, 高以及长度.

    3D 形状和 3D 模版的见 Figure 3.

    Figure 3

    3.2. 2D/3D vehicle model

    本文采用 2D/3D model 来表示单目图像中的车辆, 具体定义为:

    (B,B^{3d},\mathbf{S},\mathbf{S}^{3d},\mathbf{V})

    其中:

    • B=(c_x,c_y,w,h) 表示车辆的 2D 框, (c_x,c_y) 为中心点坐标, (w,h) 为宽高;
    • B^{3d}=(c_x,c_y,c_z,\theta,t) 表示车辆的 3D 框, (c_x,c_y,c_z) 表示 3D 中心点坐标, \theta 表示定向, t=(w,h,l) 表示其对应的 3D 模版;
    • \mathbf{S}=\{q_k=(u_k,v_k)\}_{k\in\{1,...,N\}} 表示车辆 2D 部件位置坐标;
    • \mathbf{S}^{3d}=\{p_k=(x_k,y_k,z_k)\}_{k\in\{1,...,N\}} 表示车辆 3D 部件位置坐标;
    • \mathbf{V}=\{v_k\}^{k\in\{1,...,N\}} 表示部件可见性. 可见性分类标准:
      • 可见
      • 被别的物体遮挡
      • 被车辆自身遮挡
      • 超出图像范围

    2D/3D vehicle model 示例见 Figure 4.

    Figure 4

    3.3. Deep MANTA Network

    Deep MANTA 采用由粗到精的 bounding box 回归方式.

    • Coarse-to-fine forward: 由粗到精. 对于给定的输入图像, MANTA 网络首先采用 Faster RCNN 中的 RPN 方法提取 K 个 object proposal, 用 \mathbf{B}_1 表示, \mathbf{B}_1=\{B_{i,1}\}_{i\in\{1,...,K\}}. 之后会从 Feature Map 上找到这些区域并输入到 ROI Pooling 中. 这些区域将通过后续的 \mathbf{B}_2, \mathbf{B}_3 进行 Bounding Box 微调, 同样, \mathbf{B}_2=\{B_{i,2}\}_{i\in\{1,...,K\}}, \mathbf{B}_3=\{B_{i,3}\}_{i\in\{1,...,K\}}. 具体过程见 Figure 2. MANTA 方法与 Faster RCNN 最大的不同是它增加了 Bounding Box 微调的次数, 使得最终检测框结果更加精确. 此外, 本文方法是从 first convolution feature maps 中提取 region 输入至 ROI Pooling 中的, 这样有利于检测到困难的目标.
    • Many-task prediction: 多任务预测. MANTA 网络的最终输出是 \mathbf{B}_3=\{B_{i,3}\}_{i\in\{1,...,K\}}. 同时对于 \mathbf{B}_3 中的每个 Bounding Box B_{i,3} (包括 2D 框和 3D 框), MANTA 网络还输出它们的部件的 2D 坐标 \mathbf{S}_i, 部件可见性 \mathbf{V}_i, 以及 3D 模版相似度 \mathbf{T}_i. 模版相似度 \mathbf{T}_i 的定义为 模版相似度 \mathbf{T}_i=\{r_m\}_{m\in\{1,...,M\}}, r_m=(r_x,r_y,r_z) 表示检测生成的 3D 模型与 3D 模版 \overline{t}_m^{3d} 进行比较得到的比例因子. \mathbf{T}_i 其实表示了当前检测目标车辆与所有 3D 模版的相似度.

    最后通过 NMS, 可以得到 K' 个最终检测结果, 检测结果属性: \{B_j,\mathbf{S}_j,\mathbf{V}_j,\mathbf{T}_j\}_{j\in\{1,...,K'\}}.

    Figure 2

    3.4. Deep MANTA Inference

    MANTA 网络的推理过程分为如下步骤:

    • 第 1 步: 网络输出的检测目标 j 的形状与 3D 模版数据 \{\overline{t}_m^{3d}\}_{m\in\{1,...,M\}} 进行一一对比得到模版相似度 \mathbf{T}_j=\{r_m\}_{m\in\{1,...,M\}}, 这里定义结果目标的 3D 模型为 \{t_m^{3d}\}_{m\in\{1,...,M\}}, 那么最佳匹配模版 c 应为 t_m^{3d}\overline{t}_m^{3d} 距离最小的那个, 即:

    c=\mathop{\rm{argmin}}\limits_{m\in\{1,...,M\}}{d(\overline{t}_m^{3d},t_m^{3d})}

    • 第 2 步: 使用 3D 形状 \mathbf{{\overline{S}}}_c^{3d} 进行 2D/3D 匹配. 主要方法是将 MANTA 获得的 3D 模型 t_j 进行缩放以匹配 t_c^{3d}, 然后姿态估计算法就会将缩放后的 3D 形状 \mathbf{{\overline{S}}}_c^{3d} 同 2D 形状 \mathbf{S}_j 进行标准的 2D/3D 匹配.

    • 第 3 步: 输出 3D Bounding Box 坐标 B_j^{3d} 以及 3D 部件坐标 \mathbf{S}_j^{3d}.

    4. Deep MANTA Training

    MANTA 方法最终的 Loss 有 5 类, 分别是:

    • \mathcal{L}_{rpn}: 同 Faster RCNN 的 RPN 层的 Loss 意义相同.
    • \mathcal{L}_{det}: 检测(detection)的 Loss, 包括区分是车辆目标还是背景的分类 Loss 以及 Bounding Box 回归 Loss.
    • \mathcal{L}_{parts}: 车辆部件定位的 Loss.
    • \mathcal{L}_{vis}: 车辆部件可见性的 Loss.
    • \mathcal{L}_{temp}: 模版相似度 Loss.

    如果给定一幅图像, 其最终的 Loss 为:

    \mathcal{L}=\mathcal{L}^1+\mathcal{L}^2+\mathcal{L}^3

    这里:

    • \mathcal{L}^1=\mathcal{L}_{rpn}
    • \mathcal{L}^2=\sum\limits_i{\mathcal{L}_{det}^2(i)}+\mathcal{L}_{parts}^2(i)
    • \mathcal{L}^3=\sum\limits_i{\mathcal{L}_{det}^3(i)}+\mathcal{L}_{parts}^3(i)+\mathcal{L}_{vis}(i)+\mathcal{L}_{temp}(i)

    这里的 i 是 proposal 目标的索引. 这 3 个 Loss 分别代表 MANTA 网络的 3 个阶段的 Loss.

    4.1. Many-task loss functions

    关于上面提到的几种损失, 这里做一个详细的解释. 现设定第 l 个阶段索引为 i 的 box 为 B_{i,l}=(c_{x_{i,l}},c_{y_{i,l}},w_{i,l},h_{i,l}), 然后确定其对应的 groundtruth box B, 对应的 groundtruth 部件 \mathbf{S}, 对应的 groundtruth 部件可见性 \mathbf{V} 以及对应的 groundtruth 模版 t. 此外, 我们记标准的 log softmax loss 为 P, robust SmoothL1 loss 为 R.

    Detection loss: 检测 loss. 记第 l 阶段的第 i 个 proposal 为 C_{i,l}, 如果是车辆的话, 则 C_{i,l}=1, 否则 C_{i,l}=0. 分类标准是根据 proposal box B_{i,l} 和 groundtruth box B 之间的 IOU 是否大于某一阈值来确定. 这里记 MANTA 网络预测的类别为 C_{i,l}^*. 目标 box 的回归向量 \Delta_{i,l}=(\delta_x,\delta_y,\delta_w,\delta_h) 定义为:

    \delta_x=(c_{x_{i,l}}-c_x)/w
    \delta_y=(c_{y_{i,l}}-c_y)/h
    \delta_w=\log(w_{i,l}/w)
    \delta_h=\log(h_{i,l}/h)

    记 MANTA 网络预测得出的回归向量为 \Delta_{i,l}^*, 那么最终 Detection loss 定义为:

    \mathcal{L}_{det}^l(i)=\lambda_{cls}P(C_{i,l}^*,C_{i,l})+\lambda_{reg}C_{i,l}R(\Delta_{i,l}^*-\Delta_{i,l})

    这里的 \lambda_{cls}\lambda_{reg} 分别代表分类和回归的正则化参数.

    Part loss: 部件 loss. 通过 groundtruth 部件 \mathbf{S}=(q_1,...,q_N) 及预测得出的 box B_{i,l} 标准化 2D 部件坐标 \mathbf{S}_{i,l}=(\overline{q}_1,...,\overline{q}_N), 其中

    \overline{q}_k=(\frac{u_k-c_{x_{i,l}}}{w_{i,l}},\frac{v_k-c_{y_{i,l}}}{h_{i,l}})

    记 MANTA 网络预测得到的标准化 2D 部件坐标为 \mathbf{S}_{i,l}^*, 则 part loss 定义为:

    \mathcal{L}_{parts}^l(i)=\lambda_{parts}C_{i,l}R(\mathbf{S}_{i,l}^*-\mathbf{S}_{i,l})

    这里 \lambda_{parts} 为 part loss 的正则化参数.

    Visibility loss: 可见性 loss. 该 loss 仅在阶段 3 时才有, 知 groundtruth 部件可见性 \mathbf{V}_i 和 MANTA 网络预测得到的可见性向量 \mathbf{V}_i^*, 则 visibility loss 定义为:

    \mathcal{L}_{vis}(i)=\lambda_{vis}C_{i,3}P(\mathbf{V}_i^*,\mathbf{V}_i)

    这里 \lambda_{vis} 表示 visibility loss 的正则化参数.

    Template similarity loss: 模版相似度 loss. 该 loss 仅在阶段 3 时才有. 知 groundtruth 模版向量为 \mathbf{T}_i, MANTA 网络预测得到的模版向量为 \mathbf{T}_i^*, 则 template similarity loss 定义为:

    \mathcal{L}_{temp}(i)=\lambda_{temp}C_{i,3}R(\mathbf{T}_i^*,\mathbf{T}_i)

    这里 \lambda_{temp} 表示 template similarity loss 的正则化参数.

    需注意的是, 如果 proposal i 被判定为负例, 即 C_{i,l}=0, 那么回归 loss, 部件定位, 部件可见性, 模版相似度的损失则全为 0.

    4.2. Semi-automatic annotation

    本文提及一种半自动的标注方法. 本文方法建立了一个 3D CAD 的车辆模型数据集, 该数据集包含 M 种车辆模型, 每种车辆模型都手工标记了 N 个部件点坐标位置, 并连线得到车辆模型的特征轮廓. 之后的标注过程中, 我们只需要需要对图像数据中的车辆的 3D 边框进行大致的手动标注, 该工具会自动计算当前车辆模型和数据集中的哪种车辆模型的 3D 形状边框更为接近. 选出对应的车辆模型后, 该车辆的部件点的位置及可见性都可以通过该模型进行映射得出. 具体见 Figure 5.

    Figure 5

    5. 实验

    算法评估所用数据集为 KITTI, 其包含 7481 张训练图片以及 7518 张测试图片. 但是由于测试集是没有标注的, 这里将训练集重新划分为一个训练集和一个验证集. 为了和已有方法进行比较, 本文采用两种方法划分训练集/验证集. 本文实验采用的 3D CAD 数据集包含 M=103 个 3D 车辆模型, 每个模型标注 N=36 个部件点坐标. 本文实验训练 Deep MANTA 网络采用两种基础网络, 分别为 GoogLeNet 和 VGG16, 并采用标准的 SGD 优化器. 训练时采用在 ImageNet 上训练好的预训练模型进行 Finetune. 本文采用 7 种长宽比, 10 种尺度, 共 70 个 anchor. 训练时, 正例的选择需要样本与 GroundTruth 的交并比达到 0.7 以上. 除了 \lambda_{parts}=3 以外, 其他所有 \lambda 的值都为 1.

    2D vehicle detection and orientation: 2D 车辆检测与定向结果.

    • 采用 mAP 指标来判定 2D 车辆检测的优劣, 采用的 IOU 阈值为 0.7;
    • 采用 AOS 指标来表示定向的准确性.

    最终结果如 Table 1 所示.

    Table 1

    测试集上效果如 Table 2 所示.

    Table 2

    MANTA 算法全面胜出.

    此外, 为了验证 MANTA 网络采用的 3 阶段模型以及采用第一次卷积作为 Feature Map 的有效性, 本文设置了 3 组对比实验: 第一组不采用 refinement, 且和 RPN 算法一样采用最后一层作为 Feature Map; 第二组不使用 refinement, 但采用第一次卷积后的 Feature Map; 最后一组使用 refinement, 且采用第一次卷积后的 Feature Map. 最终的测试结果如 Table 3 所示.

    Table 3

    可以看到这两种改进方法都对网络性能提升起到一定作用.

    3D localization: 3D 定位. 其衡量指标为 Average Localization Precision(ALP), 其意义是设定一个阈值, 如果某一个目标物的 3D位 置到 GroundTruth 位置的距离小于该阈值, 则判定正确, 以此计算出准确率. 测试结果图 Table 4 所示.

    Table 4

    P-R 曲线如 Figure 6 所示, 这里采用两种统计精度的方法, 即当定位误差小于 1m 时的精度以及当定位误差小于 2m 时的精度.

    Figure 6

    3D template, part localization and visibility: 3D 模版相似度, 部件定位, 以及可见性评估. 具体是通过设定阈值的方式进行评估, 测试结果如 Table 5 所示.

    Table 5

    Many-task and regularization parameters: 多任务网络正则化系数分析. 主要得出的结论是 \lambda_{parts}=3 效果好. 具体参见 Table 6.

    Table 6

    6. Conclusion

    相关文章

      网友评论

          本文标题:Deep MANTA 论文阅读

          本文链接:https://www.haomeiwen.com/subject/ialonftx.html