基于改进YOLOv4的道路标线检测算法

2022-11-10 00:20赵明升ZHAOMingsheng来跃深LAIYueshen
价值工程 2022年30期
关键词:标线类别注意力

赵明升ZHAO Ming-sheng;来跃深LAI Yue-shen

(西安工业大学机电工程学院,西安 710021)

0 引言

路标线在疏导交通、规范交通行为以及防范交通事故等方面的起着关键作用。随着近年来我国的自动化驾驶汽车行业的飞速发展,现在的自动化驾驶汽车实现自动化驾驶依赖于自身的智能化系统而非智能交通网络框架,其必须通过汽车的感知系统感知周围的环境信息,其中就包括道路的标线信息,道路标线的完整性就显得格外重要。

为确保道路标线的完整性,人们针对道路标线的完检测提出了不同的解决方案。例如,文献[1]提出基于道路标线像素提取以及通过逆透视映射的连通分量进行标线检测,能够识别出重复标线(人行横道)以及单一特征的(如箭头)的道路标线。文献[2]利用机器学习的方法搭建构建了道路标线的检测分类算法,使用二值化标准梯度(BING)方法进行标线检测,使用PACNet网络进行标线的分类,该方法效果不佳,只能检测出几类目标。文献[3]提出了基于Adaboost机器学习机多类型道路标线识别模型,同时建立了单目视觉的多种道路标线检测系统,其关于标线的检测前检测精度有了一定的提升,但是类别效果较少。文献[4]提出基于自适应感兴趣区域(ROI)和深度卷积神经网络(CNN)道路标线检测方案,随着深度卷积网络的使用,该方法实现了对箭头类标线和自行车标线的检测和分类。文献[5]针对鸟瞰图中道路标线在横向和纵向上分布密度不同的特点,利用YOLOv3[6]实现道路标线的检测,并且检测效果让人满意。

基于传统标线的检测方法效果难以让人感到满意,随着机器学习的使用能够实现初步让人满意的标线检测结果。特别是近年来深度学习的蓬勃发展给人们带来了新的解决方案,例如引用文献[4]、文献[5]的检测结果让人满意。为进一步进行深入的研究,提升标线多类别检测的效果,本文使用改进的YOLOv4[7]目标检测算法实现道路标线的检测。

1 改进的YOLOv4目标检测算法

本文提出的算法从轻量化主干特征提取网络、融合注意力机制以及改进损失函数等3个方面改进YOLOv4目标检测算法。使用MobilenetV3[8]网络替换CSPDarkNet53网络作为改进目标检测算法的主干特征提取网络,利用该方法降低主干特征提取网络的参数量;在三个不同采样尺度处使用Triplet[9]注意力增强网络的性能;利用EIOU和Focal loss改进YOLOv4的目标损失函数促进模型的收敛速度,具体的改进方法如下文所示。

1.1 融合注意力机制

为使卷积网络模型在进行训练的时候能够关注特征事物。本文在原网络结构的基础上引入Triplet注意力机制,通过该机制的引入使网络更加关注输入图像中标线所在的空间信息和通道信息。由于需要从主干特征提取网络中采样三个尺度的信息,因此本文尝试在采样的部分使用注意力机制。使用的Triplet注意力机制如图1所示。

如图1所示为Triplet注意力机制的网络结构,该注意机制由三个分支组成:其中两个分支分别用来捕获通道C维度和空间维度W/H之间的跨通道交互,剩下的一个分支就是传统的空间注意力权重的计算。相比CBAM注意机制采用空间注意力机制和通道注意力机制分离的机制,Triplet注意力机制能够实现跨维度融合,并且对于其构成的通道注意力机制和空间注意力机制是几乎无参的,故本文采用Triplet作为特征增强的注意机制。

1.2 损失函数的改进

由于在整张图像中道路标线的信息只包含小部分信息,而大部分为背景信息,这种正负样本不均衡现象导致模型在训练过程中难以关注目标对象。为了降低这种不平衡现象造成的影响本文引用Focal loss改进的YOLOv4的类别损失函数,则改进后的类别损失函数可以表示为:

式中α表示平衡参数;γ∈(0,+∞)用于减少易分样本的差距,其中α=0.5,γ=1效果更好,pi(c)表示预测类别置信度预测类别置信度。

