基于群智感知的城市路况信息采集系统研究分析 城市管理专业_第1页
基于群智感知的城市路况信息采集系统研究分析 城市管理专业_第2页
基于群智感知的城市路况信息采集系统研究分析 城市管理专业_第3页
基于群智感知的城市路况信息采集系统研究分析 城市管理专业_第4页
基于群智感知的城市路况信息采集系统研究分析 城市管理专业_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录摘要 ……………………(01)Abstract …………………(02)前言 ……………………(02)第1章 绪论………….(04)第1.1节 研究背景及意义………(05)第1.2节本文的主要工作及创新点……………… (06)第1.3节本文的组织结构………… (07)第2章 路面损坏检测及其研究现状…… (07)第2.1节路面破损检测概述……….(07)第2.2节 国内外研究状况分析……(08)第2.2.1节国内研究现状………….(08)第2.2.2节国外研究现状………….(09)第2.3节本章小结………………… (11)第3章群智感知道路坑槽检测知识概述………………(11)第3.1节群智感知技术……………(11)第3.2节系统介绍………………….(13)第3.2.1节系统概述……………….(13)第3.2.3节基于Android的检测系统…………… (13)第3.3节系统模块………………….(15)第3.3.1节系统客户端…………….(15)第3.3.2节中心服务器…………….(16)第3.3.3节查询用户……………….(18)第3.4节本章总结………………….(18)第4章数据处理…………(19)第4.1节原始数据采集…………….(19)第4.2节数据预处理……………….(22)第4.3节数据分片………………….(24)第4.4节数据特征处理…………….(25)第4.5节本章小结………………….(26)第5章路面破损情况以及道路坑槽检测………………(26)第5.1节支持向量机(SVM)算法的应用……………(26)第5.1.1节SVM算法概述…………..(27)第5.1.2节基于SVM算法的检测…………………(28)第5.2节k-means聚类算法的应用…………………(29)第5.2.1节k-means聚类算法概述…………………(29)第5.2.2节基于k-means聚类算法的检测……….(30)第5.3节实验过程及结果………….(32)第5.3.1节原始数据采集………….(32)第5.3.2节数据分片……………….(35)第5.3.3节数据特征提取………….(36) 第5.3.4节SVM以及k-means结果比较…………..(36)第5.4节本章小结………………….(40)第6章总结与展望………(40)第6.1节本文总结………………….(40)第6.2节后续工作展望…………….(41)参考文献…………………(42)致谢…………………(44)摘要对路面的破损进行检测是管理和养护道路的一个重要组成部分。路面破损会严重的影响行车的安全性、舒适性和路容路貌。近年来,因为移动设备以及智能手机爆发式的普及,许多大规模,复杂的社会感知任务的实现成为了可能。大量且分散的群智感知用户被交以一些数据收集的任务,而这些任务常常是一个大规模任务所分散分配而来。利用传统人工来检测路面情况这种方式不仅耗利又耗财而且还会出现检测不及时或者有些路面检查不到的情况。因此如何节省物力又节省人力但是又能及时的检测出道路是否破损以及其破损情况是当前亟需解决的问题。本篇论文通过基于群智感知的方式收集城市路况的数据信息,并且对这些采集到的原始数据进行一系列的预处理,利用机器学习中的SVM算法以及k-means聚类算法来提取数据特征,并将这两个算法进行对比。来达到低成本、低工作强度的目的。关键词:坑槽检测;聚类算法;群智感知;机器学习

AbstractPavementdistressdetectionisanimportantpartofroadmanagementandmaintenance.Thedamagedpavementwillseriouslyaffecttrafficsafety,comfortandroadappearance.Inrecentyears,becauseoftheexplosivepopularityofmobiledevicesandsmartphones,manylarge-scaleandcomplexsocialsensingtasksbecomepossible.Alargenumberofdispersedgroupsofcrowd-sensingusersaretaskedwithsomedatacollection,andthesetasksareoftendistributedbyalarge-scaletask.Usingtraditionallabortodetectpavementcondition,notonlyisitcostlyandwasteful,butitmayalsocannotbedetectedintimeorsomepavementconditionsthatcannotbedetected.Therefore,howtosavematerialresourcesandsavemanpower,andtimelydetectwhethertheroadisdamagedornotistheurgentproblemtosolvenow.

Accordingtothewayofcrowd-sensingtocollectinformationonurbanpavementconditions,inthisthesis,andperformaseriesofpreprocessingontheseinitialdata.UsingSVMalgorithmandk-meansclusteringalgorithmextractdatafeatures,andcomparingthesetwoalgorithms.Toachievethegoaloflowcostandlowintensityofwork.Keywords:potholedetection;clusteringalgorithm;mobilecrowd-sensing;machinelearning

