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层卷机操作、图像特征、上一轮的地平面的位置编码。
则新一轮的平面点会使用下面的矩阵进行更新:
则在原本不准确的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这部分的代码并没有开放出来。下图展示了地平面会随着迭代的进行收敛到实际车道线的位置上:
分析位置编码的作用,首先看位置编码带来的性能提升:
从上表可以看到位置编码确实能带来性能的提升,无论是视锥还是固定平面编码,只不过这里动态平面编码的方式更加适合车道线,因而相比起来有1个点的提升。这里说明准确的位置编码有助于得到更好的检测性能,而且文章提出的平面优化自由度只有2个,更多的维度是否能更好呢?
车道线query+位置编码两者对检测性能的影响:
对于后面车道线的解码部分就跟传统的DETR一致了,这里就不做展开。
不同数据集下的性能表现:
OpenLane validation:
OpenLane不同天气条件下的表现
相关文章:

LATR:3D Lane Detection from Monocular Images with Transformer
参考代码:LATR 动机与主要工作: 之前的3D车道线检测算法使用诸如IPM投影、3D anchor加NMS后处理等操作处理车道线检测,但这些操作或多或少会存在一些负面效应。IPM投影对深度估计和相机内外参数精度有要求,anchor的方式需要一些如…...

什么是UI自动化测试工具?
UI自动化测试工具有着AI技术驱动,零代码开启自动化测试,集设备管理与自动化能力于一身的组织级自动化测试管理平台。基于计算机视觉技术,可跨平台、跨载体执行脚本,脚本开发和维护效率提升至少50%;多端融合统一用户使用体验&#…...

计算顺序表中值在100到500之间的元素个数
要求顺序表中值在100到500之间的元素的个数,你可以使用C语言编写一个循环来遍历顺序表中的元素,并在循环中检查每个元素是否在指定的范围内。 #include <stdio.h>#define MAX_SIZE 100 // 假设顺序表的最大容量为100int main() {int arr[MAX_SIZE]…...

【问题总结】级数的括号可以拆吗?
问题 今天在做题的时候发现,括号这个问题时常出现。Σun,Σvn,和Σ(unvn),两个级数涉及到了括号增删,Σ(un-1un),级数钟的前后项的合并也涉及到了括号增删。 总结 添括号定理&…...

抖音自动养号脚本+抖音直播控场脚本
功能描述 一.抖音功能 1.垂直浏览 2.直播暖场 3.精准引流 4.粉丝留言 5.同城引流 6.取消关注 7.万能引流 8.精准截流 9.访客引流 10.直播间引流 11.视频分享 12.榜单引流 13.搜索引流 14.点赞回访 15.智能引流 16.关注回访 介绍下小红书数据挖掘 搜索关键词&…...

uvm中transaction的response和id的解读
在公司写代码的时候发现前辈有一段这样的代码: ....//其他transaction uvm_create(trans);........ uvm_send(trans); tmp_id trans.get_transaction_id(); get_response(rsp,tmp_id); 如果前面有其他transaction,这段代码里的get_response不带id的话…...

