一种基于改进的YOLOv3的坑洼检测方法转让专利
申请号 : CN202110737810.5
文献号 : CN113486764B
文献日 : 2022-05-03
发明人 : 罗春雷 , 黄强 , 胡均平 , 罗睿 , 袁确坚 , 段吉安 , 夏毅敏 , 赵海鸣
申请人 : 中南大学
摘要 :
权利要求 :
1.一种基于改进的YOLOv3的坑洼检测方法,其特征在于,包括以下步骤:S1、通过视觉采集系统采集坑洼图像,预处理后得到坑洼数据集,坑洼数据集包括预处理后的坑洼图像;
S2、构建改进的YOLOv3坑洼检测网络模型;
S2.1、构建特征提取网络my_Darknet‑101:通过Get_Feature特征提取模块对坑洼数据集提取坑洼的边缘和纹理信息作为初始模块,使用3个密集连接块Pothole_Block作为特征提取的主干,在每个Pothole_Block之后使用过渡层Pothole_Transition进行过渡,最终构建卷积层数为101的特征提取网络my_Darknet‑101;
所述Get_Feature特征提取模块为:以坑洼图像为输入,依次经过卷积核为1×1、过滤器数为32、步长为1的卷积层,卷积核为3×3、过滤器数为64、步长为1的卷积层,卷积核为1×1、过滤器数为32、步长为2的卷积层,之后分两通道,一通道依次经过卷积核为1×1、过滤器数为16、步长为1的卷积层,卷积核为3×3、过滤器数为32、步长为2的卷积层,另一通道经过卷积核为2×2、步长为2的均值池化卷积层,两个通道通过Concat合并后输出;
所述3个密集连接块Pothole_Block分别通过6,12和16个Pothole_Bottleneck模块构建,组增长率统一取64,所述Pothole_Bottleneck模块为:将输入卷积划分成4个通道,其中两个通道依次经过卷积核为1×1的卷积层,卷积核为3×3的卷积层,卷积核为1×1的卷积层,另两个通道依次经过卷积核为1×1的卷积层,卷积核为3×3的卷积层,卷积核为3×3卷积核为卷积层,然后四个通道通过Concat合并后输出;
所述过渡层Pothole_Transition为:将输入卷积依次通过卷积核为3×3、步长为1的卷积层,卷积核为2×2、步长为2的均值池化卷积层后输出;
S2.2、使用YOLOv3中的多尺度检测和上采样机制,作为整个网络框架的骨架,连接所述特征提取网络my_Darknet‑101和输出部分,最终构建改进的YOLOv3坑洼检测网络模型;
S3、将所述坑洼数据集的训练数据集输入所述改进的YOLOv3坑洼检测网络模型训练,采用余弦退火的学习率调整方法,并计算改进的损失函数,当所述改进的损失函数趋近于零时,得到所述改进的YOLOv3坑洼检测网络模型的参数最优解;
S4、将所述坑洼数据集输入代入了参数最优解的所述改进的YOLOv3坑洼检测网络模型,得到坑洼检测结果。
2.根据权利要求1所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,步骤S2中所述改进的YOLOv3坑洼检测网络模型为:第一通道为将第三个所述过渡层Pothole_Transition的输出卷积,依次经Conv‑unit、Conv、Conv2d后输出特征图Y1,第二通道为将第一通道的Conv‑unit的输出卷积进行上采样后,与第二个所述过渡层Pothole_Transition的输出卷积以concat方式进行连接,依次经Conv‑unit、Conv、Conv2d后输出特征图Y2,第三通道为将第二通道的Conv‑unit的输出卷积进行上采样后,与第一个所述过渡层Pothole_Transition的输出卷积以concat方式进行连接,依次经Conv‑unit、Conv、Conv2d后输出特征图Y3。
3.根据权利要求2所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,所述Y1、Y2、Y3是输出的由小到大的三个尺度的特征图,Y1、Y2、Y3的尺度分别为13×13×255,26×26×
255,52×52×255。
4.根据权利要求2所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,输入的所述坑洼图像的尺度范围为320×320×3到608×608×3,缩放尺度为32,待检测的物体数量为
1,所述输出特征图的尺度范围为10×10×18到19×19×18。
5.根据权利要求2所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,所述Conv‑unit卷积组件为依次经卷积核为1×1、3×3、1×1、3×3、1×1卷积层,所述Conv为一维卷积层,Conv2d为二维卷积层。
6.根据权利要求1所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,每个卷积层包括的激活函数为Mish激活函数。
7.根据权利要求1所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,步骤S3中所述改进的损失函数为:
Lmy‑Loss=Lmy‑conf+Lmy‑loc+Lmy‑class其中,Lmy‑conf为置信度损失,Lmy‑loc为回归损失,Lmy‑class为分类损失;α是控制样本正负γ 2
的权重系数,(1‑pj) 是调制系数,γ>0;S表示图片被分割成S×S个网格,B表示锚框个数;
表示第i个网格的第j个锚框是否负责该目标,如果负责,则 否则表示第i个网格的第j个锚框是否不负责该目标,如果不负责, 如果负责,表示第i个网格的第j个边界框的置信度, 由网格的边界框是否负责预测当前对象决定,如果负责, 否则 λnoobj控制单个网格内没有目标的损失,λcoord控制边界框预测位置的损失, 表示改变不同尺寸候选框的损失, 是第i个网格第j个真实边界框的宽度, 是第i个网格第j个预测边界框的宽度, 是第i个网格第j个真实边界框的高度, 是第i个网格第j个预测边界框的高度,xi是第i个网格中心坐标的x值, 是第i个网格第j个锚框所产生的边界框的中心坐标的x值,yi是第i个网格中心坐标的y值, 是第i个网格第j个锚框所产生的边界框的中心坐标的y值,pi(c)是对象条件类别概率,表示该网格存在物体且属于第i类的真实值概率, 是对象条件类别概率,表示该网格存在物体且属于第i类的预测值概率。
8.根据权利要求1所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,步骤S3中所述余弦退火的学习率调整方法为:
j j
其中,ηi表示调整后的学习率,ηmin表示学习率最小值,ηmax则表示学习率最大值,Tcur代表当前的迭代次数,Tj代表网络训练的总迭代次数。
9.根据权利要求1所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,步骤S3中将所述坑洼数据集的训练数据集输入所述改进的YOLOv3坑洼检测网络模型后,还包括对输出的特征图进行锚框处理,包括以下步骤:
S3.1.1、对输出的特征图进行网格划分;
S3.1.2、使用K‑Means聚类方法对训练数据集的边界框尺寸进行聚类,获得符合训练数据集的锚框尺寸。
10.根据权利要求9所述的基于改进的YOLOv3的坑洼检测方法,其特征在于,所述步骤S3.1.2包括:
a)对每一张坑洼图片的坑洼进行标注,获得xml文件,然后提取xml文件中标记框的位置和类别,格式为:(xp,yp,wp,hp),p∈[1,N],xp,yp,wp,hp分别表示第p个标记框相对原图的中心坐标和宽、高,N表示所有标记框的数量;
b)随机选择K个聚类中心点(wq,hq),q∈[1,K],该点的坐标表示锚框的宽和高;
c)依次计算每个标记框与K个聚类中心点的距离d,距离定义为d=1‑IoU[(xp,yp,wp,hp),(xp,yp,Wq,Hq),p∈[1,N],q∈[1,K],IoU为交并比,将标记框划分到距离最近的聚类中心点中去;
d)所有标记框分配结束后,对每个簇重新计算聚类中心,其中Nq表示第q簇的标记框的数量,Wq′,Hq′表示更新后的聚类中心点坐标,即更新的锚框的宽和高:e)重复c,d两步,直到聚类中心不再变化,所得标记框即为所求锚框的尺寸。
说明书 :
一种基于改进的YOLOv3的坑洼检测方法
技术领域
背景技术
洞检测的依据,存在坑洞检测准确率低和实时性不足的问题。当前,深度学习已经成为目标
检测的主流手段,包括使用两阶段、多阶段和单阶段算法对坑洼进行检测。两阶段检测算法
Faster RCNN和多阶段检测算法Cascade RCNN检测精度较高,但是无法满足实时性,单阶段
检测算法SSD则相反,满足实时性要求但是对于尺寸较大的坑洼检测精度不高。由此可见,
使用单阶段算法将有利于实现检测实时性。当前,单阶段算法YOLOv3在目标检测基准数据
集上的实时性优于FasterRCNN和Cascade RCNN,并且在检测精度和实时性上超越了SSD,
YOLOv3是YOLO系列算法的第三个版本,YOLOv3是一个单阶段的目标检测算法,同时也是一
个全卷积神经网络,但是YOLOv3的坑洼检测准确率仍需要进一步提高。
发明内容
特征提取的主干,在每个Pothole_Block之后使用过渡层Pothole_Transition进行过渡,最
终构建卷积层数为101的特征提取网络my_Darknet‑101;
为1×1、过滤器数为32、步长为2的卷积层,之后分两通道,一通道依次经过卷积核为1×1、
过滤器数为16、步长为1的卷积层,卷积核为3×3、过滤器数为32、步长为2的卷积层,另一通
道经过卷积核为2×2、步长为2的均值池化卷积层,两个通道通过Concat合并后输出;
其中两个通道依次经过卷积核为1×1的卷积层,卷积核为3×3的卷积层,卷积核为1×1的
卷积层,另两个通道依次经过卷积核为1×1的卷积层,卷积核为3×3的卷积层,卷积核为3
×3卷积核为卷积层,然后四个通道通过Concat合并后输出;
型;
于零时,得到所述改进的YOLOv3坑洼检测网络模型的参数最优解;
征图Y1,第二通道为将第一通道的Conv‑unit的输出卷积进行上采样后,与第二个所述过渡
层Pothole_Transition的输出卷积以concat方式进行连接,依次经Conv‑unit、Conv、
Conv2d后输出特征图Y2,第三通道为将第二通道的Conv‑unit的输出卷积进行上采样后,与
第一个所述过渡层Pothole_Transition的输出卷积以concat方式进行连接,依次经Conv‑
unit、Conv、Conv2d后输出特征图Y3。
18。
正负的权重系数,(1‑pj) 是调制系数,γ>0;S表示图片被分割成S×S个网格,B表示锚框个
数; 表示第i个网格的第j个锚框是否负责该目标,如果负责,则 否则
表示第i个网格的第j个锚框是否不负责该目标,如果不负责, 如
果负责, 表示第i个网格的第j个边界框的置信度, 由网格的边界框是否
负责预测当前对象决定,如果负责, 否则 λnoobj控制单个网格内没有目标的
损失,λcoord控制边界框预测位置的损失, 表示改变不同尺寸候选框的损失,
是第i个网格第j个真实边界框的宽度, 是第i个网格第j个预测边界框的宽度, 是
第i个网格第j个真实边界框的高度, 是第i个网格第j个预测边界框的高度,xi是第i个网
格中心坐标的x值, 是第i个网格第j个锚框所产生的边界框的中心坐标的x值,yi是第i个
网格中心坐标的y值, 是第i个网格第j个锚框所产生的边界框的中心坐标的y值,pi(c)是
对象条件类别概率,表示该网格存在物体且属于第i类的真实值概率, 是对象条件类
别概率,表示该网格存在物体且属于第i类的预测值概率。
图的中心坐标和宽、高,N表示所有标记框的数量;
中心点中去;
丰富特征层,为改进的YOLOv3坑洼检测网络模型引入更多特征信息,提高坑洼纹理等浅层
特征的提取能力,有利于提高检测精度;
较大的特征,也能提取较小的特征,提高算法对深层特征的提取能力;
度,减少迭代时间,更有利于提高检测精度和实现实时性检测;
算宽高误差时直接去除根号,同时在计算宽高损失时加上系数 以改变不同
尺寸候选框的损失,解决了待检测数据中正样本数量远远小于负样本的数量,产生类别不
均衡,使得负样本在网络中的权重过大,梯度难以下降,网络收敛速度慢的问题;
附图说明
具体实施方式
特征提取的主干,在每个Pothole_Block之后使用过渡层Pothole_Transition进行过渡,最
终构建卷积层数为101的特征提取网络my_Darknet‑101,具体包括以下步骤:
加网络的宽度可以获得更丰富的特征信息,提高网络的性能;Get_Feature特征提取模块的
结构如图2所示,以坑洼图像为输入,依次经过卷积核为1×1、过滤器数为32、步长为1的卷
积层,卷积核为3×3、过滤器数为64、步长为1的卷积层,卷积核为1×1、过滤器数为32、步长
为2的卷积层,之后分两通道,一通道依次经过卷积核为1×1、过滤器数为16、步长为1的卷
积层,卷积核为3×3、过滤器数为32、步长为2的卷积层,另一通道经过卷积核为2×2、步长
为2的均值池化卷积层,两个通道通过Concat合并后输出;即首先使用小卷积1×1和3×3在
保持输入分辨率不变的基础上引入非线性,随后使用stride 2、2×2的均值池化卷积作为
降低分辨率的方式,该方式丰富了特征层,为网络引入了更多的上下文信息;
积核为1×1的卷积层,卷积核为3×3的卷积层,卷积核为1×1的卷积层,负责提取较小特征
的同时引入非线性,降低网络梯度消失的风险;另两个通道依次经过卷积核为1×1的卷积
层,卷积核为3×3的卷积层,卷积核为3×3的卷积层,负责提取较大的特征;然后四个通道
通过Concat合并后输出。
结果如表1所示。
步长为1的卷积层,卷积核为2×2、步长为2的均值池化卷积层后输出。
别,my_Darknet‑101有利于提高坑洼纹理等浅层特征的提取能力和深层特征的提取能力。
型;
改进的YOLOv3坑洼检测网络模型如图6所示,第一通道为将第三个所述过渡层Pothole_
Transition的输出卷积,依次经Conv‑unit、Conv、Conv2d后输出特征图Y1,第二通道为将第
一通道的Conv‑unit的输出卷积进行上采样后,与第二个所述过渡层Pothole_Transition
的输出卷积以concat方式进行连接,依次经Conv‑unit、Conv、Conv2d后输出特征图Y2,第三
通道为将第二通道的Conv‑unit的输出卷积进行上采样后,与第一个所述过渡层Pothole_
Transition的输出卷积以concat方式进行连接,依次经Conv‑unit、Conv、Conv2d后输出特
征图Y3,所述Y1、Y2、Y3是输出的由小到大三个尺度的特征图,用于检测由大到小尺度的坑
洼,本实施例中,输入图像尺度为416×416×3,Y1输出特征图尺度为13×13×255,用于检
测较大尺度的坑洼;Y2输出特征图尺度为26×26×255,用于检测中等尺度的坑洼;Y3输出
特征图尺度为52×52×255,用于检测小尺度的坑洼,255为通道数。
出端引入激活函数,即每个卷积层为卷积+BN+激活函数,激活函数使网络可以非线性变化,
有利于增加网络的非线性,同时可以迅速的提高网络的深度,避免过拟合,本实施例采用
Mish激活函数。
于零时,得到所述改进的YOLOv3坑洼检测网络模型的参数最优解;
寸,包括以下步骤:
于小物体而言大分辨率的图像则可能噪声过多,使得检测精度过于糟糕。因此,为了在检测
精度和速度上取的平衡,本发明实施例在训练过程中使用多尺度训练,输入图像的尺度范
围为320×320×3到608×608×3。
特征图的尺度范围为10×10×18到19×19×18,图7为输入尺度为608×608×3时对应的网
格划分示意图。
图的中心坐标和宽、高,N表示所有标记框的数量;
中心点中去;
实施例采用余弦退火的学习率调整方法,余弦退火的学习率调整方法,使得学习率按照余
弦函数周期性变化,并在每个周期最大值时重新设置学习率。在网络训练时,余弦退火学习
率以初始学习率为最大学习率,随着epoch的增加,学习率先急速下降,再陡然提升,然后不
断重复这个过程。学习率的急剧变化,可以使得梯度下降不会卡在任何局部最小值,使得网
络训练跳出局部最优,达到全局最优。余弦退火的学习率调整方法为:
产生机制,而在待检测数据中正样本数量远远小于负样本的数量,产生类别不均衡,使得负
样本在网络中的权重过大,梯度难以下降,网络收敛速度慢。为了解决该问题,对原始
YOLOv3损失函数进行改进,引入Focal Loss损失函数机制。
γ
(modulating factor)(1‑pj) ,提高网络对难分类样本的检测精度,其中,γ>0;而my_
YOLOv3的损失函数由置信度损失Lmy‑conf、回归损失Lmy‑loc和分类损失Lmy‑class组成,其中回归
损失又分为中心坐标损失和宽高损失,在YOLOv3中,将分类损失和置信度损失从YOLOv1中
采用的均方和损失修改为交叉熵损失。此外,在YOLOv2中作者发现在解决不同候选框对损
失贡献不一致的问题时,使用宽高开根号的方式效果并不明显。因此,YOLOv3计算宽高误差
时直接去除根号,同时在计算宽高损失时加上系数2‑wi×hi,以改变不同尺寸候选框的损
失。my_YOLOv3的改进的损失函数如式(5)、(6)、(7)、(8)所示。
锚框是否不负责该目标,如果不负责, 如果负责, 表示第i个网格
的第j个边界框的置信度, 由网格的边界框是否负责预测当前对象决定,如果负责,
否则 λnoobj控制单个网格内没有目标的损失,λcoord控制边界框预测位置的损
失, 表示改变不同尺寸候选框的损失, 是第i个网格第j个真实边界框的宽
度, 是第i个网格第j个预测边界框的宽度, 是第i个网格第j个真实边界框的高度,
是第i个网格第j个预测边界框的高度,xi是第i个网格中心坐标的x值, 是第i个网格第j
个锚框所产生的边界框的中心坐标的x值,yi是第i个网格中心坐标的y值, 是第i个网格
第j个锚框所产生的边界框的中心坐标的y值,pi(c)是对象条件类别概率,表示该网格存在
物体且属于第i类的真实值概率, 是对象条件类别概率,表示该网格存在物体且属于
第i类的预测值概率。
448.weights,在训练过程中我们仅对该模型的输入输出进行了更改,其余参数均没有改
变。对于my_YOLOv3模型,模型的初始权重分为两部分。第一部分为my_YOLOv3中与YOLOv3不
同的特征提取部分,使用ImageNet对模型进行预训练。第二部分为my_YOLOv3中与YOLOv3网
络结构相同的部分,即模型的输出部分,该部分使用随机初始化权重的方式进行初始化。
确率、平均精确度(AP)、误检率和漏检率等。网络训练参数设置一致,bachsize取2,动量设
∧
置为0.9,迭代次数均取100,激活函数为Leaky ReLU,初始学习率为2.5×10 ‑4,采用多步
长学习策略,在第25和第60个epoch时学习率除以10继续训练。对比结果如下:
归损失下降过程总体趋于平滑,当训练结束时,YOLOv3的回归损失为7.091,my_YOLOv3的则
为2.339,两者比值达到3倍以上,my_YOLOv3网络在训练坑洼数据集阶段大大优于YOLOv3网
络。
my_YOLOv3不仅在IOU阈值取0.5的水平上表现出优秀的检测精度,在IOU取0.5到0.95时的
平均精确度仍达到了0.912,比SSD还高出40.4%。由此可见,改进的my_YOLOv3坑洼检测网
络的性能远优于YOLOv3。
测要求,还是YOLOv3的1.7倍。由此可见,my_YOLOv3可以满足实现高精度的坑洼实时检测要
求。
丰富特征层,为改进的YOLOv3坑洼检测网络模型引入更多特征信息,提高坑洼纹理等浅层
特征的提取能力,有利于提高检测精度;
较大的特征,也能提取较小的特征,提高算法对深层特征的提取能力;
度,减少迭代时间,更有利于提高检测精度和实现实时性检测;
算宽高误差时直接去除根号,同时在计算宽高损失时加上系数 以改变不同
尺寸候选框的损失,解决了待检测数据中正样本数量远远小于负样本的数量,产生类别不
均衡,使得负样本在网络中的权重过大,梯度难以下降,网络收敛速度慢的问题;
围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围
之内。