PADS:一种基于机器学习的可靠坑洼检测项目系统

1 引言

路面状况不佳可能导致车辆损坏、高维护成本甚至交通事故。根据美国联邦公路管理局的调查[1],每年有成千上万的人因道路质量差和路况不良而在公路和道路上受伤或死亡。因此,保持良好的道路状况对于减少交通事故至关重要。

然而,由于极端天气条件、交通拥堵和低道路质量,维护路面是一项具有挑战性的任务。为了保持良好的道路状况,需要频繁维修,因此迫切需要一种可靠且低延迟的道路状况监测系统。这种系统在提醒道路维护人员修复不良路面时将特别有用。

然而,传统监控系统在以下两种情况下不适用于此类场景:(1)传统监控系统旨在对道路状况进行整体监测,包括路面图像采集、路面形状检测、道路立体图像绘制等。通常,这种整体监控将耗费大量时间,显然无法实现低延迟[2,3]。(2)传统监控系统从两个主要来源收集数据——路面中的统计传感器和配备特定道路监控传感器(如探地雷达(GPR))的车辆[4]。受成本限制,这些系统无法扩大规模以监控城市中的大部分道路。

本文中,我们提出了PADS,一种简化、低成本且可靠的路面监控系统,能够在检测坑洞时实现低延迟。考虑到传统系统的缺点以及保持道路良好状况的需求,我们的系统主要关注三个方面:实现检测坑洞的低延迟、降低经济成本以及提高检测精度。首先,我们在系统中仅保留坑洼检测功能以实现低延迟目标。道路上的坑洞数量是判断道路状况是否良好的有力依据,我们可以利用这一特征来获取道路状况的整体情况。此外,我们还可以利用坑洞位置报告帮助道路维护人员快速修复破损的路面。其次,PADS采用“动态”传感器——即安装在车辆上的传感器,以降低成本[5]。由于车辆具有移动性,它们可以在城市道路中随机分布,理论上只要拥有足够多配备传感器的车辆,我们就可以监测几乎所有的道路。相比在每条道路上安装静态传感器,将传感器安装在若干车辆上可以显著降低经济成本。最后,错误的坑洞检测会使系统失去可信度,并增加维护成本。为了提高检测精度,我们的方法决定采用机器学习方法[6,7]。

该 K MEANS算法[8,9]用于将道路数据聚类为两类,然后计算出更精确的阈值,以提升检测精度。在评估方面,我们展示了由本系统生成的坑洼标记地图,并将我们的坑洞检测算法的精度与基本阈值算法进行了比较。

总之,我们做出了以下主要贡献:
– 我们提出了一种在检测坑洼时具有低延迟的可靠坑洼检测系统。
– 我们的设计采用机器学习方法,相较于基于阈值的坑洼检测算法,提高了坑洼检测的精度。
– 我们将系统部署在私家车上,能够以低延迟检测道路上的坑洞。

本文的其余部分组织如下:第2节描述背景与动机。第3节讨论我们的系统设计,包括硬件平台和架构,并包含主要算法描述及其复杂度分析。第4节介绍我们方法的评估,包括坑洼标注地图、一条道路上的z轴加速度图表以及准确性分析。在第5节中,将讨论相关工作。最后,我们在第6节得出结论。

2 背景与动机

在本节中,我们首先介绍不良道路状况引发的危险。接着指出传统监控系统的缺点,并解释其为何无法用于保持道路的良好状态。最后,我们讨论我们的动机。

2.1 路况不佳引发的危险

美国国会在2015年末罕见地通过了一项两党合作的努力,即《2015年地面运输再授权与改革法案》,该法案将在五年内为联邦公路维护提供2330亿美元的资金,相当于每年460亿美元[10]。事实表明,每年政府都需要花费大量资金来维护道路状况。然而,尽管美国政府已投入巨额资金用于维护道路状况,其道路状况依然很差。根据研究,在美国道路状况最差的城市中,路况差的道路比例超过50%。保持道路状况良好是一项极具挑战性的任务,但政府必须完成这项工作,因为糟糕的道路状况可能引发诸多危险。

道路状况不佳可能引发多种危险。首先,撞上坑洼可能导致车辆损坏。这些损坏不仅可能影响汽车底盘,还可能导致轮胎穿孔和钢丝轮辋受损。大多数情况下,这些损坏仅需支付维修费用即可解决。然而,更严重的情况则可能导致交通事故。根据统计数据,每年约33000起交通事故死亡中,有三分之一的事故与道路状况不佳有关[10]。此外,随着未来几年车辆交通的增加,事故数量预计将进一步上升。

2.2 传统监控系统的缺点

