一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于知识蒸馏的目标检测方法及目标检测终端与流程

2021-12-03 23:56:00 来源:中国专利 TAG:


1.本发明属于深度学习技术领域,具体涉及一种基于知识蒸馏的目标检测方法及目标检测终端。


背景技术:

2.目标检测是计算机视觉中图像理解的重要任务之一,并且在自动驾驶、地球观测、故障侦测等工业领域都有广泛的应用,可以减轻人力资源的输入且方便控制管理。
3.在近些年各种深度学习方法的加持下,目前深度神经网络在目标检测任务上的准确度已经取得了很大突破,基本上取代了传统的目标检测算法。如卷积神经网络的r

cnn系列网络,以及单阶段网络的代表yolo系列网络,在通用目标检测任务上都取得了超过传统方法的性能。
4.然而在实际应用中,为了降低成本,目标检测网络需要经过压缩后在一些诸如视频监控摄像头等带有低性能处理器的边缘设备上运行,而简化后的小规模网络往往伴随着检测准确度较低的问题。
5.比如在天然气生产工厂的实际应用背景下,生产运维人员运用防爆手机或手持式防爆pda进行巡检工作时,存在通过图像识别进行物体识别的需求,但由于手持移动终端设备的处理器性能往往不能够满足高精度物体识别算法的要求;亦或是对于厂区内固定布置的摄像头画面,如果全部采用计算机显卡设备进行图像识别,将导致安全识别系统建设成本过高,如果采用成本较低的树莓派设备进行摄像头画面物体识别,树莓派设备处理器性能又无法满足图像高准确度识别的需要。
6.针对以上问题,采用知识蒸馏技术改进学习算法,让小规模的学生网络学习已经训练好的大规模或者集成的教师网络中的暗知识,可以使小规模网络在假设空间中搜索到更接近真实分布的模型,从而达到提升性能的目的。比较有代表性的方法有知识蒸馏、基于神经元激活的注意力迁移、激活边界蒸馏等。
7.现有的多数蒸馏方法是针对图像分类问题设计和验证,没有考虑到目标检测任务的特点与难点,应用到目标检测任务上蒸馏效果不佳;且有的方法依赖于下游输出空间的形式,难以沿用到目标检测网络的蒸馏上。


技术实现要素:

