计算机视觉算法——基于深度学习的高精地图算法(MapTRv2 / PivotNet / BeMapNet)

计算机视觉算法——基于深度学习的高精地图算法(MapTRv2 / PivotNet / BeMapNet)

  • 计算机视觉算法——基于深度学习的高精地图算法(MapTRv2 / PivotNet / BeMapNet)
  • 1. MapTRv2
    • 1.1 网络结构及特点
    • 1.2 Decoupled Self-Attention
    • 1.3 One-to-many Set Prediction Loss & Auxiliary Dense Prediction Loss
    • 1.4 实验结果
  • 2. PivotNet
    • 2.1 网络结构及特点
    • 2.2 Line-Aware Point Decoder
    • 2.3 Pivot Dynamic Matching Module
    • 2.4 损失函数
    • 2.5 实验结果
  • 3. BeMapNet
    • 3.1 网络结构
    • 3.2 IPM-PE Align Layer
    • 3.3 Bezier Output Head
    • 3.4 损失函数
    • 3.5 实验结果

计算机视觉算法——基于深度学习的高精地图算法(MapTRv2 / PivotNet / BeMapNet)

去年总结过几篇经典的高精地图算法计算机视觉算法——基于深度学习的高精地图算法(HDMapNet / VectorMapNet / MapTR / VectorNet),一年过去了这个方向上又许多进展,这篇博客主要记录最近看过的几篇相关Paper

1. MapTRv2

MapTRv2是对MapTR的扩展,相对于MapTR其主要内容区别主要在于

  1. 引入了Decoupled Self-Attention模块,可以减少内存占用以及提高性能;
  2. 引入了辅助的One-to-many Set Prediction Loss和Auxiliary Dense Prediction Loss来加速收敛;

1.1 网络结构及特点

MapTRv2的网络结构如下图所示:
在这里插入图片描述

1.2 Decoupled Self-Attention

Decouple Self-Attention的原理如上图中Self-Attention Variants所展示的,在原始的MapTR中如果有 N N N个Instantce Query和 N v N_v Nv个Point Query,则Self-Attention是在 N × N v N \times N_v N×Nv个组合Query上进行的,计算复杂度为 O ( ( N × N v ) 2 ) O\left(\left(N \times N_v\right)^2\right) O((N×Nv)2),MapTRv2中提出的方法是先进行Instance级别的Self-Attention,再进行Point级别的Self-Attention,这样计算复杂度可以降低为 O ( N 2 + N v 2 ) ) \left.O\left(N^2+N_v^2\right)\right) O(N2+Nv2)),实验结果如下:
在这里插入图片描述
可以看到如果只进行Instance级别的Self-Attention网络性能是会下降的,使用Decoupled Self-Attention不仅可以降低GPU内存占用,同时可以提高网络性能。

在Cross-Attention部分作者也做了部分调整,如下图所示
在这里插入图片描述
当使用BEV+PV混合Cross Attention时,当在有准确的Z值是(av2.3D)数据集,是有性能提升的。

1.3 One-to-many Set Prediction Loss & Auxiliary Dense Prediction Loss

在MapTRv2中损失函数一共由One-to-One Set Prediction Loss、One-to-many Set Prediction Loss、Auxiliary Dense Prediction Loss三部分构成: L = β o L one2one  + β m L one2many  + β d L dense  . \mathcal{L}=\beta_o \mathcal{L}_{\text {one2one }}+\beta_m \mathcal{L}_{\text {one2many }}+\beta_d \mathcal{L}_{\text {dense }} . L=βoLone2one +βmLone2many +βdLdense .其中One-to-One Set Prediction Loss和MapTR中是一致的,参见计算机视觉算法——基于深度学习的高精地图算法(HDMapNet / VectorMapNet / MapTR / VectorNet)

One-to-many Set Prediction Loss的原理如下图所示:
在这里插入图片描述
对于One-to-One Set Prediction Branch是对 L L L个真值分配 N N N个预测的Instance Query,在 One-to-many Set Prediction Branch中则将 L L L个真值复制 K K K份,然后使用额外的 T T T个Instance Query进行预测, 在One-to-many Set Prediction Branch中和One-to-One Set Prediction Branch共享Point Query。这样做相当于增加了正样本的比例,从而可以加速收敛。

