本发明涉及人工智能领域,具体为基于深度学习方法的目标检测。
背景技术:
1、基于深度学习的目标检测算法一般可分为anchor-based以及anchor-free两种方法。anchor-based方法主要通过手工设计多个先验框(anchor-box),然后分别对每一个框中的目标进行检测。而anchor-free方法则采用了一些技巧来省去先验框手工设计这个繁琐的步骤以及其带来的巨大内存开销,如基于多关键点联合表达的方法、基于单中心点预测的方法以及各种检测框与目标框(ground truth)匹配算法等。与anchor-based相比,anchor-free方法不需要后处理,有着更快的检测速度,但无先验框约束的特性会导致大量的误检。
2、而anchor-based方法又可以大致分为双阶段(two-stage)与单阶段(one-stage)目标检测算法。以r-cnn(region-convolution neural networks)系列为代表的双阶段目标检测算法首先提取出可能存在目标的先验框,然后对提取出来的先验框进行更细微的筛选与微调,最终得到检测结果。而以yolo(you only look once)系列和ssd为代表的单阶段目标检测算法则是直接对先验框中的目标进行分类,并回归出具体目标的检测框位置以及大小。由于存在正负样本以及难易样本不均衡等问题,单阶段目标检测算法难以达到双阶段目标检测算法的精度水平,但这种简易的结构设计也让单阶段检测器的检测速度远远超过双阶段检测器,而实际应用大多对检测速度都有一定要求,所以近年来许多研究都聚焦于单阶段检测算法。
3、yolov4(you only look once version 4)与yolov5(you only look onceversion 5)是由不同团队提出的两种单阶段目标检测算法,二者都是在yolov3(you onlylook once version 3)的基础上进行改进。yolov4与yolov5的性能很接近,但yolov4的可定制化程度要更高。yolov4-tiny与yolov5s 分别是yolov4与yolov5的轻量化网络,虽然模型很小只有20m左右,但平均准确率(map,mean average precision)较低,无法满足较高检测精度的要求,因此有必要提出一种更高精度的轻量级目标检测算法。
技术实现思路
1、本发明旨在解决现有的轻量级目标检测网络检测精度低的问题。
2、首先将yolov4所使用的主干网络cspdarknet53替换为mobilenetv2,替换后网络模型参数大幅度减少。考虑到深度可分离卷积对通道维度信息提取能力有限,因此在mobilenetv2中嵌入注意力机制(coordinate attention)模块,旨在增强主干网络在通道维度的特征提取能力。ca模块结构如图1所示。
3、注意力模块是嵌入在mobilenetv2的反向残差块中的,其具体嵌入方式如图2所示。
4、
5、
6、
7、
8、特征通过深度卷积后经过ca模块分别生成基于x和y方向的带有通道注意力的特征图,然后将其与深度卷积的输出相乘建立特征的通道维度依赖关系。轻量化目标检测网络模型的主干网络结构如表1所示。其中t、c、n以及s都是建立网络的参数,t表示在进行深度卷积前通道扩充的系数,c表示输出的通道数目,n代表每组网络中该模块重复的次数,s代表每组网络的第一个模块其卷积网络对应的步长。第一个反向残差块未扩充通道数,通道维度信息少,所以不添加ca模块。最后分别选择尺度为132×320、262×96以及522×32的特征图送入后续网络。
9、表1 ma-yolov4主干网络结构
10、 inpute operator t c n s <![cdata[416<sup>2</sup>×3]]> conv2d - 32 1 2 <![cdata[208<sup>2</sup>×32]]> irblock 1 16 1 1 <![cdata[208<sup>2</sup>×16]]> irblock+ca 6 24 2 2 <![cdata[104<sup>2</sup>×24]]> irblock+ca 6 32 3 2 <![cdata[52<sup>2</sup>×32]]> irblock+ca 6 64 4 2 <![cdata[52<sup>2</sup>×64]]> irblock+ca 6 96 3 1 <![cdata[26<sup>2</sup>×96]]> irblock+ca 6 160 3 2 <![cdata[13<sup>2</sup>×160]]> irblock+ca 6 320 1 1
11、panet中大量使用标准卷积网络完成特征提取以及下采样工作,这是整个颈部结构中很大一部分的模型内存开销,为了进一步降低其模型参数,将panet以及三个检测头(yolo head)中的3×3标准卷积层替换为深度可分离卷积。同时激活函数也需要进行改动,relu的激活范围没有限制,输出范围为0到正无穷,如果激活值非常大,分布在一个很大的范围内,则移动端设备中低精度的16位浮点数将无法精确描述如此大范围的数值,从而造成精度损失。relu6将输出范围压缩到了6以内,具体计算公式如(1):
12、
13、将panet中的leaky relu激活函数,替换为relu6激活函数能够有效的降低低精度设备中检测精度的损失。
14、在原本的panet中,提取好的三个不同尺度的特征将直接送入检测头完成最终的目标检测,而轻量化目标检测网络模型应用asff算法对panet输出的三层特征进行自适应的加权特征融合。不同尺度特征不能直接融合,本发明针对panet输出的1-(132×512)、2-(262×256)和3-(522×128) 特征尺度分别设计了其相应的尺度变化策略,具体如下:
15、(1) 1→2:首先通过1×1卷积对通道数进行压缩,然后采用最邻近插值法对特征进行132→262上采样;
16、(2)1→3:首先通过1×1卷积对通道数进行压缩,然后采用最邻近插值法对特征进行132→522上采样;
17、(3)2→1:直接通过一组3×3卷积块完成通道扩张以及262→132下采样工作;
18、(4)2→3:首先通过1×1卷积对通道维度进行压缩,然后采用最邻近插值法对特征进行262→522上采样;
19、(5)3→1:首先使用最大池化层完成522→262的下采样工作,然后使用一组3×3卷积块同时完成通道扩张以及262→132的下采样工作;
20、(6)3→2:直接通过一组3×3卷积块完成通道扩张以及522→262的下采样工作。
21、具体加权计算方法公式如(2):
22、
23、其中代表输入的特征向量, l代表当前检测头对应特征的尺度, n代表特征变换前的尺度(对于yolov4来说),( i, j)代表特征向量的位置,代表特征的尺度变换,代表待送入 l尺度检测头的特征向量,分别代表不同尺度不同位置的特征向量所对应的权重,,并满足,具体计算公式如(3):
24、
25、可以看出是通过softmax公式定义的,其中分别是的映射,这个映射是通过1×1卷积层完成的。
1.一种轻量化目标检测方法,其特征在于:
