使用神经网络对驾驶数据进行道路类型分类
摘要
1. 引言
文献综述
| Data Type | Method | Classes | Authors and Year |
|---|---|---|---|
| Image | ANN k-NN | off-road, urban road, trunk road, motorway | Tang et al. [20] 2011 |
| Image | k-means SVM | paved, unpaved | Slavkovikj et al. [21] 2014 |
| Image | SVM CNN | parking area, urban, highway, freeway | Seeger et al. [22] 2016 |
| Image | CNN | concrete, rough, sandy roads | Saleh et al. [26] 2020 |
| Image | GMM | off-road, urban road, trunk road, motorway | Mohammad et al. [27] 2015 |
| Image | CNN | off-road, urban road, trunk road, motorway | Zheng et al. [28] 2021 |
| Driving data (unique) | ANN | local, arterial, freeway ramp, freeway | Murphey et al. [30] 2008 |
| Driving data (unique) | Random forest | car park, local roadway, main roads, motorway | Taylor et al. 2012 [33] |
| Driving data (unique) | GBM CNN | residential road, secondary road, motorway | Hadrian et al. [35] 2023 |
| Driving data (universal) | Conventional | city road, rural road, highway | Daniel et al. 2009 [32] |
| Driving data (universal) | Conventional | city road, rural road, highway | Lee et al. [34] 2015 |
| Driving data (universal) | ANN | city road, rural road, highway | Tollner et al. 2025 |
- 我们建议一种适用于所有内燃机或混合动力汽车的数据记录方法,并且可以提供标记数据来验证方法的准确性;
- 我们提出了一种基于神经网络的通用驾驶数据道路类型分类方法,该方法优于我们数据集上现有的最先进方法;
- 我们已经表明,可以使用不同的技术来进一步提高准确性并减少不需要的错误分类的数量;
- 我们提出的方法仅按速度分类,因此可以应用于任意车辆中由任意方法记录的速度曲线。
2. 数据记录
2.1. 硬件和软件
Table 2. The selected parameter set from the OBD-II standard for data logging.
| Parameter | Parameter ID | Unit | Resolution |
|---|---|---|---|
| Speed | 13 | km/h | 1 |
| Engine speed | 12 | rpm | 1/4 |
| Engine load | 4 | % | 1/2.55 |
| Throttle position | 17 | % | 1/2.55 |
| Engine run time | 31 | s | 1 |
| Ambient temperature | 70 | °C | 1 |
| Engine coolant temperature | 5 | °C | 1 |
| Mass air pressure (MAP) | 11 | kPa | 1 |
| Mass air flow (MAF) | 16 | g/s | 1/100 |

- 道路类型:无、城市、农村或高速公路,分别编码为从 0 到 3 的整数。
- Traffic:二进制,表示慢行路段,例如高速公路上的交通拥堵。
- 雨:二进制,表示由于降雨导致行驶缓慢的路段。
- 夜间:二进制,表示由于能见度有限而行驶缓慢的路段。
2.2. 记录结果

Table 3. Summary of the four-month measurement.
| Total | Number of cycles | 266 |
| Distance | 6557 km | |
| Duration | 119.96 h | |
| Average | Speed | 54.6 km/h |
| Distance | 24.65 km | |
| Duration | 26.78 min | |
| Road Type | City | 55.9% |
| Rural | 23.9% | |
| Highway | 20.2% | |
| Environment | Traffic | 3.22% |
| Rain | 2.42% | |
| Night | 6.59% |
3. 方法
3.1. 数据清理
- 0:未定义(初始状态;表示特殊情况)
- 1:城市
- 2:农村
- 3:高速公路
3.2. 常规方法
对于集合 S' 的每个元素,计算最大速度 (M)、平均非空闲速度 (N)、平均速度梯度 (G) 和标签向量 (L) 的模式。在原始方法中,使用速度时间驻留时间而不是平均速度梯度,但未定义如何确定此值。前三个指标 (M, N, G) 具有不同的数量级,并且对类的确定贡献不同。因此,应应用加权。权重的值是通过优化确定的,其中指标的加权和与标签的模式之间的差异之和最小化。然后,根据指标的加权和计算类。
| Algorithm 1. The algorithm of the first phase of the conventional method | |
| 1: | D: set of the measured driving cycles splitting_time = 40 s |
| 2: | S ← Split the elements of D into segments of length splitting_time |
| 3: | S’← Delete the whole zero speed elements of S’ |
| 4: | M ← Maximum speed for each element of S’ |
| 5: | N ← Average non-idle speed for each element of S’ |
| 6: | G ← Average speed gradient for each element of S’ |
| 7: | L ← Modus of the labels for each element of S’
|
3.3. 建议的方法
3.3.1. 数据预处理