8.针对现有技术中的缺陷,本发明提供了一种基于知识蒸馏的目标检测方法及目标检测终端,本发明通过对网络的压缩、蒸馏优化和训练与测试得到目标检测模型,蒸馏优化能够在不引入额外参数和推理运算量的情况下有效提升目标检测模型性能,提高了目标检测的准确度。
9.第一方面,本发明提供了一种基于知识蒸馏的目标检测方法,包括以下步骤:
10.获取图像数据;
11.将图像数据输入训练好的目标检测模型;
12.目标检测模型输出检测结果;
13.其中,所述的目标检测模型经过以下步骤训练得到:
14.构建初始的教师网络,对教师网络进行压缩得到学生网络;
15.通过注意力加权的特征蒸馏方式利用训练好的教师网络对学生网络进行知识蒸馏,得到蒸馏后的学生网络;
16.对蒸馏后的学生网络进行训练与测试,得到最终的目标检测模型。
17.优选地,所述对教师网络进行压缩得到学生网络,具体为:
18.将教师网络中堆叠的csp模块用单个csp模块代替,且各层通道数减半,从而得到压缩后的学生网络。
19.优选地,对学生网络进行训练与测试时采用的数据集包括voc数据集、coco数据集和自建数据集;
20.所述自建数据集是天然气工厂场景下的自建目标检测数据集。
21.优选地,所述通过注意力加权的特征蒸馏方式利用训练好的教师网络对学生网络进行知识蒸馏,具体为:
22.通过注意力权重矩阵为蒸馏损失函数附上权重,得到优化后的蒸馏损失函数;
23.通过优化后的蒸馏损失函数对学生网络进行知识蒸馏。
24.优选地,所述通过注意力权重矩阵为蒸馏损失函数附上权重,得到优化后的蒸馏损失函数,具体为:
25.对教师网络和学生网络的特征进行处理,得到蒸馏对象;
26.根据教师网络输出的特征计算注意力权重矩阵;
27.根据kl散度、蒸馏对象和注意力权重矩阵计算蒸馏损失函数。
28.优选地,所述对教师网络和学生网络的特征进行处理,得到蒸馏对象,具体为:
29.通过softmax函数将教师网络和学生网络的特征沿着空间维度进行归一化计算处理,得到需进行蒸馏的蒸馏对象;
30.norm(x
c
)=softmax(x
c
),c=1,2,...,c;
31.其中,c表示作用于特征的第c个通道。
32.优选地,所述根据教师网络输出的特征计算注意力权重矩阵,具体为:
33.将图片输入训练好的教师网络,对图片中用于蒸馏的几层特征,通过在每个像素点处沿着通道计算平方均值的方式,生成教师网络的的注意力图;
[0034][0035]
根据注意力图计算注意力权重矩阵;
[0036][0037]
其中,h表示为注意力图的高度,w为注意力图的宽度。
[0038]
优选地,所述根据kl散度、蒸馏对象和注意力权重矩阵计算蒸馏损失函数,具体计算公式如下:
[0039][0040]
优选地,所述对蒸馏后的学生网络进行训练与测试,得到最终的目标检测模型,具体为:
[0041]
对知识蒸馏后的学生网络进行训练,训练过程中采用sgd优化器对学生网络中的所有参数进行多轮优化,从而得到用于评估的目标检测模型。对训练后的学生模型进行测试,通过map指标评估其检测性能。
[0042]
第二方面,本发明提供了一种目标检测终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的方法。
[0043]
本实施例的技术方案,通过对网络的压缩、蒸馏优化和训练与测试得到目标检测模型,蒸馏优化能够在不引入额外参数和推理运算量的情况下有效提升目标检测模型性能,提高了目标检测的准确度。
附图说明
[0044]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。
[0045]
图1为实施例中目标检测模型的蒸馏训练方法流程图;
[0046]
图2为实施例中学生网络的结构示意图;
[0047]
图3为实施例中教师网络的结构示意图
[0048]
图4为实施例中蒸馏方案示意图;
[0049]
图5为实施例中教师网络的特征的空间注意力图。
具体实施方式
[0050]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051]
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0052]
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0053]
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0054]
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0055]
具体实现中,本发明实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
[0056]
实施例一
[0057]
本实施例提供了一种基于知识蒸馏的目标检测方法,包括以下步骤:
[0058]
获取图像数据;
[0059]
将图像数据输入训练好的目标检测模型;
[0060]
目标检测模型输出检测结果;
[0061]
其中,如图1所示,所述的目标检测模型经过以下步骤训练得到:
[0062]
s1,构建初始的教师网络,对教师网络进行压缩得到学生网络;
[0063]
s2,通过注意力加权的特征蒸馏方式利用训练好的教师网络对学生网络进行知识蒸馏,得到蒸馏后的学生网络;
[0064]
s3,对蒸馏后的学生网络进行训练与测试,得到最终的目标检测模型。
[0065]
其中,所述步骤s2的具体步骤如下:
[0066]
s21,通过注意力权重矩阵为蒸馏损失函数附上权重,得到优化后的蒸馏损失函数;
[0067]
s22,通过优化后的蒸馏损失函数对学生网络进行知识蒸馏。
[0068]
其中,所述步骤s21的具体步骤如下:
[0069]
s211,对教师网络和学生网络的特征进行处理,得到蒸馏对象;
[0070]
s212,根据教师网络输出的特征计算注意力权重矩阵;
[0071]
s213,根据kl散度、蒸馏对象和注意力权重矩阵计算蒸馏损失函数。
[0072]
本实施例的技术方案,对教师网络yolov5首先进行网络模型压缩,然后在通用目标检测数据集上进行蒸馏优化,再完成后续训练,能够在不引入额外参数和推理运算量的情况下有效提升目标检测模型性能,并使模型在训练过程中更快收敛。
[0073]
本实施例中在进行网络模型压缩时,以yolov5l网络为教师网络,对教师网络进行压缩,从而得到yolov5c网络,yolov5c网络即学生网络。将教师网络yolov5l中堆叠的csp模块用单个csp模块代替,且各层通道数减半,从而得到压缩后的学生网络yolov5c。教师网络和学生网络的参数量分别为47.0m和6.9m,因此压缩后减少了85%,推理运算量分别为115.4b flops和15.0bflops,因此压缩后减少了87%。压缩后的网络更适用于在边缘设备上部署,但模型的检测准确度有所降低,因此本实施例提出了一种特征蒸馏方式。本实施例的特征蒸馏方式,以在数据集上训练好的yolov5l网络作为教师网络,监督学生网络
yolov5c的学习,从而有效提升压缩后网络的性能。
[0074]
教师网络如图2所示,压缩后得到的学生网络如图3所示,两者都主要由上方用于特征提取的骨干网络以及下方三个网格步长不相同的回归预测网络构成。
[0075]
在特征提取阶段,骨干网络(图2、图3中backbone部分)采用的是cspdarknet

