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

news2025/2/22 19:46:26

计算机视觉算法——基于深度学习的高精地图算法(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 T T T每个Instance真值中Pivot Point的数量,不同Instance这个值是动态变化的。如果我们不进行任何限制,那么这种匹配关系就会有 β = C N T \beta = C_N^T β=CNT中可能,那么正确的匹配结果定义如下: L match  ( S ^ , S p , β ) = 1 T ∑ n = 1 T ∥ v n − v ^ β ( n ) ∥ 1 \mathcal{L}_{\text {match }}\left(\hat{\mathcal{S}}, \mathcal{S}^p, \beta\right)=\frac{1}{T} \sum_{n=1}^T\left\|v_n-\hat{v}_{\beta(n)}\right\|_1 Lmatch (S^,Sp,β)=T1n=1T vnv^β(n) 1 β ∗ = arg ⁡ min ⁡ β L match  ( S ^ , S p , β ) , \beta^*=\underset{\beta}{\arg \min } \mathcal{L}_{\text {match }}\left(\hat{\mathcal{S}}, \mathcal{S}^p, \beta\right), β=βargminLmatch (S^,Sp,β),为了减小匹配的计算复杂度,算法指定真值的Pivot Point序列和预测的Point Query序列的收尾的对应的,即 β ( 1 ) = 1 , β ( T ) = N \beta(1)=1, \beta(T)=N β(1)=1,β(T)=N,通过动态规划的方法求解匹配关系,定义 d p [ i ] [ j ] d p[i][j] dp[i][j]为前 i i i个Pivot Point和前 j j j个Point Query的最小匹配损失,然后计算 d p [ i ] [ j ] = min ⁡ k ∈ [ 1 , j − 1 ] d p [ i − 1 ] [ k ] + ∥ v i − v ^ j ∥ 1 d p[i][j]=\min _{k \in[1, j-1]} d p[i-1][k]+\left\|v_i-\hat{v}_j\right\|_1 dp[i][j]=k[1,j1]mindp[i1][k]+viv^j1定义 d p [ 1 ] [ 1 ] = ∥ v 1 − v ^ 1 ∥ 1 d p[1][1]=\left\|v_1-\hat{v}_1\right\|_1 dp[1][1]=v1v^11,通过这种方式可以将计算复杂度从 O ( C N T ) O\left(C_N^T\right) O(CNT)降低为 O ( N T ) O(N T) O(NT)

在Ablation Study中可以看到Pivot Dynamic Matching Module可以带来性能上的提升
在这里插入图片描述

2.4 损失函数

Pivot损失函数主要由三部分构成: L T O T A L = L D V S + λ 1 L L A + λ 2 L B E V \mathcal{L}_{T O T A L}=\mathcal{L}_{D V S}+\lambda_1 \mathcal{L}_{L A}+\lambda_2 \mathcal{L}_{B E V} LTOTAL=LDVS+λ1LLA+λ2LBEV其中Line-aware Loss监督的是Instance级别Line-aware Mask,其定义为 L L A = L bce  ( M ^ line  , M line  ) + L dice  ( M ^ line  , M line  ) \mathcal{L}_{L A}=\mathcal{L}_{\text {bce }}\left(\hat{M}_{\text {line }}, M_{\text {line }}\right)+\mathcal{L}_{\text {dice }}\left(\hat{M}_{\text {line }}, M_{\text {line }}\right) LLA=Lbce (M^line ,Mline )+Ldice (M^line ,Mline )Auxiliary BEV Loss是对整个BEV的分割结果定义为: L B E V = L bce  ( M ^ bev  , M bev  ) + L dice  ( M ^ bev  , M bev  ) \mathcal{L}_{B E V}=\mathcal{L}_{\text {bce }}\left(\hat{M}_{\text {bev }}, M_{\text {bev }}\right)+\mathcal{L}_{\text {dice }}\left(\hat{M}_{\text {bev }}, M_{\text {bev }}\right) LBEV=Lbce (M^bev ,Mbev )+Ldice (M^bev ,Mbev )Dynamic Vectorized Sequence Loss由Pivotal Point Loss L p p \mathcal{L}_{p p} Lpp、Collinear Point Loss L c p \mathcal{L}_{c p} Lcp和Pivot Classification Loss L c l s \mathcal{L}_{c l s} Lcls三部分构成 L D V S = α 1 L p p + α 2 L c p + α 3 L c l s \mathcal{L}_{D V S}=\alpha_1 \mathcal{L}_{p p}+\alpha_2 \mathcal{L}_{c p}+\alpha_3 \mathcal{L}_{c l s} LDVS=α1Lpp+α2Lcp+α3Lcls其中 L p p = 1 T ∑ n = 1 T ∥ S ^ n p − S n p ∥ 1 \mathcal{L}_{p p}=\frac{1}{T} \sum_{n=1}^T\left\|\hat{\mathcal{S}}_n^p-\mathcal{S}_n^p\right\|_1 Lpp=T1n=1T S^npSnp 1为Pivot Point距离上的L1损失 L c p = 1 N − T ∑ n = 1 T − 1 ∑ r = 1 R n ∥ C ^ n , r − C n , r ∥ 1 C n , r = ( 1 − θ n , r ) S n p + θ n , r S n + 1 p , \mathcal{L}_{c p}=\frac{1}{N-T} \sum_{n=1}^{T-1} \sum_{r=1}^{R_n}\left\|\hat{C}_{n, r}-C_{n, r}\right\|_1 \\ C_{n, r}=\left(1-\theta_{n, r}\right) S_n^p+\theta_{n, r} S_{n+1}^p, Lcp=NT1n=1T1r=1Rn C^n,rCn,r 1Cn,r=(1θn,r)Snp+θn,rSn+1p,为Collinear Point距离上的L1损失,Collinear Point等间距地分布在Pivot Point之间 L c l s = 1 N ∑ n = 1 N L b c e ( p n , 1 S ^ n ∈ S ^ p ) , \mathcal{L}_{c l s}=\frac{1}{N} \sum_{n=1}^N \mathcal{L}_{b c e}\left(p_n, \mathbb{1}_{\hat{\mathcal{S}}_n \in \hat{\mathcal{S}}^p}\right), Lcls=N1n=1NLbce(pn,1S^nS^p),为Pivot Point和Collinear Point分类损失,在进行预测时只输出Pivot Point。

2.5 实验结果

PivotNet和其他方法的对比结果如下
在这里插入图片描述
PivotNet相对于MapTR在指标上大概有10个点的提升,但是FPS有所下降。

3. BeMapNet

BeMapNet发表于2023年,该方法提出了一种基于贝塞尔曲线的高精地图建模方法,贝塞尔曲线是由一组有序控制点组成的参数曲线,在论文中的定义如下: p ( t ) = ∑ i = 0 n b i , n ( t ) c i , t ∈ [ 0 , 1 ] p(t)=\sum_{i=0}^n b_{i, n}(t) c_i, t \in[0,1] p(t)=i=0nbi,n(t)ci,t[0,1]其中 c i c_i ci为控制点坐标, n n n为曲线阶数, b i , n ( t ) b_{i, n}(t) bi,n(t) n n n阶伯因斯坦多项式基: b i , n ( t ) = ( n i ) t i ( 1 − t ) n − i , i = 0 , … , n b_{i, n}(t)=\binom{n}{i} t^i(1-t)^{n-i}, i=0, \ldots, n bi,n(t)=(in)ti(1t)ni,i=0,,n我们通过控制不同 t t t就可以得到贝塞尔曲线上不同的点,其中一、二、三阶贝塞尔曲线公式如下: B ( t ) = ( 1 − t ) P 0 + t P 1 , t ∈ [ 0 , 1 ] \mathbf{B}(t)=(1-t) \mathbf{P}_0+t \mathbf{P}_1 \quad, t \in[0,1] B(t)=(1t)P0+tP1,t[0,1] B ( t ) = ( 1 − t ) 2 P 0 + 2 t ( 1 − t ) P 1 + t 2 P 2 , t ∈ [ 0 , 1 ] \mathbf{B}(t)=(1-t)^2 \mathbf{P}_0+2 t(1-t) \mathbf{P}_1+t^2 \mathbf{P}_2 \quad, t \in[0,1] B(t)=(1t)2P0+2t(1t)P1+t2P2,t[0,1] B ( t ) = P 0 ( 1 − t ) 3 + 3 P 1 t ( 1 − t ) 2 + 3 P 2 t 2 ( 1 − t ) + P 3 t 3 , t ∈ [ 0 , 1 ] \mathbf{B}(t)=\mathbf{P}_0(1-t)^3+3 \mathbf{P}_1 t(1-t)^2+3 \mathbf{P}_2 t^2(1-t)+\mathbf{P}_3 t^3 \quad, t \in[0,1] B(t)=P0(1t)3+3P1t(1t)2+3P2t2(1t)+P3t3,t[0,1]对应的示意图为
在这里插入图片描述
如下图所示,我们可以通多段低阶贝塞尔曲线进行组合进行高精地图的表达,在BMapNet中要求同一种地图元素其采用的贝塞尔曲线的阶数是一致的,但是段数是不同的,其中Lane-Divider默认使用3段2阶贝塞尔曲线,Ped-Crossing默认使用的是1段1阶贝塞尔曲线,Road-Boundary默认使用的是7段3阶贝塞尔曲线:
在这里插入图片描述

3.1 网络结构

在这里插入图片描述
其中Semantic BEV Decoder结合一个 1 × 1 1 \times 1 1×1的卷积可以获得一个Semantic-Level Mask,Instance Bezier Decoder采用的是MaskFormer的结构,其可以输出Instance-Level Mask,最后通过Piecewise Bezier Output Head可以输出控制点序列,下面我们逐模块看下其设计

3.2 IPM-PE Align Layer

在BeMapNet中BEV Decoder部分采用的是原始的DETR形式的Decoder,具体说来就是将PV图像的Feature进行Flatten,然后使用BEV Query与其进行Cross Attention,这种方法的明显问题是没有用到PV和BEV之间的投影几何关系。IPM-PE Align Layer的作用就是期望将这种几何关系通过Position Embedding引入到Decoder中,如下图所示:
在这里插入图片描述
具体来说就是将PV Feature上的每一个点通过IPM映射获得对应Work系下的一个坐标,同时BEV Feature上的每一个点通过Scale操作也对应World系下的一个坐标,然后分别通过Sin映射获得World PE,最后一个Shared FC Layer分别获得PV Feature和BEV Feature对应的Position Embedding,使用Shared FC Layer的目的是为了消除IPM引入的高度误差。
在这里插入图片描述
如下是IPM-PE的效果对比
在这里插入图片描述
值得关注的是Shared FC模块的作用是最重要的,如果使用两个分开的FC则会抵消掉IPM-PE带来的收益

3.3 Bezier Output Head

首先,如下图所示,Bezier Output Head预测的是下图中蓝色的显示控制点以及显示控制点中点到隐式控制点的向量,并没有直接预测隐式控制点的坐标。
在这里插入图片描述
Bezier Output Head的结构如下图所示:
在这里插入图片描述
其中End-Index Classifier用于预测使用的贝塞尔曲线的段数,Explicit Point和Implicit Offsets则是通过Split Coordinate Regression对每段贝塞尔曲线的显示控制点和隐式控制点的预测。

Split Coordinate Regression模块的一路输入为Instance Bezier Descriptor z ⃗ i ∈ R C \vec{z}_i \in \mathbb{R}^C z iRC,通过一个全卷积层将维度统一为 u ⋅ v u \cdot v uv,然后通过Split操作将特征拆分为 u u u个维度为 v v v的特征 x i j ∈ R v x_i^j \in \mathbb{R}^v xijRv j ∈ [ 1 , u ] j \in[1, u] j[1,u]。另外一路输入是表征二维坐标的矩阵 G ∈ R 2 × H s × W s G \in \mathbb{R}^{2 \times H_s \times W_s} GR2×Hs×Ws,通过一个 1 × 1 1 \times 1 1×1卷积转化为 F G ∈ R v × H s × W s F_G \in \mathbb{R}^{v \times H_s \times W_s} FGRv×Hs×Ws,将 x i j x_i^j xij F G F_G FG进行矩阵乘得到 h i j ∈ R H s × W s h_i^j \in \mathbb{R}^{H_s \times W_s} hijRHs×Ws,将 h i j h_i^j hij进行Global Average Pooling就得到最后的坐标值。

3.4 损失函数

损失函数中最主要的是Poin-Curve-Region Recovery Loss,该Loss如下图所示由三部分构成:
在这里插入图片描述
L P C R = λ p L point  + λ c L curve  + λ r L region  \mathcal{L}_{P C R}=\lambda_p \mathcal{L}_{\text {point }}+\lambda_c \mathcal{L}_{\text {curve }}+\lambda_r \mathcal{L}_{\text {region }} LPCR=λpLpoint +λcLcurve +λrLregion Point-Level Supervision即对控制点进行L1 Loss的监督: L point  = 1 ∣ C ^ ∣ ∑ i = 1 ∣ C ^ ∣ ∥ C i − C ^ i ∥ 1 , \mathcal{L}_{\text {point }}=\frac{1}{|\widehat{\mathbb{C}}|} \sum_{i=1}^{|\widehat{\mathbb{C}}|}\left\|\mathbb{C}_i-\widehat{\mathbb{C}}_i\right\|_1, Lpoint =C 1i=1C CiC i 1,其中 C i \mathbb{C}_i Ci为真值, C ^ i \widehat{\mathbb{C}}_i C i为预测值

Curve-Level Supervision即对使用控制点向量化得到曲线上的点进行L1 Loss监督 L curve  = 1 ∣ P ^ ∣ ∑ i = 1 ∣ P ^ ∣ ∥ P i − P ^ i ∥ 1 \mathcal{L}_{\text {curve }}=\frac{1}{|\widehat{\mathcal{P}}|} \sum_{i=1}^{|\widehat{\mathcal{P}}|}\left\|\mathcal{P}_i-\widehat{\mathcal{P}}_i\right\|_1 Lcurve =P 1i=1P PiP i 1同理 P i \mathcal{P}_i Pi为真值, P ^ i \widehat{\mathcal{P}}_i P i为预测值

Region-Level Supervision即对曲线膨胀获得的区域构建监督: L region  = L dice  ( S ( M , P ^ ♯ ) , S ( M ^ , P ^ ♯ ) ) \mathcal{L}_{\text {region }}=\mathcal{L}_{\text {dice }}\left(\mathcal{S}\left(M, \widehat{\mathcal{P}}^{\sharp}\right), \mathcal{S}\left(\widehat{M}, \widehat{\mathcal{P}}^{\sharp}\right)\right) Lregion =Ldice (S(M,P ),S(M ,P ))其中 S S S为基于Grid采样的运算符, P ♯ \mathcal{P}^{\sharp} P P i \mathcal{P}_i Pi的膨胀后区域, M ^ \widehat{M} M 为预测的Instance Mask, M M M为Instance Mask的真值。

除了Poin-Curve-Region Recovery Loss,BeMapNet同样加入了多任务辅助损失: L A U X = λ s L ( M s , M ^ s ) + λ z L ( M z , M ^ z ) \mathcal{L}_{A U X}=\lambda_s \mathcal{L}\left(\mathbb{M}_s, \widehat{\mathbb{M}}_s\right)+\lambda_z \mathcal{L}\left(\mathbb{M}_z, \widehat{\mathbb{M}}_z\right) LAUX=λsL(Ms,M s)+λzL(Mz,M z)
包括对BEV的分割损失 L ( M s , M ^ s ) \mathcal{L}\left(\mathbb{M}_s, \widehat{\mathbb{M}}_s\right) L(Ms,M s),Instance Level Mask的监督 L ( M z , M ^ z ) \mathcal{L}\left(\mathbb{M}_z, \widehat{\mathbb{M}}_z\right) L(Mz,M z)

如下是各个损失的收益
在这里插入图片描述
其中可以看到对Curve的监督是最直接所以是做有效的
在这里插入图片描述
如果不使用语义和Instance的辅助监督效果都会比较差
在这里插入图片描述
这里的Polyline指的是使用一阶贝塞尔,并不是MapTR的建模方式

3.5 实验结果

由于BeMapNet出的时间相对较少,因此在论文中主要和HDMapNet进行对比,和MapTR的对比可以参考MapTRv2论文中的实验结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2245061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs21: 快速构建自定义设计样式Tailwind CSS

Tailwind CSS 是一个功能强大的低级 CSS 框架,只需书写 HTML 代码,无需书写 CSS,即可快速构建美观的网站。 1. 安装 Tailwind CSS React 项目中安装 Tailwind CSS: 1.1 安装 Tailwind CSS 和相关依赖 安装 Tailwind CSS: npm…

《Python网络安全项目实战》项目6 编写密码工具程序

《Python网络安全项目实战》项目6 编写密码工具程序 项目6 编写密码工具程序任务6.1 猜数字游戏任务描述任务分析任务实施6.1.1 编写基本的猜数字程序 6.1.2 为猜数字程序加入连续猜数的功能6.1.3 测试并修改程序6.1.4 给程序增加注释 任务拓展 任务6.2 编写密码工具程序任务描…

MATLAB蒙特卡洛仿真计算投资组合的VaR(Value at Risk )

1. 计算VaR简介 VaR(Value at Risk),一般被称为“风险价值”或“在险价值”,是指在一定的置信水平下,某一金融资产(或证券组合)在未来特定的一段时间内的最大可能损失。VaR提供了一个具体的数值…

【linux学习指南】VSCode部署Ubantu云服务器,与Xshell进行本地通信文件编写

文章目录 📝前言🌠 步骤🌉测试同步 🚩总结 📝前言 本文目的是讲使用Vscode连接Ubantu,与本地Xshell建立通信同步文件编写。 查看本机系统相关信息: cat /etc/lsb*DISTRIB_IDUbuntu: 表示这是 Ubuntu 发行…

stm32下的ADC转换(江科协 HAL版)

十二. ADC采样 文章目录 十二. ADC采样12.1 ADC的采样原理12.2 STM32的采样基本过程1.引脚与GPIO端口的对应关系2.ADC规则组的四种转换模式(**)2.2 关于转换模式与配置之间的关系 12.3 ADC的时钟12.4 代码实现(ADC单通道 & ADC多通道)1. 单通道采样2. 多通道采样 19.ADC模数…

DockerFile与容器构建技术

一、 Docker架构 二、容器镜像分类 操作系统类 CentOSUbuntu在dockerhub下载或自行制作 应用类 TomcatNginxMySQLRedis 三、容器镜像获取的方法 主要有以下几种: 1、在DockerHub直接下载 2、把操作系统中文件系统打包为容器镜像 3、把正在运行的容器打包为容器镜…

分布式数据库中间件可以用在哪些场景呢

在数字化转型的浪潮中,企业面临着海量数据的存储、管理和分析挑战。华为云分布式数据库中间件(DDM)作为一款高效的数据管理解决方案,致力于帮助企业在多个场景中实现数据的高效管理和应用,提升业务效率和用户体验。九河…

jmeter常用配置元件介绍总结之断言

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之线程组 4.jmeter常用配置元件介绍总结之函数助手 5.jmeter常用配置元件介绍总结之取样器 6.jmeter常用配置元件介绍总结之jsr223执行pytho…

项目技术栈-解决方案-web3去中心化

web3去中心化 Web3 DApp区块链:钱包:智能合约:UI:ETH系开发技能树DeFi应用 去中心化金融P2P 去中心化网络参考Web3 DApp 区块链: 以以太坊(Ethereum)为主流,也包括Solana、Aptos等其他非EVM链。 区块链本身是软件,需要运行在一系列节点上,这些节点组成P2P网络或者半…

多目标优化算法:多目标蛇鹫优化算法(MOSBOA)求解DTLZ1-DTLZ9,提供完整MATLAB代码

一、蛇鹫优化算法 蛇鹫优化算法(Secretary Bird Optimization Algorithm,简称SBOA)由Youfa Fu等人于2024年4月发表在《Artificial Intelligence Review》期刊上的一种新型的元启发式算法。该算法旨在解决复杂工程优化问题,特别是…

数据集-目标检测系列- 花卉 鸡蛋花 检测数据集 frangipani >> DataBall

数据集-目标检测系列- 花卉 鸡蛋花 检测数据集 frangipani >> DataBall DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集…

【Pikachu】SSRF(Server-Side Request Forgery)服务器端请求伪造实战

尽人事以听天命 1.Server-Side Request Forgery服务器端请求伪造学习 SSRF(服务器端请求伪造)攻击的详细解析与防范 SSRF(Server-Side Request Forgery,服务器端请求伪造) 是一种安全漏洞,它允许攻击者通…

Element Plus

快速入门: 然后我在src下创建了一个Button.vue文件,再去Element-plus官网查找组件的源码 常用组件 表格: <script lang"ts" setup> import {Delete,Edit, } from element-plus/icons-vueconst tableData [{title: 标题1,category: 时事,time: 2000-…

界面控件DevExpress WPF中文教程:网格视图数据布局的列和卡片字段

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

实现两个表格的数据传递(类似于穿梭框)

类似于element的 第一个表格信息以及按钮&#xff1a; <div style"height: 80%"><el-table :data"tableData1" border :cell-style"{text-align:center}" style"width: 100%;"ref"multipleTable1"selection-chang…

NPOI 实现Excel模板导出

记录一下使用NPOI实现定制的Excel导出模板&#xff0c;已下实现需求及主要逻辑 所需Json数据 对应参数 List<PurQuoteExportDataCrInput> listData [{"ItemName": "电缆VV3*162*10","Spec": "电缆VV3*162*10","Uom":…

凸函数与深度学习调参

问题1&#xff1a;如何区分凸问题和凹问题&#xff1f; 问题2&#xff1a;深度学习如何区分调参&#xff1f;

DBeaver MACOS 安装 并连接到docker安装的mysql

官网下载&#xff1a;Download | DBeaver Community 网盘下载&#xff1a;链接: https://pan.baidu.com/s/15fAhbflHO-AGc-uAnc3Rjw?pwdbrz9 提取码: brz9 下载驱动 连接测试 报错 null, message from server: "Host 172.17.0.1 is not allowed to connect to this M…

php:使用socket函数创建WebSocket服务

一、前言 闲来无事&#xff0c;最近捣鼓了下websocket&#xff0c;但是不希望安装第三方类库&#xff0c;所以打算用socket基础函数创建个服务。 二、构建websocket服务端 <?phpclass SocketService {// 默认的监听地址和端口private $address 0.0.0.0;private $port 8…

@RequestBody、@Data、@Validated、@Pattern(regexp=“?“)(复习)

目录 一、注解RequestBody。 二、注解Data。 三、注解Validated、Pattern(regexp"?")。 1、完成实体参数&#xff08;对象属性&#xff09;校验。 2、NotNull、NotEmpty、Email。 一、注解RequestBody。 &#xff08;如&#xff1a;JSON格式的数据——>Java对象&…