基于安卓手机的路况感知系统设计与实现

2023-11-29 07:47杨黎娜孙新杰李惠许然
六盘水师范学院学报 2023年5期
关键词:路况后台加速度

杨黎娜,孙新杰,李惠,许然

(六盘水师范学院计算机科学学院,贵州 六盘水 553001)

构建高质量的交通网络,能从根源上增强城镇人口承载能力,促进区域协调发展。2019年,贵州省启动了路面改善提升工程,计划在两年内改善1.5万公里的县乡公路路况。然而,该项目面临着诸多困难:工程建设任务繁重,制约因素众多,管理难度大[1]。目前,公路维护中的路况检测任务主要依靠人工携带专业路面检测设备进行。然而,专业养护设备费用高、操作复杂,检测周期长,无法及时、方便地获取路况信息,无法满足当前待维护道路增多、维护经费紧张的现状。因此,须要另辟蹊径,借助创新来解决这些问题。

华南理工大学的许伦辉研究发现,公路的路面平整度与行车舒适性密切相关[2]。通过仿真实验,他们发现垂直方向的振动加速度可以作为行车舒适性的评价指标。现有智能设备中都有获取加速度值的传感器[3,4,5],因此,利用智能设备进行路况数据采集,并结合数据存储、分析等相关技术对路况数据进行处理,可以大幅降低路况测量成本[6,7]。台湾大学开发了一种路况检测系统,利用摩托车载移动手机作为硬件平台,利用智能手机内置的加速度计和全球定位系统(GPS)进行数据采样。该系统使用支持向量机(Support Vector Machine,SVM)分类算法和阈值法来检测坑洞,客户端任务包括数据过滤、分段和特征提取等部分[8]。另外,还有其他研究团队提出了利用智能手机内置传感器进行路面感知数据采集和判断道路健康状况的方法[9,10]。南京师范大学设计了一款基于安卓手机的道路平整度实时观测应用程序(APP),通过将装有该APP 的智能手机固定在自行车上,用户可以骑行进行路况测量,解决了大型路况检测设备无法测量较窄路段路况的问题[11]。

国际上通用的路面平整度测量设备采用的是激光、加速度计和距离测量设备相结合,但使用这些设备进行路况测量的成本较高。基于三轴加速度计、陀螺仪、磁场传感器和GPS等模块进行路况检测已经成为主要的研究方向。由于这些模块的低成本和易于使用的特性,它们在路况检测领域具有广阔的应用前景。在这些研究中采用了阈值法、SVM 和K 均值聚类算法等机器学习方法进行数据分析。然而,阈值的选择取决于车辆类型、车辆健康状况和传感器的灵敏度,在不同道路上使用相同的阈值可能导致无法准确区分不同的道路异常,从而降低路况分类的准确性。在监督学习算法中,需要对不同类型的数据进行标记,并且在训练时要注意数据类别的均衡性。然而,在路况数据采集阶段,异常路况的数据量较小,因此,在分类时,数据量较大的类型将对模型产生更大的影响。如果不对此类数据进行处理,将会影响整个路况感知方法的准确性。

为了更有效地将路况感知系统应用于实际工作,本文设计了一个包括安装在智能终端上的路况数据采集应用程序(Road-Collection-Data APP,RCD-APP)和路况后台管理系统的路况感知系统。本系统进行了以下改进:第一,采用SmoteEnn算法处理智能终端采集的数据,平衡不平顺路段和平顺路段的数据,避免少数类型数据量过少对模型准确率的影响;第二,使用LightGBM 算法进行具体路况的分类训练和识别,相比之前采用的分类算法,该算法提高了路况分类的精准率,降低了运算时间和内存消耗;第三,RCD-APP 可以实时标注具体路况,解决了初期采样数据有限和路况感知算法数据量过小导致的路况识别不准确问题,提高了系统在不同城市实际部署的适应性;第四,RCD-APP适用于大部分安卓系统设备,并与后台管理系统通过无线网络进行数据交互,实现数据共享,避免了因设备不同而数据接口不统一的问题;第五,后台管理系统可以将具体路况在地图上标注并将测量数据可视化,方便路政部门的工作人员查看路况和进行维修调度。在充分研究采集到的数据集的基础上,本系统进行了算法设计与实现,提高了路况识别的准确率,为实现智能化的路况维护管理工作提供了可行性。

