APP下载

基于YOLO轻量化网络的交通标志检测算法

2021-11-05汤科元刘川莉蔡乐才张宇杰

关键词:交通标志置信度标志

汤科元,刘川莉,蔡乐才,成 奎,张宇杰,高 祥

(1.四川轻化工大学自动化与信息工程学院,四川 宜宾 644002;

2. 宜宾学院三江人工智能与机器人研究院,四川 宜宾 644000)

引 言

交通标志检测是现代智能交通系统中不可或缺的一部分,也是无人驾驶和自动驾驶技术中的重要组成部分。近年来,随着我国经济社会的不断发展,全国机动车保有量也不断上升,道路交通安全状况和交通堵塞情况日趋严峻[1]。据不完全统计,交通事故当中绝大多数案例都是人为因素造成的[2-3],例如超速、酒后驾驶、疲劳驾驶等,因为车辆和道路因素造成的交通事故则不到事故总数量的10%。所以近年来辅助驾驶技术被越来越多地应用于实际生活当中[4-5],无人驾驶和自动驾驶技术也成为许多研究人员和汽车厂商的重要研究领域。而交通标志检测在无人驾驶技术中扮演着至关重要的角色,通过计算机视觉技术对交通标志进行检测和识别,并将结果反馈给驾驶员或者无人驾驶系统,以对车辆的速度和方向进行手动或自动控制,从而最大程度地避免交通事故的发生。因此交通标志的检测具有十分重要的社会价值和学术意义。

目前已有多种方法可以实现交通标志的检测。由于交通标志形状比较规则,颜色较为单一,所以早期有学者提出了通过形状或颜色来检测交通标志的方法[6]。而且还可以结合尺度不变特征变换和支持向量机等方法以提高检测率[7]。但现实情况非常复杂,当交通标志与其背景颜色相近或者出现极端天气的时候,就容易出现误检或者漏检的情况。近年来随着人工智能的兴起,越来越多的学者将深度学习方法应用到交通标志检测领域。Zhu 等[8]利用CNN 卷积神经网络来识别野外环境下的交通标志。Zhang 等[9]提出了一种针对小号交通标志和恶劣天气下交通标志的检测方法,获得了较高的准确率,在中国交通标志数据集(CTSD)与德国交通标志检测数据集(GTSDB)上有着较好的实时性和鲁棒性。Tabernik 等[10]提出了一种基于R_CNN 网络的交通标志检测算法,错误率可降低到3% 以下。以上这些学者所做的研究都是基于深度学习的方法,虽然精度相比于传统方法有着极大的提高,但是网络较为复杂,对于嵌入式移动设备来说计算量较大,导致检测速度慢,无法满足实时性要求。但是这也从另一个方面证明了深度学习方法在检测交通标志上的可行性。

针对嵌入式平台运算能力不足导致的检测速度慢和准确率低的问题,基于Yolov4-Tiny 模型提出一种改进的检测算法Deep-Yolov4-tiny,根据数据集和交通标志图像的特征,修改模型的输入尺度,然后分别将两个3 × 3 的卷积层添加到Yolov4-tiny 模型的第5 个 和 第9个卷积层后,与原来的两个卷积层重叠,以获得更多的特征信息[11]。网络中添加多个1 × 1卷积层可以降低计算复杂度,提高检测速度和实时性,使其更加适合于在嵌入式或者移动设备当中运行。最后,通过K-means 聚类算法优化anchor box 的尺寸,改进Yolo 层的配置。采用中国交通标志检测数据集(CCTSDB)[12]训练和测试模型,并与改进前的Yolov4-tiny及Yolov3-tiny进行对比测试,验证Deep-Yolov4-tiny算法在平均正确率、召回率和交并比等评价指标。

1 Yolov4-tiny网络

Yolov4-tiny 算法是在Yolov4 算法[13]的基础上设计的,其网络结构更加精简,网络层数由162 层减少到了38 层,大幅提高了其目标检测速度,为此付出的代价就是在检测精度方面有所下降。即便如此,其精度和速度也能够满足实际应用的需求,使其可以部署到嵌入式系统或移动设备等运算能力不高的设备当中。在交通标志检测、行人检测等应用场景具有很高的应用价值。

Yolov4 算法采用CSPDarknet53 网络作为其骨干网络,相应地,Yolov4-tiny 算法使用了CSPDarknet53-tiny网络作为骨干网络,以精简其网络结构。CSPDarknet53-tiny 网 络 在CSPNet(Cross Stage Partial Network)中使用了CSPBlock 模块,而不是残差网络中的ResBlock 模块。CSPBlock 模块将特征图分为两部分,并通过CSP 残差网络将这两部分合并,使得梯度信息在两个不同的路径中传播,以增加梯度信息的相关性[14]。