Table 4. The ratio of road types after subcycle splitting.
| Road Type | Full Dataset | Reduced Dataset | ||
|---|---|---|---|---|
| Number of Subcycles | Ratio | Number of Subcycles | Ratio | |
| City | 1147 | 51% | 527 | 33.3%33.3% |
| Rural | 575 | 26% | 527 | 33.3%33.3% |
| Highway | 527 | 23% | 527 | 33.3%33.3% |
| Total | 2249 | 100% | 1581 | 100% |
3.3.2. 神经网络
- 指标:准确性
- 损失:分类交叉熵
- 优化器:adam
- 纪元数:5000
- 批量大小: 5
- 训练验证率:80–20%
4. 结果
4.1. 传统方法

4.2. 基本 NN 模型
Table 5. The results of the base NN model.
| Run | Reduced Dataset | Full Dataset | |
|---|---|---|---|
| Train Accuracy | Validation Accuracy | Evaluation Accuracy | |
| 1 | 100% | 86.35% | 93.44% |
| 2 | 100% | 84.76% | 93.62% |
| 3 | 99.84% | 86.03% | 92.69% |
| Average: | 99.95% | 85.71% | 93.25% |
4.3. 交叉验证
Table 6. The results of the cross-validation model.
| Run | Reduced Dataset | Full Dataset | ||
|---|---|---|---|---|
| Cross-Validation | Final Model | Evaluation Acc. | ||
| Avg Train Acc. | Avg Validation Acc. | Train Acc. | ||
| 1 | 99.94% | 83.65% | 99.94% | 95.95% |
| 2 | 99.92% | 85.42% | 99.81% | 95.51% |
| 3 | 99.92% | 84.60% | 99.87% | 95.86% |
| Average: | 99.93% | 84.56% | 99.87% | 95.77% |
4.4. 加权损失函数
Table 7. Confusion matrix of the base model run 2.
| Prediction | ||||
|---|---|---|---|---|
| City | Rural | Highway | ||
| Ground Truth | City | 1077 47.40% | 71 3.13% | 13 0.57% |
| Rural | 17 0.75% | 542 23.86% | 20 0.88% | |
| Highway | 16 0.70% | 8 0.35% | 508 22.36% | |
Table 8. Confusion matrix of the conventional method with the highest accuracy.
| Prediction | ||||
|---|---|---|---|---|
| City | Rural | Highway | ||
| Ground Truth | City | 499 44.40% | 24 2.14% | 11 0.98% |
| Rural | 32 2.85% | 260 23.13% | 19 1.69% | |
| Highway | 5 0.44% | 19 1.69% | 255 22.68% | |
Table 9. Weight matrix for the loss function.
| 1 | 1 | 1 |
| 10 | 1 | 1 |
| 50 | 10 | 1 |
Table 10. The results of the weighted loss function model.
| Run | Reduced Dataset | Full Dataset | |
|---|---|---|---|
| Train Accuracy | Validation Accuracy | Evaluation Accuracy | |
| 1 | 98.89% | 85.40% | 92.21% |
| 2 | 98.97% | 86.30% | 92.75% |
| 3 | 98.57% | 86.67% | 93.31% |
| Average: | 98.81% | 86.12% | 92.76% |
Table 11. Confusion matrix of the weighted loss function model run 3.
| Prediction | ||||
|---|---|---|---|---|
| City | Rural | Highway | ||
| Ground Truth | City | 1074 42.27% | 91 4.01% | 12 0.53% |
| Rural | 14 0.62% | 541 23.81% | 23 1.01% | |
| Highway | 6 0.26% | 6 0.26% | 505 22.23% | |
4.5. 交叉验证和加权损失函数
Table 12. The results of the weighted cross-validation model.
| Run | Reduced Dataset | Full Dataset | ||
|---|---|---|---|---|
| Cross-Validation | Final Model | Evaluation Acc. | ||
| Avg Train Acc. | Avg Validation Acc. | Train Acc. | ||
| 1 | 98.84% | 86.38% | 98.67% | 96.21% |
| 2 | 99.03% | 84.67% | 98.73% | 95.60% |
| 3 | 99.07% | 85.61% | 99.24% | 95.69% |
| Average: | 98.98% | 85.55% | 98.88% | 95.83% |
Table 13. Confusion matrix of the weighted cross-validation model Run 1.
| Prediction | ||||
|---|---|---|---|---|
| City | Rural | Highway | ||
| Ground Truth | City | 1112 48.94% | 47 2.07% | 4 0.18% |
| Rural | 10 0.44% | 563 24.78% | 13 0.57% | |
| Highway | 4 0.18% | 8 0.35% | 511 22.49% | |
5. 讨论
6. 结论
7.交流与联系
点击这里看最后(源码+论文复现)
相关文章:
使用神经网络对驾驶数据进行道路类型分类
摘要 道路分类,了解我们是在城市、农村地区还是在高速公路上驾驶,可以提高现代驾驶员辅助系统的性能,并有助于了解驾驶习惯。本研究的重点是仅使用车速数据来普遍解决这个问题。已经开发了一种数据记录方法,用于为 On-board Diagn…...
S4D480 S4HANA 基于PDF的表单打印
2022年元旦的笔记草稿 SAP的表单打印从最早的SAPScripts 到后来的SMARTFORM,步入S4时代后由于Fiori的逐渐普及,更适应Web的Adobe Form成了SAP主流output文件格式。 目录 一、 基于PDF表单打印系统架构Interface 接口Form 表单ContextLayout 二、表单接…...
qt QOpenGLTexture详解
1. 概述 QOpenGLTexture 是 Qt5 提供的一个类,用于表示和管理 OpenGL 纹理。它封装了 OpenGL 纹理的创建、分配存储、绑定和设置像素数据等操作,简化了 OpenGL 纹理的使用。 2. 重要函数 构造函数: QOpenGLTexture(const QImage &image,…...
Deepseek-R1推理模型API接入调用指南 ChatGPT Web Midjourney Proxy 开源项目接入Deepseek教程
DeepSeek-R1和OpenAI o1模型都属于推理任务模型,两个模型各有优点:DeepSeek-R1 在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力。在数学、代码、自然语言推理等任务上,性能…...
蓝耘智算携手DeepSeek,共创AI未来
🌟 各位看官号,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习如何通过蓝耘智算使用DeepSeek R1模型 👍 如果觉得这篇文章有帮助,欢迎您一键三连&a…...
【网络编程】之数据链路层
【网络编程】之数据链路层 数据链路层基本介绍基本功能常见协议 以太网什么是以太网以太网协议帧格式数据链路层的以太网帧报文如何封装/解封装以及分用以太网通信原理传统的以太网与集线器现代以太网与交换机碰撞域的概念 Mac地址基本概念为什么要使用Mac地址而不是使用IP地址…...
EasyExcel 复杂填充
EasyExcel Excel表格中用{}或者{.} 来表示包裹要填充的变量,如果单元格文本中本来就有{、}左右大括号,需要在括号前面使用斜杠转义\{ 、\}。 代码中被填充数据的实体对象的成员变量名或被填充map集合的key需要和Excel中被{}包裹的变量名称一致。 …...
FreeRTOS第10篇:系统的“体检医生”——调试与跟踪
文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 引言:嵌入式系统的“健康检查” 想象你是一名医生,面对一位患者(嵌入式系统),他偶尔会“头晕目眩”(任务崩溃)、“心…...
Unreal5从入门到精通之如何在 C++ 中创建 UserWidget
文章目录 前言UUserWidget 子类示例创建我们的 C++ 类的新蓝图子类更改现有蓝图的父类现在我们有了 C++ 基类,下一步做什么?蓝图还是 C++?结论前言 在之前的教程中,我展示了如何在编辑器中创建 UserWidget 蓝图, 在本教程中,我们将创建一个新的基于 C++ 的子类UUserWid…...
【大模型系列】Windows系统上运行大语言模型方式
在Windows系统上运行大语言模型(LLMs)有多种方式,以下是一些具体的方法: GPT4All 简介:GPT4All是一个适用于所有操作系统的LLM框架和聊天机器人应用程序,可以本地运行LLMs,并通过API将其与任何…...
Maven 中的 Artifact 与 GroupId:定义与使用
1. 什么是 Maven 的 Artifact 和 GroupId? 在 Maven 中,Artifact 和 GroupId 是构建和管理项目依赖的核心概念,它们用来唯一标识一个 Maven 项目或库。理解这两个概念对于管理 Maven 项目的依赖关系、构建过程和版本控制至关重要。 Artifac…...
滑动窗口-无重复字符的最长子串
无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。输入:字符串 输出:整型变量 思路:两个指针一前一后,最开始都在0位置,然后有值则快指针向右移动一位,判…...
猿大师办公助手:高效、安全、兼容的WebOffice在线办公解决方案
兼容性难题 浏览器插件逐渐被淘汰,依赖插件的传统Office控件难以适配现代浏览器,导致功能受限或完全无法使用。不同浏览器内核之间的兼容性问题,使得企业在选择Office控件时倍感困扰。 功能不完整 部分在线Office方案无法支持复杂的文档处理…...
通过VSCode直接连接使用 GPT的编程助手
GPT的编程助手在VSC上可以直接使用 选择相应的版本都可以正常使用。每个月可以使用40条,超过限制要付费。 如下图对应的4o和claude3.5等模型都可以使用。VSC直接连接即可。 配置步骤如下: 安装VSCODE 直接,官网下载就行 https://code.vis…...
【算法与数据结构】并查集详解+题目
目录 一,什么是并查集 二,并查集的结构 三,并查集的代码实现 1,并查集的大致结构和初始化 2,find操作 3,Union操作 4,优化 小结: 四,并查集的应用场景 省份…...
Java 集合数据处理技巧:使用 Stream API 实现多种操作
在 Java 开发中,对集合数据进行处理是非常常见的需求,例如去重、排序、分组、求和等。Java 8 引入的 Stream API 为我们提供了一种简洁、高效的方式来处理集合数据。本文将详细介绍如何使用 Stream API 实现多种集合数据处理操作,并给出相…...
OSI 参考模型和 TCP/IP 参考模型
数据通信是很复杂的,很难在一个协议中完成所有功能。因此在制定协议时经常采用的思路是将复杂的数据通信功能由若干协议分别完成,然后将这些协议按照一定的方式组织起来。最典型的是采用分层的方式来组织协议,每一层都有一套清晰明确的功能和…...
【kafka系列】broker
目录 Broker 接收生产者消息和返回消息给消费者的流程逻辑分析 Broker 处理生产者消息的核心流程 Broker 处理消费者消息的核心流程 关键点总结 Broker 接收生产者消息和返回消息给消费者的流程逻辑分析 Broker 处理生产者消息的核心流程 接收请求 Broker 的 SocketServer …...
OpenCV机器学习(5)逻辑回归算法cv::ml::LogisticRegression
OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ml::LogisticRegression 是 OpenCV 机器学习模块中的一个类,用于实现逻辑回归算法。逻辑回归是一种广泛应用于分类问题的统计方法,特别适合二分类任务。…...
FreeRTOS第12篇:系统的“绿色通道”——中断管理与临界区
文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 引言:嵌入式系统的“紧急电话” 想象你正在主持一场重要会议:大部分时间按议程推进(任务执行),但偶尔会有紧急来电(硬…...
Spring Boot01(注解、)---java八股
Spring Boot中常用注解及其底层实现 1、SpringBootApplication注解: SpringBootApplication注解:这个注解标识了一个SpringBoot工程,它实际上是另外三个注解的组合,这三个注解是: aSpringBootConfiguration:…...
SD NAND 的 SDIO在STM32上的应用详解(上篇)
目录 上篇: 一.SDIO简介 二.SD卡简介/内部结构 1.SD卡/SD NAND引脚 2.SD卡寄存器 3.FLASH存储器 三.SDIO总线拓扑 中篇: 四.SDIO功能框图(重点) 1.SDIO适配器 2.控制单元 3.命令通道(重点) 4.数…...
基于图像处理的裂缝检测与特征提取
一、引言 裂缝检测是基础设施监测中至关重要的一项任务,尤其是在土木工程和建筑工程领域。随着自动化技术的发展,传统的人工巡检方法逐渐被基于图像分析的自动化检测系统所取代。通过计算机视觉和图像处理技术,能够高效、精确地提取裂缝的几何特征,如长度、宽度、方向、面…...
执行pnpm run dev报错:node:events:491 throw er; // Unhandled ‘error‘ event的解决方案
vite搭建的vue项目,使用pnpm包管理工具,执行pnpm run dev,报如下错误: 报错原因: pnpm依赖安装不完整,缺少esbuild.exe文件,导致无法执行启动命令。 解决方案: 根据错误提示中提到…...
JavaScript数组-数组的概念
在JavaScript编程中,数组(Array)是一种非常重要的数据结构,它允许我们将多个值存储在一个单独的变量中。数组可以包含任意类型的元素,如数字、字符串、对象甚至是其他数组,并提供了丰富的内置方法来操作这些…...
「软件设计模式」建造者模式(Builder)
深入解析建造者模式:用C打造灵活对象构建流水线 引言:当对象构建遇上排列组合 在开发复杂业务系统时,你是否经常面对这样的类:它有20个成员变量,其中5个是必填项,15个是可选项。当用户需要创建豪华套餐A&…...
uniapp 安卓10+ 选择并上传文件
plus.io.chooseFile({title: 选择文件,filetypes: [mp3], // 允许的文件类型multiple: false, // 是否允许多选}, (res) > {console.log(虚拟路径666:, res);var arr[{name: files,uri: res.files[0],}]let obj {"tableName": "mingmen_daily_mi…...
【第1章:深度学习概览——1.6 深度学习框架简介与选择建议】
嘿,各位老铁们,今天咱们来一场深度学习框架的深度探索之旅。在这个充满无限可能的深度学习时代,深度学习框架就像是连接理论与实践的桥梁,帮助我们从算法设计走向实际应用。随着技术的飞速发展,深度学习框架的选择变得越来越多样化,每一种框架都有其独特的优势和适用场景…...
在 Android 上自定义编译 FFmpeg
1. 自定义编译 FFmpeg 1.1 准备工作 在开始编译之前,您需要以下工具和环境: 操作系统:Linux 或 macOS(推荐)。NDK:Android Native Development Kit(NDK)。FFmpeg 源码:从 FFmpeg 官方网站 或 GitHub 仓库下载。编译脚本:用于自动化编译过程。1.2 安装依赖工具 在 …...
网页制作02-html,css,javascript初认识のhtml的文字与段落标记
用一首李白的将进酒,对文字与段落标记进行一个简单的介绍演示: 目录 一、标题字 1、标题字标记h 2、标题字对其属性align 二、文本基本标记 1、字体属性face 2、字号属性size 3、颜色属性 Color 三、文本格式化标记 1、粗体标记 b ,strong 2、…...