53。相较传统的残差网络,引入csp模块缓解了梯度流过长导致网络重复学习冗余信息的问题,同时减少了计算量使得网络更适合于边缘计算。得益于csp模块对于梯度流的优化,梯度能够有效地传播和利用,单个模块的学习能力有很大提升,网络对于叠加多个模块生成多通道复杂特征的需求有所降低。
[0076]
在特征融合阶段(图2、图3中backbone以下部分),采用panet方案增强fpn网络。panet中特征的传递方向和fpn相反,将空间分辨率高、包含具体位置信息的低层特征自底向上传递给高层,与低空间分辨率、语义信息丰富的高层特征进行融合,增强了网络中信息流的传递。
[0077]
检测头部分(图2、图3中网络下游输出部分),预先通过在数据集上做聚类分析,选出9个尺寸不同的先验锚框作为参照。将9个锚框按大小分为三组,分在以8、16和32为网格步长的三个回归网络来做不同尺度的预测。检测头基于锚框预测检测框宽、高的偏移,基于网格预测检测框的、坐标,在后续训练过程中以giou loss作为框回归的损失函数。
[0078]
对网络进行训练测试需要用到数据集,本实施例所选用的数据集包括pascal voc数据集、ms coco数据集这两个公开的通用目标检测数据集以及天然气工厂场景下的自建目标检测数据集(即自建数据集)。在voc数据集上训练时使用voc 2007train val和2012train val作为训练集,使用voc 2007test做验证集。在coco数据集上训练时使用coco 2017train作为训练集,coco 2017val作为验证集。对于天然气工厂场景下,本实施例划分其中的12000张图片作为训练集,2000张图片作为验证集。
[0079]
本实施例中在进行特征蒸馏时,用训练好的yolov5l作为教师网络,用本实施例所提出的特征蒸馏方式对学生网络yolov5c进行30个epoch的蒸馏,其中softmax温度取1.0。由于教师网络和学生网络特征的通道维数不同,首先需要将学生输出特征映射为和教师输出特征相同的通道维数,再进行蒸馏损失的计算,所选用的连接器为1
×
1卷积。蒸馏所用的优化器为sgd,只对连接器参数和学生网络0~6层参数进行优化,学习率设置为0.01,冲量(momentum)、权重衰减(weight decay)参数分别为0.9、0.0001。
[0080]
本实施例提出的注意力加权的特征蒸馏方式,以特征提取网络的中间特征图为输入,对中间层特征进行蒸馏。以yolov5l和yolov5c为教师学生对,设计的蒸馏方案如图4所示。方案中主要对g1和g2两组特征进行蒸馏,选取的依据是这两组特征将被直接输入到下游的特征融合网络,在网络中为重要特征。选取的两组特征分别对应输入图像进行(8,16)倍下采样的空间尺度,在教师网络、学生网络中两组特征的通道维数分别为(128,256)和(64,128)。
[0081]
前景与背景的区分是目标检测问题的难点之一,前景部分的信息也是蒸馏过程中网络学习的重点。多数蒸馏方法在计算蒸馏损失时对每个空间位置采用相同的权重,由于背景区域所占面积较大,导致网络很难学习到前景部分的特征。本实施例中采用在空间位置施加权重的方法,强调前景部分特征的学习。
[0082]
教师网络中间层特征的注意力图是反应前景和背景区别的一种有效工具。将一张
图片输入训练好的教师网络,对其中用于蒸馏的几层特征,分别用沿通道维度平方求均值的方法,生成空间注意力图,如图5所示。
[0083]
图5注意力图中呈现绿色、注意力分布较大的区域大多数属于前景物体,而呈蓝色、注意力分布较小的大多为背景区域。基于注意力图的这一特性,其自然可以作为一种生成权重矩阵的有效方法。实际应用时将注意力图通过softmax进行归一化后作为权矩阵为各个空间位置计算的蒸馏损失附上权重。
[0084]
本实施例中,通过注意力权重矩阵为蒸馏损失函数附上权重,得到优化后的蒸馏损失函数,计算方法如下:
[0085]
1、通过softmax函数将教师网络和学生网络的特征沿着空间维度进行归一化计算处理,得到需进行蒸馏的蒸馏对象;
[0086]
norm(x
c
)=softmax(x
c
),c=1,2,...,c;
[0087]
其中,c表示作用于特征的第c个通道。小写的c是一个变量,用来遍历所有通道;大写的c为常量,指张量x的通道数;x表示网络输出的特征(张量),形状为(c,h,w);xc表示取x的第c个通道得到的张量,形状为(h,w);按照该comment左边的公式对xc归一化得到的张量,就记作norm(xc)。
[0088]
2、将图片输入训练好的教师网络,对图片中用于蒸馏的几层特征,通过在每个像素点处沿着通道计算平方均值的方式,生成教师网络的的注意力图;
[0089][0090]
根据注意力图计算注意力权重矩阵(利用教师网络输出的特征计算注意力权重矩阵,其中t为温度,t数值较大时注意力的分布会更加均匀,相反则更加集中,公式右边前面部分乘上特征图的高、宽是为了后续在空间位置上对损失函数乘上该权重矩阵并求和时不影响原有的尺度);
[0091][0092]
其中,h表示为注意力图的高度,w为注意力图的宽度。i是一个变量,用来遍历所有空间位置;t表示蒸馏过程中的温度参数;w表示按照左边的公式计算得到的注意力权重矩阵;attention(xi)就表示在第i个空间位置上根据上面的公式计算得到的注意力数值。
[0093]
3、根据kl散度、蒸馏对象和注意力权重矩阵计算蒸馏损失函数,具体计算公式如下:
[0094][0095]
其中,norm(xc)是蒸馏对象;w表示权重矩阵(weights);loss
awd
(x
t
,x
s
)表示按照该comment左边的公式算出的蒸馏损失函数。
[0096]
对知识蒸馏后的学生网络进行训练,采用sgd优化器对学生网络的所有参数进行优化,初始学习率为0.01,根据onecycle策略对学习率进行调整,冲量、权重衰减参数分别为0.937、0.0005。蒸馏和训练过程均以640
×
640分辨率输入图像,默认开启mosaic数据增
强。
[0097]
对模型进行测试时,通过map指标对训练优化后的学生模型进行测试,从而得到训练测试后用于评估的目标检测模型。模型的检测性能在验证集上测试和分析,主要参考在目标检测任务中常用的map 0.5:0.95指标。每训练一个epoch,测试参数更新后的模型在验证集上的map指标。在验证集上测试时,采用的图像分辨率为640
×
640,类别的置信度阈值设为0.001,nms过程中的iou阈值设置为0.6。训练100个epoch后得到最终用于评估的目标检测模型。
[0098]
本实施例中,将用上述蒸馏训练得到的目标检测模型,与直接训练得到的baseline以及应用其他蒸馏方法得到模型进行对比,结果如下表1所示。
[0099]
表1各蒸馏方法模型map指标对比
[0100][0101]
从表1中可以发现,本发明所提出注意力加权的特征蒸馏方式在多个map指标上超过对比实验中其他蒸馏方法,尤其在voc数据集的迁移学习实验中相对baseline,map 0.5:0.95取得了3.2个百分点的提升。
[0102]
通过上述蒸馏训练后的目标检测模型,体积较小,适用于部署在边缘设备上。本实施例的目标检测模型,经过模型转换后用ncnn框架分别部署在运行android操作系统的智能手机和树莓派4b开发板上,做天然气工厂场景下的目标检测,推理速度分别可达到8fps与4fps。在多个不同的场景下,网络对于图像中各类设备仪器都能正常检测,一些位置较远、分辨率较低的物体也能够成功检测,复杂场景中密集排布或部分遮挡的物体也可以召回,拥有良好的检测性能。
[0103]
综上所述,本实施例通过对网络的压缩、蒸馏优化和训练测试得到目标检测模型,目标检测模型能够在不引入额外参数和推理运算量的情况下有效提升目标检测模型性能,提高了目标检测的准确度。
[0104]
实施例二
[0105]
本实施例提供了一种目标检测终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行实施例一所述的方法,具体实施方式如实施例一所示。
[0106]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元或步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技
术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0107]
在本技术所提供的实施例中,应该理解到,所述步骤的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个步骤可结合为一个步骤,一个步骤可拆分为多个步骤,或一些特征可以忽略等。
[0108]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献