基于改进YOLOv3模型的车辆前方路面坑洼检测*

2022-12-10 06:55胡均平张洪伟向思平宋菲菲
传感器与微系统 2022年12期
关键词:坑洼阴影尺度

胡均平, 黄 强, 张洪伟, 向思平, 宋菲菲

(中南大学 机电工程学院, 湖南 长沙 410083)

0 引 言

当前对道路坑洼进行检测的研究较少,在车辆行驶中进行坑洼检测仍处于不成熟阶段,提高车辆前方坑洼检测的定位精度对于自动驾驶车辆避开坑洼具有重要意义[1]。

目前,基于卷积神经网络(convolutional neural network,CNN)的端到端目标检测技术已经在各种目标检测数据集上,实现了极高的检测精度和检测速度。使用深度学习算法检测道路坑洼的研究[2~5]中可以看出,深度学习具有成本低、对外部环境的依赖性低、鲁棒性高和检测速度快的特点。但在对复杂背景下的坑洼进行检测时,仍存在一些不足:1)道路阴影和积水等图像噪声容易影响检测精度;2)定位精度低;3)检测设备昂贵、检测成本高。

本文基于目标检测模型YOLOv3,通过改进检测网络结构、调整激活函数、学习率调节策略和采用K-Means方法对坑洼数据集边界框尺寸进行聚类等技术,提出了坑洼检测模型YOLOv3-Pt。结果表明,YOLOv3-Pt在检测精度方面与YOLOv3相比具有明显提升,能够满足坑洼检测精度的需要。

1 YOLOv3 基本原理

为了实现多尺度检测,YOLOv3提出了特征提取网络Darknet-53。Darknet-53由一系列的1×1和3×3的卷积层组成,无池化层和全连接层,张量的尺寸变换是通过改变卷积核的步长来实现的。具体的网络结构如图1所示。其中,CBL、Res_unit、Resn结构如图2~图4所示。

图1 Darknet—53网络结构

图2 CBL结构

图3 Res_unit结构

图4 Resn结构

2 坑洼检测网络YOLOv3-Pt

2.1 特征提取网络

复杂背景下的道路坑洼纹理与良好路面纹理在灰度、纹理等方面相近,该特性是引起漏检率较高和检测精度较低的主要原因之一。因此,特征提取阶段使用的激活函数在梯度变化方面应比较平缓,梯度值无突变。针对上述问题,在YOLOv3-Pt 模型的特征提取阶段引入了Mish激活函数。

Mish激活函数的数学表达式如式(1)所示

Mish(xi)=xi×tanh(ln(1+exi)

(1)

式中xi为Mish激活函数的输入。

2.2 检测网络

2.2.1 YOLOv3-Pt网络结构

在YOLOv3模型中,通过上采样融合低级特征和高级特征,然后在大、中、小3个特征图上进行检测,可以检测出尺寸变化范围较大的物体。

路面坑洼的尺寸变化范围较小,采用多尺度检测策略进行训练时,某个尺度的损失函数可能无法下降,产生特征无法提取的问题。针对该问题,YOLOv3-Pt在YOLOv3的基础上对检测网络的输出进行了改进,将3个尺度的输出进行融合获得单尺度的输出。

首先,对YOLOv3中输出尺度为52×52的特征图采用大小为3×3的卷积核进行卷积,其中,Stride为2,Paddig为1,获得大小为26×26的特征图;接着,对输出尺度为26×26的特征图按行和按列进行间隔采样后与输出尺度为13×13的特征图进行拼接,获得特征图大小也为26×26;其次,对获得的2个大小为26×26的特征图沿着通道数方向进行拼接,获得尺度为26×26×36的特征图;最后,对该特征图进行2次卷积,分别为卷积核大小为3×3,Stride为2,Paddig为1的尺度缩放卷积和卷积核大小为1×1,卷积核数量为18的卷积,最终获得大小为13×13×18的输出特征图。YOLOv3-Pt的网络结构,如图5所示。其中,CUC代表卷积块,具体结构如图6所示。

图5 YOLOv3-Pt网络结构

图6 CUC结构

2.2.2 YOLOv3-Pt模型特征图划分

在训练过程中,本文使用的输入图像的大小为544×544×3。由于坑洼大多数位于道路中央,为了使最终的预测框靠近特征图中间,设置输出大小为奇数。本文取缩放尺度为32,因此输出大小为17×17×18。图7为缩放尺度为32时对应的网格划分示意。

图7 YOLOv3-Pt输出特征图网格划分

2.2.3 坑洼边界框尺寸聚类

在环境复杂的路面进行坑洼检测时,往往容易造成漏检或者误检,对此,本文使用K-Means方法对坑洼边界框尺寸进行聚类,获得合适的预设框尺寸,具体步骤如下:1)对每一张坑洼图片的坑洼进行标注,获得包含标记框位置和类别的文本文件,每行的格式为:(xi,yi,wi,hi),i∈[1,N],分别表示标记框相对原图的中心坐标和宽、高,N表示所有标记框的数量;2)随机选择K个聚类中心点(wi,hi),i∈[1,K],中心点坐标表示预设框的宽和高;3)计算每个标记框和每个聚类中心点的距离d。距离定义为d=1-IoU,将标记框分配给距离最近的聚类中心;4)所有标记框分配结束后,对每个簇重新按式(2)计算聚类中心;5)重复步骤(3)、步骤(4),直到聚类中心不再变化,所得标记框即为所求预设框的尺寸。式(2)如下

