基于YOLO的交通标志检测算法

2021-10-18 08:14雷蕾方睿徐铭美李姗
现代计算机 2021年24期
关键词:先验交通标志聚类

雷蕾,方睿,徐铭美,李姗

(成都信息工程大学计算机学院,成都610225)

0 引言

近年来,科技的蓬勃发展为人类日常生活带来越来越多的便利,随着人工智能技术的发展,自动驾驶技术也成为了现实。交通标志识别系统是高级驾驶辅助系统的子系统,该系统通过车载相机采集前方路段的交通标志信息,在指导车辆正确行驶、调节交通、提高通行能力和减少交通事故等方面发挥重要的作用。

目标检测技术是交通标志识别系统的重要技术支持,传统的目标检测的方法主要是根据图像颜色和形状特征进行匹配从而实现效果的,常用方法有RGB颜色空间法[1]、HSI颜色空间法[2]、霍夫变换[3]、边缘信息检测法[4]等,之后通过支持向量机对检测到的特征进行分类。但是由于算法检测结果容易受到光照和天气影响,尤其当交通标志出现破损、遮挡、褪色时,算法检测结果极易不稳定,造成漏检。

随着人工智能技术的兴起,又提出了基于深度学习的目标检测方法。第一种是基于候选区域的目标检测算法:R-CNN[5]和Faster R-CNN[6]等。该算法主要通过分别训练区域建议网络(Region Proposal Net⁃work,RPN)和目标区域检测的网络达到检测的目的,虽然检测和定位的效果好,但是应用到实际之中,实时性达不到要求。随后提出了基于回归的目标检测算法,包括RetinaNet[7]、SSD[8]和YOLO[9]系列等,输入图片后直接在一个网络中进行回归和分类,很大程度减少了检测过程中的重复运算,因此检测速度有了显著的改善。其中YOLO系列算法以准确率高、实时性强的优势领先于其他基于回归的检测算法,但大部分网络由于结构复杂、模型权重大等问题无法满足实际需求。

本文针对于交通标志检测的难点和需求,提出一种基于改进YOLOv5算法的交通标志检测模型,从而创建一个兼顾应用能力和准确性的路面交通标志分类检测网络模型。同时针对原算法中先验框尺寸不符合交通标志特征问题,提出对数据集重新聚类从而获得新的先验框尺寸。然后将改进的模型应用到TT100K数据集并与其他算法作对比分析,结果表明改进后的算法对交通标志检测在平均精度均值和召回率上都有所效果提升。

1 算法及改进

1.1 YOLOv5算法描述

YOLO系列是一种基于one-stage的端到端目标检测算法,在网络中输入一张图片后能直接得到目标的位置以及类别和概率。检测具体过程是:首先YO⁃LO将输入的图片分割成S×S网格,然后每个单元格负责去检测其中心点落在该网格内的目标。这些单元格会生成3个不同尺度的先验框,对先验框进行微调后形成预测框。每个单元格会输出多个预测框、置信度以及类别概率。最后通过非极大值抑制算法(Non Max Suppression,NMS)去除冗余的预测框后得到最终的预测结果[10],算法流程如图1所示。

图1 YOLO算法流程

YOLOv5算法按照其网络深度从小到大分为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。较前几代YOLO算法最明显的特征就是模型小,适合部署在移动端和嵌入式设备当中,为交通标志检测技术研究提供了便利。YOLOv5的网络结构由4个部分组成,分别是:

●输入端:模型将对输入的数据集采用图像增强,通过选取4张图像进行随机裁剪、随机拼接、随机排布来达到丰富数据集的效果。由于拼接操作产生了很多小目标图像,所以增加了网络对于小目标检测的鲁棒性。并且在先验框设计当中采用了自适应计算,从而根据目标特征在预先设定好的先验框上进行微调生成最佳预测框。

●主干网络:一共包含6层网络结构,用于提取图像特征。模型设计了两种CSP结构用于增加网络的特征提取能力,分别应用于主干网络和检测模块中。并且在进入主干网络之前中添加了切片结构,保证在下采样的过程中使得特征提取能力更加充分,从而保留更加完整的下采样信息。

●检测模块:YOLOv5应用了多尺度特征融合策略,通过采用空间金字塔池化网络(Spatial Pyramid Pooling Network,SPPNet)和路径聚合网络(PANet)将浅层的细节信息和深层的语义信息融合在一起,并且借鉴跨阶段局部网络设计的CSP2结构,加强网络提取特征的能力。

●预测模块:模型针对3种尺度的特征图采用不同宽高的先验框进行预测和分类,根据预测结果和实际结果生成损失函数反向传递给网络并且不断优化。损失函数主要由3部分组成:预测框损失函数主要由CIoU-Loss来表示,置信度和分类损失函数是由二进制交叉熵来表示的。用非极大值抑制算法去除冗余的预测框后得到最终结果。整个网络结构如图2所示。