传统监控系统在帮助道路维护人员快速修复路面方面作用有限。这些系统旨在对道路进行整体检测,因此会包含许多仅针对路面修复而言不必要的检查,从而导致长时间延迟。此外,传统监控系统通常使用道路上的传感器或特定的监测车辆。受限于成本,传统监控系统难以扩大规模,因而无法覆盖城市中的大多数道路。例如,当前用于测量道路状况的一种设备由加速度计、测距仪器和图形显示器组成,价格非常昂贵[11]。这类道路状况系统可能耗资8000到22万美元。这两个缺点决定了传统道路监控系统无法应用于快速修复路面以保持良好路况。

2.3 动机

近年来,私家车越来越普及。为了保障驾驶安全,政府频繁进行道路维修以保持良好的路况。因此,如何快速识别路况差的道路变得尤为重要,因为道路维护人员无法在未识别的情况下对路况差的道路进行维修。幸运的是,道路监控系统可能有助于道路维护人员实现这一目标。然而,传统的道路监控系统存在延迟长和高成本的问题,因此无法有效应用于快速识别路况差的道路。这促使我们提出一种可靠的坑洼检测系统,在检测坑洞时具有低延迟。为了降低成本,我们仅选择三轴加速度计传感器和GPS模块作为数据采集设备。为了提高检测精度,我们采用机器学习方法计算更精确的阈值来识别坑洞。

3 PDSML设计

在本节中,我们首先讨论系统所使用的硬件平台。然后介绍系统的架构。最后,探讨主算法及其复杂度分析。

3.1 硬件平台

我们降低了货币成本,特别是硬件方面的支出,以使我们的系统更易于扩大规模。为实现这一目标,系统中仅使用了廉价的传感器和低成本的板卡。数据采集使用了一个加速度传感器和一个GPS模块。在对原始数据进行预处理并将过滤后的数据发送到中心服务器时,我们采用树莓派作为路由器。选择树莓派而非其他板卡的原因在于其相对较高的计算性能,因为我们决定在路由器上运行过滤算法。优先选用树莓派的另一个优点是,该板卡具有内置Wi-Fi模块,可用于数据传输,无需额外的外部数据传输模块。系统硬件平台的最后一个组成部分是一个通用的中心数据服务器。忽略服务器成本,整个硬件平台的成本低于60美元,与传统道路状况监测系统的成本相比,这是一个可以接受的价格。 示意图0

3.2 软件架构

PADS 采用了一种由四层组成的基本物联网架构[12]。 示意图1 第一层是感知层,包含用于分别采集三轴加速度和位置的传感器。第二层——网络层中的路由器(即树莓派3)接收原始数据并过滤噪声数据。之后,路由器将发送经过滤的数据使用内置Wi-Fi模块将数据发送到中心数据服务器。我们系统最关键的部件是第三层——数据处理层。在这一层中,PADS会删除重复数据,因为我们在道路上部署了多个设备。在获得去重数据集后,我们仍需对数据进行“校准”。由于我们的设备并未完全水平安装在前轮胎上,因此检测到的坑洞位置将不准确,需要对位置数据进行“校准”。数据采集延迟以及安装传感器车辆的速度也会影响坑洞位置的精度。综合考虑这些因素后,我们对数据进行“校准”以消除误差。当系统获得足够简化且精确的数据后,便可训练一个坑洞分类器,进而在利用该分类器检测坑洞。最后,在应用层中,我们通过谷歌地图API将所有检测到的坑洞标记在谷歌地图上。

3.3 数据处理

我们的系统包含四种主要算法。然而,过滤算法(一种Z-DIFF算法,利用Z轴加速度差值判断是否应忽略该数据)非常简单,无需详细讨论。因此,算法部分将主要分为三个部分:冗余解决算法部分、校准算法部分和坑洼检测算法部分。

冗余道路数据消除算法: 第一部分是关于冗余道路数据消除算法。该算法用于减少由不同车辆或同一车辆在不同时段于相同位置采集的冗余数据。我们使用根据经纬度数据计算的距离来判断新数据是否为冗余数据。计算公式为:

$$
a = \sin^2(\Delta\phi/2) + \cos(\phi_1)\cos(\phi_2)\sin^2(\Delta\lambda) \
c = 2 * \text{atan2}(\sqrt{a}, \sqrt{1 - a}) \
\text{Distance} = R * c
$$

