常 莹, 蔡蓉宾
1.上海城建城市运营(集团)有限公司 上海 200023 2.上海市政养护管理有限公司 上海 201103
市政道路是城市公共基础设施的重要组成部分之一,城市公共基础设施的建设和维护则是衡量一个地区经济状况的重要指标。雨水、老化、超重车辆挤压等许多因素都会对市政道路健康状况产生严重影响,所导致的各种路面病害不仅给行车带来安全隐患,而且对车辆本身造成损坏。对此,各国每年都会为市政道路维护和修缮投入大量预算资金。美国联邦公路管理局于2013年发布的一项统计报告显示,美国公路网总长已达412万mi(1 mi=1.609 34 km),政府部门每年需投入超过300亿美元的资金来新建市政道路及维护、修缮已有的市政道路。
高效实施市政道路日常养护工作,前提是需要一套稳定的监控巡检系统。若依靠人工进行日常目视检查,则虽然直观有效,但是非常耗时耗力,效率低下,并且人工成本在日益提高。为改善市政道路人工日常巡检方式性价比低的情况,技术人员研发了各种自动路面病害检测方法,主要包括基于振动传感的检测方法、基于激光扫描探伤的检测方法、基于计算机视觉图像处理的检测方法等[1-6]。采用基于振动传感的检测方法,成本较低,但由于受到振动传感器与路面接触部分的限制,无法大规模进行应用。采用基于激光扫描探伤的检测方法,虽然能够提供准确的路面信息,但是成本高昂,并且在实施过程中,需要对相关路段进行封闭。采用基于计算机视觉图像处理的检测方法,虽然成本低廉,但是由于还处于研究初期,缺乏足够的精准度。近几年,图像分析技术快速发展,在交通流量分析、灾害预警、图像搜索等方面进行应用,取得了令人较为满意的结果。目前,技术人员正在推进图像分析技术在路面病害识别方面的研究。一些研究人员开始采用最新的深度学习技术来开发基于计算机视觉的路面病害自动检测方法。但是,这些方法大部分仅仅能够区分路面是否有损伤,或仅仅能够区分不同种类的裂缝,如横向裂缝、纵向裂缝、龟裂等。在实际场景中,市政道路养护单位在开展维修作业之前,还需要明确路面病害的具体类别,如坑塘、裂缝,或其它病害。笔者基于卷积神经网络,对多类别路面病害进行识别研究,通过对不同类别路面病害样本进行训练,得到能够有效识别多达八种不同类别的分类器,识别准确率最高可达0.934 8。
根据路面病害具体情况,设计了专门针对路面病害的检测识别深度卷积神经网络框架。这一框架基于最新的YOLO算法第三版目标检测网络,提出用九个锚(anchor)进行检测,这些锚是根据各类别道路病害样本聚类得到的。原始YOLO算法中用五个锚进行检测,考虑到路面病害样式较多,形状变化大,并且不是刚性变形,与人脸、物体等检测对象完全不同,对于传统的基于边框进行检测而言是一种挑战,因此决定使用更多个不同尺度的锚去进行检测。原始YOLO算法目标检测框架原理如图1所示。图1中,(x,y)为锚框(anchor box)中心点坐标,w为锚框宽,h为锚框高。
图1 原始YOLO算法目标检测框架原理
对于一些路面病害而言,差异性较小,如裂缝与路面拼接处的接缝、线性裂缝与龟裂,两者之间在视觉上的差异非常小。为了能够得到可以区分差异性较小的不同种类路面病害的检测方法,采用一种在人脸识别中较为经典的损失函数——三元组损失函数。采用常规三元组损失函数时,为了能够描述整个数据集的分布,需要尝试所有可能的三元组组合。随着数据量的增大,三元组组合的数量会成指数级增加。可见,怎样合理、高效地采样,进而选取具有代表性的三元组,是亟需解决的问题。笔者受线性判别分析启发,设计了一种新的选取三元组的方法。区别于常规三元组损失函数,新方法聚焦于样本类别层面,而并非每个样本个体,即利用样本聚类后形成的各类别中心来代表某个类别的整体分布情况。对于特别情况,在低维度空间中,使输入的样本尽可能接近自身所属类别的中心,同时尽可能远离其它类别的中心。如图2所示,假设一个数据集包含k个类别的样本,每个类别有n个样本,采用常规三元组损失函数,会有n(n-1)k个可能的三元组组合;若采用新的基于类别中心的三元组损失函数构建方法,则需要k-1个三元组,这样可以大大减少三元组数量,从而显著降低训练模型的成本。
图2 三元组损失函数原理对比
YOLO是一个专为目标检测任务而设计的深度神经网络算法,能在取得较高多类别平均识别准确率均值的同时,具有较快的运算速度[7]。另外,YOLO算法能够依靠单独一个卷积神经网络来预测目标的区域和所属类别。YOLO算法的一个优势特征是处理速度相当快,原因是YOLO算法将目标检测问题仅仅作为回归问题来处理,通过考虑图像背景信息来检测候选目标。在输入一张待检测图像后,YOLO算法最终输出候选目标检测边框的坐标,以及推理的置信度。在原始YOLO算法中,以Darknet19为主干网模型,该模型由19个卷积层和5个池化层组成。
Tiny YOLO算法第二版是YOLO算法第二版的简化版本之一,构建了一个具有较高实时性,用于检测多达20种不同类型目标的卷积神经网络模型,由9个卷积层和6个池化层组成。相较于原始YOLO算法,Tiny YOLO算法的优势是处理速度更快,缺点是由于主干网络层次较浅,无法提取高层次特征,检测准确度较低[8]。
VGG16是由Simonyan和Zisserman于2014年在ImageNet大规模图像识别挑战赛上提出的一种算法,构建了16层卷积神经网络模型,包含13个卷积层、3个全连接层、5个池化层[9]。由于具有深度模型层次,VGG16算法在2014年ImageNet大规模图像识别挑战赛,以及对微软Common Objects in Context数据集检测方面均取得了不错的成绩。
MobileNet算法能够达到与VGG16相当的识别准确率,并且仅仅使用了后者1/30的计算资源和模型尺寸[10]。MobileNet算法构建了专门用于各种移动平台视觉应用程序领域进行高效推理的深度卷积神经网络模型,模型的核心特点和构建基石是深度可分离卷积。这种卷积可以将一个标准卷积分解为一个深度(DW)卷积和逐点(PW)卷积,从而可以有效降低计算成本,减少参数数量。
Inception算法第二版和第三版能够在不增加参数数量、不提高计算复杂度的前提下,通过引入所谓Inception单元,对原有卷积神经网络进行升级,从而提升原有网络的深度和广度[11]。
笔者在Linux操作系统下TensorFlow系统中完成训练和测试,中央处理器选用2 GHz第三代英特尔至强E5-2683处理器,图形处理器选用英伟达泰坦XP处理器,操作系统选用乌班图18.04版本,由TensorFlow和Keras完成算法编程。
用于路面病害识别算法训练及测试的数据集来自2018年电气和电子工程师协会大数据杯挑战赛中的道路损伤检测与分类挑战赛,是车载智能移动电话采集的日本千叶县市原市、千叶县千叶市、爱知县长久手市、静冈县沼津市、北海道室兰市、东京都墨田区、东京都足立区高清路面图片。每张图片都由手工标记了一个或多个感兴趣区域,用矩形框坐标进行标记,作为真值标记边框,每个真值标记边框给定一种路面病害类别。
路面病害识别算法训练及测试数据集见表1,训练样本总量为12 397,测试样本总量为3 038,合计为15 435。数据集中的路面病害分布与占比情况如图3、图4所示。
表1 路面病害识别算法训练及测试数据集
图3 训练及测试数据集中路面病害分布
图4 训练及测试数据集中路面病害占比
交并比是视觉目标检测任务评价体系中的一个评价标准,指算法输出的目标边框与真值标记边框的重叠程度,即目标检测结果与事先人工标定好的真值的交集除以目标检测结果与事先人工标定好的真值的并集。交并比的取值范围在0~1之间,交并比越大,在其它评价标准相同的前提下,目标检测的效果越好。当交并比大于0.5时,定性分析得到的结果可以认为比较不错。
检测结果的交并比大于等于阈值时,得到正确的检测。正确的检测用于统计算法模型预测得到的所有检测结果中,分类信息正确且边框准确的检测结果的数量。检测结果的交并比小于阈值时,得到错误的检测。错误的检测用于统计算法模型预测得到的所有检测结果中,分类信息错误或边框不准确的检测结果的数量。
如果有M个真值标记边框,而且算法模型预测得到的分类信息正确且边框准确的检测结果数量少于M,那么没有被算法模型检测出来的目标数量称为遗漏的检测。
召回率用于评价一个算法模型预测得到的检测结果最多可以覆盖多少真实目标的能力,由正确的检测除以正确的检测与遗漏的检测之和得到。识别准确率用于评价一个算法模型预测得到的所有检测结果能命中多少真实目标的能力,由正确的检测除以正确的检测与错误的检测之和得到。
以召回率为横轴,以识别准确率为纵轴构建坐标系,召回率和识别准确率围成的面积称为平均识别准确率。在测试时,针对每个类别的目标,通过算法模型预测结果得到平均识别准确率,再对所有平均识别准确率求平均值,即得到算法模型的多类别平均识别准确率均值。
在研究中,考虑到比较笔者所提新方法与其它深度学习算法模型在路面坑塘与裂缝检测性能方面的客观公正性,给定交并比为0.3、召回率为0.7时的识别准确率和平均识别准确率,以及给定交并比为0.3时的多类别平均识别准确率均值,作为三种不同的评价指标。其中,多类别平均识别准确率均值最能反映某个算法模型在多类别样本数据上的全局检测性能。
基于笔者所提出的新方法,各常见主干网算法模型路面病害的识别效果如图5所示,各常见主干网算法模型的评价指标结果见表2~表4,识别准确率柱状图如图6所示,平均识别准确率柱状图如图7所示,多类别平均识别准确率均值柱状图如图8所示。
图5 主干网算法模型路面病害识别效果
表2 主干网算法模型识别准确率
表3 主干网算法模型平均识别准确率
表4 主干网算法模型多类别平均识别准确率均值
图6 主干网算法模型识别准确率柱状图
图7 主干网算法模型平均识别准确率柱状图
在所有测试中,基于笔者提出的新方法,采用YOLO算法模型,对各种线性裂缝等细小路面病害目标的检测识别准确率最高。同样基于笔者提出的新方法,采用Inception第三版算法模型,对坑塘、龟裂等较大尺寸路面病害目标的检测识别准确率最高。对以上测试结果进行分析,Inception算法模型网络层次有159层,而YOLO算法模型只有22层,层次数越多,感受野会越大,对坑塘、龟裂等大目标的检测效果就越好。与此同时,由于感受野过大,造成对小物体不敏感,因此对各种线性裂缝小目标的检测效果,Inception算法模型就不如YOLO算法模型了。
图8 主干网算法模型多类别平均识别准确率均值柱状图
笔者基于卷积神经网络,对多类别路面病害进行识别研究,提出一种新方法,并应用于常见主干网算法模型中。通过测试,确认采用新方法,多类别路面病害的识别准确率最高可达0.934 8,效果良好。