LATR:3D Lane Detection from Monocular Images with Transformer

参考代码:LATR

动机与主要工作:

之前的3D车道线检测算法使用诸如IPM投影、3D anchor加NMS后处理等操作处理车道线检测,但这些操作或多或少会存在一些负面效应。IPM投影对深度估计和相机内外参数精度有要求,anchor的方式需要一些如NMS的后处理辅助。这篇文章主要的贡献有两点:

  • 1)针对车道线的特性基于DETR目标检测算法提出了一种基于landline query的检测方法,为了使得query的初始化更合理借鉴了SparseInst方法从2D图像域中用不同实例来初始化query,并且建立车道线query的粒度不是车道线级别而是具体到了车道线上的点。
  • 2)用图像特征作为key和val是较难去学习其中的3D信息的,在相机内外参数已知情况下构建一个可学习的3D空间位置编码,通过decoder中多轮迭代和与图像特征融合预测残差方式,不断修正3D空间位置编码。

检测器的结构:

这篇文章的方法流程见下图所示:

可以从上图中看到backbone出来之后接一个车道线实例预测网络,由此实现lane query生成和初始化。对于图像特征使用3D信息嵌入的位置编码,只不过这个位置编码是在给定一个的初始化基础上修正而来的,也就是说在transformer解码的过程中这个位置编码的值是动态的。

车道线query构建:

这部分参考SparseInst中对于inst feature的构建过程,具体可以去查阅对应的论文,由此可以得到车道线query的特征表达 Q l a n e ∈ R N ∗ C Q_{lane}\in R^{N*C} Qlane∈RN∗C(这里是从特征图尺寸最大的那个特征上得到的)。而对于车道线来说,其是由多个点组成的,那么还需要对上面的点构建query,这里通过设定可学习的参数来实现 Q ∈ R M ∗ C Q_{}\in R^{M*C} Q∈RM∗C。那么接下来就是使用broadcast机制实现最后车道线的query构建 Q ∈ R ( N ∗ M ) ∗ C Q\in R^{(N*M)*C} Q∈R(N∗M)∗C

实例+点query的形式效果才是最好的:

图像feature的位置编码:

这里关注的是自动驾驶场景下的车道线,则根据车道线的分布特点可以为对应2D图像特征设置位置编码。这里的位置编码是首先在3D空间中进行采样(也就是文章定义的3D地平面),之后通过相机内外参数投影到图像中,以此来作为对应图像位置处的3D位置来源。只不过这里的3D地平面是动态更新的,在transformer的不同层中会预测不同的更新残差,定义的残差变量有旋转角度(偏航角) Δ θ \Delta \theta Δθ和平面高度 Δ h \Delta h Δh,其预测是通过一组FC层实现的:

Δ θ , Δ h \] = M L P ( A v g P o o l ( G \[ X , M p \] ) ) \[\\Delta \\theta,\\Delta h\]=MLP(AvgPool(\\mathcal{G}\[X,M_p\])) \[Δθ,Δh\]=MLP(AvgPool(G\[X,Mp\])) 其中, G , X , M p \\mathcal{G},X,M_p G,X,Mp分别代表2层卷机操作、图像特征、上一轮的地平面的位置编码。 则新一轮的平面点会使用下面的矩阵进行更新: ![在这里插入图片描述](https://file.jishuzhan.net/article/1711956590875119617/f393d52e3c9a3d6a4a230d3abf652e80.webp) 则在原本不准确的3D平面上就可以通过自适应回归的方式优化3D地平面,由此实现特征3D位置编码的优化。此外,地平面的约束还使用过车道线上的点投影建立起来 L p l a n e = ∑ u , v ∈ P ∩ L ∣ ∣ M p \[ : , u , v \] − M l \[ : , u , v \] ∣ ∣ 2 L_{plane}=\\sum_{u,v\\in \\mathcal{P}\\cap\\mathcal{L}}\|\|M_p\[:,u,v\]-M_l\[:,u,v\]\|\|_2 Lplane=u,v∈P∩L∑∣∣Mp\[:,u,v\]−Ml\[:,u,v\]∣∣2 最终的效果也就是使得下图中的绿色平面与红色的车道线接近。不过截止10.09.2023这部分的代码并没有开放出来。下图展示了地平面会随着迭代的进行收敛到实际车道线的位置上: ![在这里插入图片描述](https://file.jishuzhan.net/article/1711956590875119617/47ede734cc0256491be473d68d0032c9.webp) 分析位置编码的作用,首先看位置编码带来的性能提升: ![在这里插入图片描述](https://file.jishuzhan.net/article/1711956590875119617/07920d5a357c1f97a1a96e4284bb6e35.webp) 从上表可以看到位置编码确实能带来性能的提升,无论是视锥还是固定平面编码,只不过这里动态平面编码的方式更加适合车道线,因而相比起来有1个点的提升。**这里说明准确的位置编码有助于得到更好的检测性能,而且文章提出的平面优化自由度只有2个,更多的维度是否能更好呢?** 车道线query+位置编码两者对检测性能的影响: ![在这里插入图片描述](https://file.jishuzhan.net/article/1711956590875119617/576e45fde453683ecd6560571e62cf63.webp) 对于后面车道线的解码部分就跟传统的DETR一致了,这里就不做展开。 **不同数据集下的性能表现:** OpenLane validation: ![在这里插入图片描述](https://file.jishuzhan.net/article/1711956590875119617/0fa8465745826b91925fa2c19d97657f.webp) OpenLane不同天气条件下的表现 ![在这里插入图片描述](https://file.jishuzhan.net/article/1711956590875119617/012c1022f3fc6f02f86f484a26ea3346.webp)

相关推荐
DogDaoDao38 分钟前
【GitHub】Ruflo:面向 Claude Code 的企业级多智能体编排平台深度解析
人工智能·深度学习·大模型·github·ai编程·claude·ruflo
zhonghaoxincekj44 分钟前
轴距可调式元器件双边无损成形钳
经验分享·科技·深度学习·学习·测试工具·创业创新·制造
深度学习lover2 小时前
<数据集>yolo食物分类检测<目标检测>
人工智能·深度学习·yolo·目标检测·计算机视觉·食物分类识别
一切皆是因缘际会2 小时前
2026年AGI突围:自主智能体驱动,数字生命从架构落地到自我迭代全解析
人工智能·深度学习·机器学习·架构·系统架构·agi
努力学习_小白2 小时前
SE注意力机制——学习记录
pytorch·python·深度学习
AI棒棒牛2 小时前
RT-DETR最新创新改进系列:2D轻量解码结构重塑检测颈部,减少下采样链路,降低计算冗余,让端到端检测更快更轻!【轻装上阵,实时优先】
人工智能·深度学习·目标检测·计算机视觉·rt-detr
冰西瓜6002 小时前
深度学习的数学原理(三十四)—— Transformer 解码器完整实现
人工智能·深度学习·transformer
Trouville012 小时前
学习tips:一些可以持续学习的网络体系教程
python·深度学习
乔江seven3 小时前
【跟李沐学AI 】23 实战Kaggle:图象分类(CIFAR-10)
人工智能·深度学习·kaggle·cifar-10
乔江seven3 小时前
【跟李沐学AI】24 狗的品种识别(ImageNet Dogs)
人工智能·深度学习·计算机视觉·微调·imagenetdogs