APP下载

基于YOLOv5l和ViT的交通标志检测识别方法

2022-11-04郭朦陈紫强邓鑫梁晨

科学技术与工程 2022年27期
关键词:交通标志编码器类别

郭朦, 陈紫强, 邓鑫, 梁晨

(桂林电子科技大学, 广西无线宽带通信与信号处理重点实验室, 桂林 541004)

近年来,随着经济的发展、社会的进步,道路设施建设越来越完善,汽车保有量不断增长,交通事故发生频率逐年递增,因此人们的关注点落到了安全驾驶上。驾驶员在道路上驾驶汽车时,不仅要规划行驶路线,还需要时刻注意周围道路环境情况,交通标志作为重要的道路标识,能够提前给驾驶员提供道路环境信息,有利于驾驶员尽早做出判断,有效提升了驾驶的安全性、准确性。但在日常生活中,驾驶员可能由于疲劳、分心等原因,导致注意力不集中,无法及时留意到交通标志,造成交通意外。为了减少交通事故的发生,国内外学者对辅助驾驶系统进行了大量研究。在辅助驾驶系统中,交通标志的检测与识别技术作为一项关键的基础技术,成了热门的研究方向之一。

交通标志的检测与识别分为TSD(traffic sign detection)和TSR(traffic sign recognition)两部分[1]。传统的TSD方法通常在RGB[2]、HSV[3]、Lab[4]等不同颜色空间进行阈值分割,或是采用曲线拟合、霍夫变化等方法检测图像几何边缘[5-6],亦或是结合颜色和形状特征,对色彩分割后的区域进行几何检测[7],但该类方法容易受到光线变化、标志形变、视线角度等情况的影响,从而产生误检或漏检。传统的TSR方法首先提取能表述图像纹理、梯度方向等信息的特征,如LBP(local binary pattern)、HOG(histogram of oriented gradient)等,再结合相应的机器学习算法进行识别,如模板匹配、AdaBoost、支持向量机等[8-10]。该类方法需要人工设计特征,特征算子无法完整表征图像信息,有一定的限制性,在种类繁多的交通标志中,识别效果参差不齐。在实际复杂场景中,传统的交通标志检测与识别方法时间复杂度高,泛化能力弱,算法性能仍需提高。

基于深度学习的方法通过建立神经网络,模拟人类大脑对图像进行学习和分析,对检测识别方法进行自主修正改进[11]。卷积神经网络(convolutional neural network,CNN)能够提取出大量的特征,主动学习特征信息,因此Girshick等[12]提出了基于候选区域的RCNN(regions with convolutional neural network features)算法,能够提取多层信息,精准定位目标,该算法遍历图像各个区域,计算量大,耗费时间长,无法达到应用设备的要求。Xiong等[13]在RCNN基础上提出一种利用区域生成网络的Faster RCNN算法,能快速精确检测出交通标志位置信息,但缺乏识别能力。为了提高检测识别速率,Redmon等[14]提出了一种基于回归思想的YOLO(you only look once)目标检测算法,该算法从完整的图像中预测目标的边界框和置信度,定位目标并给出类别。之后研究者们在此基础上进行改进,在检测速率和精确度方面有了一系列的突破,提出了YOLO系列算法,如YOLOv2、YOLOv3等。YOLO系列算法作用于整幅图像,无须提取候选区域,在检测速率上优势明显,但在小目标的识别应用上表现能力不如Faster RCNN。

综上所述,虽然上述算法在目标检测方面进行了一系列研究,但无法同时满足检测速率与准确度的要求。因此,现提出一种基于YOLOv5l和视觉转换器[15](vision transformer,ViT)的交通标志检测识别算法,将YOLOv5l作为目标检测器,加入ViT网络对目标特征进行识别,并融入DenseNet[16]网络加强特征连接,实现更佳的实时性,提高识别准确率。

1 算法原理