与ResBlock 模块相比,CSPBlock 模块可以增强卷积网络的学习能力。虽然计算量增加了10% ~20%,但其准确性有了较大提高。 为了减少计算量,消除原CSPBlock 模块中具有较高计算量的计算瓶颈,在计算量基本不变甚至减少的情况下,Yolov4-tiny 算法的准确性得到了进一步地提升。

为了进一步减少计算量,提高网络的实时性,Yolov4-tiny 算法没有使用Yolov4 中的Mish 函数作为激活函数,而是使用了LeakyReLU 函数作为CSPDarknet53-tiny 网络中的激活函数。LeakyReLU 函数如下式所示:

其中,ai∈(1, + ∞),为一常量。

在特征的提取与融合方面,Yolov4-tiny 与Yolov4 也有所不同,Yolov4 算法使用的是SPP(spatial pyramid pooling)和PANet(Path Aggregation Network)进行特征提取与融合。SPP 的目的是增加网络的感受野,PANet 则缩短了底层尺寸大的特征到高层尺寸小的特征之间的距离,使得特征融合更加有效。Yolov4-tiny 算法使用了特征金字塔网络[15]提取具有不同比例的特征图,以提高目标检测速度。同时,其使用两个不同的比例特征图(13 × 13和26 × 26)来预测检测结果。Yolov4-tiny网络 结构如图1所示。

图1 Yolov4-tiny网络结构

在进行检测时,Yolov4-tiny 算法首先会调整输入图像的大小,使所有输入图像具有相同的尺寸。其次,输入图像将被划分成大小为S × S 的网格,每个网格将使用B 个边界框来检测其中所包含的对象,且所有生成的边界框会覆盖整个图像。因此,对于输入的一张图像,将生成S × S × B 个边界框,如果图像中某个对象的中心落在某个网格中,则该网格中的边界框就可以检测该对象。

Yolov4-tiny 的损失函数由3 部分构成,分别为置信度损失函数loss1、分类损失函数loss2和边界框回归损失函数loss3,则损失函数可用式(2)表示:似性。

2 改进的Yolov4-tiny网络

其中:K 为特征图的大小,M 为锚框的数量,λ 为超参数,c 为类别,p(c) 代表类别的置信度,IOU 为真实框与预测框的交并比,ρ 表示欧式距离,C 表示真实框与预测框的最小外界矩形的对角线距离,v 用来度量长宽比的相

由于车载电脑的计算能力普遍不高,且车辆速度较快,路边的交通标志牌的面积在整个视野中所占的比例较小,所以摄像头采集到的画面有可能很模糊,再加上交通标志牌也有不同程度的歪斜和污损,因此对于交通标志的检测,研究选用结构简单、运算复杂度相对较低的Yolov4-tiny 模型作为基础模型来满足准确性和实时性要求。在Yolov4-tiny的基础上,修改了模型的输入图片的尺寸大小,由原来的416 × 416 改为480 × 480,然后将两个3 × 3 的卷积层分别添加到Yolov4-tiny 模型的第5个和第9个卷积层后,与原来的卷积层重叠,增加了模型的深度,可以输出不同大小和通道的特征图,再通过Yolo 中的route 层在网络的不同位置来连接浅层特征图和深层特征图。这是因为浅层特征包含更多的细节信息,而深层特征包含更多的边缘信息,通过链接就可以使整个模型获得更加丰富的特征信息,提高其检测的准确性。除此之外,还将多个1×1 的卷积层添加到模型中,以降低模型的计算量。

经初步测试发现Yolov4-tiny 原始模型对于CCTSDB 数据集的IOU 值并不理想,这是因为Yolov4-tiny 模型中的初始anchor box 的值是由coco 数据集得来的,覆盖了从小到大不同大小的目标,而CCTSDB 数据集中的目标大多都是小目标。针对这一问题,研究采用K-means 聚类算法对Yolov4-tiny中的anchor box 尺寸进行聚类优化,以使其与CCTSDB数据集更加匹配。然后再对第二个Yolo 层进行改进,使其充分利用经过K-means聚类后的anchor值,便可以更加全面地覆盖数据集中实际目标的大小,从而进一步提升Deep-Yolov4-ting 模型的检测准确率。改进后的网络结构如图2所示。