在上述方程中,$\phi$表示纬度,$\lambda$表示经度,R表示地球半径。然而,每次新数据到来时都计算距离可能是一项耗时的任务,特别是当搜索空间变大时。为了实现检测坑洞的低延迟,缩小搜索范围是必要的。我们为每条数据赋予道路标签。当一条新的“正常”数据(z轴加速度无明显视觉变化)到达服务器时,PADS使用地图API获取其道路信息,并检查系统是否已存储该道路的数据。如果该道路的路况信息已在系统中存储,则系统将忽略该数据。在我们的系统中,只有“正常”数据可以被忽略,任何可能代表坑洞的数据都将被存储到数据库中。不幸的是,尽管与对每条数据都计算距离相比系统花费的时间更少,但每当新数据到来时,系统仍需查询道路信息。

由于每次搜索道路信息仍然是一项耗时的任务,我们的系统必须找到一种新的方法来标记数据。事实上,车辆经常在十字路口停下,此时车辆的速度会变为零。因此,GPS收集到的零速度数据可能表示车辆已到达十字路口。该思路很简单:PADS 会首先将“正常”数据存储在缓冲区中,而不立即搜索其道路信息(我们将为第一条数据搜索道路信息),直到收到一条速度值为零的新数据。然后,PADS 会比较第一条数据与“零速度”数据之间的道路信息。如果它们位于同一条道路上,系统将忽略两者之间的所有“正常”数据。该方案的缺点是,当零速度数据实际上是在另一条道路上采集时,我们仍需搜索每条数据的道路信息。然而,最坏情况下的成本与未优化算法相比几乎相同。

校准算法: 第二部分是关于校准算法。校准算法用于提高位置的准确性。在校准数据时,我们需要考虑数据采集延迟和速度,以修正由于座椅与前轮胎之间距离引起的数据测量误差。我们可以利用三轴加速度来计算车辆的方向,然后结合方向和距离信息获得更精确的位置。然而,这种直接方法可能耗时较长。

为了实现低延迟目标,我们需要一种更简单的方法。基于座椅与前轮胎之间的距离很短,并且可以假设在此期间车辆的速度和方向保持稳定的事实,我们可以用后续采集到的数据位置信息替代当前数据的位置信息,从而获得更准确的位置。我们的系统只需计算车辆行驶座椅到前轮胎这段距离所需的时间延迟。

我们定义 $\nu$ 为车辆的速度,$\psi$ 为GPS模块采集数据的频率(GPS模块与加速度传感器的数据采集频率相同),$\tau$ 表示座椅与前轮胎之间的距离。该延迟可表示为:

$$
\text{Latency} = \left\lfloor \frac{\psi \tau}{\nu} \right\rfloor
$$

在计算出延迟后,我们可以对数据进行校准。

3.4 复杂度分析

我们算法中最耗时的部分是坑洼检测部分。为了减少延迟,我们的系统决定定期更新坑洞阈值。在大多数情况下,PADS仅使用已计算的阈值来判断车辆是否遇到了坑洞。因此,在这种情况下,检测算法的复杂度为 $O(n)$。当系统需要更新阈值时,检测坑洞的复杂度主要取决于K MEANS CLUSTER算法[16,17]的复杂度。通用的欧几里得空间d和簇k将决定 K MEANS CLUSTER的复杂度。对于我们的系统,d和k均等于2(即2个属性 x axis和 z axis)。因此,复杂度为 $O(n^5 \log n)$。尽管 K MEANS CLUSTER的性能不够好,但由于更新阈值的频率较低,检测算法的复杂度在可接受范围内。

4 评估

在本节中,我们首先描述用于评估系统的实验环境。其次,我们展示了一条道路上的坑洼标记地图和z轴加速度图表作为实验结果。最后,我们比较了我们的检测算法与基础阈值算法之间的精度。

4.1 实验设置

如表1所示,我们使用ADXL345和UBLOX NEO-6M构成感知层。由于树莓派引脚数量有限,我们采用Arduino作为中间数据采集板,而不是将传感器直接连接到树莓派。该设计的另一个意义在于实现系统松耦合。将路由器与感知层分离,可以在不修改路由器代码的情况下更方便地更换传感器。我们使用SPI协议将板与ADXL345连接,使用I2C协议将板与GPS模块连接。采用两种不同协议的好处是避免引脚使用上的冲突。由于无需共享引脚,我们可以仅用一块板轻松实现整个系统。然而,由于ADXL345工作在5伏特系统,无法直接连接到Arduino,因此需要一个逻辑电平转换器将5伏至3.3伏进行转换。最后,我们通过USB线缆将Arduino连接到树莓派。将所有设备固定在车辆座椅上后,我们的实验平台搭建即完成。

