(12)发明专利申请
(10)申请公布号 CN 112529090 A(43)申请公布日 2021.03.19
(21)申请号 202011506228.X(22)申请日 2020.12.18
(71)申请人 天津大学
地址 300072 天津市南开区卫津路92号(72)发明人 李东锦 牛福 刘昱
(74)专利代理机构 天津市北洋有限责任专利代
理事务所 12201
代理人 李素兰(51)Int.Cl.
G06K 9/62(2006.01)G06N 3/04(2006.01)G06N 3/08(2006.01)
权利要求书2页 说明书5页 附图5页
CN 112529090 A(54)发明名称
一种基于改进YOLOv3的小目标检测方法(57)摘要
本发明公开了一种基于改进YOLOv3的小目标检测方法,构建改进YOLOv3的特征提取网络,使用含有通道注意力机制的残差模块组成的特征提取网络代替YOLOv3的DarkNet‑53;构建改进YOLOv3的特征融合网络,在YOLOv3的特征金字塔网络的基础上增加了一个自底向上的结构;采用K‑means++聚类算法代替K‑means算法对自制的数据集聚类生成锚框;构建改进YOLOv3的检测网络,在52×52和26×26大小的特征图上进行检测;构建改进YOLOv3的损失函数,使用CIoU损失函数作为目标框的损失。与现有的YOLOv3算法相比,本发明将小目标的检测精度提升了9.96%,具有明显的提升。
CN 112529090 A
权 利 要 求 书
1/2页
1.一种基于改进YOLOv3的小目标检测方法,其特征在于,该方法具体包括如下步骤:步骤1:收集包含待检测小目标的图像,制作图像集;步骤2:遍历图像集,使用图像标注软件对每张图像中的待检测小目标进行标注,将待检测目标的位置和类别信息保存起来,制得数据集;
步骤3:构建改进YOLOv3的特征提取网络,使用含有通道注意力机制的残差模块组成的特征提取网络代替YOLOv3中的DarkNet‑53;
步骤4:构建改进YOLOv3的特征融合网络,具体为在YOLOv3的特征金字塔网络的基础上增加一个自底向上的结构;
步骤5:构建改进YOLOv3的检测网络,使用两个大小为52×52和26×26大小的特征图代替原来三个不尺度的特征图进行检测;
步骤6:改进YOLOv3的损失函数,改进后的损失函数的表达式为:Loss=LossCIoU+Lossconf+Lossclasses
Lossconf表示置信度损失,Lossclasses表示类别损失;其中,LossCIoU表示CIoU损失,
步骤7:采用聚类算法对制作的数据集中的目标框的高和宽进行聚类,获得需要的先验锚框;
步骤8:将训练集数据送入到改进后的模型中进行训练,得到最终的模型;训练迭代到损失值下降于设定的阈值后停止训练,保存模型;
步骤9:将待检测的图像输入到训练好的模型中,模型将待检测目标用矩形框标记显示。
2.如权利要求1所述的一种基于改进YOLOv3的小目标检测方法,其特征在于,所述改进YOLOv3的特征提取网络由15个含有通道注意力机制的残差模块构成,选择其中第5个、第11个和第15个残差模块的输出作为特征融合网络的输入。
3.如权利要求1所述的一种基于改进YOLOv3的小目标检测方法,其特征在于,所述通道注意力机制结构的基本流程为:首先将作为输入的特征图经过全局平均池化和尺度变换,之后采用1×1的卷积先进行升维,再使用1×1的卷积降维至与该结构的输入相同的维度,接着使用sigmoid激活函数处理将每个通道的数值变为0~1之间的值,最后将该结构的输入与sigmoid激活函数处理后的值相乘得到最终的输出。
4.如权利要求1所述的一种基于改进YOLOv3的小目标检测方法,其特征在于,所述改进的特征融合网络结构包括从卷积神经网络提取出来的不同尺度的特征图C1、C2、C3,以及自顶向下设置的特征图P3‑P1,增加的结构特征图A1‑A2;
该结构的具体实现过程如下:4‑1、首先是自顶向下的过程:
特征提取网络的输入均被裁剪到416×416,得到的最后三个特征图C1、C2、C3;特征图C3经过横向连接后,得到特征图P3;特征图P3经过上采样,与C2经过横向连接后的结果进行通道连接;之后,经过卷积,整合得到特征图P2;
特征图P2经过上采样,与C1经过横向连接后的结果进行通道连接,之后,经过卷积,整合得到特征图P1;
4‑2、之后是自底向上的过程:
2
CN 112529090 A
权 利 要 求 书
2/2页
特征图P1经过横向连接得到特征图A1;特征图A1经过卷积核为3×3、步长为2的卷积操作,与特征图P2经过横向连接后的结果进行通道连接,之后经过卷积整合得到特征图A2;
最后在特征图A1和A2上进行检测。
5.如权利要求1所述的一种基于改进YOLOv3的小目标检测方法,其特征在于,生成所述锚框的具体过程如下:
将聚类算法中的簇数K设为9,使用K‑means++算法对自制数据集中的目标框的宽和高进行聚类,得到A1和A2两个特征图上所需的锚框;在融合特征图A1上设置尺寸较小的3个锚框,在融合特征图A2上设置较大的三个锚框。
3
CN 112529090 A
说 明 书
一种基于改进YOLOv3的小目标检测方法
1/5页
技术领域
[0001]本发明主要涉及计算机视觉领域,特别是涉及一种小目标的检测方法。
背景技术
[0002]目前,基于深度学习的目标检测技术已经取得了很大的成功,广泛应用在现实生活中。然而,该技术主要针对的是尺寸比较大的目标,在小目标检测任务中(在MS COCO数据集中,将32×32像素以下定义为小目标),一方面由于小目标尺寸小,具有的信息也较少,经过多层卷积神经网络作用后信息更少,另一方面,目前小目标的数据集也较少,无法为深度模型的训练提供支撑,导致小目标的检测效果较差,经常有漏检的现象发生。发明内容
[0003]本发明的一种基于改进YOLOv3的小目标检测方法,该方法具体包括如下步骤:[0004]步骤1:收集包含待检测小目标的图像,制作图像集;[0005]步骤2:遍历图像集,使用图像标注软件对每张图像中的待检测小目标进行标注,将待检测目标的位置和类别信息保存起来,制得数据集;[0006]步骤3:构建改进YOLOv3的特征提取网络,使用含有通道注意力机制的残差模块组成的特征提取网络代替YOLOv3中的DarkNet‑53;[0007]步骤4:构建改进YOLOv3的特征融合网络,具体为在YOLOv3的特征金字塔网络的基础上增加一个自底向上的结构;[0008]步骤5:构建改进YOLOv3的检测网络,使用两个大小为52×52和26×26大小的特征图代替原来三个不尺度的特征图进行检测;[0009]步骤6:改进YOLOv3的损失函数,改进后的损失函数的表达式为:[0010]Loss=LossCIoU+Lossconf+Lossclasses[0011]其中,Lossconf表示置信度损失,Lossclasses表示类别损失;LossCIoU表示CIoU损失,[0012]步骤7:采用聚类算法对制作的数据集中的目标框的高和宽进行聚类,获得需要的先验锚框;
[0013]步骤8:将训练集数据送入到改进后的模型中进行训练,得到最终的模型;训练迭代到损失值下降于设定的阈值后停止训练,保存模型;[0014]步骤9:将待检测的图像输入到训练好的模型中,模型将待检测目标用矩形框标记显示。
[0015]与现有的小目标检测方法相比,本发明明显提高了小目标检测的有效性;检测精度提升了9.96%。
附图说明
[0016]图1是本发明的一种基于改进YOLOv3的小目标检测方法整体流程图;[0017]图2是本发明的一种基于改进YOLOv3的小目标检测模型图;
4
CN 112529090 A[0018]
说 明 书
2/5页
图3是自制小目标数据集示例的标注统计结果示意图;(a)两种类别的目标框数量
(b)小目标所占比例;
[0019]图4是改进YOLOv3的特征提取网络结构示意图;[0020]图5是通道注意力机制的结构示意图;
[0021]图6是改进YOLOv3的特征融合网络结构示意图。
具体实施方式
[0022]下面结合附图和实施例对本发明的技术方案进行详细说明。[0023]如图1所示,是本发明的一种基于改进YOLOv3的小目标检测方法流程图。如图2所示,是本发明的一种基于改进YOLOv3的小目标检测方法整体模型图。该方法流程分为模型
具体步骤描述如下:训练(详见步骤1‑步骤7)和模型检测(步骤8)两部分,
[0024]步骤1:收集包含所要检测小目标的图像,制作图像集,图像收集可通过网络、也可以先用摄像头拍摄视频,再进行按帧截取,收集到的图像应具备:图像应保持画面清晰;图像内应包含大量待检测的小目标;[0025]步骤2:遍历图像集,使用图像标注软件对每张图像中的待检测小目标进行标注,将待检测目标的位置和类别信息的xml格式的标注文件保存(标注文件的命名与图片的名
制得数据集;称对应相同)起来,
[0026]自制的数据集包含6079张可见光图片,如图3中(a)图所示,是自制小目标数据集示例的标注统计结果示意图,标注的目标有两类,对应的目标框数分别为226994、284453,小目标所占比例统计如图3中(b)图,近84%的目标框都属于MS COCO数据集定义的小目标(32×32像素之下);[0027]步骤3:构建改进YOLOv3的特征提取网络,使用含有通道注意力机制的残差模块组成的特征提取网络代替YOLOv3中的DarkNet‑53,如图4所示,是改进YOLOv3的特征提取网络结构示意图;改进YOLOv3的特征提取网络是由15个含有通道注意力机制的残差模块构成的,选择其中第5个、第11个和第15个残差模块的输出作为特征融合网络的输入。[0028]如图5所示,是通道注意力机制的结构示意图。首先将作为输入的特征图经过全局平均池化和尺度变换,之后采用1×1的卷积先进行升维,再使用1×1的卷积降维至与该结构的输入相同的维度,接着使用sigmoid激活函数处理将每个通道的数值变为0~1之间的值,最后将该结构的输入与sigmoid激活函数处理后的值相乘得到最终的输出;通道注意力机制结构充分利用不同通道的有效权重,能够降低模型参数量,使检测速度加快,同时还在一定程度提升了检测精度。[0029]步骤4:构建改进YOLOv3的特征融合网络,具体为在YOLOv3的特征金字塔网络的基础上增加一个自底向上的结构。[0030]在卷积神经网络中,底层为卷积神经网络层数较低的层,顶层为卷积神经网络较深的层,在顶层得到的特征图,由于经过多次卷积操作,感受野较大,具有较强的语义信息,适合分类,但顶层特征图因为尺寸较小,具有的小目标特征较少,不易检测小目标。在底层得到的特征图,感受野较小,具有丰富的细节信息,尺寸也大,具有的小目标特征也较多,但语义信息较弱,无法完成小目标的识别。因此将不同层的特征图进行融合,增强小目标的信息将有利于小目标的检测。在YOLOv3的特征金字塔网络中,将顶层的信息通过自上而下的
5
CN 112529090 A
说 明 书
3/5页
结构融合到了其他不同层的特征图上,增强了不同层的语义信息,在一定程度上提升了小目标的检测效果。自底向上的结构能够将底层的丰富的小目标的特征融合到不同的特征图上,使得到的融合特征图更有利于小目标的检测。[0031]如图6所示,是改进的特征融合网络结构示意图。C1,C2,C3为提取出来的不同尺度的特征图,C1为底层,即卷积神经网络较浅层提取到的特征图,C3为顶层,即卷积神经网络的较深层提取到的特征图,特征图P3‑P1自顶向下设置,特征图A1‑A2为增加的结构。具体实现如下:
[0032]4‑1、首先是自顶向下的过程:
[0033]特征提取网络的输入均被裁剪到416×416,得到的最后三个特征图C1、C2、C3,大小分别为52×52×256、26×26×512、13×13×1024,其中13、26、52表示特征图的尺寸,256、512、1024表示特征图的通道数,可通过卷积核的个数来调整。[0034]特征图C3经过横向连接后,得到特征图P3,大小为13×13×512。[0035]特征图P3经过上采样,其大小变为13×13×256;与C2经过横向连接后,特征图P3的大小变为26×26×256,且与特征图C2进行通道连接;之后,经过卷积,整合得到特征图P2,大小为26×26×256。
[0036]特征图P2经过上采样,其大小变为52×52×128,与C1经过横向连接后,特征图P2大小变为52×52×128,且与特征图C1进行通道连接,之后经过卷积整合得到特征图P1,大小为52×52×128。[0037]4‑2、之后是自底向上的过程:
[0038]特征图P1经过横向连接得到特征图A1,大小为52×52×128。[0039]特征图A1经过卷积核为3×3、步长为2的卷积操作,其大小变为26×26×256,与特征图P2经过横向连接后,特征图A1大小变为26×26×256,且与特征图P2进行通道连接,之后经过卷积整合得到特征图A2,大小为26×26×256。[0040]其中的横向连接是通过1×1、3×3和1×1三个卷积操作级联实现的。最后的卷积整合是通过1×1、3×3、1×1、3×3和1×1五个卷积操作级联实现的。[0041]步骤5:构建改进YOLOv3的检测网络,在通过改进YOLOv3的特征融合网络得到的两个特征图上做检测;
[0042]检测的具体过程为:
[0043]特征图A1经过检测网络输出是维度为52×52×3×(4+1+C)的张量。[0044]特征图A2经过检测网络输出是维度为26×26×3×(4+1+C)的张量。[0045]其中26和52对应为特征图的大小,3为每个特征图上使用的锚框数量,4为图像中框出目标的位置信息,具体包含目标中心点的偏移信息和目标框的宽高,1为框出目标的置信度,C为框出目标的可能所属类别数,如果该目标的C个数字中第i个数的值最大,则会将其判别为第i个类别。[0046]步骤6:计算改进YOLOv3的损失函数,使用CIoU损失函数代替YOLOv3中目标框的损失,即使用CIoU损失函数作为YOLOv3损失中的目标框损失;[0047]改进后的损失函数的表达式为:[0048]Loss=LossCIoU+Lossconf+Lossclasses[0049]其中,LossCIoU表示CIoU损失,Lossconf表示置信度损失,Lossclasses表示类别损失;
6
CN 112529090 A[0050]
说 明 书
4/5页
CIoU损失函数的表达式为:
[0051]
其中,c和cgt分别表示预测框和真实框的中心点位置,ρ表示c和cgt之间的欧氏距
离,d表示包含两框的最小矩形的对角线长度,IoU为两个矩形框的交集与并集的比值,计算公式为:
[0052][0053][0054][0055][0056]
其中A和B表示两个不同的矩形框。α、v为设置的惩罚因子,将框的宽高同时考虑到损失函数里,α、v的计算公式为:
[0057]
其中wgt和hgt为真实框的宽和高,w、h为预测框的宽和高。
[0059]使用CIoU损失函数代替YOLOv3中目标框的损失,即使用CIoU损失函数作为YOLOv3损失中的目标框损失;[0060]步骤7:采用聚类算法对制作的数据集中的目标框的高和宽进行聚类,获得需要的先验锚框。
[0061]锚框为特征图上每个像素预先设置的矩形框,YOLOv3通过预先设置矩形框,通过不断调整矩形框的位置和大小,使得到的预测框不断逼近真实框。预先设置的锚框影响着预测框调整为真实框的难易程度,一般采用K‑means聚类算法对数据集中标注好的真实目标框的宽高聚类得到。本发明中生成锚框的具体过程如下:[0062]将聚类算法中的簇数K设为9,使用K‑means++算法对自制数据集中的目标框的宽和高进行聚类,得到A1和A2两个特征图上所需的锚框。针对自制数据集得到的锚框为:(3,7),(5,10),(4,19),(6,15),(9,17),(7,25),(11,25),(8,39),(11,49)。[0063]由于卷积网络的较深层特征图的感受野较大,更适合检测大目标,较浅处的特征图适合检测小目标,因此在融合特征图A1上设置较小的3个锚框((6,15),(9,17),(7,25)),
25),(8,39),(11,49))。在融合特征图A2上设置较大的三个锚框((11,
[0064]步骤8:将训练集数据送入到改进后的模型中进行训练,得到最终的模型。[0065]训练的具体过程如下:[0066]8‑1、将自制的海上人体目标数据集按9:1的比例划分为训练集和测试集;[0067]8‑2、训练集数据提取出来,送入网络进行训练。[0068]8‑3、初始学习率设为0.001,采用固定步长衰减的学习率调整方式,每隔1个迭代,学习率衰减0.05。[0069]8‑4、训练迭代到损失值下降于设定的阈值后停止训练,保存模型。[0070]步骤9:将待检测的图像输入到训练好的模型中,模型将待检测目标用矩形框标记
[0058]
7
CN 112529090 A
说 明 书
5/5页
显示。
[0071][0072][0073]
如表1所示,为本发明与YOLOv3的检测结果对比。表1
算法名称Seap检测精度(%)YOLOv359.22改进的YOLOv369.16
[0074]Seap(一种小目标)的检测精度从59.22%提升到69.16%,提升了9.96个百分点,具有明显的提升效果,表明本发明在小目标检测上的有效性。
8
CN 112529090 A
说 明 书 附 图
1/5页
图1
9
CN 112529090 A
说 明 书 附 图
2/5页
图2
10
CN 112529090 A
说 明 书 附 图
3/5页
图3
11
CN 112529090 A
说 明 书 附 图
4/5页
图4
图5
12
CN 112529090 A
说 明 书 附 图
5/5页
图6
13
因篇幅问题不能全部显示,请点此查看更多更全内容