图2 改进后的Yolov4-tiny网络结构

3 实验结果与算法对比

3.1 数据集

中国的交通标志主要分为主标志和辅助标志两大类,辅助标志一般设在主标志下,起辅助说明的作用。其中主标志可以分为6 类,分别是警告标志、禁令标志、指示标志、指路标志、旅游区标志和道路施工安全标志。在主标志中又以警告标志、禁令标志和指示标志最为常见。每一类交通标志都有着统一的设计语言,警告标志为黄底、黑边、黑图案,形状为顶角朝上的等边三角形。禁令标志除个别特殊情况外,颜色为白底、红圈、红杠,黑图案,图案压杠,形状为圆形、八角形、顶角朝下的等边三角形。指示标志为蓝底、白图案,形状分为圆形、长方形和正方形。3类常见的交通标志如图3所示。

图3 常见的3类交通标志

研究所用的数据集选自中国交通标志检测数据集(CCTSDB)[12],此数据集由长沙理工大学综合交通运输大数据智能处理湖南省重点实验室张建明老师团队制作,一共包含图像15 724 张,研究选取9000 张涵盖了不同类型、大小、角度、光照条件和破损程度的交通标志图像作为数据集(图4),涵盖了真实情况下的大多数路况,可以客观地反映现实条件下交通标志的情况,该数据集也分为指示标志、禁止标志、警告标志3大类。

图4 部分数据集图片

为减少代码的重写量,使用批处理脚本对数据集图片的命名格式和GroundTruth 进行了修改,以符合DarkNet框架对数据集的格式要求。

数据集的分配情况见表1。

表1 数据集分配情况

3.2 网络训练

实验平台硬件配置见表2。

表2 实验平台硬件配置

研究所用平台软件为Ubuntu18.04 TLS,训练所用的深度学习框架为DarkNet。训练过程中对网络设定的超参数见表3。

表3 部分超参数设置

设定好训练参数后,从零开始训练所提出的Deep-Yolov4-tiny 模型。为了增大训练样本,提高模型的鲁棒性,在训练的过程中通过将图片随机旋转角度、随机调整饱和度、曝光度、色调等方法,增加更多的样本数。模型训练的loss 曲线如图5 所示。从图5 可以看出,在训练后期,模型的loss 值基本稳定在0.1 左右,误差较小。使用同样的数据集,设定同样的训练参数,在同样的平台上对改进前的Yolov4-tiny和Yolov3-tiny进行训练,然后与Deep-Yolov4-tiny算法进行对比。

图5 模型损失曲线

3.3 算法对比

使用在相同条件下训练好的Yolov3-tiny 和改进前的Yolov4-tiny 与Deep-Yolov4-tiny 进行对比测试。先从测试样本中选取5 张可以代表不同环境下的图像,检测难度依次增加,将其记为1 号图片、2 号图片、3 号图片、4号图片与5号图片,分别用上述3种算法进行测试。

3.3.1 单个标志目标清晰

首先用3 种算法对最清晰明了的1 号图片进行测试,结果如图6所示。

图6 不同算法对1号图片检测结果

从图6 可看出,标志在图片中目标较大,且较为清晰的情况下,3 种算法都能够准确快速地检测出该交通标志为禁令标志,图6(b)、6(c)、6(d)3图检测结果置信度均为99%。

3.3.2 标志较小且模糊

当标志较小且较模糊的时候,算法对其识别难度将会增大。为了测试识别能力,采用3 种算法对2 号图片进行了测试,结果如图7所示。

图7 不同处理后2号图片检测结果

从图7可以看出,Yolov3-tiny没有识别出任何目标,Yolov4-tiny和本文算法Deep-Yolov4-tiny则能够成功地检测出图中交通标志为指示标志,但是Yolov4-tiny识别结果的置信度为47%,而Deep-Yolov4-tiny 算法识别结果的置信度为99%,可见Deep-Yolov4-tiny 算法的识别准确率相比原算法有一定提升。

3.3.3 多个标志且较小

对于有多个较小的交通标志信号,特别是存在干扰的条件下,测试3 种算法能否准确检测出目标结果如图8所示。

图8 不同算法对3号图片检测结果

从图8 可看出,3 号图片中有多个较小的交通标志,其中有一个是一块交通标志牌的背面,反光较为严重,为一干扰目标。Yolov3-tiny 正确地检测出了其中一个禁令标志,置信度为94%。Yolov4-tiny 检测出了两个禁令标志,其中一个为正确检测,置信度为92%,另一个错误地将干扰目标检测为禁令标志。Deep-Yolov4-tiny算法则正确地检测出了两个禁令标志,置信度分别为51%和36%。