前言物联网的发展使得群智感知渗透到人们的生活中去,例如在环境、社会生活以及基础设施中已有应用[1]。比如在环境方面,可通过可以通信的空气质量传感器来上传空气质量相关的数据,然后通过web来进行共享;在社会交往的方面,腾讯采用了共同好友的机制来进行好友的推荐;而在公共交通方面上,已有的应用则包括交通流量的跟踪监测、停车位的寻找等,但是对于在道路状况检测上的应用并不是很多,且大多数都需要人为的参与,通过及时反馈或拍摄图片进行记录,但是这并没有解决成本问题和用户参与问题。所以系统并没有真正得到应用。同时,大多数应用还面临用户数据的传输影响网络的使用、如何保证用户信息的私密性等问题。于是基于群智感知的一些特性,本文将其应用到道路坑槽情况的检测中去,以更好的服务社会。随着这社会的不断进步,经济的发展,为了方便人们的出行需要,修建道路的数量越来越多。许多道路因为破损没有被及时维修,导致年久失修,轻则影响行车体验,重则出现安全隐患,导致交通事故。为了避免这种情况的发生,通过大众的移动设备以及智能手机中的加速度计以及GPS传感器等,用户将无意识的采集数据上传到服务器,中心服务器将会收集这些数据信息并进行处理来判断路面破损的等级,可以使得相关部门及时的对这些道路进行处理。在分析国内的道路状况的基础上,本文提出了简化道路监测与修复的工作难度以及提高道路行车安全性的方法。设想一个利用群智感知的思想来将数据大量采集,将数据回传、分析处理、并加以利用,形成一个不需要人为参与的道路坑槽检测系统。该系统将得到的原始数据进行平坦与坑槽的划分处理,本文主要对这个划分处理所应用的算法进行简述、对比。绪论本章介绍了研究这个课题的背景并且探讨了研究的意义。大概简述了本篇论文所做的主要工作、贡献以及创新点。最后,介绍了本文的组织结构。1.1 研究背景及意义随着中国经济的发展以及经济活跃程度,以及人民群众收入水平的不断提高,越来越多的人具备购买机动车的能力。为了方便出行,中国汽车的保有量一直持续上升,仅仅是机动车的保有量,我国就已经突破了三亿。这与道路建设的发展也有着密切的联系。近年来,我国道路破损严重,原因复杂,总结起来为三个方面的问题:设计、施工和使用这三个方面的问题,并且每个方面在道路破损的实例中都占有一定的比例。从使用方面来说,原因主要集中在交通量匹配和养护维修两个方面,超载运输也是一个主要的原因。而在路面破损方面可以将破损分为功能性以及结构性。结构性的破损表现为路面结构的承载力下降,以及出现各种结构裂缝。功能性的破损的表现则为,影响行车的质量以及行车的安全,路面服务能力下降、抗滑性能、平整度降低。通常,结构性的破损达到一定程度的时候,同样也会出现功能性的破损[2]。中国公路一直在不断的发展、进步,这是我国走向现代化的标志,是发展现代交通行业的桥梁。中国公路的里程数每年也在以几十万公里的数量增长,以实现“条条道路通罗马”。但是我国每年在公路上发生的交通事故数量不容小觑。相比之下,世界上第一个拥有高速公路的国家是德国,它也是唯一一个拥有不限速的公路的国家。然而在道路交通安全管理的方面上,发生交通事故的死亡人数和死亡率却很低,并仍然呈持续减少的趋势,除了与德国公路的专业、严格管理、精准、安全意识的培养之外这与他们对公路严格而精密的养护工作是分不开的。各种各样的外界环境因素比如温度、湿度、能见度、雨量、风速等都是在他们的严密监控之下,并通过广播、可变动提示板等设备传达消息,提示公路的维修。但是在土地广袤的中国,特意部署众多智能设备需要付出高额的维护成本和代价。在已有的技术中,除了传统采用人工实地勘察记录再到相关部门进行统计分析这种工作量巨大且数据准确度不确定的方法以外,还有基于深度卷积网络的路面遗留物检测方法[3],这种方法属于深度特征的视频检测技术领域,这种方法就需要提前部署摄像装置,采集每一条道路所安装设备的视频图像信息,对这些信息进行处理、训练之后提取图像特征,再分析这些信息。但是这样的技术不仅仅是要在每一条街道安装摄像机等设备,而且要对这些设备进行维护也是一个问题。因此,我们在此引入了群智感知的概念,让大量而又分散的用户群体在无意识的情况下,探测城市道路是否有坑槽以及坑槽的严重程度,这些用户的智能移动设备将自行的把数据传输到中心服务器,体现人多力量大的特点,不仅有效的解决了问题又降低了养护成本而且极大程度的降低了路面平整度检测成本,最大限度的缩短了检测周期。1.2 本文的主要工作及创新点基于当前已存在的技术存在的一些问题,本文提出了一种方法,即基于群智感知的道路坑槽检测方法。该方法通过驾驶员的手机终端里集成的传感器来采集路面信息以及位置信息,之后上传到中心服务器,对这些数据进行分析处理,判断路面是否破损以及破损程度。本文的主要工作具体如下:通过查阅大量的相关文献,大致介绍了国内外对路面破损检测的研究。完成对路面坑槽的检测系统的设计并对其进行分析。在多种道路状况下对车辆的行驶进行具体的分析。在基于机器学习的理论基础上,利用SVM算法来提取路面坑槽特征。根据国家的标准对于路面坑槽破损的程度进行划分,通过k-means(k均值)聚类算法,来预测不同坑槽的破损程度。本文的创新点即,将群智感知的概念应用到了道路坑槽检测中去,并且该坑槽检测机制采用了SVM算法且与k-means聚类算法进行对比。1.3 本文的组织结构本文共分为六部分,各章内容结构安排如下所示:第一章:绪论。绪论部分主要介绍了本篇论文的研究背景及意义、本文的主要工作,最后介绍了本文的组织结构。第二章:路面损坏检测及其研究现状。本章主要介绍了目前检测路面是否破损主要的技术以及当前国内外对这方面的研究现状。第三章:群智感知道路检测系统概述。在这一章,首先介绍了群智感知的概念,之后大致的介绍了如何利用群智感知的概念来实现一个坑槽检测系统,并对这一系统进行了大致的概括,之后又介绍了基于Andriod的检测系统,并对系统的每一部分的模块进行概述。第四章:数据处理。第四部分主要介绍了如何对原始数据进行预处理。第五章:路面破损情况以及道路坑槽检测。运用SVM算法以及k-means聚类算法对采集的数据进行具体的操作。第六章:总结与展望。总结全文,并对未来工作提出设想与展望。第2章 路面损坏检测及其研究现状本章主要介绍了目前用于路面破损检测的一些技术,以及这项研究在国内外的研究情况。路面破损的种类繁多,并且形成原因复杂,对路面坑槽的检测就是路面破损检测的重要内容之一。于是,在本文对于路面的破损情检测进行研究之前,对当前路面破损情况检测技术以及国内外的研究现状进行概述和分析。2.1 路面破损检测概述经过二十多年的快速发展,我国公路养护的里程迅速增加。随着经济的发展,人们生活水平的提高,交通运输在人们生活中已经占有重要的地位。城市车辆保有量的增加,使得给公路的负担越来越重。若在道路的破损初期,能被及时的发现,并且采取相应的措施,就可以有效的防止破损变得更加严重,减少路面的维修的开销,并且遏制了因为道路原因而引发的交通事故。所以,如果能够及时的对路面情况进程检测十分有意义。按照《公路工程技术状况评定标准》,路面损坏、平整度、车辙、抗滑性能以及结构强度为路面检测的五个指标。其中,路面破损类型常见的有:坑槽、松散、沉陷、拱起和裂缝等[4]。以往传统的检测路面的方法,是通过人工徒步实地勘察,即步行人眼观察法,还有坐车录像屏幕测度法,这些方法都需要通过人工人为的来判断并记录路面破损的种类、数量,还要计算破损率,最后求得破损指数(PCI)[5]。但是这些方法不仅要依靠大量的有相关专业知识的人员,而且还要耗费大量的时间以及精力,最主要的是还有可能因为人为原因而误判,这些都会导致工作效率低下,使得检测和养护路面都不得不花大量的时间,因为检测以及养护路面有时候都不得不封闭交通,降低了道路通行力,经济损失严重并且对社会会造成不良的影响。因此,传统的道路检测的作业方式已经不能满足于当今的社会需要,更加便捷的检测方式需求日渐迫切。2.2 国内外研究状况分析公路养护以及管理的前提是对公路路面进行检测,只有在做好这个先验步骤以后才能更有效率的进行之后的工作。2.2.1 国内研究现状我国经济不断发展,为了供应不断增加的客流量以及货物流量,随之而来的就是公路里程的增加,在路面设计以及道路基本设施管理上,我们已经向前垮了一大步。但是对于城市道路建设的质量上来看,还不尽人意。与其他国家的技术相比,我国在测量公路路面情况采用数字图像处理技术时所利用的图像传感器以及图像采集技术明显有不成熟之处[6]。国内多用在车辆上装载摄像摄影装备的以及计算机图像处理的方法,这种方法即在车辆上装摄像机、激光扫描仪以及CCD面阵相机,通过这些设备采集路面道路情况,最后离线处理这些图像信息。还有通过在车辆上装载运功传感器来检测路面的方法,获得路面信息以后再利用模式识别技术以及统计学来获取有效信息。2.2.2 国外研究现状随着公路建设的日新月异,路面破损特征自动化检测体系也相伴而来。在自动化检测体系到来之前加拿大的公司在20世纪70年代就已经开始进行路面数据收集分析方面的研究。但由于技术水平的限制,只是处于探索阶段。初期阶段主要是摄像测量法[7],基本原理是在车辆上以一定的角度安装高速摄像机,在某一速度下将路面情况录入摄像带,之后快速处理成数据。探地雷达法是另外一种方法,这是在车上装上探底雷达,并且以一定的速度行驶,在此过程中,雷达发射电磁脉冲并且可以短时间穿透路面,然后脉冲反射波将会被无限接收机所接收,最终数据采集系统将会记录返回的时间以及路面结构里面不连续的电介质常数突变情况。之后的日本komatsu体系,是一种模拟摄影技术,这个技术将会发送氩激光的激光扫描器安装在车辆的两端,并通过光电倍增管接受一定角度的反射光。如果路面有破损,所接受的射线数量会相应的减少,这样就可以通过反射光线的数量来判断路面破损的程度。联机检索出现后,出现了集成检测车,对路面检测的项目不再那么单一化。检测车用摄像头对地面进行扫描,在车前安装20个激光传感器来检测道路情况,并且一次可检测两条车道,极大的提高了效率。例如,日本yogoshiro高速道路管理技术中心开发的高速路面检测车,通过CCD摄像头以及激光发射器来检测路面状况,并且使用轮速传感器协助全球定位系统对破损路面进行检测。多功能路况检测技术的出现,使得路面损伤检测方面取得了很大进展,该技术主要应用线扫描相机技术以及红外激光照明技术。例如,美国PSI生产的多功能道路检测车PathRunner以及加拿大FugroRoadware生产的多功能道路检测车ARAN等。图2.1以及图2.2展示了这两种车。图2.1道路检测车PathRunner图2.2道路检测车ARAN现今随着移动设备以及智能手机的普及,一个新的研究方向已经开始。AksamitP等人提出的一种基于智能手机中加速度计信号功率阈值的路面坑槽检测系统[8],Mednis等人提出的基于智能手机加速度计以及GPS传感器的坑槽检测系统[9]以及DemetrioCarmineFesta等人利用智能手机内置麦克风传感器检测车辆收到的声压级别来判断坑槽,且利用GPS传感器来定位[10]等。2.3 本章小结 在本章,主要介绍了有关路面检测的一些内容以及发展情况,对传统路面检测技术进行大致的概述。之后对国内外路面检测技术做了一定的简介,并进行了总结,最后指出了可继续进行研究有关路面检测的方向。第3章群智感知道路坑槽检测知识概述3.1 群智感知技术互联网在20世纪90年代进入中国,全球互联网经历了诸多发展之后现在正进入一个转折点,其中,一个重要标志就是迎来了物联网时代的到来。通过各种信息传感器并且按照各自的协议,物联网将各类物体与互联网相连接起来以达到进行信息交流的目的等,这使得物联网被认为是第三次信息产业的浪潮。在物联网的这个大环境下,人们通过各种移动设备中的各种集成的传感器以及已有的无线通信技术进行计算和通信。我们通过这些智能设备高效、精准的特征,可以捕捉到物理世界的大量且繁多种类的信息数据,并且对这些数据信息进行分析。这使得人类的各类生活因为这些智能设备有了极大的便利。移动群智感知作为一种新的感知模式被提出并成为了研究的热点,被大家所广泛的应用。移动群智感知是指一大群普通用户携带智能手机或者移动设备,有意识或者无意识的进行数据收集,完成一些以传统方式要耗费大量时间和物资的任务。这些普通用户携带的带有各种各样传感器的移动设备或智能手机作为群智感知的基本感知单元,并且这些传感器拥有越来越强大的感知和计算能力,依靠这些传感器,每位用户做出零散的贡献,以最终完成一个大型工程为结果,而且这些用户不需要知晓许多的专业知识,因为群智感知的用户大部分是一些非专业人士。群智感知就是物理上分散的个体,通过网络通信,实现个体与整体的共赢。在实际的群智感知应用中,关键在于使用传感器收集大量的数据。如果专门使用集成传感器的物理设备来采集数据,一方面达不到大量数据的要求,另一方面携带不便无法激励用户使用。而据移动情报公司Newzoo发布的全球移动市场年度报告中显示,2017年全球智能手机用户已达26亿,并且到2020年将达到36亿。同时,中国的智慧型手机用户最多,高达7.17亿。显然,智能手机已成为中国人必不可少的智能设备。而智能手机本身就集成了大量的传感器,包括陀螺仪、加速度计、光感、红外等等。而本文的城市路况信息采集系统则主要利用手机中加速度计和GPS的感知数据,上传到云端服务器供使用。群智感知框架由图3.1所示: 图3.1群智感知框架群智感知又分为用户有意识的群智感知以及用户无意识的群智感知。我们之前提到的依赖于行走或者正在开车的人通过主动参与的方式参与群智感知,这种活动便是用户有意识的群智感知。但是这种方式所带来的结果就是需要付出极大的人力物力的成本,需要一部分人放下手上现有的事情,投入一些精力去完成这件工作。而且一般都是无偿的社会感知任务,所以人们的参与度普遍不高。而且通过这种方式采集到的数据一般都是不同平台、不同格式、不同性质、不一定准确的,给数据的处理者带来极大的难度,而且信息容易出现失误以及滞后。而用户无意识的群智感知则可以规避这些问题,可以打破需要“人”实际参与的壁垒,把任务全都交给机器来做。这种方式带来的好处不可估量,节省了大量的时间、金钱成本不说,还节省了大量的人力物力,最重要的是使得数据的采集更加规范、及时、准确。3.2系统介绍本文要完成的系统为城市路况的信息采集系统,是用户无意识的群智感知应用,结合SVM等机器学习算法。高效且准确地采集手机传感器数据,经过大量数据的整合,分析出目标路段道路状况。系统的受众主要面向普通的驾驶员以及路政部门工作人员。一方面,可以在导航时优先选择平坦路段,提高驾驶的舒适性;同时可以辅助相关部门尽早发现问题路段并及时修复,提高道路安全性。3.2.1 系统概述一个完整的群智感知应用应该包括两个部分:从参与者端获取数据、处理数据并提供服务。因此有些系统采用CS(Client-Server)架构,将系统分为客户端(参与端)、中央服务器和用户三大部分,大致框架图3.2所示。在群智感知应用中的数据采集方式分为两类:用户主动参与式以及用户无意识参与式。如果采用主动参与式,则对于道路坑槽的检测判断主要依赖于人的主观感受和感官刺激,这种方式不仅存在一定的物理延迟、增加数据的错误率,同时每个人主观感受的不确定性,就会造成数据的多样化和不准确性。本文在参与端采集感知数据时,采用的是用户无意识的参与方式。在参与端的客户端,根据预先设置的时间间隔,定期向服务器上传传感器数据。此过程完全对用户透明,人感官上的误差,几乎不会影响数据的准确性。这种方式采集的数据是非结果的数字数据,可以对其进行统一的数据操作,使结果统一化。没有了主动参与式带来的问题,大大提高了系统的效率保证了实时性。 图3.2基于群智感知的路面坑槽检测系统总框图3.2.3基于Android的检测系统系统主要由Android移动客户端、中央处理服务器和智能手机使用用户三大部分组成,如图3.3所示。图3.3系统框架图(1)Android客户端完成参与者主动采集的数据,包含的信息有:智能手机当前网络时间、网络IP地址、加速度计三轴信息和GPS信息,其中IP地址就是每一台设备i的标识符。为了减少智能手机的资源消耗,吸引更多用户参与群智感知,每缓存300条<当前系统时间、网络IP地址、加速度计三轴和GPS地理方位记录,通过联网的方式,向中央伺服器传送1次数据。(2)中心服务器总共有3个模块:存储数据的模块、用于检测是否为坑槽的模块和为可坑槽划分等级的模块。所有Android客户端上传的数据由存储数据的模块保存,不同时间、地点主动参与的客户端及其各自采集数据可有不同的IP地址(IP1,IP2,…,IPi,…,IPN)还原。每一个客户端数据在单车检测坑槽模块进行预处理,并提取相关特征。采用支持向量机(SVM)检测其经过的坑槽,根据事先采集的数据训练集,将新采集的样本点与数据集的超平面进行比对,判断次样本点是坑槽还是平坦路段。对于坑槽路段,则使用k-means聚类算法检测其破损等级,并将破损严重坑槽标记于百度地图,同时将破损坑槽放入SVM新的训练数据集,作为下一次检测坑槽的依据。(3)查询用户可以通过智能手机进行导航时查看并考虑道路破损状况,路政部门则可以实时发现道路问题并提出相应的养护措施。3.3系统模块此基于群智感知的系统由三部分所构成,即系统客户端、中心服务器以及查询用户。后面三个小结将对这三个部分进行简述。3.3.1系统客户端 系统客户端基于群智感知的概念,主要工作是进行路面数据信息的采集。上一节有提到基于Andriod平台来进行检测,可以将基于本文概念的软件下载在移动设备或者智能手机上。系统客户端主要收集的信息是当前的时间、当前的IP地址、GPS信息以及加速度计的三轴数据信息。该系统客户端结构图如3.4所示: 这些信息会形成一条数据记录,当这些数据记录缓存到一定数量的时候,通过4G/3G/2G网络这些数据会被传送中心服务器中。3.3.2中心服务器 中心服务器总共有3个模块:存储数据的模块、坑槽检测模块以及划分坑槽等级的模块。 其中储存数据模块用来接收由系统客户端发送的数据记录,坑槽检测模块主要包括数据预处理、数据分片以及数据特征提取,其功能是通过不同的数据记录,判断是否为坑槽信息。数据预处理时,会剔除与目标无关的信息,并且对异步多源数据进行数据分类,其结构框图由图3.5可视。数据特征提取的作用主要是发现不同破损等级的坑槽之间的差别划分坑槽等级的模块主要是根据处理好的信息判断坑槽的破损等级。 图3.5系统客户端上传数据以及预处理的框图在坑槽检测模块中,其主要其功能是通过不同的数据记录,判断是否为坑槽信息。可以实现选取一个特征,利用SVM算法,来计算与训练数据中已知是什么类别的坑槽特征之间的距离。如图3.6所示。图3.6基于SVM算法的坑槽检测结构图 在划分坑槽等级的模块中,主要功能是检测所有系统客户端上传信息是坑槽的破损情况。主要利用k-means聚类算法来将未划分等级的坑槽进行分类。如图3.7所示 图3.7基于k-means聚类算法多车坑槽检测3.3.3查询用户 访问相关的网站用户可以通过查看地图来知晓当前城市道路坑槽分布的情况,由图3.8所示,除了普通市民通过此来选着更加平坦的路出行以外,最主要的是这些已处理过的检测结果可以为相关道路管理部门提供信息,可以及时的对有坑槽的道路进行养护。3.4本章总结本章介绍了群智感知及基于群智感知的道路坑槽检测系统所应用到的机器学习中的SVM算法,与此同时还介绍了系统的组成和各部分功能。并且介绍了用Andriod开发技术实现该系统的框架等第4章数据处理数据处理流程主要涉及采集数据、对数据做预处理、分片、特征提取、分类等五个步骤。首先将利用传感器采集到的数据做预处理,包括剔除离散点、对数据做放缩等,然后利用滑动窗口等方法获得数据片段,以片段为单位提取特征,得到特征向量,最后以此为基础,选取合适的分类模型,训练得到模型参数。在此过程中,优质的原始数据、合适的窗口大小、有代表性的特征参数、适当的分类模型等都将对实验结果有重大影响。数据处理流程如图4.1所示。本章将详细介绍如何通过基于群智感知思想以及Andriod平台的系统来收集路面数据信息,之后对这些数据信息进行预处理并且提取特征。图4.1数据处理流程4.1原始数据采集优质的原始数据是系统成功的基础,在本次实验中我们将手机绑在小车上,来模拟现实生活中将移动设备放置于汽车里。基于本校城市轨道交通学院同学所编写的app,STC,来记录start以后每0.02s各传感器的数据,STC工作界面由图4.2所示。主要是取得传感器中加速度计三轴的数值。所用小车如图4.3所示。因为图4.3左较大的车不稳定,因此最后我们所采数据都是有图4.3右侧小车所得。图4.2STC工作界面图4.3实验所用小车我们分别在平坦(图4.4),轻度坑槽(图4.5)以及重度坑槽(图4.6)的路面上检测。在每一种路况都记录几十条,每次记录时先将绑在小车上的app打开,并点击start,STC将开始记录传感器所得到的信息,当小车从静止到开始移动时,用另一个手机记录此刻的时间,并记录下来,以为下一步预处理以及数据分片提供便利。实验记录如图4.7。图4.4平坦路面图4.5轻度坑槽路面图4.6重度坑槽路面图4.7数据记录我们设想以后可以基于Android平台设计一个系统客户端完成用户主动参与的数据采集工作。采集到的数据主要包括Android手机当前时间、网络IP、加速度传感器数据和GPS信息等,其中IP标识了一个行车客户端i。装有加速度计的智能手机或者移动设备可以测量上下、左右、前后这六个方位的加速度的变化,因此,移动设备或者智能手机获取信息的质量与它们放置的位置有很大的关系。为了减少智能手机的资源消耗,吸引更多用户参与群智感知,每缓存n条<当前系统时间、网络IP地址、加速度计三轴和GPS地理方位>记录,通过联网的方式,向中央伺服器传送1次数据。或者采用参与式节能高效协同定位[11]的范式。另外,为方便做数据分类,每条记录都有一个“坑槽”或“平坦”的标识。但是有些特殊情况比如有略微凹陷或突出的井盖或者减速带等,这些采集的数据信息很有可能会被认为是坑槽,因为它们的信息与坑槽的数据信息极为相似,不易区分。在遇到这些数据之后可以通过确定这些特殊数据的经纬度来知晓它们的位置,最后将这些数据从库中删除。此外,为保证实验结果的稳定性,还应该尽量使不同类别的数据总量基本相等。4.2数据预处理在采集数据的时候,当放置智能手机或者移动设备的车辆在道路上行驶时,设备内置的传感器就会捕获加速度计的上下前后左右的数据信息,这表示了该车辆在三维空间的运动状态。在此,我们用X来表示在左右方向的加速度,左方向为正右方向为负,Y表示在前后方向的加速度,前为正后为负,Z表示加速度计在上下方向的加速度,向上为正向右为负。在测量过程中,不同情况下加速度计有可能产生的情况如下:(1)加速运行。在这种情况下,只会产生与车辆行驶方向一致的加速度,Y方向在很短的时间内会有变化,表现为正方向尖突。常见加速运行是车辆启动以及超车的时候。(2)减速运行。在这种情况下,只会产生与车辆行驶方向一致的加速度,Y方向在很短的时间内会有变化,表现为反方向尖突。常见减速运行是刹车的时候。(3)转弯。在转弯的时候,Y方向以及X方向的加速度会发生变化,一般转弯会减速。(4)正常路面,匀速行驶。X方向、Y方向以及Z方向上的加速度都不会发生明显的变化,路面平坦,不会有很大幅度的颠簸。(5)坑槽。车辆会有明显上下颠簸,有时候还会伴随突然的加速或者减速。这个时候Z反向、Y方向以及X方向上的加速度都会有明显的变化。在本次实验中,在手机中找到STC文件夹将其内容导入到电脑中如图4.8,该app会将数据自动生成为excel文档,文档中第一、二、三列分别代表加速度计中x、y、z轴的数据,最后一列代表时间戳,部分数据如图4.9。图4.8STC所获得的原始数据文件夹图4.9部分原始数据内容之后,人工筛选时长、数据量合适的数据进行数据分片。设想以后可以基于Android系统,通过客户端向中心服务器上传数据,并且作为唯一的上传通道。数据处理就在这个中心服务器中进行。数据预处理一般涉及三方面:去除直流分量、去除离群点、对原始数据进行缩放等。从信息论的角度来看,直流分量一般不含信息,即在车辆静止不动的时候的数据,去除以后相当于将数据平移到坐标轴附近;由于某些偶然因素,采集到的数据不可避免地含有一些离群点(即异常点),干扰实验结果,因此要予以去除;对原始数据做缩放一般是指对数据做归一化处理,归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内,它可以方便后续的数据处理,并保证程序运行时收敛加快。这些操作都在中心服务器中进行。4.3数据分片数据分片有两种方式,第一种是通过所记录的开始移动的时间戳向后手动选取连续的100条数据信息,图4.10,第二种是将所得到的原始数据生成连续的折线图,再根据所得的图的上下波折度来选取有用的信息,图4.11。在这里我采用了第一种方法来对数据进行分片。由于所需要的数据量较大,人工进行分片花费了不少的时间。最后对数据进行分片以后所得的文件夹进行标记是平坦还是颠簸路段。图4.11数据分片方法二图4.10数据分片方法一4.4数据特征处理 提取特征组成特征向量是一个至关重要的步骤,直接影响最终的实验效果。但是提取特征向量并没有统一的范式或者标准,更多的是依靠经验首先选取尽可能多的特征,然后观察特征效果后做筛选,类似于特征降维。因此我们首先将从时域、频域提取特征,最后加入一些统计特征,使得特征集合尽可能地丰富。本实验,对连续采集的原始数据信息进行分片以后,通过计算加速度计三个轴的指标的平均值aver、标准差stdev以及协方差cov来定义分别为如下公式,其中xi、yi和zi分别代表加速度计X、Y和Z轴某一时刻数值,、和为X、Y和Z轴数据的均值。(1)(2)(3)本章采用计算加速度计三个方向上的数据之间的协方差以及变化总特征的标准差特征来检测坑槽事件。检测坑槽破损情况阶段用坑槽经历的时间和加速度计三个方向数据变化的均值以及标准差的特征来表示4.5本章小结 本章具体介绍了基于群智感知的系统用户采集到数据之后进行数据处理的内容。在不同路况或者行车情况下,通过移动设备或者智能手机内置的加速度计获得的数据会有区别。分析这些差别将无关于坑槽检测的数据与坑槽数据进行区分,再对坑槽数据信息进行特征提取。第5章路面破损情况以及道路坑槽检测在第五章,主要介绍了在对原始数据进行处理,提取坑槽的数据信息之后,如何将机器学习中的SVM算法以及k-means聚类算法对路面是否破损进行判断的具体应用。5.1支持向量机(SVM)算法的应用SVM(支持向量机),于1995年由CorinnaCortes以及Vapnik提出。它是统计学领域中最年轻的内容,也是最使用的部分[12]。目前,SVM已经为机器学习以及神经网络的研究热点之一,并已有不错的研究成果[13]。 5.1.1SVM算法概述支持向量机是监督学习的一种模型,是机器学习的相关算法,该算法用于数据的分类和回归分析。要想实现基于SVM的应用,首先我们要判断目标数据是否线性可分。比较直观的理解,在一维空间,就是在坐标轴上是否可以找出一个点,使同一类别的点都位于此点的一侧;在二维空间,就是要找出一条线,使线两侧分别为面内不同类别的两组点;三维空间就是要找出一个分类面。如图5.1所示图5.1SVM超平面示意图因此,解决SVM问题的关键就是寻找两类问题的分界,也就是超平面(hiperplane),下面就以二维空间为例,简单介绍如何确定超平面,如图5.2所示:图5.2二维空间超平面选取示意图如图,平面有A-J共10个点,显然这组数据是线性可分的。首先我们找出两个类别的分界线,把这个样本集合分成两类就是Y对应的标签(1,-1)。这样同一类的A-F在y=+1的上方,同类别的G-J位于y=-1的下方。然后构造一个超平面方程组,由公式(4)表示:(4)把这个方程组合并成一个数学表达式,由公式(5)所示:(5)我们已知A,B,C,D,E,F,G,H,I,J,K这几个点的坐标,那就要反求w和b,只要间隔最大,那么与间隔平行且在间隔中间的那条线就是我们要找的方程了。这样就转换了一个方法,利用求最大间隔进而求超平面。我们可以类比点到直线的距离公式,进而求出最大间隔,如公式(6)所示:(6)5.1.2基于SVM算法的检测适当的分类算法能够帮助我们既快又准地识别片段类别,常用分类算法包括SVM、k-nn、RandomForest、k*等。以SVM算法为例,截取连续采集的m个点数据为一个处理单元Bm,对其提取协方差cov、平均值aver和标准差stdev。Bm的定义如下:(7)其处理流程如下:初始化阶段:在训练数据集中存放已知类别的若干条平坦以及颠簸事件的aver和stdev及其相应的类别label记录。之后要实时计算当前采集到的数据信息的cov以及stdev,用SVM算法判断当前信息的类别,从中选出是坑槽或者是平坦的事件。若为坑槽事件则进行下一步用k-means进行聚类处理,流程如图5.1所示。图5.1SVM算法流程图k-means聚类算法的应用k-means算法是聚类算法中最著名的算法之一。5.2.1k-means聚类算法概述在k-means聚类算法中常用的距离度量为标准欧氏距离。作为聚类算法中较为经典的算法,k-means有着以下优点:可以根据较少的已知聚类样本的类别来确定部分样本的分类。K-means具有优化迭代功能,针对初始监督学习样本分类不合理的地方进行了优化。对于部分小样本,聚类时间复杂度较小。聚类过程[15]如图5.2所示: 图5.2聚类过程5.2.2基于k-means聚类算法的检测在线处理阶段:通过使用SVM算法检测坑槽之后,则使用k-means聚类算法来检测它的破损程度。在这里,k的值取为2,质心大的簇对应破损严重坑槽,质心小的簇对应破损轻的坑槽。图5.3为具体检测破损等级算法的流程图。图5.3k-means聚类算法流程图 实验过程及结果5.3.1原始数据采集本文实验首先采集原始数据对数据集进行训练,选取道路是校园内平坦、轻度颠簸以及重度颠簸路段。实验将一部安装采集加速度计数据软件的Android手机固定在小车的顶上,为了实验的完整性,我们全程没有更换汽车及手机,也没更改手机的位置。整个实验结束后,再次检查采集到的数据是否有效,采样频率是否正常。如果没有问题,便完成了前期的实验。部分数据信息采集如表1表2所示:X轴Y轴Z轴时间戳-1.149224.4053318.1402850-0.737414.587298.2456320-0.076614.2425268.532935360.1436523.4859588.67658753-0.201113.418929.06923675-1.302453.4763819.66299893-0.718263.17959.864111113-0.852343.897769.710882133-0.861912.3463188.791509153-1.340752.3942028.657434173-0.325611.1779478.714894193……-0.900225.1427458.437167578113-0.861914.8841717.929596578132-0.842764.8075577.613562578153-0.794885.008677.795521578174-0.651225.2863977.843405578192-0.459695.4300498.494628578213-0.746995.5832789.097966578239-0.871495.4204738.983045578255-0.871495.219368.983045578273-0.861915.3534358.379706578294-0.833185.5737018.101978578313-0.928955.5737018.034941578333-1.168375.69828.054094578353表1第一次实验数据(坑槽路段)X轴Y轴Z轴时间戳0.7852980.9672579.24161800.478840.85233610.0556520-0.746991.4844059.203311400.9481040.4692648.52335862-0.861911.4460988.590396802.106898-0.555468.8777100-1.877054.1563349.423578122-1.015145.037411.0229142-3.562574.44363810.87925162-0.43096-1.158799.9311491802.9592331.74297910.67814200……0.517148-0.718269.950302350110.488417-0.593769.873688350320.641646-0.440539.797073350510.497994-0.335199.634268350710.593762-0.392659.854534350910.574608-0.344779.710882351110.536301-0.268159.701305351310.507571-0.181968.504205351520.162806-0.019159.002198351710.612916-0.134089.423578351930.469264-0.296889.385271352110.6608-0.162819.509769352300.517148-0.095779.73003635250表2第二次实验数据(平坦路段) 采集到原始数据之后,对这些所得到的数据进行分析。测试数据(部分数据)如图5.4和图5.5。以红色来代表加速度计的z轴,以绿色来代表加速度计的x轴,以蓝色来代表加速度计的y轴。图5.4第一次实验图像(坑槽路段)图5.5第二次实验图像(平坦)为了更清楚的说明,计算出加速度的矢量和,如图5.5和图5.6:图5.5坑洼路段 图5.6平坦路段5.3.2数据分片手动对已采集到的数据以及所记录的时间戳进行分片。图5.7为某一分好片的文档。 图5.7分片5.3.3数据特征提取在此,我们使用了WEKA软件。这是一个在JAVA环境下开源的机器学习和数据挖掘的软件,并且有GUI界面,因此对数据进行处理的结果都是可视的。 WEKA界面如图5.9所示。图5.8WEKA界面 在这里我们使用weka来选择之后要使用的特征,如图5.9所示图5.9十二种特征值从中我们选取以下三个特征值如图5.10-5.12:图5.10cov图5.11aver图5.12stdev 图5.13是用python绘制出的以分别为三个特征(cov、aver、stdev)的x、y、z轴的点的三维散点图:图5.13三维散点图代码用python来实现svm分类器,实验代码如下:importos

