刘 毅 安 移
(上海理工大学光电信息与计算机工程学院 上海 200093)
交通标志识别是目前计算机视觉识别在实际场景的应用之一,也是辅助自动驾驶[1]至关重要的环节,在检测物体方面看和思考的机制应用到了计算机视觉识别实例化中,随着深度学习和图像处理的发展王[2]等将传统的特征提取(如SIFT、HOG特征等)换成了深度卷积网络提取的特征;随后为了减少重复卷积和推算时间提出Fast R-CNN 算法[3]。基 于 区 域 全 卷 积 网 络(R-FCN)方 法Light-Head R-CNN[4]都是二阶段方法,二阶段目标检测算法的检测精度虽然比一阶段法更高,但一阶段法在检测速度上具有更快更优的表现。作为一阶段算法的代表YOLOv2[5]设计了一个DarkNet-19的网络结构并使用锚点框用来预测边界框,大大提升了模型的速率。随后Redmon 等在YOLOv2 的基础上提出YOLOv3[6],引入二进制交叉熵损失来提高检测精度,但对低级信息融合不充分,针对这一问题Chen等提出YOLOv3-dense[7]实现多样化的感受野来提升特征信息融合能力。Gkioxari等针对特征图识别和分割中出现正负样本不均衡、置信度差的问题,提出Mask R-CNN[8]算法使模型均衡性得到改进。Alexey 等提出的YOLOv4 算法[9]引入空间金字塔池网络结构来提升识别速率和检测精度,但导致原始图中的上下文信息损失严重。
通过以上分析,本文提出一种改进YOLOv4-tiny交通标志识别算法LYOLOv4(Loop YOLOv4),为了提升模型检测速度和性能,引入深度可分离卷积块减少参数量和计算量,在特征提取和融合时采用递归特征金字塔(RFP)建立在特征金字塔网络(FPN)的基础上,将递归结构展开为一个顺序实现,获得了一个观察图像两次或更多次的对象检测网络模型。使用标签平滑(label smoothing)[10]策略优化网络的损失函数。
YOLOv4-tiny[11]是在YOLOv4 的基础上进行改进,具有更高效快捷的实时目标检测速度,使用的是1080Ti GPU 检测速度每秒可达到371 帧,YOLOv4-tiny 使用的是CSPDarknet53-tiny 替代原有YOLOv4 使用的CSPDarknet53 作为主干网络,该网络结构在跨级部分网络中使用的是CSPBlock 模块,该模块可以将提取的特征图分为两部分,并通过跨阶段残差网络块将提取的两部分合并。当梯度流可以在不同网络路径进行传输时就增加梯度信息的相关性和差异性。YOLOv4-tiny 改进了激活函数,LeakyReLU替换了原有的Mish激活函数提升性能。
特征金子塔(FPN)采用的是自上而下的路径顺序组合不同尺度的特征,PANet[12]基于FPN 增加了另一条自下而上的路径;BiFPN[13]在PANet 基础添加一条额外的边在不增加耗时的同时融合更多的特征。G-FRNet[14]则是增加了带有门控单元的反馈,NAS-FPN[15]通过神经网络架构搜索寻找最佳的FPN 结构,但模糊信息的前向传递会限制后面的精准识别。为了达到更精准快速地识别本文采用最近Qian 等提出特征融合策略更复杂的递归特征金字塔(RFP)替代原有的特征金字塔网络(FPN)作为特征增强网络。
深度分离可卷积[16]包括逐通道卷积和逐点卷积,其中逐通道卷积的一个卷积核负责一个通道,一个通道只能被一个卷积核卷积,提取到的每个单通道的内部特征再继续进行逐点卷积,它的卷积核的尺寸为1×1×C,C 为上一层的通道数。卷积运算会将上一步的特征图在深度方向上进行加权组合,有几个卷积核会生成几个新的特征图。深度分离可卷积有效减少了模型的参数,计算量得到显著减小,有效提升算法的效率。
LYOLOv4-tiny 模型整体执行流程是:引入可分离卷积LCSPDarknet-tiny 作为特征提取网络,提取三个不同尺度特征图传给RFP多尺度特征融合,并且将来自FPN 层额外反馈再传送给自下而上的主干层,可重复对特征图进行回归和预测。采用权重衰减、标签平滑策略优化损失函数防止过拟合,使用Mosaic数据增强等方法扩充数据集。
由图1 可知主干特征提取网络引入两个可分离卷积块替换原有的标准卷积块减少模型的参数量,特征提取过程中的图层中MCSP 残差块优化了网络层数并降低梯度爆炸和消失的问题。最终得到的特征图仅有原本图像的1/32,深度可分离卷积块结构如图2所示。
图1 LYOLOv4-tiny网络结构图
图2 深度可分离卷积块
RFP实现了一个看和思考两次的顺序设计,其中自下而上的主干和FPN运行多次,它们的输出特性依赖于前面步骤中的输出特性,在将特征转换连接自下而上的主干之前进行编码,加入空洞空间卷积池化金字塔(ASPP))[17]对所给定的输入以不同采样率的空洞卷积并行采样,实现了多个比例捕捉图像的上下文。将递归结构展开为一个顺序实现,可以观察图像两次或者更多次的对象检测器主干如图3所示。
图3 RFP展开为一个两步顺序网络
LYOLOv4 目标检测算法的损失函数计算式如式(1)所示:
loss1置信度损失函数(Lconf)使用判别器执行域自适应存在一个问题是鉴别器给不同的样本分配相同的重要性特征,从而导致了负转移,为了解决这个问题将熵应用到公式,如式(2)所示:
其中S2表示特征图中的网格数,表示一个先验框对象,B 表示网格中边界框数量,和C i分别表示的是预测置信度和真实置信度,obj 是一个重量参数。
loss2类别损失函数(Lcls)判断预测框与真实框之间的误差,采用交叉熵算是函数进行判断,如式(3)所示:
其中S2代表的是特征图的上网格数量(S×S),当第i 网格上的第j 先验框负责检测当前对象时Wijobj=1,否则Wijobj=0,z 为 目 标 的 类 别,pi(z) 和pi(z)分别表示当前检测对象的真实概率和预测概率。在训练过程中为抑制过拟合现象和提高模型的精度和性能,本文算法加入了标签平滑策略,加入label Smoothing 前后真实概率的分布公式如式(4)所示:
其中ε为超参数取0.1,y 表示真实类别。loss3边界框定位损失函数(Lclou)如式(5)所示,CIoU是预测边界框和真实边界框之间的交集不是并集,CIoU对尺度变化敏感,收敛速度更快并且让别界框的回归更加稳定。
其中IoU 是交并比,ρ2(B,Bgt) 表示真实框和边界框中心之间的欧式距离,β为权重函数,V 是衡量边界框长宽比参数,C2表示预测框与真实框组成的最小矩形区域的对角线距离长度。
本文算法是基于Python3.7 的Ubuntu18.04 系统环境下使用PyTorch1.7.1 框架实现,GPU GeForceRTX2080Ti。
本文实验数据集为TT100K 数据,共9350 幅图像包含196 类交通标志。在检测模型训练之前,为了评估该模型的泛化能力随机选取20%的图像(1870)图像作为测试集。在模型训练过程中,训练集和验证集按照9∶1 随机划分,其中验证集则是用来优化和调整算法模型的超参数。为了获得更好的训练效果采用Mosaic 数据增强如图4 所示,通常是对训练样本的图像进行随机缩放、随机裁减翻转拼接、以及不同色域变化,对训练的数据集是一定的扩充,并且模型的鲁棒性得到提升。
图4 Mosaic数据增强
根据迁移学习[18]的思想方法,首先将COCO 数据集上预训练YOLOv4-tiny 的特征提取网络CSPDarknet53-tiny 参数初始化本文算法中提高模型训练的效率,训练第一步只对RFP 网络参数微调,学习率初始值设为1e-3,批量大小设为64,weight_decay(权重衰减参数)=5e-4 训练50 轮,第二步训练MYOLOv4-tiny所有的网络参数学习率初始值设为1e-4,批量大小设为32,weight_decay=5e-6 训 练100 轮,通过分析损失函数变化修改学习率变化策略找到最优解。将LYOLOv4-tiny 模型40000 次迭代训练如图5所示,损失值在前10000次明显衰减,之后损失值缓慢衰减下降呈现收敛趋势。
图5 LYOLOv4-tiny损失曲线
特征提取网络引入深度可分离卷积后网络参数和大小得到显著降低,参数量减低到原来CSPDarknet53-tiny 的56%并且mAP 提高了0.5%,二者对比如表1所示。
表1 引入深度可分离卷积前后对比
在特征提取网络主干LCSPDarknet-tiny 下参数和环境一致的条件,对不同多尺度特征融合网络比较如表2,可知FPN 只能单向端到端训练检测精度较低,NAS-FPN 跨范围融合特性改善分辨率但检索空间过小,PANet 在FPN 基础上增加从下而上融合路径,BiFPN 寻找一个有效的block 重复叠加但精度都未得到明显提升,G-FRNet 参数量过多,RFP在特征融合方法中无论是预测精度、参数量都优于其他方法。
表2 不同多尺度特征融合网络对比
本文算法和YOLOv4-tiny 在相同环境条件下对比交通标志目标识别的P-R 曲线如图6 所示。本文算法检置信度和性能均优于原算法YOLOv4-tiny,对相同目标检测如图7所示中小目标和遮挡目标:限速、禁止鸣笛、禁止停车、行人慢行标志检测效果可知改进算法检测速度均优于原算法。
图6 P-R曲线对比
图7 算法改进前后对比
通过表3 列出目前几种主要算法在TT100K 数据集输入图像尺寸相同条件下mAP 和FPS 的指标对比,可以得到Faster R-CNN 算法mAP 与本文相近,但检测速度FPS 过低。SSD 算法前几年是主流目标检测算法,但随着YOLOv3和YOLOv4推出,检测速度和精度都低于这两者,而相比于YOLOv3 算法本文AP 值下降了0.6%,但mAP 值提升了5.8%,并且检测速度提升了50%,YOLOv4 虽在检测精度达到87.6%,相比本文算法有2.5%的少量提升,但不属于轻量级检测算法,过多的参数和计算量导致FPS 只有23,只有本文改进算法的31%,很难满足交通标志识别的要求。
表3 不同算法性能比较
本文提出基于YOLOv4-tiny 基础上改进的轻量级实时目标检测模型LYOLOv4-tiny,目的是解决当前交通标志识别方法精度低、速度慢以及模型参数冗余的问题。在特征提取阶段引入深度可分离卷积,有效减少参数量和计算量,融合阶段采用RFP 结构,RFP 使用空洞空间卷积池化金字塔和FPN 融合模块执行递归计算,可获得更丰富的特征信息。交通标志检测多任务联合损失过程中将标签平滑策略和CIoU 损失函数相结合进行优化,标签平滑提高图像分类的准确性,Mosaic数据增强方法提高了网络的鲁棒性。实验结果表明,本文算法在交通标志检测精度相比于YOLOv4-tiny 算法mAP提升了4.6%,FPS提升了4%,并且模型大小仅为原算法的56%。LYOLOv4-tiny 在各种场景下能满足交通标志检测要求。