所提出的基于YOLOv5l和改进ViT的交通标志检测与识别方法,整体流程如图1所示。该方法首先将原始图片输入YOLOv5l检测器得到目标检测框,该检测器用自适应锚框计算方法计算最佳锚框值,减少了推理时的计算量,并采用GIOU(generalized intersection over union)替代IOU(intersection over union)来匹配检测框和真实框,不仅能对重合区域进行计算,还能考虑到两框不重合的部分以及相交方式,使得检测框更加准确;然后将检测框中的目标输入改进ViT中,在检测目标分块切片后加入DenseNet网络模型用于特征提取,提取特征时不仅保留了原始特征,还保留了卷积后的特征,随着网络的加深,实现了特征之间的密集连接,最后再输入Transformer中编入位置信息,将带有位置信息的特征送入编码器进行分类识别,最终输出含有检测框与交通标志类别的结果图。

YOLOv5l为检测器;ViT为视觉转换器;DenseNet为密集连接的卷积神经网络图1 交通标志检测与识别流程框图Fig.1 Flow chart of traffic sign detection and recognition

1.1 YOLOv5检测器

YOLOv5系列共有4种网络结构,每种网络深度和宽度各不相同,因此各网络的算法性能也有所差异,分别为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。这4种结构的网络模型大小逐渐递增,速度则依次下降,检测精度逐步提升。YOLOv5l作为该系列中模型大小居中的网络,其检测速率能达到实时的标准,且检测精度能保证检测目标的准确性,减少冗余信息,因此采用YOLOv5l作为交通标志的检测器,其网络结构框架如图2所示。

YOLOv5l主要由输入端、Backbone网络、Neck网络、Prediction 4个部分组合而成。输入端首先对数据进行预处理,采用Mosaic的方式对4张原始图像进行随机缩放、色彩空间调整、剪裁以及排布,拼接成一张组合图像,增加了数据的多样性、目标的个数,提升了训练速度;再用自适应锚框计算方法算出最佳锚框值,之后将图片统一缩放到同一个尺寸,减少推理时的计算量,加快目标检测速度。Backbone网络主干先对图像进行Focus操作,对图像进行复制、切片、卷积后输入CSP,再分为两个部分,一部分进行卷积,另一部分直接与上一部分卷积结果跨越式连接到特征图。Neck网络为FPN+PAN结构,FPN采用由上而下的上采样操作,传递高层的语义信息,最后接自下而上的PAN结构,传递低层的位置信息,将不同检测层的参数进行结合。Prediction部分采用GIOU作为损失函数,考虑检测框与真实框不重合时的情况,采用加权的非极大值抑制筛选出目标框,得到预测结果。

1.2 识别器

1.2.1 ViT分类器

ViT结构如图3所示,首先数据处理部分对原始输入的图像x∈RH×W×C做切片分块处理,将图像x展开成为一个xP∈RN×(P2×C)图像块序列,序列中一共有N=HW/P2个图像块,其中(H,W)表示原始图像的分辨率,C表示通道数,(P,P)表示图像序列块的分辨率,N为输入的有效序列长度。再嵌入矩阵E对展平后的图像块进行线性变换,转换成D维向量。为了编码器明确预测类别,所以添加一个可学习的向量xclass与D维向量同时嵌入编码器。然后引入位置编码向量Epos,明确图像块序列的空间位置信息,最终将这些图像块序列Z0一并输入编码器中,即

(1)

式(1)中:E∈R(p2×C)×D;Epos∈R(N+1)×D。

Class为类别;MLP Head为多层感知机分类;Transformer Encoder为编码器;Patch为补丁信息;Position Embedding为位置编码信息;Linear Projection of Flattened Patches为序列块的线性投影图3 ViT模型结构Fig.3 ViT model structure

编码器主要由多头注意力机制模块和多层感知器模块交替组成,每个模块前都会采用层归一化,模块后采用残差连接,结构如图4所示。在编码器的前向过程中,多头注意力机制与层归一化迭代L次得到z′|l,多层感知器与层归一化迭代L次得到zl,且多层感知器采用了GELU(gaussian error linerar units)激活函数避免了梯度消失问题。即