1 系统设计

1.1 系统总体架构设计

基于上面系统设计所分析的内容,设计了如图1所示的路况感知系统总体架构图。

图1 路况感知系统总体架构

由图1可知,系统总体分为两个部分:第一部分是智能终端,它是一种集成了三轴加速度传感器、GPS 模块、4G 通信模块和Wifi 通信模块,并采用Android操作系统的设备。包括查看路况、路况数据采集、路况标记、路况维护、距离计算、人员设置和车辆设置等功能模块。智能终端将数据暂存本地,并通过无线网络与服务器端实时通信。其主要功能是采集数据、设置参数、显示数据,并确保数据的保存和上传,以防数据丢失。第二部分是服务器,包括数据存储服务器和Web 服务器。Web 服务器包含数据管理、路况显示、网络通信、数据处理和路况分类等模块。智能终端和服务器之间采用C/S架构,智能终端通过socket通信与服务器进行数据的上传和下载。后台管理系统采用B/S架构,用户可以通过浏览器与Web服务器进行交互。智能终端采集的数据上传到服务器终端进行存储,并在Web 终端进行数据显示和管理。后台服务器接收智能终端上传的数据后,利用数据处理模块和路况分类模块对数据进行预处理,并通过路况分类算法进行分类识别,将识别结果存入数据库并在Web终端进行显示。

1.2 功能模块设计

根据对用户需求的分析和总体结构的设计,明确了本系统的主要工作内容,确定了路况感知系统包含RCD-APP和后台管理系统两部分,确定了每部分的主要功能模块。RCD-APP 主要包括查看路况、标记路况、维护路况、测量路况数据以及基本设置模块;后台管理系统主要包含数据管理、路况显示、测量数据显示、维修管理、路况识别算法管理和网络通信等模块。具体的系统功能模块如图2所示。

图2 路况感知系统功能模块

如图2 所示,本系统中的路况后台管理系统在路政部门的路况数据采集、路况类型识别、路况信息查看和路况维护等工作中扮演着重要角色,可以统一管理路况、车辆、人员等数据,降低不同设备之间的数据壁垒。

2 系统实现关键技术

2.1 数据采集与传输技术

LSM6DSM 系列芯片是一款集成了三轴加速度和三轴陀螺仪功能的芯片。该芯片在0.65 mA的低功耗下能够提供高性能运行。它适用于-40~85 ℃的工作温度范围,并可测量±2/±4/±8/±16 g 的加速度范围[12]。LSM6DSM 支持串行外设接口和I2C总线,并且与常见操作系统兼容。它提供真实、虚拟和批处理传感器功能,并具备4 KB的动态数据批处理能力。该芯片可嵌入到智能终端中,实现高效、精确和稳定的加速度数据采集和处理。

为了实现安全的数据传输,本系统采用了Netty 开源框架。Netty 是由JBOSS 提供的Java 开源框架,用于开发高性能、高可靠性的异步、事件驱动网络应用程序,可用于快速开发网络服务器和客户端程序。本系统利用Netty框架开发Socket通信服务端和客户端功能,并选择TCP 传输协议以确保数据传输的安全性。

2.2 路况识别技术

路况识别主要使用LightGBM 模型实现,LightGBM 是微软开发的boosting 集成模型,相较于同类型的XGBoost 模型,它采用直方图算法改进了预排序算法,在查找特征分割点时避免了复杂度高、效率低的问题。此外,LightGBM还利用单边梯度采样算法减少样本数量,过滤掉权重较小的样本,并利用互斥特征捆绑算法减少特征数量,从而提升模型的训练速度和精度[13,14,15,16,17,18,19]。本系统中采用Panads 进行数据的初步处理,利用LightGBM 库进行模型的训练和数据分类,利用StreamLit构建模型训练和结果显示界面。本算法主要包括数据采集、路况感知模型训练、使用训练好的模型进行路况感知和保存路况等步骤。算法的流程图如图3所示。