importnumpyasnp

frommpl_toolkits.mplot3dimportAxes3D

importmatplotlib.pyplotasplt

fromsklearn.model_selectionimporttrain_test_split

fromsklearn.ensembleimportAdaBoostClassifier

fromsklearn.treeimportDecisionTreeClassifier

fromsklearn.svmimportSVC

slice=50#分片点数

defreadData(path="data"):

files=os.listdir(path)#读文件目录

x,y=np.zeros((len(files),slice,3),dtype=np.float),np.zeros(len(files))

data_index,flag=0,True

forindexinrange(len(files)):

fileName=files[index]

_,state=fileName.split("_")

f=open(path+"/"+fileName,"r")#读具体文件

foriinrange(slice):

line=f.readline()#从文件读取整行

ifnotline:break

d1,d2,d3=line.split(",")[:3]#用,来分隔

try:

x[data_index][i]=float(d1),float(d2),float(d3)

except:

flag=False

break

ifflag==True:

ifstate=="dump":y[data_index]=1

ifstate=="flat":y[data_index]=0

plt.title(fileName)#标题化

plt.plot(x[data_index][:,0])

plt.plot(x[data_index][:,1])

plt.plot(x[data_index][:,2])

d=np.sqrt(np.sum(np.array(x[data_index])**2,axis=1))