第四节(1):EXCEL中判断一个WORD文件是否被打开
《VBA信息获取与处理》教程(10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网…...

java.util.concurrent.locks.Condition详解
Condition翻译成中文是“条件”,一般我们称其为条件变量,每一个Condition对象都通过链表保存了一个队列,我们称之为条件队列。 当然了,这里所说的Condition对象一般指的是Condition接口的实现类ConditionObject,比如我…...

选择适合变更管理的产品开发工具的要点和建议
什么是变更管理? 变更管理是指导组织改进的学科。由于可观察到的行为变化,它会导致永久性变化。它确保您的组织以彻底、有序和可持续的方式学习和改进。成功的改进项目需要个人和团队保持一致,他们有共同的愿景,他们知道如何定义…...

小程序 词云图 echarts-for-weixin-wordcloud
GitHub - clydee-geng/echarts-for-weixin-wordcloud: echarts词云微信小程序版 这个是适配与小程序版的词云图,之前有找到ucharts来代替,但是ucharts的词云图功能有两个缺点:1.无法根据值的大小显示词云图的大小;2.显示的顺序是…...

VScode配置Jupyter
环境 安装步骤 1、插件安装 2、更改pip加速源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 参考:vscode python配置pip源 【Python学习】Day-00 Python安装、VScode安装、pip命令、镜像源配置、虚拟环境 3、建…...

java模拟GPT流式问答
流式请求gpt并且流式推送相关前端页面 1)java流式获取gpt答案 1、读取文件流的方式 使用post请求数据,由于gpt是eventsource的方式返回数据,所以格式是data:,需要手动替换一下值 /** org.apache.http.client.metho…...

【好玩】如何在github主页放一条贪吃蛇
前言 🍊缘由 github放小蛇,就问你烧不烧 起因看到大佬github上有一条贪吃蛇扭来扭去,觉得好玩,遂给大家分享一下本狗的玩蛇历程 🥝成果初展 贪吃蛇 🎯主要目标 实现3大重点 1. github设置主页 2. git…...

顶顶通ASR安装配置说明
联系顶顶通申请Asrproxy授权,勾选asrserver模块。 下载语音识别模型 链接:https://pan.baidu.com/s/1IuDkDeytZOqf7tAbIb6h1Q 提取码:6vg6 安装asrproxy到/ddt/asrproxy,模型解压到 /ddt/asrproxy/model 对接mod_vad asrproxy.json 配置如…...

VMware和别的服务器 ,组建局域网那些事 。
利用VMware ,实现组件局域网、有可能会受限于WiFi(路由器) 。 通常不会,除非做了网关设置 相关知识: 禁用局域网隔离(LAN Isolation): 某些路由器提供了一个选项,允许您禁…...

自监督DINO论文笔记
论文名称:Emerging Properties in Self-Supervised Vision Transformers 发表时间:CVPR2021 作者及组织: Facebook AI Research GitHub:https://github.com/facebookresearch/dino/tree/main 问题与贡献 作者认为self-supervise…...

计算机视觉: 基于隐式BRDF自编码器的文生三维技术
论文链接: MATLABER: Material-Aware Text-to-3D via LAtent BRDF auto-EncodeR 背景 得益扩散模型和大量的text - image 成对的图片, 现在文生2D的模型已经比较成熟的框架和模型,主流的技术比如说stable diffusion 和 midjourney 以及工业领域runway 等…...

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测
分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-BiLST…...

Java队列相关面试题
ArrayBlockingQueue 1、ArrayBlockingQueue是什么?它与LinkedList和LinkedBlockingQueue有何区别? ArrayBlockingQueue是一个基于数组的有界阻塞队列,可以在队列的两端进行插入和删除操作。 与LinkedList不同,ArrayBlockingQueu…...

水库大坝除险加固安全监测系统解决方案
一、系统背景 为贯彻落实《办公厅关于切实加强水库除险加固和运行管护工作的通知》(〔2021〕8号)要求,完成“十四五”小型病险水库除险加固、雨水情测报和大坝安全监测设施建设任务,规范项目管理,消除安全隐患…...

android native C++编程实现数据库加密sqlcipher
sqlcipher是sqlite的加版本,分为免费版和收费版。 这里研究的是开源的免费版 https://github.com/sqlcipher/sqlcipher Android码源默认提供了sqlite的native,jni和java版本,但没有提供sqlcipher,开发用到需要自己添加。 sqlc…...

第五节 C++ 循环结构(算法)
文章目录 前言介绍1. for 语句1.1 语法结构1.2 语法流程的执行过程1.2.1 案例 1:循环的正序输入和倒序输入1.2.2 案例2 : 求1~n的平方数1.2.3 案例 3: 求输入a和b,求a~b区间数. 1.3 for 循环案例练习1.3.1 求最大值与最小值1.3.2 计算奇数和和偶数和1.3.3 计算平均气温与最高气…...

接口与抽象类的区别
a、抽象类不能被实例化只能被继承;b、包含抽象方法的一定是抽象类,但是抽象类不一定含有抽象方法;c、抽象类中的抽象方法的修饰符只能为public或者protected,默认为public;d、一个子类继承一个抽象类,则子类…...

短视频账号矩阵系统源码saas===独立部署
前言: 短视频账号矩阵是指在不同的短视频平台上,一个个人或企业所拥有的账号数量和分布情况。由于不同的短视频平台受众人群和内容类型等因素不同,因此拥有更多账号可以在更广泛的受众中传播内容,提高曝光度和流量。短视频账号矩阵…...

香港专用服务器拥有良好的国际网络连接
香港服务器在多个领域有着广泛的应用。无论是电子商务、金融交易、游戏娱乐还是社交媒体等,香港服务器都能够提供高效稳定的服务。对于跨境电商来说,搭建香港服务器可以更好地满足亚洲用户的购物需求;对于金融机构来说,香港服务器…...

IP/SIP网络有源吸顶喇叭 20W扬声器 可供POE供电
IP/SIP网络有源吸顶喇叭 20W扬声器 可供POE供电 深圳锐科达SV-7043VP 20W网络有源吸顶喇叭。该设备配备了10/100M以太网接口,内置了高品质扬声器,通过内置的功放和喇叭输出,可提供高达20W的音效功率。SV-7043VP作为SIP系统的播放终端&#…...

基于Keil a51汇编 —— 程序模板文件以及规则
程序模板文件 下面的代码模板包含有关如何编写自己的程序集模块的指南和提示。此模板文件模板。A51 在文件夹 \C51\ASM 中提供。 $NOMOD51 ; 禁用预定义的 8051 寄存器 #include <reg52.h> // 包含头文件; ;根据需要更改小写名称。 ;该汇编模板让你…...

案例研究 | 玉湖冷链基于JumpServer实现管理安全一体化
玉湖冷链(中国)有限公司(以下简称为玉湖冷链)是玉湖集团旗下的冷链食品供应链企业。依托自有的国际高标数智化冷链园区产业集群,玉湖冷链提供一站式国内外代采、仓干配物流解决方案、全链路创新金融支持、高品质生活办…...

JavaEE初阶学习:HTTP协议和Tomcat
1. HTTP协议 HTTP协议是一个非常广泛的应用层协议~~ 应用层协议 —> TCP IP 协议栈 应用层 —> 关注数据怎么使用~ 传输层 —> 关注的是整个传输的起点和终点 网络层 —> 地址管理 路由选择 数据链路层 —> 相邻节点之间的数据转发 物理层 —> 基础设置,硬…...

ASEMI整流桥GBU810参数,GBU810封装
编辑-Z GBU810参数描述: 型号:GBU810 最大直流反向电压VR:1000V 最大工作峰值反向电压VRWM:700V 最大平均正向电流IF:8A 非重复正向浪涌电流IFSM:200A 操作和储存温度范围TJ ,TSTG:-55 t…...