图3 基于SmoteEnn_LightGBM模型的路况感知算法流程

如图3 所示,训练路况感知模型子流程具体步骤如下:

输入:从智能终端上采集到的传感器数据X={x1,x2,...,xn};

输出:标注过的路况数据集X={(x1,y1),(x2,y2),...(xn,yn)}和训练过的路况感知模型;

第一,通过RCD-APP采集数据;

第二,将采集到的数据上传到服务器,并选择训练模型需要的数据集;

第三,将选择的数据集进行数据清洗,去除空值、零值以及超出正常范围的值;

第四,将采集到的振动数据和标注的GPS 数据进行融合,进行路况的初步标注,再绘制振动数据折线图进行手动校对路况标注信息;

第五,用来判断传入的数据是否用来进行模型的训练,如果是,则对三轴加速度进行求均方根处理,并使用低通滤波处理,将处理后的数据进行提取特征值处理。将三轴加速度的均方根RMS(公式1)进行低通滤波处理,去除发动机等转动设备的高频干扰;

第六,进行特征数据处理用于提取特征,将三轴加速度(分别用x、y、z表示)、三轴加速度的RMS(公式1)、车速、相邻两条加速度之差的绝对值Abs_Acc(公式2)、相邻两条三轴加速度的RMS之差的绝对值δ(公式3)等作为用于LightGBM 模型分类的特征;

第七,将处理后的数据用SmoteEnn 算法进行数据均衡处理,得到各种路况数据量均衡的数据集;

第八,最后使用LightGBM进行模型训练调参并保存模型。

3 系统实现

3.1 数据采集终端RCD-APP的实现

3.1.1 路况数据的采集

路况数据的采集是RCD-APP 的主要功能。数据的采集在测量数据模块中进行,采集的主要有三轴加速度、车速、经纬度、时间等数据。测量模块主要调用应用层的getSystemService函数获取传感器管理对象,通过initListeners 进行传感器监听器的初始化,通过registerListener函数进行传感器的注册监听。在对数据进行采集时需要设置数据的采集频率,本程序采用采集频率较高的SENSOR_DELAY_FASTEST 参数,在设置定位精度时采用的是ACCURACY_FINE模式的GPS定位。

3.1.2 路况数据的传输与保存

路况数据的传输主要依赖Netty框架来实现,智能终端上安装的RCD-APP 实现Netty 的客户端,后台服务器实现Netty 的服务端。在RCD-APP 程序中进行Netty 组件的封装,调用channelActive()方法进行服务端的连接,通过channel Read0()方法读取服务端消息,并根据通信协议对发送的路况数据进行定义编码。后台管理系统整合Netty 服务端,封装Netty 组件并启动服务端,收到消息后对消息进行解码并作出相应的处理。

在RCD-APP 和后台服务端都有路况数据的保存功能。RCD-APP 采用Android 系统内置的SQLite 数据库进行数据存储备份,通过导出按钮可以将数据库中的数据导出到逗号分隔值(Comma-Separated Values,CSV)文件中,方便用户通过文件对数据进行收集和备份。后台服务器在收到RCD-APP 通过网络上传的路况数据后保存到系统的MySql 数据库中,系统读取数据库中的路况数据进行路况识别,用户可以通过后台服务端对数据进行查看。

RCD-APP部分实现页面如图4所示。

图4 RCD-APP主要实现界面

3.2 后台管理系统的实现

3.2.1 路况识别