plt.plot(d)

plt.show()

data_index+=1

else:

x=np.delete(x,data_index,axis=0)

y=np.delete(y,data_index,axis=0)

flag=True

returnx,y

deftransferData(x):

newX=np.zeros((len(x),3))

foriinrange(len(x)):

data=x[i]

data_x,data_y,data_z=data[:,0],data[:,1],data[:,2]

x_cov=np.max([np.linalg.det(np.cov(data_x,data_z)),np.linalg.det(np.cov(data_y,data_z))])

x_aver=np.mean(np.sqrt(np.sum((data-np.mean(data,axis=0))**2,axis=1)))

x_stdev=np.sqrt(np.mean((np.sqrt(np.sum((data-np.mean(data,axis=0))**2,axis=1))-x_aver)**2))

newX[i]=x_cov,x_aver,x_stdev

returnnewX

defoutputTrainData(x,y,fileName):

f=open(fileName,"w")

foriinrange(len(x)):

f.write("%s1:%s2:%s3:%s\n"%(y[i],x[i][0],x[i][1],x[i][2]))

f.close()

defoutputTestData(x,y,fileName):

f=open(fileName,"w")

foriinrange(len(x)):

f.write("%s1:%s2:%s3:%s\n"%(y[i],x[i][0],x[i][1],x[i][2]))