MLP为多层感知机;Norm为层归一化;Multi-Head Attention为多头注意力机制;Embedded Patches为嵌入补丁图4 编码器结构Fig.4 Encoder structure

z′|l=MSA[LN(zl-1)]+zl-1,l=1,2,…,L

(2)

(3)

ViT对图像进行分块,加入学习向量后线性嵌入编码器中进行反复堆叠,再进行识别分类,虽然在图像分类中有良好的表现,但所需数据集规模过大,在中小型规模数据集上收敛效果不佳。且交通标志种类繁多,类别间相似度高,ViT中编码器中仅仅只将原始的特征与经过注意力机制的特征直接相加,对特征的简单处理结合无法得到重要的特征信息,导致识别精度低,因此在编码器前加入DenseNet网络模型用于特征提取,淬炼出有效特征,提高识别准确率。

1.2.2 DenseNet网络

DenseNet网络模型主要分为Dense block和Transition层,两个模块互相重叠,交替连接组成网络主干部分。Dense block作为DenseNet中独有的模块,内部结构如图5所示,先对输入进行规范化,再进行卷积得到特征层,将该特征层与原始输入堆叠成为新的特征层,该特征层既保留了原始特征,还获得了卷积后的新特征,重复进行以上步骤,随着网络通道的不断加深,实现层与层之间的密集连接,每一层都可以直接访问原始输入信息和卷积后的特征信息,有效杜绝了轻梯度消失的产生,增强特征的传递性,从而使特征得到高效利用。不同的Dense block之间采用Transition层进行连接,将block中不同特征层间的特征进行整合,采用平均池化减小block的高度与宽度,压缩了模型的大小,减少了参数量,提升计算效率。

BN为批量归一化;ReLu为整流线性单元激活函数;Con为卷积图5 Dense block模块Fig.5 Dense block module

2 实验结果与分析

2.1 实验环境

实验环境采用了Windows10操作系统,GPU采用的是RTX3060,12 G内存,CPU为Intel I7-10700,实验环境为python 3.6.9。

2.2 数据集

交通标志用于给人们提供道路信息,其类别多种多样,不同方位下看到的交通标志轮廓外形有所差异,不同光线视线下的颜色也会存在色差,因此选用包含了GTSDB(german traffic sign detection benchmark)和GTSRB(german traffic sign recognition benchmark)的德国交通标志数据基准。该数据集采集了不同道路在不同天气情况下的真实场景,比如雾天、阴天、强光照天气、雨天等天气情况。GTSDB里包含了不同的静态道路环境整体图,每幅图标注出交通标志所在位置检测框,可应用于检测模块;GTSRB里面包含了43类不同类别的交通标志图像,其天气情况、拍照角度、尺寸大小皆有不同,能够使分类器提取出的特征更加完整,应对实际生活中不同视角、不同天气下的交通标志识别。对于整个检测识别系统而言,既要检测出目标对象在大环境下的位置,还要识别出目标对象所属类别,必须将检测和识别这两个模块结合起来,因此选用GTSDB和GTSRB。

2.3 评估指标

采用检测速率和识别准确率衡量交通标志的检测与识别方法在实际应用中的可行性、高效性,对于深度学习模型泛化能力的评判,采用以下评估标准指标。

(1)准确率(accuracy)。准确率是指分类正确的样本数量占所有样本数量的比例,即:准确率=分类正确的样本/样本总数。

(2)精确率P(precision)、召回率R(recall)和F1。在测试集中,有正样本与负样本之分,在本文中交通标志为正样本,其余物体为负样本。对于正负样本的检测,有TP(true positives)、TN(true negatives)、FP(false positives)、FN(false negatives)4种。TN表示样本类别为负,预测类别为负;FP表示样本类别为负,预测类别为正;TP表示样本类别为正,预测类别为负;FN表示样本类别为正,预测类别为负。

精确率为预测类别为正的正样本数量占所有预测类别为正的样本数量的比例,即TP占TP与FP之和的比例,表达式为