路况识别功能主要是通过路况感知算法将RCD-APP采集到的数据进行训练和识别,得出具体数据对应的路况信息。路况识别算法使用LightGBM模型对数据进行训练和识别,本系统中采用Python语言进行算法的实现。在项目中使用StreamLit 框架进行模型训练界面的实现,在代码中导入pandas库进行数据处理,导入LightGBM库进行模型的训练。本实验采用GridSearchCV的调参方式,由如图5所示num_leaves=70、max_depth=12 以及learning_rate=0.1 对模型性能较好的参数值,并对其他参数进行进一步调参以提升模型的准确率并降低过拟合。

图5 num_leaves、max_depth以及learning_rate不同参数值的multi_error对比

本文采用LightGBM 模型作为路况感知模型并和分类效果较好的SVM模型、梯度提升决策树(Gradient Boosting Decision Tree,GBDT)、XGBoost三种模型进行对比实验。表1为不同模型关于路况分类的评价值对比。

表1 不同模型评价值对比数据

根据表1的结果显示,4种模型的评价指标值均在90%以上,都能有效区分出5 种不同的路况。然而,从运行时间的角度来看,基于GBDT的GBDT、XGBoost和LightGBM模型的运行时间明显小于SVM 模型,而LightGBM 是3 种GBDT 模型中所需时间最短的。与LightGBM相比,支持向量机模型的路况分类耗时超过LightGBM 的百倍以上。根据召回率、精确率和F1 值的数据分析,LightGBM模型表现出最高的数值,证明该模型在路况分类中具有良好的分类效果,且其误判率也是4 种模型中最低的,表明LightGBM 模型在路况分类问题中具有良好的应用前景。

3.2.2 数据可视化

本系统在RCD-APP 和后台管理系统中对数据进行可视化处理,其中查看路况模块、标记路况模块、路况显示是基于百度地图应用程序接口(Application Program Interface,API)进行开发的,首先需要在百度地图开放平台进行开发者认证,认证通过后在应用管理中创建“我的应用”并进行配置,获取到应用访问的API 密钥(API Key,AK),并 将AK 写 入RCD-APP 的AndroidMainfest.xml 文件中,以及在后台服务端加载地图页面,引入百度地图API 进行地图的相关显示。RCD-APP 将采集到的数据上传给后台服务器后,后台服务器进行存储及训练识别,将识别的路况在数据库中存储更新,并在地图上进行路况类型的标记。图6是后台服务端的路况显示页面。

图6 路况显示页面

如图6 所示,测量数据显示模块主要是将智能终端采集到的数据进行可视化。测量数据显示页面主要是让用户可以更直观地观察到车辆行驶在公路上的三轴加速度的变化情况,便于检测路况和三轴加速度的关联性。在测量数据显示页面可以通过车牌号、车道、起止时间来选择要查看的数据。测量数据显示模块的开发是使用百度Echart 库进行绘制,在开发时需要导入Echart 库,再进行图表参数配置,然后从数据库中获取数据插入图表中进行显示。登录后台管理系统后,点击测量数据显示按钮,显示出测量数据显示界面,在显示界面上选择查询条件,点击查询按钮,即可显示三轴加速度和车速相应的折线图,实现效果如图7所示。

图7 测量数据显示页面

4 结束语

根据文中所述的路政部门的业务需求和功能需求,本文设计并实现路况感知系统。该研究成果可以提高路政部门工作人员的工作效率,方便路况敏感乘客查看并选择舒适的路况。目前本系统对路况的标注还只是进行点标注,将引起车辆颠簸的位置信息进行记录,在地图上进行点状标记,这种表示方法在路况良好的地方可以表现出较好的区分度,但如果在路况较差的区域就会降低用户体验。因此,在后续的开发工作中可以将路况标记为连续的色阶图,可以使用户更加直观地看到整条路的具体颠簸情况,从而提升用户的体验感。

猜你喜欢
路况后台加速度
高速公路路况信息系统
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
天际加速度
创新,动能转换的“加速度”
死亡加速度
从路况报道看广播“类型化”新闻的要素构成
后台暗恋
前台、后台精彩花絮停不了
高速公路实时路况分析系统方案
以“后台”的名义节省电池用量