阅读笔记--Guiding Attention in End-to-End Driving Models(二)
端到端驾驶的注意力学习(Attention Learning for End-to-End Driving)关键内容学习
3.1 问题设置(Problem Setup)
- 模仿学习(Imitation Learning, IL):介绍了模仿学习的概念,即通过观察专家(在这种情况下是经验丰富的驾驶员)的行为来训练模型。模型的目标是学习一个策略,能够将观察到的环境状态映射到相应的动作上。
3.2 架构(Architecture)
-
输入编码(Input Encoding):
- 多摄像头输入:模型使用来自多个摄像头的RGB图像作为输入,这些图像覆盖了车辆周围的环境。
- 特征提取:每个RGB图像通过共享权重的ResNet骨干网络进行特征提取,输出为最后一层卷积层的特征图。
- 令牌化:将特征图在空间维度上展平并连接,形成一系列令牌,这些令牌随后用于模型的进一步处理。
-
注意力引导学习(Attention Guidance Learning):
- Transformer编码器:使用Transformer模型中的自注意力机制来关联不同视图之间的特征。
- 自注意力层选择:在多个自注意力层中选择一层来应用注意力损失,以引导模型关注重要的视觉区域。
-
动作学习(Action Learning):
- 全局平均池化(GAP):将Transformer编码器的输出进行全局平均池化,以获得一个紧凑的特征表示。
- 多层感知机(MLP):使用包含ReLU激活函数的MLP来将池化后的特征映射到最终的驾驶动作上。
3.3 损失函数(Loss Function)
-
动作损失(Action Loss):
- L1距离:计算模型预测的动作和专家动作之间的L1距离,以量化模型在模仿驾驶行为上的准确性。
- 权重:为转向和加速度部分分配不同的权重,以平衡损失函数中这两部分的重要性。
-
注意力损失(Attention Loss):
- 显著图:使用显著图(语义图)来标识图像中对驾驶任务至关重要的区域,如其他车辆、行人、交通标志等。
- KL散度:利用Kullback-Leibler散度来比较模型的自注意力图和显著图,迫使模型的注意力分布与显著图相匹配。
- 正则化:在计算注意力损失时添加小量正则化项,以避免数值不稳定。
4 实验(Environments)
4.1 驾驶环境(Driving Environments)
-
CARLA模拟器:
- 使用CARLA模拟器0.9.13版本进行实验
- 选择不同的城镇和天气条件进行数据收集
-
数据收集:
- 使用基于强化学习的教师模型进行数据收集,该模型比CARLA默认教师更真实
- 在Town01中收集了14小时数据,在多个城镇中收集了55小时数据
- 数据收集帧率为10 FPS
-
摄像头设置:
- 使用3个前置摄像头,覆盖180度视野(每个摄像头60度)
- RGB图像分辨率为300x300像素
-
数据多样性:
- 在不同的天气条件下收集数据,如ClearNoon、ClearSunset、HardRainNoon、WetNoon
- 在不同的城镇中收集数据,如Town01-Town06,包含不同道路类型
4.2 验证(Validation)
-
在线验证:
- 在CARLA模拟器中实时验证模型,不受推理时间影响
- 使用动态代理车辆进行评估,随机生成其他车辆和行人
-
天气条件:
- 在训练期间未见过的新天气条件下进行验证,如SoftRainSunset、WetSunset
- 评估模型在不同天气条件下的泛化能力
-
评估场景:
- 对于14小时数据集,在未见过的Town02中进行验证
- 对于55小时数据集,在Town05中的10条路线上进行验证
4.3 训练超参数(Training Hyperparameters)
-
CIL++代码:
- 使用CIL++公开代码作为实验框架
- 保持动作损失权重不变:λact=1, λs=λacc=0.5
-
损失权重:
- 系统地探索注意力损失权重:λatt∈{0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0}
- 在Town01的不同天气条件下验证不同权重的性能
-
训练周期:
- 训练过程持续80个周期(epoch)
- 批量大小(batch size)为512
- 初始学习率(initial learning rate)为1e-4
- 选择在训练过程中表现最好的模型进行评估
4.4 定量结果(Quantitative Results)
-
数据量影响:
- 使用14小时数据集的不同子集进行训练,从2小时递增到8小时
- 比较基线模型和引入注意力损失的模型在不同数据量下的性能
-
天气条件变化:
- 在8小时数据集中逐渐增加天气条件类型
- 评估模型在不同天气条件下的泛化能力
-
性能比较:
- 将引入注意力损失的模型与基线模型进行比较
- 在成功率(SR)、驾驶分数(DS)、路线完成率(RC)、违规分数(IS)等指标上评估性能提升
4.5 定性结果(Qualitative Results)
-
注意力图可视化:
- 可视化Transformer编码器最后一层的平均注意力图
- 比较CIL++和引入注意力损失的模型在不同城镇中的注意力图
-
模型解释性:
- 通过可视化结果,说明引入注意力损失如何提高模型的可解释性
- 展示模型如何关注输入图像中的特定对象,如行人、车辆等
4.6 实验总结
-
性能提升:
- 实验结果表明,引入注意力损失可以在数据资源有限的情况下显著提高模型的驾驶性能
- 在低数据量和高数据量条件下,引入注意力损失的模型均优于基线模型
-
泛化能力:
- 模型在不同的城镇和天气条件下展示了良好的泛化能力
- 在未见过的Town02和Town05中,引入注意力损失的模型性能更优
-
未来工作:
- 计划将引入注意力损失的方法应用于更复杂的非纯视觉模型
- 探索使用真实数据进行测试,并在真实车辆中部署模型
这部分内容详细描述了实验的设置、验证方法、训练超参数、定量和定性结果,以及实验总结。通过在CARLA模拟器中进行精心设计的实验,作者全面评估了引入注意力损失对提高自动驾驶模型性能的影响。实验结果证明了该方法在不同数据量和环境条件下的有效性,并展示了其在提高模型可解释性方面的潜力。
相关文章:
阅读笔记--Guiding Attention in End-to-End Driving Models(二)
端到端驾驶的注意力学习(Attention Learning for End-to-End Driving)关键内容学习 3.1 问题设置(Problem Setup) 模仿学习(Imitation Learning, IL):介绍了模仿学习的概念,即通过…...
Linux: network: TCP: errno: EWOULDBLOCK
https://mzhan017.blog.csdn.net/article/details/108010013 这个errno的意思: 如果是send接口函数返回的错误,代表tcp socket的sending buffer满了,让应用程序等上一段时间重试send。 所以,这个产生的原因就不固定了: 可能是当前系统太忙,导致系统发包慢,buffer累积; 可…...
闲话“设计模式”
Q1、请详细介绍 软件架构设计模式(智能化),应用程序设计模式(自动化),编程语言设计模式(人性化)(后面括号中 是我 希望 其 具有的特点) 的概念,有…...
Sentence-BERT实现文本匹配【CoSENT损失】
引言 还是基于Sentence-BERT架构,或者说Bi-Encoder架构,但是本文使用的是苏神提出的CoSENT损失函数1。 点击来都是缘分,之前过时的方法可以不细看,别的文章可以不收藏,现在是最流行的方法,这篇文章建议收藏…...
业余考什么证书比较实用?
在业余时间里,获得一些有用的证书不仅能提升你的专业素养,还能增强你在职场上的竞争力。 特别是职业技能证书和行业认证证书,这两者受到了广大职场人士的高度关注。 一、业余时间考取的实用证书 行业认证证书主要针对特定行业或职业&#…...
16款facebook辅助工具,总有一款适合你!
Hey小伙伴们~👋 是不是想利用FB大展拳脚,却苦于不知道如何开始?别急,今天就给你们安利16个超实用的FB营销工具,涵盖了内容创建和发布的应用程序,以及数据追踪分析、商品销售等多个方面让你轻松get海外获客新…...
给网站发外链的好处,你了解多少?
在当今这个信息爆炸的互联网时代,网站优化和推广成为了每一个网站主不可忽视的重要环节。其中,给网站发外链,即在其他网站上设置指向自己网站的链接,是一种高效且被广泛采用的策略。那么,给网站发外链究竟能带来哪些好…...
安卓链接正常显示,ios#符被转义%23导致链接访问404
原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理 如下: guard let allowUrl webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时&a…...
excel分列
Excel中有这么几列,希望将每一列内容再分出3列: 可以通过以下步骤在 Excel 表格中将 B 到 F 列的内容拆分为每列的 3 列,分别为 pred_label、pred_score 和 pred_class: 确定数据结构:假设 B 列到 F 列中的内容都是按类…...
STM32 HAL DMA 中断碰到的问题
流程 串口收数据—>dma搬运到变量—>空闲中断----->接收完成 配置 dma中断全部去掉 串口中断开启 freertos中断全部去掉 时钟配置 代码 开启中断 // DMA 空闲检查 void receives_uaru_7(void) {RXU7 0;//清除中断标志HAL_UARTEx_ReceiveToIdle_DMA(&hua…...
让树莓派智能语音助手实现定时提醒功能
最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束…...
AIoTedge边缘计算+边缘物联网平台
在数字化转型的浪潮中,AIoTedge边缘计算平台以其边云协同的架构和强大的分布式AIoT处理能力,正成为推动智能技术发展的关键力量。AIoTedge通过在数据源附近处理信息,实现低延迟、快速响应,增强了应用的实时性。同时,它…...
Java使用拷贝asset文件,解密,并用DexclassLoader加载执行
//asset中加密的apk文件重命名为index.html,拷贝到私有目录 //解密 //加载,执行apk中的方法 public static void handleByJava(Context context){File copyedFile new File(context.getFilesDir().getAbsolutePath() "/" "main.html");FileUtil.copyAss…...
【AcWing】861. 二分图的最大匹配(匈牙利算法)
匈牙利算法,他可以在比较快的时间复杂度之内告诉我们左边和右边成功匹配的最大数是多少 匹配指的是边的数量,成功的匹配指的是两个未被使用的点之间存在一条边(就不存在两条边共用了一个点的)。 匈牙利算法可以返回成功匹配的最大匹配数是多少。 #incl…...
经验笔记:JSP(JavaServer Pages)
JSP(JavaServer Pages)经验笔记 JSP(JavaServer Pages)是一种用于创建动态网页的技术,它允许在HTML页面中嵌入Java代码,从而实现动态内容的生成。JSP与Servlet一样,都是Java EE平台的一部分&am…...
【零基础必看的数据库教程】——SQL WHERE 子句
WHERE 子句用于提取那些满足指定条件的记录,过滤记录。 SQL WHERE 语法: SELECT column1, column2, ... FROM table_name WHERE condition; 参数说明: column1, column2, ...:要选择的字段名称,可以为多个字段。如…...
vscode docker debug python
1. 安装Vscode插件 ”Docker“”Dev Containers““Remote - ssh” 2. 进入Docker环境 点击左侧 Docker图标,选择Containers 对容器进行右键启动 生成新页面直接进行选择文件路径即可,之后得操作均在容器内进行...
【Kubernetes】常见面试题汇总(四)
目录 11.简述 Kubernetes 集群相关组件? 12.简述 Kubernetes Rc 的机制? 11.简述 Kubernetes 集群相关组件? Kubernetes Master控制组件,调度管理整个系统(集群),包含如下组件: (1ÿ…...
MATLAB基础语法知识
环境的配置等等就不写了,网上还是有很多资源可以找,而且正版的要付费,我也是看的网上的搞定的。 一,初识MATLAB 1.1 MATLAB的优势 不需要过多了解各种数值计算方法的具体细节和计算公式,也不需要繁琐的底层编程。可…...
PopupInner源码分析 -- ant-design-vue系列
PopupInner源码分析 – ant-design-vue系列 1 综述 上一篇讲解了vc-align的工作原理,也就是对齐是如何完成的。这一篇主要讲述包裹 Align的组件:PopupInner组件是如何工作的。 PopupInner主要是对动画状态的管理,比如打开弹窗的时候&#…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