(2)

对YOLOv3-Pt模型,每个网格单元预测3个边界框,即K设置为3,然后在坑洼数据集上使用K-Means聚类技术生成对应的预设框尺寸,具体的尺寸如表1所示。

表1 预设框尺寸

3 YOLOv3-Pt训练

3.1 多步长学习率策略

通常,希望在训练初期学习率大一些,使得网络收敛迅速,在训练后期学习率小一些,使得网络更好地收敛到最优解。YOLOv3模型使用的多步长学习率策略便是基于该理念提出的。该学习率调整策略离散且简单,十分高效,但是也存在不同学习率的迭代次数不均匀的问题。对于复杂环境下的坑洼检测,该策略使得模型更加专注于局部最优,而不是全局最优,达不到需要的检测精度。

3.2 余弦退火调整学习率

余弦退火策略使得学习率按照余弦函数周期性变化,并在每个周期最大值时重新设置学习率[6]。以初始学习率为最大学习率,随着epoch的增加,学习率先急速下降,再陡然提升,然后不断重复这个过程。学习率的急剧变化,可以使得梯度下降不会卡在任何局部最小值,并且可能以其向全局最小值的方式“跳出”局部最小值。

3.3 标签平滑技术

针对此问题,在YOLOv3-Pt 模型中使用标签平滑技术[7]。对于分类问题,尤其是多类别分类问题中,常常把类别向量做成One-hot向量。对于损失函数,需要用预测概率去拟合真实概率,而拟合One-hot的真实概率函数带来了两个问题。首先,无法保证模型的泛化能力,容易造成过拟合;其次,全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,会造成模型过于相信预测的类别。标签平滑技术通过降低标签的绝对化,为最终的激活产生了更紧密的聚类和更大的类别间的间隔,从而提高泛化能力和检测精度。

3.4 Mixup技术

在训练的过程中采用了Mixup数据增强技术[8]。Mixup是Zhang H Y等人提出的一种简单且数据无关的数据增强方式,它以线性插值的方式来构建新的训练样本和标签,可以改进当前最先进的神经网络架构的泛化能力。构建虚拟的训练样本的公式为

y=λyi+(1-λ)yj,x=λxi+(1-λ)xj

(3)

式中 (xi,yi),(xj,yj)为训练集中两个样本,λ为一个服从B分布的参数,λ~Beta(α,α),α∈[0,∞]。

在对YOLOv3-Pt模型训练前,利用式(3)随机对坑洼数据集Pothole-set中的2张图片进行处理,将所有处理后的图片用于后续的模型训练。

4 模型训练

4.1 数据集简介

本文为了获得足够数量的坑洼数据集,采取如下方式:1)在各大图片库上搜索坑洼图片,比如Google Images,百度图库;2)使用百度街景浏览某个城市的道路,将道路上的坑洼保存成为图片;3)驾驶固定安装有双目摄像头的轿车,缓慢行驶在坑洼路面上,拍摄坑洼图片。通过这3种方式获得的坑洼数据遍布了真实世界的各种场景,比如随机凹凸坑,各种形状和大小的坑洼,充满光斑或者阴影的坑洼以及积水的坑洼等。坑洼图像的阴影噪声极有可能会被误识别坑洼,因此,需要对坑洼图片进行去除阴影操作。

4.2 坑洼图像阴影去除

提出灰度补偿模型,对阴影部分进行灰度补偿,可以有效去除阴影。

假设图片中阴影区域为M,非阴影区域为N,I(i,j)为图像中位置(i,j)处的灰度值,S为灰度补偿后结果图像,AM,AN分别为阴影区域和非阴影区域的灰度均值,则建立的灰度补偿模型如式(4)所示[9],使用该模型去除阴影的效果如图8所示。式(4)如下

图8 去除阴影效果

(4)

随后,使用该灰度补偿模型对坑洼数据集中的阴影进行去除,同时使用如随机水平翻转、随机修剪、随机仿射等数据增强手段,最终获得坑洼数据集Pothole-set。Pothole-set有1 800张图像,每张图像包含1~3个坑洞,其中,1 296张用作训练集,324张用作验证集,180张用作测试集。对于每幅图像,使用标注软件对图片中的每个坑洼进行大小和位置标记。

4.3 网络训练

本文分别对YOLOv3模型和YOLOv3-Pt模型进行训练。对于YOLOv3模型,采用的是AlexeyAB在github上开源的YOLOv3模型。在训练过程中,本文仅对该模型的输入输出进行了更改,其余参数均没有改变。YOLOv3-Pt模型采用与YOLOv3模型相同的输入。整个训练过程在具有11 GB RAM 的GeForce GTX 1080Ti 显卡上进行,模型的输入均为544×544×3。