(4)

召回率为预测类别为正的样本数量占实际正样本数量的比例,即TP占TP与FN之和的比例,表达式为

(5)

精确率和召回率通常是互相约束的关系,模型的精确率上升的同时可能会出现召回率的下降,而模型召回率上升的同时也可能出现精确率的下降,为了实现对交通标志的精确检测,采用F1对模型的精确率和召回率进行评估。Fn是对P和R关系的计算,公式为

(6)

式(6)中:n表示R的权重与P的权重之前的比值,F1则表示P和R的权值比值为1∶1,说明了精确率和召回率的重要性相等,计算公式为

(7)

可以看出F1为P和R的调和平均数,数值越大表示模型的性能越好。实验结果如表1所示,本文模型的F1值为0.988,检测结果准确。

表1 测试实验结果Table1 Test results

2.4 实验结果与分析

对输入的原始图片在YOLOv5l与改进ViT的检测识别方法下进行实验,输出结果如图6所示,6张图代表了在不同光照条件、不同天气情况、不同尺寸大小下的交通标志检测识别情况。

图6(a)为晴天时刻强光照下的结果,限速50的交通标志被成功检测并标记上02的类别,检测框中无其他干扰物体,且识别类别正确。

图6(b)为雾天光照不足时小目标的结果,两个限速80的交通标志都被成功检测并分别标记上05的类别,检测框中无其他干扰物体,且识别类别正确。

图6(c)为阴天傍晚光照不足时的结果,限速80的交通标志被成功检测并标记上05的类别,检测框中无其他干扰物体,且识别类别正确。

图6(d)为雨天目标不清晰时的结果,限速100的交通标志被成功检测并标记上07的类别,检测框中无其他干扰物体,且识别类别正确。

图6(e)为强光照下过度曝光时小目标的结果,限速50和注意儿童的交通标志都被成功检测并分别标记上02和28的类别,检测框中无其他干扰物体,且识别类别正确。

图6(f)为晴天傍晚逆光情况下小目标的结果,含义为弯曲的交通标志被成功检测并标记上20的类别,检测框中无其他干扰物体,且识别类别正确。

图6 实验结果图Fig.6 Pictures of experimental results

以上结果说明本文方法能在不同道路场景下准确地检测识别出交通标志,实验结果良好。为了验证本文方法的性能,在采用同一数据集的基础上,相比于其他现有方法,本文方法在保持检测速率的情况下,识别准确率有所提升,对比结果如表2所示。

分析以上结果可知,本文方法联合TSD与TSR,能够在不同光照条件下、不同视角、不同天气情况下对不同尺寸的交通标志进行准确地检测与识别,在本文实验环境下,实验检测速率为20 ms,准确率为98.78%,实验结果良好,性能稳定。

表2 实验对比结果Table 2 Experimental comparison results

3 结论

采用YOLOv5l和改进ViT的交通标志检测与识别方法,在交通标志目标小、类别多的道路中,快速准确地检测识别出交通标志,改善了检测速率与识别准确度无法同时满足的缺陷。首先通过YOLOv5l检测器快速准确地检测出目标检测框,然后将检测框中的目标输入ViT进行分类识别,在ViT中加入了DenseNet,能够提高特征的重复利用率,缓解梯度消失,提高识别精确度。最终实验结果表明,本文的交通标志检测与识别方法在速率得到保证的情况下,识别准确率有所提高,适用于终端移动设备,具有一定的应用价值与研究意义。

猜你喜欢

交通标志编码器类别
基于ResNet18特征编码器的水稻病虫害图像描述生成
WDGP36J / WDGA36J编码器Wachendorff自动化有限公司
基于双向特征融合的交通标志识别
基于Beaglebone Black 的绝对式编码器接口电路设计*
一起去图书馆吧
简析基于概率预测的网络数学模型建构
基于TMS320F28335的绝对式光电编码器驱动设计
交通标志小课堂
我们欢迎你!
选相纸 打照片