设计和部署基于IPv6的分布式数据采集环境,并开发移动Android智能终端软件采集校园环境内的车辆行驶数据,并利用众包激励机制等进行数据实验,得到较好校园行驶车辆行为模式。文章利用IPv6协议地址数量优势和移动终端支持创新应用场景,具有一定的模式普遍性和应用前景。 随着移动智能终端设备的功能不断增强,移动智能设备,如:手机、平板电脑、车载计算机等,计算能力可以达到一般PC机的水平;同时,随着网络通信的不断发展,内置WiFi、蓝牙、3/4/5G的移动芯片的移动终端的通讯速率不断加快。此外,移动设备中集成的传感器,如光强传感器、加速度传感器、陀螺仪、磁力计、摄像头等,使得移动设备具备对周边环境的强大感知能力。 在此基础之上发展起来的移动计算(Mobile Computing)[1]、移动感知(Mobile Sensing)[2]、众包(Crowdsourcing)[3]等技术希望通过智能设备的计算性能和感知能力完成特定的任务和功能,或是将大型的任务进行分发,寻找潜在能够完成细分任务的用户,以此来降低成本。而大数据挖掘和机器学习领域,需要大规模的数据对相关的算法和分类器的构建进行驱动,也被称为数据驱动(Data Driven)的技术。在移动网络建模、车联网建模等相关领域,需要通过采集现实追踪数据借助一些仿真平台如ONE Simulator、NS2/NS3、OPNET等,对仿真进行建模和研究[9]。 以上相关技术的发展和相关的研究驱动,使得基于移动平台数据采集方案成为众多交叉研究领域的交集,在融合不同研究领域的目光之外,也催生了如移动众包感知(mobile crowdsourced sensing)[4]、城市计算(Urban Computing)[5]、基于地理信息的社交网络(Location-Based Social Networks)[6]、跨域数据融合(Cross-Domain Knowledge Fusion)[7]等新兴的研究热点。 本文首先针对性选择校园IPv6网络环境下的车辆行驶数据为研究对象,设计了一套车辆行驶数据采集系统。并基于Android的智能终端开发了一套能够通过设备内置传感器(如:惯性传感器、磁力计、GPS)对车辆行驶数据进行采集的软件。结合众包相关技术,在校园环境下对招募志愿者进行了相关的数据采集和数据库构建。最后对采集到的相关数据进行了简单的数据挖掘分析,并结合机器学习算法训练了一个简单的驾驶行为检测分类器,通过相关对比验证了采集数据的有效性和分类器的准确性。 后期还将进一步积累数据,并在海量驾驶数据的基础上对车辆行驶行为模拟,模拟校园环境下车辆联网仿真;挖掘更多的行车模式,并针对危险驾驶行为构建识别分类器;构建基于IPv6的校园车联网数据共享平台等。 1 系统架构
图1 系统架构图 在Ubuntu Server上搭建的Hadoop云计算环境,利用Apache+Tomcat作为用户动态交互的Web服务平台对数据进行管理,以MySQL为数据库存储用户同步数据,设计和开发一套基于C/S的行车数据分析和信息共享系统。数据采集端基于Android智能设备平台,通过调度智能设备底层传感器对车辆的行驶模式进行感知和采集。移动端APP与服务器之间的数据传输通过覆盖在校园内的无线AP完成,系统总体架构如图1所示。 1.1服务器端设计 服务器端主要通过IPv6网络接收来自数据采集端采集的车辆行驶数据,并在数据库中进行归档和整理。并提供查询接口,提供对数据库中的数据按需查询的功能。 服务器主要有两部分功能:与客户端数据交互和进行自动的挖掘分析。 数据交互部分:通过servlet获取http请求,服务器部分收到request后进行相应的处理并写入数据库,进行处理后返回response通知客户端操作是否正确或给出相应的通知。数据库设计部分如图3。
图2 服务器模块
图3 数据库E-R图 服务器的数据库部分主要由三个实体,五个表组成,三个实体分别是用户、真实行为、传感器数据,如图3所示。用户用来记录用户的一些信息,如用户的唯一ID,设备IP地址等。真实行为是用户在驾驶时上传的真实驾驶行为(转向、变道、变速等),目的是与获取到的传感器初始数据组成一个样本集,用于数据进行自动的挖掘分析。传感器数据是用户在行驶过程中所传感器所获取到的未经处理的初始数据。真实行为与传感器数据都有时间戳的属性是为了更好的将真实行为与发生行为时传感器的数据进行对应。 数据挖掘部分:通过集成基于Weka ToolKit[8]机器学习套件库,通过对机器学习库的二次开发,实现自动化周期性对已采集的数据进行自动的挖掘分析。 1.2数据采集端设计 初步设计数据采集端采用基于Android智能终端的应用环境,采用eclipse+Java开发环境。主要通过调度智能设备底层的传感器(如加速度传感器、陀螺仪等)接口读取车辆在行驶过程中产生的数据。传感器数据首先通过封装打包,然后周期性的请求服务器应答进行数据上传。 由于车辆的行驶速度较快,智能终端与AP之间的通信会时常发生中断,需要设计智能终端在AP之间跳转引起网络中断导致的数据传输失败的检测策略。
图4 数据上传流程 数据上传流程如图4,由于传感器数据采集频率较高(20Hz),为避免连续进行数据传输带来的通讯开销,智能终端首先将数据帧进行一次封装,并添加相应的时间戳序列。之后数据封包进入传输队列,排队等待。网络轮询检测模块周期性(1Hz)检查链路状态,并在链路状态正常情况时通知数据队列进行发送。服务器每次确认对应智能终端所发送的最后一个数据封包的时间戳,数据队列删除此序列前的所有包。 1.3 智能终端数据分析功能 除了将对传感器原始数据进行采集并上传之外,智能终端还会集成基于机器学习的车辆驾驶行为检查分类器(Classifier)算法,实时的对车辆行驶模式进行分析。目前,智能终端集成的分类算法能够识别车辆的下列五种基本行驶行为:左/右转向、左/右变道和掉头。可选分类器算法为决策树(Decision Tree)和朴素贝叶斯(Na?ve Bayes)。防止个体驾驶差异对驾驶行为的检测影响,分类器算法的相关参数由服务器对所有车辆采集上传的数据进行训练得到,具体见章节2。 1.4 智能终端放置 数据采集过程中,需要通过内置有各种传感器的智能终端感知车辆的行驶模式。根据不同传感器性能和感知功能不同,可以按如下情况进行分类,见表1。 目前考虑服务器存储空间、数据采集效率、数据挖掘目标和智能终端的电池容量,暂不考虑图像和光强数据的采集。而加速度计和重力计数据相似度较高,仅考虑其一(加速度计)。
由于需要进行数据采集的传感器对方向比较敏感,特别是惯性传感器(加速度计和陀螺仪),选择将智能设备放置在车前仪表盘,并按图5车辆与智能设备相对坐标系放置,能够保证传感器对车辆行驶数据的获取。
图5 车辆和智能终端相对坐标系 1.5 数据采集 针对校园环境中出现的驾驶人群和车辆,分别招募了教师、学生家长、的士司机和专车司机四类不同司机,以及两类车型(轿车和SUV),在北京高校校园环境内进行数据采集。智能终端设备选取不同厂商、不同价位的安卓智能手机(包括:Samsung Note3、Google NS5、红米Note1、Note3、联想s1)。并利用众包的激励机制和Truthful Incentive Mechanisms[10]确保实验数据的真实性和完备性。 2 车辆行驶检查模型 数据分析和挖掘功能主要是利用Weka ToolKit对已采集到的行车传感器数据进行处理,训练对应的识别分类器。直接对原始数据(Raw Data)进行直接挖掘和分析效率较低,引入的噪声数据也将影响训练结果。目前已完成对车辆行驶基本行为(左/右转向、左/右变道和掉头)检测的识别算法MultiWave[11],并在此基础上提出8项陀螺仪数据的统计特征集,通过对比不同机器学习算法,训练出以个识别准确率最高的模型--决策树模型。
图6 陀螺仪波形示意 MultiWave多波检测算法主要通过陀螺仪Z轴(见图5)数据产生的波形对传感器数据进行过滤,采样波形产生范围内的陀螺仪Z轴数据。首先,对波形区间以外的数据进行过滤达到降维的目的;然后,对波形内数据进行统计分析,提出了8项统计特征:最大值、最小值、均值、方差、标准差、上/下四分位数、信息熵。 通过对每个波形内传感器数值的统计特征集作为训练样本,分别选择不同规模的数据量(10%,20%,30%,50%,70%,90%,100%)作为机器学习算法的训练样本,选了支持向量机(C-SVC)、邻近算法(IBK)、决策树算法(J48)、规则归纳学习(JRip)和朴素贝叶斯分类器(Bayes)这五类具有代表性的算法进行对比。 3 测试结果
图7 对比结果 对比试验采用10-fold交叉验证算法,每次以随机的方式抽样总体样本的对应比例进行模型训练,每种算法在不同比例训练样本重复10次,并计算模型识别准确度的均值和标准差。 算法对比试验结果见图7,柱状图对应各算法在对应随机抽样比例下的准确度,误差棒(error bar)为标准差。可以看到所有算法在采用50%以上的训练样本规模进行训练时,模型的准确率基本停止上升,但误差棒总体继续缩小。说明目前数据库中所采集的数据样本已经能够满足单次模型训练的完备性。误差棒缩小说明增加训练样本使得10次随机抽样样本训练得到的模型间误差逐渐趋于平稳。其中,基于决策树的分类器模型总体识别准确率最高,可达96%以上,说明本算法能够以较高的识别精度来判断校园行驶车辆的形式行为。 4 结论 本文通过在校园IPv6无线网络环境搭建基于众包技术的车辆行驶数据采集平台,通过B/S的服务器,结合移动智能终端的分布式数据采集方案,对校园环境内的车辆的行驶数据进行采集。通过招募不同驾驶员和车型车辆采集了真实校园环境下的车辆行驶数据。并利用MultiWave波形识别算法对传感器数据进行过滤和降噪,结合机器学习算法对所采集的传感器数据进行训练,构建了一个识别精度较高的决策树识别算法。 后期将该决策树算法及相关的决策参数内置到数据采集端的移动智能终端,使得智能终端能够实时对车辆的行驶模式进行判断。 接下来的工作将在此基础上进一步提出危险驾驶识别模型,并通过IPv6网络构建车联网环境,进行相关的模拟实验,对危险驾驶车辆进行评级,构建通过车联网环境下的危险车辆周边预警系统。 参考文献 [1] Choi K W, Dimas T W, and Ekram H. Discovering Mobile Applications in Cellular Device-to-Device Communications: Hash Function and Bloom Filter-Based Approach[J]. IEEE Transactions on Mobile Computing 15.2 (2016): 336-349. [2] Hasenfratz D, et al. Participatory air pollution monitoring using smartphones[J]. Mobile Sensing (2012): 1-5. [3] Bernstein M S, et al. Soylent: a word processor with a crowd inside[J]. Communications of the ACM 58.8 (2015): 85-94. [4] Zhao D, et al. How to crowdsource tasks truthfully without sacrificing utility: Online incentive mechanisms with budget constraint[C].// IEEE INFOCOM 2014-IEEE Conference on Computer Communications. IEEE, 2014. [5] Zheng Y, et al. Urban computing: concepts, methodologies, and applications[J]. ACM Transactions on Intelligent Systems and Technology (TIST) 5.3 (2014): 38. [6] Zheng Y. Location-based social networks: Users[J]. Computing with spatial trajectories. Springer New York, 2011. 243-276. [7] Zheng Y. Methodologies for cross-domain data fusion: An overview[J]. IEEE transactions on big data 1.1 (2015): 16-34. [8] Hall M, et al. The WEKA data mining software: an update[C].// ACM SIGKDD explorations newsletter 11.1 (2009): 10-18. [9] Ma X B, et al. A social aggregation based combination movement model for opportunistic networks[C].// 2014 Sixth International Conference on Ubiquitous and Future Networks (ICUFN). IEEE, 2014. [10] Duan Z J, et al. Truthful Incentive Mechanisms for Social Cost Minimization in Mobile Crowdsourcing Systems[J]. Sensors 16.4 (2016): 481. [11] Ouyang ZC, et al. Multiwave: A Novel Vehicle Steering Pattern Detection Method based on Smartphones[C].// 2016 IEEE International Conference On Communications (ICC). 作者单位:北京航空航天大学计算机学院 |