EIOU损失函数解决CIOU损失函数中其纵横比的模糊的现象,同时也考虑到重叠面积、中心点距离、长宽边长真实差,相比CIOU损失函数的其收敛速度更快并且能够保证整个算法的精度,本文引入了EIOU改进其的位置损失函数

其中,cw、ch、ρ分别是覆盖两个box的最小外接框的宽度、高度及b和bgt之间的欧式距离,w,h,wgt,hgt分别为预测框的和真实框的宽高。

2 实验结果与数据分析

2.1 实验数据及环境

为进一步验证本课题提出基于轻量化网络、Focal loss、EIOU以及融合Triplet注意力机制改进的YOLOv4目标检测算法的性能,本文使用基于CeyMo[10]数据集进行道路标线检测算法的验证。CeyMo数据集包含2887幅图像和4706个属于11个道路标记类的实例,同时使用Mosaic算法进行数据增强,增加道路标线数据集的丰富度。

为进行验证实验,搭建实验平台,平台的参数为:显卡NVIDIA GeForce RTX 2080 Ti(11G显存)、cuda11.0、cudnn 8.0.4、深度学习框架为pytorch 1.8、开发环境为:VScode。

2.2 模型训练

利用修改后的YOLOv4目标检测算法进行模型训练。首先通过的Kmeans算法获得道路标线的先验框。本文得到关于道路标线的先验框大小为(21,9)、(21,27)、(32,54)、(44,15)、(64,28)、(88,50)、(182,71)、(228,31)、(352,74)。设置对应的超参数迭代次数设置为800次,批量大小为16,优化方法使用Sgd,初始化步长为0.005,最小步长为0.00005,动量损失为0.95,Focal loss使用默认参数,之后进行模型训练,训练过程中的损失函数的变化如图2所示。

2.3 评价指标

目标检测算法的性能评价包括:MAP、FPS(该算法每秒能够处理图像的速度)、AP(类别的平均精度)以及Recall(每个类别的召回率)。由于AP和R之间为负相关,其AP越高则其Recall越低,故在本文所使用的模型评价标准中使用的MAP,AP以及FPS作为性能的评价指标。

2.4 实验结果分析

为了评价本文提出算法的性能,本文利用现有的算法和本文提出算法进行分析。本文使用SSD、YOLOv3,YOLOv4、轻量化YOLOv4以及轻量化YOLOv4+CBAM等算法和本文提出的目标检测算法进行比较,得到不同算法的道路标线检测的性能如表1所示,不同算法对不同类别的检测精度如表2所示。

如表1本文所提出算法和现有模型算法进行训练之后得到关于道路标线检测模型训练的结果。通过观察表1和表2可以发现本文提出算法的参数量相比SSD,YOLOv3以及YOLOv4检测算法参数量明显的减低,只有未压缩时大约25%的参数量,随着参数量的降低FPS的单帧处理速度明显降低。同时,相比融合的CBAM注意力本文使用的注意力机制参数量更小,同时预测精度更高其依旧有着准确的预测精度,最终得到道路标线的检测精度达到了97%。

表1 模型对比

表2 预测精度

在实验的环境下,利用道路标线的破损检测。在实验的过程中首先利用本文所提出的目标检测算法进行道路标线的类别检测,标线的类别检测其结果如图3所示。

如图3所示为进行标线检测实验的结果,观察所示的标线检测结果能够发现本文提出的目标的检测算法具有较前的鲁棒性,能够在不同的场景中实现道路标线的检测。

3 结论

本课题的研究是为了进行道路标线的准确检测,为进一步提升模型的预测效率故在原YOLOv4模型的基础上进行了三个方面的改进。我们所使用的目标检测在原算法的基础上引入Triplet注意力机制使神经网络更加关注的感兴趣目标,增强模型的表达;同时采用深度可分离网络优化了神经网络结构,降低了神经网络的复杂度;简化了损失函数,加速了模型训练的速度。最终的实验表明,本文的算法在使用的数据集上的训练结果得到了约97%的预测精度,同时其单帧处理速度为0.0266秒,其性能基本上可以满足道路标线检测的实时需求。

猜你喜欢
标线类别注意力
让注意力“飞”回来
基于改进Canny算法的道路标线自动识别及定位
上海市中环路标线调整研究
“三横两纵”古代城市路面标线的活化石
“扬眼”APP:让注意力“变现”
服务类别
论类别股东会
中医类别全科医师培养模式的探讨
聚合酶链式反应快速鉴别5种常见肉类别