Auxiliary Dense Prediction Loss分为三个部分,分别是深度监督损失 L depth  \mathcal{L}_{\text {depth }} Ldepth ,BEV分割损失 L BEVSeg  \mathcal{L}_{\text {BEVSeg }} LBEVSeg ,PV分割损失 L PVSeg  \mathcal{L}_{\text {PVSeg }} LPVSeg ,其中深度监督损失使用的是激光点云作为真值,使用Cross Entropy Loss进行监督: L depth  = ∑ m = 1 M L C E ( ϕ depth  ( F m ) , D m ) \mathcal{L}_{\text {depth }}=\sum_{m=1}^M \mathcal{L}_{\mathrm{CE}}\left(\phi_{\text {depth }}\left(F_m\right), D_m\right) Ldepth =m=1MLCE(ϕdepth (Fm),Dm)BEV分割损失 L BEVSeg  \mathcal{L}_{\text {BEVSeg }} LBEVSeg ,PV分割损失 L PVSeg  \mathcal{L}_{\text {PVSeg }} LPVSeg 如下: L BEVSeg  = L C E ( ϕ B E V S e g ( F B E V ) , M B E V ) . \mathcal{L}_{\text {BEVSeg }}=\mathcal{L}_{\mathrm{CE}}\left(\phi_{\mathrm{BEVSeg}}\left(F_{B E V}\right), M_{B E V}\right) . LBEVSeg =LCE(ϕBEVSeg(FBEV),MBEV). L P V S e g = ∑ m = 1 M L C E ( ϕ P V S e g ( F m ) , M P V m ) . \mathcal{L}_{\mathrm{PVSeg}}=\sum_{m=1}^M \mathcal{L}_{\mathrm{CE}}\left(\phi_{\mathrm{PVSeg}}\left(F_m\right), M_{P V}^m\right) . LPVSeg=m=1MLCE(ϕPVSeg(Fm),MPVm).如下图是各个各个损失带来的收益:
在这里插入图片描述
可以看到收益最明显的是 One-to-many Set Prediction Loss。

1.4 实验结果

MapTRv2和其他方法的对比结果如下:
在这里插入图片描述
在相同的配置下,MapTRv2相对于MapTR有10个点的提升,如下图是MapTR和MapTRv2的训练收敛速度,同样提升明显
在这里插入图片描述

2. PivotNet

PivotNet发表于2023年ICCV,PivotNet提出了一种基于枢纽点的高精地图建模方法,该方法相对于MapTR提出的基于均匀点的建模方法有Corner Friendly、Geometry Robust、Expression Compact等优势,如下图所示:
在这里插入图片描述
枢纽点的定义如下图所示:
在这里插入图片描述
Pivot Point S p \mathcal{S}^p Sp是对线的整体形状和方向有贡献的、保持其基本特征所必需的点。Collinear Point S c \mathcal{S}^c Sc则是那些除枢纽点之外可以安全删除并且不影响线条形状的点。

2.1 网络结构及特点

网络结构如下图所示:
在这里插入图片描述
在Decoder部分使用是Line-Aware Point Decoder获得Point Feature,然后再通过Pivotal Point Predictor进行最终结果预测,下面我们对这两部分进行详细介绍

2.2 Line-Aware Point Decoder

Line-Aware Point Decoder的结构图如下图所示
在这里插入图片描述
Decoder的输入是

  1. 维度为 H × W × C ′ H \times W \times C' H×W×C的BEV Feature;
  2. 随机初始化的 M × N M \times N M×N个维度为 C C C的Point Query,其中 M M M为Instance的数量, N N N为每个Instance上Point的数量。

该模块首先将属于同一个Instance的Point Query进行Concat,然后Concat后维度为 N × C N \times C N×C的Feature经过一个MLP将维度降到和BEV Feature相同的维度 C ′ C' C,得到Line Feature,然后将Line Feature和BEV Feature进行逐Pixel的矩阵相乘得到维度为 H × W × 1 H \times W \times 1 H×W×1的Line-aware Mask。该Line-aware Mask主要是用来限制Point Query和BEV Feature进行Cross Attention的范围,通过这种方式就显示编码了点和线的从属关系

2.3 Pivot Dynamic Matching Module

在MapTR中,因为真值在每个Instance上的Point的数量都是相等的,因此我们设置固定数量的Point Query,对Point Query进行匹配时计算最小距离即可。但是在PivotNet中,真值的每个Instance上Pivot Point的数量都是不相等的,当我们设置固定数量的Point Query时就会面临如何将不同数量的Pivot Point匹配当固定数量的Point Query上进行监督。
在这里插入图片描述

例如我们将Point Query定义为 S ^ = { v ^ n } n = 1 N \hat{\mathcal{S}}=\left\{\hat{v}_n\right\}_{n=1}^N S^={v^n}n=1N,其中 N N N为每个Instance分配的Point Query的数量,真值定义为 S p = { v n } n = 1 T \mathcal{S}^p=\left\{v_n\right\}_{n=1}^T Sp={vn}n=1T

上一篇:技术理论||03运动恢复结构


下一篇:【论文-恶意软件检测-文本分析方向】基于图注意力网络和多模态特征深度融合的Android恶意软件检测方法(精读)