CN116524341A - 一种基于量化蒸馏的水下目标识别方法 - Google Patents
一种基于量化蒸馏的水下目标识别方法 Download PDFInfo
- Publication number
- CN116524341A CN116524341A CN202310426376.8A CN202310426376A CN116524341A CN 116524341 A CN116524341 A CN 116524341A CN 202310426376 A CN202310426376 A CN 202310426376A CN 116524341 A CN116524341 A CN 116524341A
- Authority
- CN
- China
- Prior art keywords
- network
- teacher
- matrix
- student
- student network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004821 distillation Methods 0.000 title claims abstract description 37
- 238000013140 knowledge distillation Methods 0.000 claims abstract description 12
- 230000001133 acceleration Effects 0.000 claims abstract description 5
- 238000011002 quantification Methods 0.000 claims abstract description 5
- 239000011159 matrix material Substances 0.000 claims description 110
- 230000006870 function Effects 0.000 claims description 40
- 238000013139 quantization Methods 0.000 claims description 36
- 238000012549 training Methods 0.000 claims description 36
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000004913 activation Effects 0.000 claims description 23
- 238000010586 diagram Methods 0.000 claims description 12
- 238000013434 data augmentation Methods 0.000 claims description 9
- 238000011176 pooling Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 8
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000013527 convolutional neural network Methods 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 4
- 102000003712 Complement factor B Human genes 0.000 claims description 3
- 108090000056 Complement factor B Proteins 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 abstract description 18
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013535 sea water Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/05—Underwater scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/096—Transfer learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A40/00—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
- Y02A40/80—Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in fisheries management
- Y02A40/81—Aquaculture, e.g. of fish
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Processing (AREA)
Abstract
本发明属于水下目标识别技术领域,公开了一种基于量化蒸馏的水下目标识别方法。提出多教师知识蒸馏结构,通过构建一个轻量化的小模型学生网络,利用多个性能更好的大模型教师网络的监督信息,来训练这个小模型,以达到更好性能和精度。学生网络和教师网络精度和性能相近,学生网络在水下识别的准确度上得到提升,但是学生网络模型大小要比教师网络小的多,方便硬件部署;将学生网络中的权重参数从浮点数量化成整数,方便在硬件FPGA上加速运算。蒸馏后得到的学生网络通过量化和硬件加速后,使得学生网络在水下识别的速度上得到提升。因此本发明提出的方法,使得神经网络在水下识别的准确性和实时性上得到提升,大大提高了水下识别的能力。
Description
技术领域
本发明涉及水下目标识别技术领域,尤其涉及一种基于量化蒸馏的水下目标识别方法。
背景技术
随着经济的发展,海洋资源的开发引起广泛关注。作为海洋探测和水下作业的主要工具,水下机器人可以在危险的水下环境中工作,而且能适应多变的水下环境。当前,水下机器人主要应用在海洋数据监测、水下设备的维护、海洋目标获取以及识别等领域,与水下机器人对目标的识别和定位息息相关。水下目标识别技术作为各种水下任务的辅助手段,可以帮助水下作业人员和水下航行器等更好地开展水下任务。在随着深度学习的日益发展,深度学习在机器视觉、人脸识别、视频分析等领域的应用也越来越多。深度神经网络具有高辨识度和细节清晰的语义分割能力,能较好地改善传统识别方法语义分割较差的情况,改善图像识别效果。与传统方法相比,深度神经网络通过深层网络对特征的准确提取,对水下目标的识别定位更准,识别率更高。而由于电磁波在水下衰减很快,穿透海水传输数据的能力相对薄弱,因此必须将深度神经网络本地部署在设备当中。
目前,针对基于神经网络的水下目标识别方法众多,如“刘宇昊.基于Faste r R-CNN的水下小目标检测识别技术研究[D].大连理工大学,2021.DOI:10.26991/d.cnki.gdllu.2021.003381.,”“刘大利,申文豪,冯洪威,田禹,苏宇辰,田文峰.一种基于深度学习的小样本数水下目标识别方法[P].天津市:CN115508838A,2022-12-23.,”“刘章强.基于水下图像增强的目标检测识别方法研究[D].山东大学,2021.DOI:10.27272/d.cnki.gshdu.2021.002570.”。但是,这些方法存在神经网络权重数量众多,网络体积庞大,难以将其部署在资源有限的硬件设备等问题。因此,本发明提出一种基于量化蒸馏的水下目标识别技术,旨在通过有效的网络压缩方法,使神经网络的准确率不下降,又使压缩后的分类网络拥有轻量化的体积,加快其推理速度且方便部署在硬件设备上。
发明内容
本发明旨在针对现有技术存在的缺点与不足,提供一种基于量化蒸馏的水下目标识别方法。该方法可以通过水下采集图像,并通过量化蒸馏训练好的轻量型网络,判断并且标注水下目标的种类。
本发明的技术方案如下:一种基于量化蒸馏的水下目标识别方法,包括以下步骤:
步骤1、获取海底生物图像数据样本,构建样本数据集;样本数据集以比例随机形成训练数据集和测试数据集;
步骤2、在训练数据集上实施基于样本复制的数据增广方法,获得数据增广后的训练数据集;
步骤3、输入数据增广后的训练数据集至Resnet50网络,预训练多个Resnet50网络作为教师网络;教师网络结构分为7个部分,第1部分包括卷积层、激活层和最大池化层,对输入数据增广后的训练数据集进行卷积、激活、最大池化的计算;第2部分至第5部分结构相同,为中间层,包括残差块、卷积块和分类器;分类器包括一个全连接层和softmax激活函数,用于表示中间层的分类信息;第6部分为平均池化层,其将输入内容转化成一个特征向量;第7部分为全连接层,其将特征向量进行计算并输出类别概率;
步骤4、基于多教师知识蒸馏方法对教师网络进行压缩,得到学生网络;学生网络结构和教师网络结构相同;学生网络采用卷积神经网络Resnet18,卷积神经网络Resnet18中包括17个卷积层和一个全连接层;
步骤4.1:表示数据增广后的训练数据集,其中,N是样本的数量,xi为第i个输入变量;yi为第i个输入变量对应的真实标签值;
根据Softmax函数计算得到教师网络的预测结果σ(Zc),并通过超参数蒸馏温度T软化输出概率分布:
其中,Zc是教师网络全连接层第c个节点输出,T为蒸馏温度参数,C表示教师网络全连接层的输出总个数;
步骤4.2:计算教师网络和学生网络之间的损失函数;
步骤4.2.1:为了有效地聚合多个教师的预测分布,计算多个教师网络预测结果和真实标签值之间的交叉熵损失,分配不同的权重用于反映不同教师网络对学生网络的样本置信度;
其中,k表示第k个教师网络;K表示教师网络总个数;c表示单个教师网络全连接层第c个节点输出;C表示单个教师网络全连接层的输出总个数;表示第k个教师网络的全连接层输出;yc表示教师网络的真实标签值;/>表示教师网络在全连接层预测和基本真实标签之间的交叉熵损失;/>表示各个教师网络全连接层输出概率值的样本置信度;
将多个教师网络的预测与其相对应的样本置信度相乘,得到教师网络全连接层输出特征的损失函数为:
其中,表示学生网络的全连接层输出;/>表示学生网络的预测结果;
步骤4.2.2:将蒸馏的方法扩展到教师网络中间层,其特征匹配的计算如下:
其中,是第k个教师网络的分类器;hS是学生网络最后一层的特征向量;/>表示第k个教师网络对学生网络最后一层特征向量的特征分类结果;/>为教师网络在中间层的预测和基本真实标签之间的交叉熵损失;K表示教师网络个数;/>表示教师网络中间层输出概率值的样本置信度;
为了稳定知识转移过程,学生网络更专注于模仿具有相似特征空间的教师网络,得到学生网络和教师网络中间层特征的损失函数为:
其中,r(·)是特征维度对齐函数,用于将学生网络进行升维,和教师网络维度进行匹配;FS为学生网络特征图的特征输出;为第k个教师网络特征图的特征输出;/>表示/>范数,是为教师网络和学生网络中间特征的距离度量;
步骤4.2.3:计算具有真实标签的正则交叉熵损失函数为:
其中,yc表示教师网络真实标签值,是学生网络全连接层输出;
步骤4.2.4:最后,多教师网络知识蒸馏总体损失函数为:
其中α、β是平衡教师网络全连接层输出特征的损失、学生网络和教师网络中间层特征的损失的超参数;
步骤4.3:初始化学生网络模型,针对学生网络使用多教师知识蒸馏;计算教师网络输出并软化概率分布如步骤4.1所示,加入温度系数T用于软化输出概率分布,提供更多的监督信息;教师网络和学生网络的损失函数如步骤4.2所示,使用多教师蒸馏的总体损失函数用于学生网络学习教师网络的知识;最后通过调节超参数蒸馏温度T和蒸馏总体损失函数/>使得学生网络进一步收敛,得到蒸馏压缩后的学生网络;
步骤5、将蒸馏压缩后的学生网络进行量化并部署在FPGA上:
步骤5.1:设待量化参数的最大值和最小值分别设置为xmax、xmin,量化后参数的最大值和最小值分别设为qmax、qmin,并采用非对称量化方法,量化区间设为[0,255];
步骤5.2:计算量化比例因子B和零点O,公式分别为:
其中,round(·)表示返回括号内浮点数的四舍五入值;
步骤5.3:量化浮点参数,量化公式为:
r=B(q-O)
其中,r表示浮点实数,q表示量化后的定点整数;round(·)含义同上;
步骤5.4:在计算学生网络的过程中,学生网络的卷积层和全连接层的运算归结为矩阵乘法运算;将一个浮点矩阵转换为一个定点矩阵的步骤如下;
步骤5.4.1:集合m1和m2是学生网络中间层两个浮点权重矩阵,大小均为N×N;矩阵m3是m1m2相乘的结果;m3中各元素计算公式为:
其中,i,r,k分别为对应矩阵的行数和列数;
步骤5.4.2:由步骤5.3和5.4.1中公式整理所得:
其中B1、O1是m1矩阵对应的比例因子和零点,B2、O2是m2矩阵对应的比例因子和零点;B3、O3是m3矩阵对应的比例因子和零点;
步骤5.4.3:量化矩阵q3中各元素为:
步骤5.4.4:将步骤5.4.3中的转换成定点运算为:
其中,M0=2nM,M0为实数,n,M0的值是根据M、P的初始值和优化算法来选取最优的n,M0,使得MP=2-nM0P成立;
步骤5.4.5:量化矩阵q3中各元素经过优化计算为:
步骤5.5:在步骤4中,蒸馏压缩后的学生网络表示为:H=(x,y);x为学生网络的输入矩阵,q为学生网络的输出矩阵;计算卷积层和全连接层中的矩阵乘法为:
其中,a1是学生网络卷积层的特征图矩阵,w1为学生网络卷积层的权重参数矩阵,x为学生网络卷积层的输入矩阵;a2是学生网络全连接层的输入矩阵,w2为学生网络全连接层的权重参数矩阵,q为学生网络全连接层的特征图矩阵;b1、b2为偏置参数矩阵;
步骤5.6:根据步骤5.4、步骤5.5中的公式,学生网络中的卷积层和全连接层的量化计算分别为:
其中,a1、x、w1含义同上;qa1、qx、是a1、x、w1的量化矩阵;Ox、/>是矩阵x、w1、a1的零点矩阵;
q、a2、w2含义同上;qq、qa2、是q、a2、w2的量化矩阵;/>Oq是矩阵a2、w2、q的零点矩阵;
b1、b2为偏置参数矩阵,和/>是b1和b2的量化矩阵值;f代表学生网络的输出;Ma1、Ma2和步骤5.4.4中获得M0方法相同;
步骤5.7:在学生网络激活层中,激活函数为:
其中,a2为学生网络激活层的特征图矩阵,a1为学生网络激活层的输入矩阵,qa1、qa2是a1、a2的量化矩阵,是矩阵a1的零点矩阵;max(·)函数表示比较激活层的输入量化矩阵和零点矩阵的值,返回两个矩阵所对应位置中大的值;
步骤5.8:通过步骤5.6,步骤5.7的计算,得到全精度的学生网络,整个学生网络完成了量化,最后将学生网络部署在FPGA上,实现硬件加速计算;
步骤6、将蒸馏量化后的学生网络更新为新的目标检测网络,将图像实时输入到更新后目标检测网络中,实现实时的水下目标识别。
所述步骤2具体为:
步骤2.1:在训练数据集中挑选出海底生物类别样本的体积占整张图片5%以下数量为1-2个且边缘清晰的图片,所述目标集合图片,用于样本复制;
步骤2.2:在目标集合图片上绘制出用于监督训练的真实边界框和类别标签,确定出目标集合图片上海底生物的具体位置和类别;
步骤2.3:目标集合图片根据确定的海底生物具体位置和类别做轮廓标注,获得物理轮廓标注文本;
步骤2.4:依次读入步骤2.3所得的目标集合图片,遍历物理轮廓标注文本中获得的标注名称,当存在标注名称与当前读入图片名匹配时,从物理轮廓标注文本中取出该图片的轮廓标注;将当前图片该轮廓内的所有像素值复制到一个相同形状的随机区域,完成样本复制;
步骤2.5:使用OpenCV计算步骤2.3所得的目标集合图片中物理轮廓标注的最小外接四边形的面积U,求U与当前完成样本复制图片内所有用于监督训练的真实边界框的面积的交并比,与U拥有最大交并比边界框为被复制目标的边界框;
步骤2.6:将步骤2.5中筛选出的边界框赋给步骤2.4中随机复制的样本,同时添加类别标签,用于进行监督训练,训练完成后将会得到数据增广后的训练数据集。
所述海底生物图像数据样本从不同的背景中拍摄不同角度方向的目标图像,目标图像中至少有一个同待检测对象相似的形状,或者是待检测对象侧面的图像。采集图像大小和使用场景的尺寸接近;样本数据集包括2000张以上图片;样本数据集中包括待检测的目标图像,并对其进行标注。随机选择样本数据集中70%的图像数据构成训练数据集,30%构成测试数据集。
进一步的,所述Resnet50网络中包含了49个卷积层、一个全连接层。、在Resnet50网络结构中残差块都有三层卷积,神经网络的输入为224×224×3,经过前5部分的卷积计算,输出为7×7×2048,平均池化层会将其转化成一个特征向量,最后全连接层会对这个特征向量进行计算并输出类别概率。
本发明的有益效果:本发明提出了一种基于量化蒸馏的水下目标识别方法,使得神经网络在水下目标识别领域,达到很好的识别效果。基于提出的多教师知识蒸馏结构,通过构建一个轻量化的小模型学生网络,利用多个性能更好的大模型教师网络的监督信息,来训练这个小模型,以达到更好的性能和精度。轻量化的小模型学生网络拥有和大模型教师网络相近的精度和性能,学生网络在水下识别的准确度上得到提升,但是学生网络模型大小要比大模型教师网络小的多,方便我们硬件部署;基于提出的量化部署结构,将学生网络中的权重参数从浮点数量化成整数,方便在硬件FPGA上加速运算。蒸馏后得到的学生网络通过量化和硬件加速后,使得学生网络在水下识别的速度上得到提升,实时性得到提升。因此本发明提出的一种基于量化蒸馏的水下目标识别方法,可以使得神经网络在水下识别的准确性和实时性上得到提升,大大提高了水下识别的能力。
附图说明
图1为本发明的一种基于量化蒸馏的水下目标识别方法流程图;
图2(a)为本发明选取教师网络Resnet50的结构示意图;
图2(b)为本发明选取学生网络Resnet18的结构示意图;
图3为本发明多教师知识蒸馏网络的结构示意图。
具体实施方式
下面结合实施例对本发明作进一步描述;应当理解,此处所描述的具体实例仅仅用于解释本发明,并不用于限定本发明。
以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非在限制本发明的保护范围。
知识蒸馏是网络压缩的一种常用的方法,不同于网络压缩中的剪枝和量化,知识蒸馏是通过构建一个轻量化的小网络,利用性能更好的大网络的监督信息,来训练这个小网络,以期达到更好的性能和精度。最早是由Hinton在2015年首次提出并应用在分类任务上面,这个大网络我们称之为教师网络,小网络我们称之为学生网络。来自教师网络输出的监督信息称之为知识,而学生学习迁移来自教师的监督信息的过程称之为蒸馏。
基于量化蒸馏的水下目标识别方法,与传统的水下识别相比,该方法能大大提高神经网络的识别能力,提升识别的准确性。同时克服了数据量过大所带来的识别速度慢和难部署的问题。
基于以上算法,本发明公开了一种基于量化蒸馏的水下目标识别方法,如图1所示,包括以下步骤:
步骤1:获取海底生物图像数据样本,构建样本数据集。我们可以选取现有一些的水下图像,或选取水下相机在水下实时拍摄的图像。
数据集的选取要求生物图像数据样本要从不同的背景中拍摄不同角度方向的目标图像,图像中检测的对象数据要集中,图像中至少要有一个和检测的对象相似的形状,或者检测对象侧面的图像;采集图像大小和使用场景的尺寸接近;样本数据集包括2000张以上图片;样本数据集中需包括待检测的目标图像,并对其进行标注。随机选择样本数据集中70%的图像数据构成训练数据集,30%构成测试数据集;
步骤2:在步骤1获取的训练数据集上,实施基于样本复制的数据增广方法,数据增广是为了使教师网络训练的更加强大,提升在水下识别的准确度。
步骤2.1:在训练数据集中挑选出类别样本体积小、数量少且边缘清晰的图片,作为做样本复制的目标集合。
步骤2.2:利用开源的可视化工具,在目标集合的图片上绘制出用于监督训练的真实边界框和类别标签,确定出模糊的水下环境中物体的具体位置和类别;
步骤2.3:使用网页工具,对目标集合的图片中需要扩增数量的类别样本,根据确定的具体位置和类别做轮廓标注,获得物理轮廓标注文本。
步骤2.4:依次读入步骤2.3所得的目标集合图片,遍历轮廓标注文本中获得的标注名称,当存在标注名称与当前读入图片名匹配时,则从物理轮廓标注文本中取出该图片的轮廓标注;将当前图片该轮廓内的所有像素值复制到一个相同形状的随机区域,完成样本复制。
步骤2.5:使用OpenCV计算步骤2.3所得的目标集合图片中物理轮廓标注的最小外接四边形的面积U,然后求此U与当前图片内所有用于监督训练的边界框的面积的交并比,与U拥有最大的交并比边界框即视为被复制目标的边界框。
步骤2.6:将步骤2.5中筛选出的边界框赋给步骤2.4中随机复制的样本,同时添加类别标签,用来进行监督训练。
步骤3:将步骤2数据增广完成后的图像数据集输入至目标检测网络,预训练多个复杂网络作为教师网络,如图3中教师网络1、教师网络2、教师网络3都是在输入图像数据集上训练完成的网络。
复杂网络采用卷积神经网络Resnet50作为教师网络。Resnet50网络中包含了49个卷积层、一个全连接层。神经网络结构可以分成7个部分,第1部分不包含残差块,主要对输入进行卷积、正则化、激活函数、最大池化的计算。第2~5部分结构都包含了残差块,在Resnet50网络结构中残差块都有三层卷积,神经网络总共有49个卷积层,加上最后的全连接层总共是50层。中间层部分同时添加了教师网络最终分类器,分类器是由一个全连接层和softmax激活函数组成的,目的是为了表示中间层的分类信息;神经网络的输入为224×224×3,经过前5部分的卷积计算,输出为7×7×2048,池化层会将其转化成一个特征向量,最后全连接层会对这个特征向量进行计算并输出类别概率。
步骤4:将步骤3已经训练好的多个教师网络在基于多教师网络知识蒸馏方法上对教师网络进行蒸馏压缩,得到学生网络,并加入超参数蒸馏温度和蒸馏损失函数,如图3多教师知识蒸馏网络所示。
步骤4.1:表示在步骤2中数据增广后的训练数据集,其中N是样本的数量,xi为第i个输入变量,表示输入的特征;yi为第i个输出变量,表示对应的真实标签值。
由Softmax函数计算得到教师网络的预测结果σ(Zc):
其中,Zc是全连接层第c个节点输出,T为损失函数的蒸馏温度,C表示教师网络全连接层的输出总个数。
步骤4.2:计算教师网络和学生网络之间的损失函数;
步骤4.2.1:为了有效地聚合多个教师的预测分布,通过计算教师网络输出预测值和基本真实标签之间的交叉熵损失,分配不同的权重来反映他们的样本置信度。
其中,k表示第k个教师网络;K表示教师网络个数;c表示教师网络全连接层第c个输出;C表示单个教师网络全连接层的输出个数;表示第k个教师网络的全连接层输出;yc表示教师网络的真实标签值;/>表示教师网络在输出层的预测值和基本真实标签之间的交叉熵损失;/>表示每个教师网络全连接层输出概率值的样本置信度。
将教师网络的总体预测与其相对应的样本置信度相乘,得到全连接层输出特征的损失函数为:
其中,对于预测更接近真实标签的教师网络,越小,对应的/>越大,表示预测接近真实标签的教师网络样本置信度越大。
步骤4.2.2:将蒸馏的方法扩展到教师网络中间层,挖掘更多的信息。中间特征匹配的计算如下:
其中,是第k个教师网络的最终分类器;hS是学生网络最后一层的特征向量;表示第k个教师网络对学生网络最后一层的特征向量特征分类的结果;/>为教师网络在中间层的预测和基本真实标签之间的交叉熵损失;K表示教师网络个数;/>表示教师网络中间层输出概率值的样本置信度。
为了稳定知识转移过程,学生网络更专注于模仿具有相似特征空间的教师网络,得到中间层特征的损失函数为:
其中,r(·)是特征维度对齐的函数,目的是将学生网络进行升维,和教师网络维度进行匹配;FS为学生网络特征图的特征输出;为第k个教师网络特征图的特征输出;表示/>范数,作为中间特征的距离度量;/>含义同上。
步骤4.2.3:计算具有真实标签的正则交叉熵损失函数为:
其中,yc表示教师网络预测的结果,是学生网络全连接层输出。
步骤4.2.4:最后,多教师知识蒸馏的总体损失函数为:
其中α和β是平衡教师网络全连接层输出特征的损失、学生网络和教师网络中间层特征的损失的超参数。
根据上述步骤对教师网络进行蒸馏训练,最终得到被蒸馏压缩后的学生网络,蒸馏后的学生网络具有和教师网络相近的识别能力,但网络结构要比教师网络小。
步骤5、将蒸馏压缩后的学生网络进行量化并部署在FPGA上:
步骤5.1:设待量化参数的最大值和最小值分别设置为xmax、xmin,量化后参数的最大值和最小值分别设为qmax、qmin,并采用非对称量化方法,量化区间设为[0,255];
步骤5.2:计算量化比例因子B和零点O,公式分别为:
其中,round(·)表示返回括号内浮点数的四舍五入值;
步骤5.3:量化浮点参数,量化公式为:
r=B(q-O)
其中,r表示浮点实数,q表示量化后的定点整数;round(·)含义同上;
步骤5.4:在计算学生网络的过程中,学生网络的卷积层和全连接层的运算归结为矩阵乘法运算;将一个浮点矩阵转换为一个定点矩阵的步骤如下;
步骤5.4.1:集合m1和m2是学生网络中间层两个浮点权重矩阵,大小均为N×N;矩阵m3是m1m2相乘的结果;m3中各元素计算公式为:
其中,i,r,k分别为对应矩阵的行数和列数;
步骤5.4.2:由步骤5.3和5.4.1中公式整理所得:
/>
其中B1、O1是m1矩阵对应的比例因子和零点,B2、O2是m2矩阵对应的比例因子和零点;B3、O3是m3矩阵对应的比例因子和零点;
步骤5.4.3:量化矩阵q3中各元素为:
步骤5.4.4:将步骤5.4.3中的转换成定点运算为:
其中,M0为实数,n,M0的值是根据M、P的初始值和优化算法来选取最优的n,M0,使得MP=2-nM0P成立;
步骤5.4.5:量化矩阵q3中各元素经过优化计算为:
步骤5.5:在步骤4中,蒸馏压缩后的学生网络表示为:H=(x,y);其中,x为学生网络的输入矩阵,q为学生网络的输出矩阵;计算卷积层和全连接层中的矩阵乘法为:
其中,a1是学生网络卷积层的特征图矩阵,w1为学生网络卷积层的权重参数矩阵,x为学生网络卷积层的输入矩阵;a2是学生网络全连接层的输入矩阵,w2为学生网络全连接层的权重参数矩阵,q为学生网络全连接层的特征图矩阵;b1、b2为偏置参数矩阵;
步骤5.6:根据步骤5.4、步骤5.5中的公式,学生网络中的卷积层和全连接层的量化计算分别为:
/>
其中,a1、x、w1含义同上;qa1、qx、是a1、x、w1的量化矩阵;Ox、/>是矩阵x、w1、a1的零点矩阵;
q、a2、w2含义同上;qq、qa2、是q、a2、w2的量化矩阵;/>Oq是矩阵a2、w2、q的零点矩阵;
b1、b2为偏置参数矩阵,和/>是b1和b2的量化矩阵值;f代表学生网络的输出;Ma1、Ma2和步骤5.4.4中获得M0方法相同;
步骤5.7:在学生网络激活层中,激活函数为:
其中,a2为学生网络激活层的特征图矩阵,a1为学生网络激活层的输入矩阵,qa1、qa2是a1、a2的量化矩阵,是矩阵a1的零点矩阵;max(·)函数表示比较激活层的输入量化矩阵和零点矩阵的值,返回两个矩阵所对应位置中大的值;
步骤5.8:通过步骤5.6,步骤5.7的计算,得到全精度的学生网络,整个学生网络完成了量化,最后将学生网络部署在FPGA上,实现硬件加速计算;
步骤6:将水下激光摄像头采集到的图像,硬件平台加速的蒸馏量化的学生网络中,实现图像中目标物体的自动识别。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.一种基于量化蒸馏的水下目标识别方法,其特征在于,包括以下步骤:
步骤1、获取海底生物图像数据样本,构建样本数据集;样本数据集以比例随机形成训练数据集和测试数据集;
步骤2、在训练数据集上实施基于样本复制的数据增广方法,获得数据增广后的训练数据集;
步骤3、输入数据增广后的训练数据集至Resnet50网络,预训练多个Resnet50网络作为教师网络;教师网络结构分为7个部分,第1部分包括卷积层、激活层和最大池化层,对输入数据增广后的训练数据集进行卷积、激活、最大池化的计算;第2部分至第5部分结构相同,为中间层,包括残差块、卷积块和分类器;分类器包括一个全连接层和softmax激活函数,用于表示中间层的分类信息;第6部分为平均池化层,其将输入内容转化成一个特征向量;第7部分为全连接层,其将特征向量进行计算并输出类别概率;
步骤4、基于多教师知识蒸馏方法对教师网络进行压缩,得到学生网络;学生网络结构和教师网络结构相同;学生网络采用卷积神经网络Resnet18,卷积神经网络Resnet18中包括17个卷积层和一个全连接层;
步骤4.1:表示数据增广后的训练数据集,其中,N是样本的数量,xi为第i个输入变量;yi为第i个输入变量对应的真实标签值;
根据Softmax函数计算得到教师网络的预测结果σ(Zc),并通过超参数蒸馏温度T软化输出概率分布:
其中,Zc是教师网络全连接层第c个节点输出,T为蒸馏温度,C表示教师网络全连接层的输出总个数;
步骤4.2:计算教师网络和学生网络之间的损失函数;
步骤4.2.1:计算多个教师网络预测结果和真实标签值之间的交叉熵损失,分配不同的权重用于反映不同教师网络对学生网络的样本置信度;
其中,k表示第k个教师网络;K表示教师网络总个数;c表示单个教师网络全连接层第c个节点输出;C表示单个教师网络全连接层的输出总个数;表示第k个教师网络的全连接层输出;yc表示教师网络的真实标签值;/>表示教师网络在全连接层预测和基本真实标签之间的交叉熵损失;/>表示各个教师网络全连接层输出概率值的样本置信度;
将多个教师网络的预测与其相对应的样本置信度相乘,得到教师网络全连接层输出特征的损失函数为:
其中,表示学生网络的全连接层输出;/>表示学生网络的预测结果;步骤4.2.2:将蒸馏的方法扩展到教师网络中间层,其特征匹配的计算如下:
其中,是第k个教师网络的分类器;hS是学生网络最后一层的特征向量;/>表示第k个教师网络对学生网络最后一层特征向量的特征分类结果;/>为教师网络在中间层的预测和基本真实标签之间的交叉熵损失;K表示教师网络个数;/>表示教师网络中间层输出概率值的样本置信度;
得到学生网络和教师网络中间层特征的损失函数为:
其中,r(·)是特征维度对齐函数,用于将学生网络进行升维,和教师网络维度进行匹配;FS为学生网络特征图的特征输出;为第k个教师网络特征图的特征输出;/>表示范数,是为教师网络和学生网络中间特征的距离度量;
步骤4.2.3:计算具有真实标签的正则交叉熵损失函数为:
其中,yc表示教师网络真实标签值,是学生网络全连接层输出;
步骤4.2.4:最后,多教师网络知识蒸馏总体损失函数为:
其中α、β是平衡教师网络全连接层输出特征的损失、学生网络和教师网络中间层特征的损失的超参数;
步骤4.3:初始化学生网络模型,针对学生网络使用多教师知识蒸馏;计算教师网络输出并软化概率分布如步骤4.1所示,加入蒸馏温度T用于软化输出概率分布,提供更多的监督信息;教师网络和学生网络的损失函数如步骤4.2所示,使用多教师蒸馏的总体损失函数用于学生网络学习教师网络的知识;最后通过调节超参数蒸馏温度T和蒸馏总体损失函数/>使得学生网络进一步收敛,得到蒸馏压缩后的学生网络;
步骤5、将蒸馏压缩后的学生网络进行量化并部署在FPGA上:
步骤5.1:设待量化参数的最大值和最小值分别设置为xmax、xmin,量化后参数的最大值和最小值分别设为qmax、qmin,并采用非对称量化方法,量化区间设为[0,255];
步骤5.2:计算量化比例因子B和零点O,公式分别为:
其中,round(·)表示返回括号内浮点数的四舍五入值;
步骤5.3:量化浮点参数,量化公式为:
r=B(q-O)
其中,r表示浮点实数,q表示量化后的定点整数;round(·)含义同上;
步骤5.4:在计算学生网络的过程中,学生网络的卷积层和全连接层的运算归结为矩阵乘法运算;将一个浮点矩阵转换为一个定点矩阵的步骤如下;
步骤5.4.1:集合m1和m2是学生网络中间层两个浮点权重矩阵,大小均为N×N;矩阵m3是m1m2相乘的结果;m3中各元素计算公式为:
其中,i,r,k分别为对应矩阵的行数和列数;
步骤5.4.2:由步骤5.3和5.4.1中公式整理所得:
其中B1、O1是m1矩阵对应的比例因子和零点,B2、O2是m2矩阵对应的比例因子和零点;B3、O3是m3矩阵对应的比例因子和零点;
步骤5.4.3:量化矩阵q3中各元素为:
步骤5.4.4:将步骤5.4.3中的转换成定点运算为:
其中,M0=2nM,M0为实数,n,M0的值是根据M、P的初始值和优化算法来选取最优的n,M0,使得MP=2-nM0P成立;
步骤5.4.5:量化矩阵q3中各元素经过优化计算为:
步骤5.5:在步骤4中,蒸馏压缩后的学生网络表示为:H=(x,y);x为学生网络的输入矩阵,q为学生网络的输出矩阵;计算卷积层和全连接层中的矩阵乘法为:
其中,a1是学生网络卷积层的特征图矩阵,w1为学生网络卷积层的权重参数矩阵,x为学生网络卷积层的输入矩阵;a2是学生网络全连接层的输入矩阵,w2为学生网络全连接层的权重参数矩阵,q为学生网络全连接层的特征图矩阵;b1、b2为偏置参数矩阵;
步骤5.6:根据步骤5.4、步骤5.5中的公式,学生网络中的卷积层和全连接层的量化计算分别为:
其中,a1、x、w1含义同上;qa1、qx、是a1、x、w1的量化矩阵;Ox、/>是矩阵x、w1、a1的零点矩阵;
q、a2、w2含义同上;qq、qa2、是q、a2、w2的量化矩阵;/>Oq是矩阵a2、w2、q的零点矩阵;
b1、b2为偏置参数矩阵,和/>是b1和b2的量化矩阵值;f代表学生网络的输出;Ma1、Ma2和步骤5.4.4中获得M0方法相同;
步骤5.7:在学生网络激活层中,激活函数为:
其中,a2为学生网络激活层的特征图矩阵,a1为学生网络激活层的输入矩阵,qa1、qa2是a1、a2的量化矩阵,是矩阵a1的零点矩阵;max(·)函数表示比较激活层的输入量化矩阵和零点矩阵的值,返回两个矩阵所对应位置中大的值;
步骤5.8:通过步骤5.6,步骤5.7的计算,得到全精度的学生网络,整个学生网络完成了量化,最后将学生网络部署在FPGA上,实现硬件加速计算;
步骤6、将蒸馏量化后的学生网络更新为新的目标检测网络,将图像实时输入到更新后目标检测网络中,实现实时的水下目标识别。
2.根据权利要求1所述的基于量化蒸馏的水下目标识别方法,其特征在于,所述步骤2具体为:
步骤2.1:在训练数据集中挑选出海底生物类别样本的体积占整张图片5%以下数量为1-2个且边缘清晰的图片,所述目标集合图片,用于样本复制;
步骤2.2:在目标集合图片上绘制出用于监督训练的真实边界框和类别标签,确定出目标集合图片上海底生物的具体位置和类别;
步骤2.3:目标集合图片根据确定的海底生物具体位置和类别做轮廓标注,获得物理轮廓标注文本;
步骤2.4:依次读入步骤2.3所得的目标集合图片,遍历物理轮廓标注文本中获得的标注名称,当存在标注名称与当前读入图片名匹配时,从物理轮廓标注文本中取出该图片的轮廓标注;将当前图片该轮廓内的所有像素值复制到一个相同形状的随机区域,完成样本复制;
步骤2.5:使用OpenCV计算步骤2.3所得的目标集合图片中物理轮廓标注的最小外接四边形的面积U,求U与当前完成样本复制图片内所有用于监督训练的真实边界框的面积的交并比,与U拥有最大交并比边界框为被复制目标的边界框;
步骤2.6:将步骤2.5中筛选出的边界框赋给步骤2.4中随机复制的样本,同时添加类别标签,用于进行监督训练,训练完成后将会得到数据增广后的训练数据集。
3.根据权利要求1或2所述的基于量化蒸馏的水下目标识别方法,其特征在于,所述海底生物图像数据样本从不同的背景中拍摄不同角度方向的目标图像,目标图像中至少有一个同待检测对象相似的形状,或者是待检测对象侧面的图像;
样本数据集中包括待检测的目标图像,并对其进行标注。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310426376.8A CN116524341A (zh) | 2023-04-20 | 2023-04-20 | 一种基于量化蒸馏的水下目标识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310426376.8A CN116524341A (zh) | 2023-04-20 | 2023-04-20 | 一种基于量化蒸馏的水下目标识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116524341A true CN116524341A (zh) | 2023-08-01 |
Family
ID=87402361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310426376.8A Pending CN116524341A (zh) | 2023-04-20 | 2023-04-20 | 一种基于量化蒸馏的水下目标识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116524341A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117372819A (zh) * | 2023-12-07 | 2024-01-09 | 神思电子技术股份有限公司 | 用于有限模型空间的目标检测增量学习方法、设备及介质 |
-
2023
- 2023-04-20 CN CN202310426376.8A patent/CN116524341A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117372819A (zh) * | 2023-12-07 | 2024-01-09 | 神思电子技术股份有限公司 | 用于有限模型空间的目标检测增量学习方法、设备及介质 |
CN117372819B (zh) * | 2023-12-07 | 2024-02-20 | 神思电子技术股份有限公司 | 用于有限模型空间的目标检测增量学习方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113705478B (zh) | 一种基于改进YOLOv5的红树林单木目标检测方法 | |
CN108021947B (zh) | 一种基于视觉的分层极限学习机目标识别方法 | |
CN111259930A (zh) | 自适应注意力指导机制的一般性目标检测方法 | |
CN108229589B (zh) | 一种基于迁移学习的地基云图分类方法 | |
CN111461190A (zh) | 一种基于深度卷积神经网络的非均衡船舶分类方法 | |
CN112818969B (zh) | 一种基于知识蒸馏的人脸姿态估计方法及系统 | |
CN110751209B (zh) | 一种融合深度图像分类和检索的智能台风定强方法 | |
CN115457006B (zh) | 基于相似一致性自蒸馏的无人机巡检缺陷分类方法及装置 | |
CN111062423B (zh) | 基于自适应特征融合的点云图神经网络的点云分类方法 | |
CN114283325A (zh) | 一种基于知识蒸馏的水下目标识别方法 | |
CN116524341A (zh) | 一种基于量化蒸馏的水下目标识别方法 | |
CN115731411A (zh) | 一种基于原型生成的小样本图像分类方法 | |
CN113095251A (zh) | 一种人体姿态估计方法及系统 | |
CN113344045A (zh) | 一种结合hog特征提高sar船只分类精度的方法 | |
CN117765258A (zh) | 基于密度自适应和注意力机制的大规模点云语义分割方法 | |
CN117372854A (zh) | 一种大坝深水结构隐患病害实时检测方法 | |
CN115861239A (zh) | 一种基于元学习的小样本工业零件表面缺陷检测方法 | |
CN116030292A (zh) | 基于改进ResNext的混凝土表面粗糙度检测方法 | |
Wu et al. | Efficient Identification of water conveyance tunnels siltation based on ensemble deep learning | |
CN114821098A (zh) | 一种基于灰度梯度融合特征及cnn的高速路面破损检测算法 | |
CN114722928A (zh) | 一种基于深度学习的蓝藻图像识别方法 | |
CN114111647A (zh) | 一种基于人工智能的绝缘子伞裙破损面积测量方法及测量系统 | |
CN116434087B (zh) | 基于goa-svm协同算法与无人机的混凝土裂缝识别方法及装置 | |
Duan | An object recognition method based on deep learning | |
CN117557857B (zh) | 结合渐进式引导蒸馏和结构重构的检测网络轻量化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |