【自动驾驶】【车辆轨迹与驾驶行为分析】【汇入行为】

2023-10-25 10:40

本文主要是介绍【自动驾驶】【车辆轨迹与驾驶行为分析】【汇入行为】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

B站搜索“轨迹说”,有相应的汇入行为挖掘教程视频
个人网址:www.vehicletrajectorymining.com

1. 文章引用

有关汇入行为的分析,基本都能在如下这篇文章中找到,相应的Python源代码也公开在Github上,感兴趣的小伙伴可以自行去下载。

@article{Yang Li, 2023"https://arxiv.org/abs/2303.11531"title={A reproducible approach to merging behavior analysis based on High Definition Map}, author={Yang Li and Yang Liu and Daiheng Ni and Ang Ji and Linbo Li and Yajie Zou},year={2023},eprint={2303.11531},archivePrefix={arXiv},primaryClass={cs.RO}
}

2. 代码项目框架

整个项目由Python编写,大致的目录如下所示:

A reproducible approach to merging behavior analysis based on High Definition Map/
|__ asset: analysis results
|    |__ acceptedGaps
|    |__ backgroundPicture
|    |__ consecutiveLaneChange
|    |__ JSDivergence
|    |__ preliminaryAnalysis
|    |__ safetyAnalysis
|    |__ table
|    |__ trafficFlowSpeed
|__ conf: experiment configurations
|    |__ lanelet2map
|__ drone-dataset-tools-master: dataset
|__ src: merging trajectories extraction, indicators calculation, results visulization
|    |__ extraction
|    |__ figure
|    |    |__accepetedGapAnalysis
|    |    |__consecutiveLanechangeAnalysis
|    |    |__preliminaryAnalysis
|    |    |__safetyAnalysis
|    |    |__similarityAnalysis
|    |    |__trafficFlowSpeedDensity
|    |__ table
|__ utils: utility functions
|__ requirements.txt: required packages

3. 分析内容

3.1 汇入区域的lanelet2高精地图的应用

以下是exiD数据集汇入地点2的高精地图示例,我们可以拿一辆车的轨迹举个例子:

  • 位置B:车辆由on-ramp驶进加速车道;
  • 位置D:车辆左侧的车道线,由实线变为虚线,车辆此后可以进行汇入;
  • 位置F:车辆的中心点压在虚线初,此时车辆半身已进入主线车道;

按照交通法规,车辆应该区域2和区域3汇入主线,但其实还有很多车辆由区域1汇入主线(压着实线)。上面的三个关键点位,我们可以根据车辆每一帧的laneletID来识别,从而统一标准。倘若我们不结合高精地图,仅仅只依靠轨迹数据来判别这三个点位还是挺难实现的。

在这里插入图片描述

3.2 指标构建

我们可以基于上述三个点位定义一些标准化的指标,我这边提及的是“标准化”这个词,因为只有在这些点位统一的基础上所构建的各种指标,才更能客观地横向或者是纵向进行对比分析。我们可以定义如下指标:

微观指标包含:

1. 汇入速度:平均或者是某一帧;
2. 汇入时长:位置D到位置F,或者位置D到位置F;
3. 汇入距离:位置D到位置F,或者位置D到位置F;
4. 汇入距离比:汇入距离除以加速车道总长度;
5. 汇入纵向轨迹:可以根据高精地图中的lateralcenteroffset字段求得;
6. 汇入纵向速度:可以根据高精地图中的lateralcenteroffset字段求得(拟合,再求导);
7. 汇入纵向加速度:可以根据高精地图中的lateralcenteroffset字段求得(拟合,再求导);;
8. 汇入安全性:衡量某一帧,还是衡量一个duration,比如有:TTC, TET, TIT, DRAC, PET等指标。

宏观指标包含:

 1. 交通流量;2. 交通密度;3. 空均车速;
3.3 周边车辆匹配

在exiD数据集中,各车每一帧都会至多包含八辆车,主要就是前车,后车以及并行车辆:

 1. lead vehicle2. left lead vehicle3. right lead vehicle4. rear vehicle5. left rear vehicle6. right rear vehicle7. leftalongside vehicle8. rightalongside vehicle

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 场景细分

在一整个汇入过程中,汇入车辆可能同时存在着前后车,也有可能只存在前车,也有可能只存在后车,也有可能原本在位置D的后车变为了在位置F的前车,因而,我们大致可以讲汇入场景细分为8种。

  1. 我们这样的划分是否合理?现有的研究是否有考虑这样的划分?
  2. 不同场景下的各种指标是否存在显著差异?如何去衡量?
  3. 哪种场景更可能伴随着高风险呢?
  4. 后续怎么去细化?
    在这里插入图片描述
    针对每一个微观或者是宏观的指标,都可以进行深入地分析,感兴趣的小伙伴可以开辟不同的分支开发。
3.5 一些结果

这里放几张原图,感兴趣的小伙伴可以去看原文。

  • 我们将某个地点中不同类型车辆在位置F处的位置,撒到汇入区域的地图上可以获得下图:
    在这里插入图片描述

  • 随机挑选的八条汇入轨迹,其所对应的lanelet2高精地图的latcenteroffset的变化值,跳变的时刻也就是位置F处:
    在这里插入图片描述

  • 不同地点,不同类型车辆的汇入速度,距离,距离比,时长,纵向最大速度,纵向最大加速度的Boxplot图。

在这里插入图片描述

  • 不同地点,不同距离阈值,不同汇入模式下,汇入距离变量的JS散度值热力图。
    在这里插入图片描述

4. 小结

撰写文章属实不易,麻烦大家多多点赞收藏。

感兴趣的小伙伴,可以去阅读原文,这篇博客算是一个引子吧,供大家参考。

原文传递,https://arxiv.org/abs/2303.11531
B站搜索“轨迹说”,有相应的汇入行为挖掘教程视频
个人网址:www.vehicletrajectorymining.com

有任何问题,欢迎私信。

这篇关于【自动驾驶】【车辆轨迹与驾驶行为分析】【汇入行为】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/281999

相关文章

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制