Name 型号 接口 分辨率样本 rate 精度 电电源源
三加轴速度计 ADXL345 SPI I2C 最高16克 最高 3200赫兹 4毫克/最低有效位
2.5米圆概率误差
2.0伏特至
3.6伏特
2.7伏至
GPS模块 优北罗 NEO-6M UART USB SPI 双线式串行总线(I2C兼容) N/A 最高
5赫兹电压
3.6伏特
逻辑电平转换器 5伏至3.3伏 逻辑电平转换器 N/A N/A N/A N/A 5伏或3.3伏
Data 采集板 Genuino UNO UART USB
SPI I2C
TWI
N/A N/A N/A 5 v
路由器 树莓派 Pi 3 UART USB SPI I2C WIFI N/A N/A N/A 2.5安培@5伏特

4.2 结果

我们系统的用户界面是一个网页上的坑洼标记地图。此外,还利用传感器数据直接绘制了车辆在一条道路上的加速度数据图表作为副产品。显示了车辆在一条道路上行驶时的z轴加速度。图中,时间表示数据采集时间。从图中可以看出,车辆的z轴加速度存在明显的视觉变化。

为了评估我们的系统,我们首先使用z轴加速度数据及其道路信息来确定哪些区域可能存在更多的坑洞。我们优化了工作负载以提高实验效率[18]。之后,我们在该区域多次驾驶配备实验设备的汽车。利用这些数据,我们的系统会检测该区域的坑洞。为了使地图更加清晰,我们手动去除了不属于主干道的所有坑洞。最终,我们得到了一张坑洼标记地图。展示了我们的系统生成的最终坑洼标记地图。在这张地图中,我们使用红色标记标出了系统在G93高速公路周边检测到的坑洞。

在分析结果后,我们发现本系统实际上无法将坑洞与道路上的偶然性道路异常(如紧急制动)区分开来。事实上,我们的系统只能区分坑洞与正常道路数据。然而,这些偶然性道路异常在同一位置多次出现的可能性很小。因此,本系统仅将被多次检测到的坑洞视为真正的坑洞,以区分坑洞与偶然性道路异常。

最后,我们将评估系统的检测准确率。获取测试数据集最简单但最耗时的方法是进行实地考察。然而,我们被禁止在许多道路上停车检查坑洞。为了解决这个问题,我们驾驶测试车辆在特定区域道路多次行驶,然后将每次检测到的坑洞数据作为道路上实际存在的坑洞,构成我们的测试数据集。设 $N_{\text{non pothole detection}}$ 为未被检测到的坑洞数量,$N_{\text{pothole wrong detection}}$ 为被错误判断为坑洞的正常道路数据数量,$N_{\text{detection}}$ 表示总的测试数据集的数量。我们将检测坑洼的精度定义为:

$$
\text{Accuracy} = 1 - \frac{N_{\text{non pothole detection}} + N_{\text{pothole wrong detection}}}{N_{\text{detection}}}
$$

结果表明,与z轴上的简单阈值算法相比,我们的坑洞检测算法在检测精度上确实有所提高。

5 相关工作

道路质量聚类系统。 自动道路质量聚类系统已利用三轴加速度计对道路质量进行排序[19]。该系统使用加速度计数据将道路根据其质量聚类为三类。然而,它无法定位道路上的坑洞,对于快速修复路面作用有限。

基于智能手机的坑洼检测系统。 当前使用配备传感器的车辆进行坑洼检测的系统通常基于智能手机。这些系统采用智能手机上的三轴加速度计和GPS作为车载设备来检测坑洞[13,20–23]。然而,这类系统需要更多人为干预,无法实现自动化。此外,由于移动电话硬件的差异,基于智能手机开发的系统难以推广。

使用阈值算法进行坑洼检测。 在道路上检测坑洞最简单的方法是使用z轴的阈值算法[13]。依赖特定阈值来检测坑洞的方法虽然简单且延迟最低,但其精度受到质疑。此外,该特定阈值无法适用于不同的道路状况。

6 结论

本文描述了一个坑洼检测系统的设计、实现与评估。我们使用三轴加速度传感器和GPS模块来采集原始数据。通过使用低成本的传感器和板,我们的设备成本仅为约60美元。为了过滤数据,我们采用了简单的Z-DIFF算法。我们已经解决了采集数据的冗余问题,并校准了测量误差。为了提高检测精度,我们采用了机器学习方法。我们分析了检测算法的复杂度。在评估部分,我们展示了由系统生成的坑洼标记地图,并显示了一条道路上的z轴加速度。最后,我们通过与简单阈值算法进行比较,评估了检测坑洞的精度。总体而言,我们开发了一个在检测坑洞方面具有低延迟的可靠坑洼检测系统。

更多推荐