3.3.4 多个标志且较模糊

从图9 可看出,4 号图片中出现了两个交通标志,均为指示标志。Yolov3-tiny 和Yolov4-tiny 都只正确地检测出了其中一个较大且较为清晰的目标,置信度分别为98% 和96%,而Deep-Yolov4-tiny 算法则成功地检测出了两个目标,置信度为88%和94%。

图9 不同算法对4号图片检测结果

3.3.5 标志较小且较模糊

从图10 中可以看出,在光线较暗、目标很小且存在多个目标的极端条件下(5 号图片),Yolov3-tiny 和Yolov4-tiny 都无法检测出目标,而Deep-Yolov4-tiny 算法则成功地检测出了其中一个目标为禁令标志,置信度为76%。可见Deep-Yolov4-tiny算法在面对相对极端的环境时,仍然能够检测出目标,虽然没有做到全部正确检出,但是相较于其他两种算法,有着较好的鲁棒性。

图10 不同算法对5号图片检测结果

由以上测试结果可以看出,Deep-Yolov4-tiny 算法在检测能力和检测的准确度方面都优于现有的Yolov3-tiny 和Yolov4-tiny,证明Deep-Yolov4-tiny 在原算法上所做的改进是有效的。

3.4 算法有效性分析

为了更加直观地验证Deep-Yolov4-tiny算法的有效性,采 用mAP(Mean Average Precision)、召 回 率R(Recall)、IOU 和检测速度4 个评价指标来验证Deep-Yolov4-tiny 算法的效果。其中mAP 是指各个类别的AP平均值,可由式(6)表示:

其中:AP 则是指平均精确度,其值为P-R 曲线下的面积。精确度P可由式(7)表示:的样本,FP(false positive)表示被预测为正而实际为负的样本,FN(False negative)表示被预测为负而实际为正的样本[16]。召回率R 表示的是正确预测的正样本数占真实正样本总数的比值。

检测速度也是评价目标检测模型的重要指标之一,它指的是模型每秒能够处理的帧数,用来评价模型的实时性,单位为FPS。在同等条件下,检测速度越快,证明模型性能越好,越有利于部署在嵌入式系统和移动设备当中。

将训练好的模型设置为测试模式,以上述4 个评价指标对训练好的3 种算法在研究所用的数据集上进行测试,得到测试结果见表4。

表4 测试结果对比

其中:TP(true positive)表示预测结果为正而实际为正

从表4 可知,Deep-Yolov4-tiny 算法在mAP、R 和IOU 等方面都领先于现有算法。得益于Yolov4-tiny 网络结构的精简,在相同测试条件下Yolov4-tiny算法的检测速度与Yolov4 相比提升8 倍,在1080Ti 显卡上,其检测速度可达371FPS[17],而本文算法Deep-Yolov4-tiny在检测速度上与Yolov4-tiny 不相上下。因此从测试结果来看,Deep-Yolov4-tiny 算法能够满足部署在嵌入式设备上的使用要求。

4 结束语

根据交通标志的特点和在行车过程中检测交通标志的难点,在Yolov4-tiny算法的基础上有针对性地进行改进,提出了一种改进的交通标志检测算法Deep-Yolov4-tiny,实现了对交通标志快速、准确地检测。改进后的算法在原算法的基础上增大了输入尺度,修改了网络结构和参数,利用K-means聚类算法优化了anchor box尺寸。实验采用公开的CCTSDB数据集对改进后的算法进行训练和测试,并使用相同的数据集,在相同的实验平台上对改进前的Yolov4-tiny、Yolov3-tiny 等算法进行了训练和测试。结果表明,Deep-Yolov4-tiny 算法相较于Yolov4-tiny 算法,在检测准确性上有较大提升,实时性也能够满足要求,更加有利于应用在嵌入式设备和移动设备等运算能力不强的设备当中,这对于提高行车安全和推动无人驾驶技术的发展有着一定的现实意义。

猜你喜欢

交通标志置信度标志
交通标志认得清
基于双向特征融合的交通标志识别
多功能标志杆的使用
硼铝复合材料硼含量置信度临界安全分析研究
认标志
首都的标志是只熊
正负关联规则两级置信度阈值设置方法
交通标志小课堂
医改进入新阶段的重要标志
置信度条件下轴承寿命的可靠度分析