图2 YOLOv5网络结构

1.2 聚类新先验框

大部分交通标志图像的面积较小,仅占整张图片的1%-2%,通过聚类算法找到适合目标特征的先验框尺寸,在此基础上进行微调形成预测框,能够有效提高模型检测精度,其中预测框与先验框的对应关系如图3所示。

图3先验框和预测框对应关系

预测框与先验框的各参数对应关系如公式(1)所示,其中cx和cy分别代表当前格子中心点的偏移量,pw和ph分别代表先验框的宽和高,bx、by、bw和bh分别代表生成的预测框的中心点坐标和长宽。

原YOLOv5算法中先验框尺寸是采用K-means算法在COCO数据集上进行聚类得到的[11]。K-means算法的主要思想是:首先随机选择数据集中k个点作为聚类中心,计算其他样本到该聚类中心的距离之后划分到距离最小的类当中,最后针对于每一个类重新计算该类的质心作为新的聚类中心,重复上述过程一直到聚类中心的位置不变。但由于K-means算法中对初始聚类中心点是随机划分的,这个聚类中心的选择对最终聚类结果有一定影响,如果初始聚类中心的距离较近,会影响聚类结果的准确度。

针对于K-means算法存在的问题,本文提出采用K-means++算法来进行聚类,从而得到更适合交通标志的先验框。K-means++在选择初始聚类中心的主要思想是:初始的聚类中心之间的相互距离要尽可能远。首先随机确认第一个聚类中心点,并计算剩下所有的样本点到该聚类中心的距离D(x),然后根据公式(2)计算该点成为下一个聚类中心的概率P(x),最后使用轮盘法选出数据点作为新的聚类中心。重复以上步骤一直到第k个聚类中心被选出来[12]。通过K-means++算法聚类出的结果能更好地改善误差,从而选取更合适的先验框。

通过采用K-means++算法对TT100K数据集进行迭代聚类之后得到新的9种尺度的先验框,和原先验框尺寸对比如表1所示。可以看出原先验框由于采集于COCO数据集,目标的类别广且数量多,所以大、中、小3个尺度的先验框尺寸差异大。而新先验框是依据交通标志特征聚类而成,总体尺寸偏小且差异不大,所以更能接近真实框的尺寸,从而提升模型检测的准确率。

表1聚类前后先验框尺寸对比

2 实验

2.1 数据集介绍

本文实验选取的是由清华大学与腾讯实验室联合发布的基于真实场景的交通标志公开数据集TT100K(Tsinghua-Tencent 100k),包含30000个交通标志实例的约9000张图像。这些图像的采集在不同的条件的自然场景中且数据多样性比较广。TT100k数据集几乎涵盖了日常生活中常见种类的交通标志,符合实验要求,交通标志样例如图4所示。

图4交通标志样例

由于TT100K中每张图像的分辨率高达2048×2048,背景信息复杂,所以存在干扰主体目标检测的问题,此外,数据集中大部分交通标志尺寸相对较小且各类样本数量不均衡,对检测造成了一定的困难。本文筛选出实例数大于50的45个类别共9170张图片作为基础数据后,按照9:1划分成训练集和测试集,训练集各类样本数量统计如图5所示。

图5训练集各类样本数量分布

2.2 实验设置和评估指标

本文进行了多组的对照实验来验证算法的有效性和高效性,同时让各组网络模型的参数设置统一化,保证实验的客观性,。实验基于Windows平台通过Python语言编程实现,应用深度学习框架PyTorch 1.7搭建网络模型。实验样本训练迭代次数设置为300,批次大小统一设置为4,其中图像输入端的分辨率统一设置为640×640,初始的学习率设置为0.01,学习率衰减采用余弦退火方式,动量设置为0.937,权重衰减系数为0.0005。

为了验证本实验在检测交通标志上的效果,本文选取相同数据集作为实验数据进行对比实验。并选取平均精度均值(mean average precision,mAP)、召回率(Re⁃call)、检测速率和模型权重大小作为模型性能的评价标准,以衡量模型的目标检测能力和实际应用能力。首先需要根据真实标签将检测结果划分为真正例(true posi⁃tive,TP)、真反例(true negative,TN)、假正例(false posi⁃tive,FP)和假反例(false negative,FN)4类[13]。

Precision又称为查准率,通过计算检测结果中预测正确的样本数和所有预测样本数的比例得到,即正确检测到的样本数占总检出样本的比例,能够反映模型对目标的分类能力,Precision的计算式如(3)所示。

Recall又称为召回率,通过计算检测结果中预测正确的样本数和所有真实样本数的比例得到,即正确检测到的样本数占真实样本数的比例,能够反映模型对目标的检测能力,其计算式如(4)所示:

AP代表平均精度(average precision,AP)。如果用坐标系来表示,AP是将召回率和准确率分别当作坐标系的横纵坐标绘制而成的一条函数曲线,即PR曲线。PR曲线之下的面积则为AP值。mAP作为目标检测网络中常用的衡量检测精度的评价指标,它是对多个类别求平均AP值,能反映出网络检测效果的好坏。其计算公式如(5)所示,其中QR指类别个数:

FPS代表每秒传输帧数,能够反映模型检测速度的快慢。FPS值越髙表示网络的实时性越好,即深度学习网络检测越流畅。所以本文用传帧数来衡量网络运行的流畅性从而判断是否满足实时性需求。

2.3 实验结果分析

图6和图7分别是改进后算法和原YOLOv5的召回率和平均精度均值曲线图。如图6所示,网络训练初期,两个模型都收敛的很快。但是随着迭代次数的增加,更新了先验框尺寸的模型由于更符合交通标志的尺寸与比例特征,所以收敛得更快,在训练大约50个批次后,召回率达到0.9并且趋于稳定。而原算法在训练100个批次后才趋于稳定。如图7所示,两个模型的精度在训练批次到达50至80左右波动较大,之后趋于平稳。改进后模型的平均精度均值一直高于原YOLOv5算法,在训练300个批次之后,达到了0.92。说明说明本文所提算法在交通标志检测任务中具有更好的鲁棒性。

图6召回率曲线对比

图7 mAP曲线对比

为了验证实验的有效性,本研究将改进后的模型和其他文献中提出的模型相作对比,结果如表2所示。

表2检测算法性能对比

由表2可知,本文所提出的交通标志检测方法相较于原YOLOv5算法效果提升明显,分别在平均精度均值和召回率上有1.6%和0.6%的提升,每秒检测帧数能达到21.3张,从而保证了算法的实时性。整个模型大小约为14.3 MB,可以部署在移动端或者嵌入式设备。YOLOv3算法同样采用了3个尺度进行检测,从而在识别精度方面表现力也比较好,但是由于模型参数量过大,该算法的应用能力较弱。文献[14]中由于选用轻量型的MobileNet代替原特征提取网络,虽然模型参数量大大减少但也使模型缺失了一定特征提取能力,从而造成模型检测精度不够。文献[15]引入了空间金字塔池化网络,提升了模型检测速率、检测精度,而平均精度均值、检测速度和本文提出方法差异不大,但是在召回率方面,本文方法大有提升。由此可见本文所提出的方法,对交通标志检测效果有较大改善。

2.4 实验效果展示

为了证明本文方法的有效性,并选取了两组有代表性的图像进行效果展示,分别是一张含小目标和扭曲目标图像和一张逆光环境图像来进行实验。通过检测结果图我们可以看出,本文提出的方法能够对各类环境交通标志有很好的检测效果。图像中不同颜色的框代表模型检测出的目标,上方的字母代表该方框检测出来的交通标志类别,旁边的数字代表该目标类别的置信度大小,该值越接近于1代表所检测出来的目标是该类型的可能性越大。检测效果如图8所示。

图8所提算法检测效果示例

在示例图(a)中可以看出,虽然所有交通标志尺寸较小而且形状扭曲,但是改进后的模型能够有效地检测出了所有类型的交通标志,说明该模型对于小目标的检测能力不错。在示例图(b)中可以看出,由于图像拍摄于逆光环境,所以交通标志存在主体颜色暗且低对比度的情况。但是从检测结果来看,所有交通标志都被正确识别出,说明改进后的模型具有一定泛化能力。

3 结语

针对于传统深度学习交通标志算法模型权重大应用能力差等问题,本文采用轻量级模型YOLOv5进行交通标志检测并对此算法进行优化改进。通过采用新的聚类算法K-means++对数据集重新聚类,得到更适合检测交通标志图像的先验框尺寸,从而提高检测的精确度。然后将改进的YOLOv5算法应用到TT100K数据集当中进行交通标志检测,并和其他算法进行比较。通过采用不同的指标来进行对比和分析来评估改进后的算法性能,对比结果发现,改进后的算法能够在保证实时性的情况下有效提高检测速率,本实验算法平均精度均值达到84.9%,召回率能达到89%,权重文件只有14.3 MB。

本文提出的算法虽然在交通标志检测上取得了比较好的结果,也因模型权重小能部署在嵌入式设备。但是在实际交通场景当中,算法的检测内容应该包含多类目标。因此如何保证在高精度低权重的情况下检测出多类目标将是今后的研究主要内容。

猜你喜欢
先验交通标志聚类
基于双向特征融合的交通标志识别
基于数据降维与聚类的车联网数据分析应用
康德定言命令的演绎是一种先验演绎吗?——论纯粹知性与实践理性在先天原则证成方面之异同
基于暗通道先验的单幅图像去雾算法研究与实现
先验想象力在范畴先验演绎中的定位研究
基于模糊聚类和支持向量回归的成绩预测
基于密度的自适应搜索增量聚类法
先验的风
交通标志小课堂
我们欢迎你!