山西体育中心体育馆工程是山西省重点工程,位于太原市晋源区,是一个能满足篮球、排球、乒乓球、羽毛球、体操、摔跤等国际单项比赛的大型场馆,建筑面积37 220 m2,总投资3.1亿元,可容纳观众8 102人。该工程是一项多功能、多设备、多专业、组织协调要求高、技术难度大的复杂工程,在两年多的施工中采用了许多新技术、新工艺和新材料,克服了施工过程中的许多难点,获得了市优良工程、省优良工程、太行杯和汾水杯奖等称号。

对于YOLOv3模型,采用多尺度训练,输出分别为68×68×18,34×34×18,17×17×18,对应的检测小坑洼、中等坑洼和大坑洼。模型的初始权重采用的是AlexeyAB提供的预训练权重Darknet53_448.weights。

对于YOLOv3-Pt模型,则采用单尺度输出,模型的初始权重分为2部分。第一部分为YOLOv3-Pt中与YOLOv3网络结构相同的部分,该部分采用和YOLOv3网络相同的初始权重Darknet53_448.weights。第二部分为YOLOv3-Pt模型的输出部分,该部分使用随机初始化权重的方式进行初始化。

两类模型的动量设置为0.9,初始学习率均设置为0.000 01,最后阶段的学习率为0.000 001。对于YOLOv3,本文训练2 000次,采用多步长学习率策略,在500次和800次时学习率分别除以10,训练过程中平均损失如图9(a)所示。对于YOLOv3-Pt,同样训练2 000次,训练过程中的平均损失如图9(b)所示。

图9 2种模型的平均损失

从图9(a)中可以看出,YOLOv3模型的平均损失在训练过程中下降缓慢,同时伴随着剧烈震荡的情况,虽然随着训练的进行震荡减弱,但在训练结束时平均损失仍然处于2.0~3.0。对于YOLOv3-Pt模型,由图9(b)可以发现,平均损失下降迅速,同时下降曲线非常平缓,最终训练结束时平均损失为0.4左右,只有YOLOv3模型1/7左右。由此可见,引入余弦退火学习率策略、标签平滑、Mixup等技术,YOLOv3-Pt对坑洼检测具有明显的提升。

5 实验结果分析

5.1 检测精度和召回率分析

本文使用平均精度(AP)和召回率(Recall)指标

(5)

式中 TP,FP,FN 分别为True Positive,False Positive和 False Negative,N为测试集的图片数量,这里取N=180。

完成对YOLOv3模型训练后,采用控制变量的思想,单独改进某一项或多项训练技术后获得新的检测模型。对该类模型采用同样的训练方式进行训练,获得模型1、模型2、模型3、模型4以及模型5,各个模型的具体改进如表2所示。

表2 改进部分对精度的提升测试结果 %

从表2中可以看出,YOLOv3模型的mAP为80.73 %,Recall为91.96 %。在YOLOv3模型的基础上,将激活函数改为Mish可以增加8.72 %;将学习率策略从多步长学习率改为余弦退火策略可以增加11.75 %。为此,在增加二者的基础上,增加标签平滑技术和Mixup技术,从表中可以看出:分别增加了0.89 %,0.26 %。当将输出由多尺度检测改为单尺度检测时,mAP和recall在前面的基础上分别增加了0.84 %和1.22 %。采用该类技术的 YOLOv3-Pt模型的mAP为94.72 %。与YOLOv3模型相比,YOLOv3-Pt模型的mAP提升了13.99 %,这表明,该模型在复杂环境下进行坑洼检测的精度具有显著提升。

5.2 特殊场景检测结果分析

选取了路面带有积水、阴影的2个场景,在每个场景下比较2个模型的检测性能,检测结果如图10所示。在阴影场景中,在路面阴影面积远大于坑洼尺寸的情况下,YOLOv3-Pt和YOLOv3均没有出现误检的情况,但YOLOv3-Pt在检测数量上优于YOLOv3。在积水场景中,可以明显看到,在坑洼检测数量和小尺寸坑洼的检测性能方面,YOLOv3-Pt模型优于YOLOv3。

图10 阴影和积水场景下检测结果(左:YOLOv3-Pt右:YOLOv3)

6 结 论

本文对复杂环境下路面坑洼进行检测,基于YOLOv3检测模型,根据坑洼的尺寸特点,通过改进特征提取网络、检测网络,并对制作的坑洼数据集采用K-Means算法进行聚类,同时,针对坑洼的几何特征,引入Mish激活函数、余弦退火学习率策略、标签平滑和Mixup技术,提出了坑洼检测模型YOLOv3-Pt。与YOLOv3相比,YOLOv3-Pt在坑洼数据集Pothole-set上的检测精度提升了13.99 %,在有积水、阴影等复杂环境下的检测精度明显提升。

猜你喜欢
坑洼阴影尺度
你来了,草就没有了阴影
财产的五大尺度和五重应对
Chinese women's volleyball:A team that transcends generations
印度道路坑洼猛于恐袭
九行诗
让光“驱走”阴影
宇宙的尺度
阴影魔怪
9