f.close()

if__name__=="__main__":

x,y=readData()

x=transferData(x)

vaildPoints=x[:,2]<4

x,y=x[vaildPoints],y[vaildPoints]

trainX,testX,trainY,testY=train_test_split(x,y,test_size=0.33,random_state=42)

outputTrainData(trainX,trainY,"train.svm")

outputTestData(testX,testY,"test.svm")

os.system("pythongrid.pytrain.svm")

os.system("svm-train.exe-c8.0-g0.5train.svm")

os.system("svm-predict.exetest.svmtrain.svm.modeltest.predict")实现k-means的主要代码如下:trainX,testX,trainY,testY=train_test_split(x,y,test_size=0.33,random_state=42)clf=KMeans(n_clusters=2)

s=clf.fit(trainX,trainY)

predY=clf.predict(testX)

correctness=np.zeros(len(testX))

correctness[predY==testY]=1

print("Accuracy:%s"%np.mean(correctness))estimator=KMeans(n_clusters=2)#构造聚类器

estimator.fit(x)#聚类

label_pred=estimator.labels_#获取聚类标签

#绘制k-means结果

x0=x[label_pred==0]

x1=x[label_pred==1]

plt.scatter(x0[:,0],x0[:,1],c="red",marker='o',label='label0')

plt.scatter(x1[:,0],x1[:,1],c="green",marker='*',label='label1')

plt.xlabel('petallength')

plt.ylabel('petalwidth')

plt.legend(loc=2)

plt.show()5.3.4SVM以及k-means结果比较图5.13SVM分类精确度图5.14k-means分类精确度SVM是督促学习的分类器而k-means是非督促算法的分类器,在本实验中可由图5.13以及图5.14明显看到,本实验在各数据条件都一样的情况下对实验数据进行二类划分,SVM算法的精度要高于k-means聚类算法的精确度。因此,在本实验中SVM更适合用来进行对数据进行平坦和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论