CN112163628A - 一种适用于嵌入式设备的改进目标实时识别网络结构的方法 - Google Patents
一种适用于嵌入式设备的改进目标实时识别网络结构的方法 Download PDFInfo
- Publication number
- CN112163628A CN112163628A CN202011077925.8A CN202011077925A CN112163628A CN 112163628 A CN112163628 A CN 112163628A CN 202011077925 A CN202011077925 A CN 202011077925A CN 112163628 A CN112163628 A CN 112163628A
- Authority
- CN
- China
- Prior art keywords
- network
- loss
- channel
- module
- convolution
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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/045—Combinations of networks
-
- 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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种适用于嵌入式设备的改进目标实时识别网络结构的方法,涉及计算机视觉领域,具体包括:首先,运行正常的目标识别网络模型,计算出各层级的卷积模块的权重参数量的占比;选出占比50%—70%的卷积模块替换为深度可分离卷积模块,完成初次压缩;然后,将每个通道的影响因子引入到损失函数中,并进行稀疏正则化;设定裁剪比例阈值,选出低于该比例阈值的影响因子,将对应的网络通道裁剪掉,完成通道剪枝压缩过程。接着,利用图像增强模块调整图像,输入到加入SENet模块的神经网络中进行训练;最后,对实时采集的图像进行目标识别。本发明将结构压缩方法和通道剪枝方法结合在一起,极大程度的对原网络进行了压缩处理。
Description
技术领域
本发明涉及计算机视觉领域,具体是一种适用于嵌入式设备的改进目标实时识别网络结构的方法。
背景技术
随着人工智能技术的应用越来越广泛,无人机(UAV)结合人工智能将会成为未来热门的研究领域。而目前将目标识别技术移植到无人机上已经有了不少的应用,例如植被施药,灾难搜救和河流测污等,可以想到,让灵活度极高的无人机具备目标识别能力将极大降低人力物力和财力。此外,通过计算机自动识别的结果也往往比人眼识别更为可靠和安全。
但是,在工业界,将目标识别技术移植到无人机的过程依旧充满了挑战。对于无人机这种小型的嵌入式设备而言,它有限的运算资源和内存占用使得目标识别网络很难真正应用到实际中去。具体而言,它的应用主要受限于两个方面。第一是现在流行的目标识别网络的参数量和运算资源耗费往往都很大,因此对于各种嵌入式设备尤其是无人机而言是致命的缺陷。此外,由于运算资源受限,目标识别网络对于一帧图像的处理会花费很长时间,因此无人机很难具备实时性检测的能力。因此,如果想将该技术应用到工业发展中去,急需一种对识别网络进行大幅度删减的压缩模型策略,从而实现小体积网络实时侦测的需求。
发明内容
本发明针对现有网络存在的模型体积庞大等问题,提出了一种适用于嵌入式设备的改进目标实时识别网络结构的方法,基于YOLOv3Tiny目标识别网络的模型优化策略,使用了结构压缩和通道剪枝等模型压缩方法对原有模型的体积和识别时间进行改进,同时为了提升识别性能,在此基础上加入了性能优化模块,在满足识别实时性的前提下提升目标的识别精度。
本发明所述的改进目标实时识别网络结构的方法,包括以下步骤
步骤一、正常运行未经压缩的目标识别网络模型,计算出各层级的卷积模块的权重参数量在总模型所有卷积层权重参数量之和中的占比。
步骤二、选出占比50%—70%的卷积模块并替换为深度可分离卷积模块,完成模型的初次压缩;迭代运行初次压缩模型,直到损失曲线上的损失值波动小于0.01。
步骤三、针对损失值稳定的压缩模型,将每个通道的影响因子引入到损失函数中,并对损失函数进行稀疏正则化;
首先,针对每层卷积网络内的各个通道,将各通道对应的影响因子的理论值γ与每个通道的输出进行乘积,从而将影响因子引入到损失函数中,并加入稀疏惩罚项进行稀疏正则化;
计算公式如下:
其中,x为卷积网络的输入,y为卷积网络的输出,W是网络的权重矩阵。∑(x,y)l(f(x,W),y)是卷积网络的常规Loss计算式;g(·)采用了L1正则项,为损失函数Loss引入了稀疏性惩罚项;λ为稀疏惩罚项在总体损失函数中所占的比例系数;Γ为各通道对应的影响因子γ集合。
然后,将引入γ后的损失函数进行多次逆向传播训练,得到各影响因子γ的真实值。
当给损失函数加入了稀疏惩罚项之后,随着训练次数的增多,网络权重参数逐渐向着0移动。
步骤四、设定裁剪比例阈值,选出稀疏正则化后低于该比例阈值的影响因子,将各影响因子对应的网络通道裁剪掉,重新迭代运行裁剪后的网络模型,直到损失曲线不再发生变化或者损失值的变化波动程度小于0.01为止,完成通道剪枝压缩过程。
裁剪比例的设定为:基于不同的通道裁剪率对识别率的影响图像,找到识别率和通道裁剪率曲线的拐点作为最终的裁剪比例阈值。
根据影响因子γ的真实值,选出低于设定阈值的各影响因子,将对应的网络通道进行修剪和微调,实现通道级别的模型剪枝,并去掉其对应输入和输出的权重参数。
步骤五、在神经网络每次读取图片进入训练前,加入图像增强模块随机调整图像的亮度,对比度,饱和度和色相相关属性;
步骤六、针对压缩和剪枝处理后的模型,加入SENet模块进一步提升识别精度。
加入SE模块的原则是:在浅层卷积网络即第一、二层卷积层前面加入SE注意力机制模块,让浅层神经网络自动识别出不同特征信息通道对结果的影响程度,并有选择性对产生重要影响的通道进行增强或对影响较小的通道进行抑制处理。
步骤七、利用图像增强模块调整后的训练图像,输入到加入SENet模块的神经网络中进行训练;
训练过程中,使用学习率动态调整模块设置分界点形成不同的训练阶段,并利用性能优化模块对训练过程中的误差损失函数进行优化;
具体过程为:
首先,根据0.8和0.9两个分界点分别设置三个不同的训练阶段:0—0.8,0.8—0.9和0.9—1,并使得不同阶段的学习率依次下降10倍。
然后,对误差损失函数进行优化的过程为:
采用IOU或GIOU作为损失的计量方式,并加入缩放系数k,计算公式如下:
Loss=k×Localization loss+Confidence loss+Classification loss
Localization loss为边界框损失误差函数;Confidence loss为置信度损失函数;Classification loss为目标的类别损失函数;
步骤八、利用训练好的目标识别网络模型,对实时采集的图像进行目标识别。
本发明的优点在于:
1)、一种适用于嵌入式设备的改进目标实时识别网络结构的方法,将结构压缩方法和通道剪枝方法结合在一起,极大程度的对原网络进行了压缩处理。
2)、一种适用于嵌入式设备的改进目标实时识别网络结构的方法,适用于各种目标识别网络的综合压缩优化处理框架,可以保证在原网络识别精度下降较小的情况下提升其压缩性能。
3)、一种适用于嵌入式设备的改进目标实时识别网络结构的方法,主要针对于无人机嵌入式设备的目标识别,其经过压缩后的网络大小近似为9MB,因此可以很容易移植进入资源受限的嵌入式设备上进行识别作业。
附图说明
图1为本发明所述网络结构的压缩及优化的改进结构示意图;
图2为本发明一种适用于嵌入式设备的改进目标实时识别网络结构的方法流程图;
图3为本发明不同网络层级在整体网络中所占的比例;
图4为本发明对完成结构压缩的网络进行通道稀疏正则化之后的网络权重分布图;
图5为本发明通道裁剪对目标识别效果的影响;
图6为本发明加入SENet模块注意力机制的示意图;
图7为本发明学习率动态调整示意图;
图8为本发明所示IOU的识别缺陷;
图9为本发明所示的三种不同损失函数的箱式图。
具体实施方式
下面结合附图对本发明进行清楚、完整的说明。需要注意,这里所描述的实例仅仅只是为了方便阐述模型优化原理而引入的,整体系统对大部分神经网络的优化处理都具备普适性。
本发明在主流目标识别网络YOLOv3Tiny的基础上进行了模型压缩和性能优化,在Anaconda3处理环境下进行了仿真实验,如图1所示,通过结构压缩模块和通道剪枝模块提升了识别效率同时极大缩减了网络模型的体积,通过图片增强处理模块随机调整图像的亮度,对比度,饱和度和色相相关属性,使模型能识别出不同角度的目标。对神经网络的性能优化处理采用了SE注意力机制模块,配合学习率动态图调整模块和损失函数优化模块进行优化训练,提升了模型的识别精度,从而实现了移植到嵌入式设备的目标识别网络实时性和轻量化的需求。
本发明所述的改进目标实时识别网络结构的方法,如图2所示,包括以下步骤:
步骤一、正常运行未经压缩的目标识别网络模型,计算出各层级的卷积模块的权重参数量在整体网络中不同卷积层权重参数量之和中的占比。
如图3所示,不同的网络层级中权重的参数数量不同,从而计算出各层级所占的总权重参数的比例。
步骤二、选出占比50%—70%的卷积模块并替换为深度可分离卷积模块,重新迭代运行替换后的压缩模型,直到损失曲线上的损失值波动小于0.01。
重新迭代运行替换后的网络模型直到网络的损失曲线不再发生变化为止,从而实现微调过程;
步骤三、对替换后的压缩模型进行通道剪枝处理,将每个通道的影响因子引入到损失函数中,然后对损失函数进行稀疏正则化。
针对于不同的网络通道,理论上都应该存在一个与之对应的影响因子γ用以形容该网络通道对输出结果的影响程度,通过将影响因子γ与每个通道的输出进行乘积,从而将影响因子引入到损失函数中。由于替换后的压缩模型是基于BN层缩放系数来判断不同通道的重要性,因此应该考虑对网络进行训练的时候,将影响因子进行稀疏正则化,从而网络自动识别将不重要的连接剔除。
具体给损失函数引入稀疏惩罚项的公式如下所示:
其中,x为卷积网络的输入,y为卷积网络的输出,W是网络的权重矩阵。公式的第一项∑(x,y)l(f(x,W),y)是卷积网络的常规Loss计算式;第二项中g(·)采用了L1正则项的形式,为损失函数Loss引入了稀疏性惩罚项,使得网络可以自动识别出真正具有影响力的网络通道。为了限制稀疏惩罚项在总体损失函数中所占的比例,引入λ系数来调整右式所占的范围;Γ为各通道对应的影响因子γ集合。
而此时只需要对改进后的损失函数进行多次逆向传播训练,便可以得到每层卷积网络内各个通道γ具体的值。
通过对完成结构压缩的网络进行通道稀疏正则化之后,整个网络权重分布如图4所示,诸多卷积层权重参数值都接近于0;可以看出,未经过稀疏正则化的时候,大部分网络权重值都分布在1附近,这也说明了YOLOV3网络并没有意识到不同通道对于输出结果的重要性来讲不同。而当给损失函数加入了稀疏惩罚项之后,可以发现,随着训练次数的增多,权重参数逐向着0附近移动,这也恰恰符合在网络中小权值参数进行减重的压缩策略。
最后,通过将影响因子接近于0的卷积层通道进行删减,(这也意味着该网络通道对输出结果影响较小)并去掉其对应输入和输出的权重数据,进行微调即可实现通道级别的模型剪枝,从而便可以极大地实现网络参数的压缩和运算速度的提升。
步骤四、设定裁剪比例阈值,选出稀疏正则化后低于该比例阈值的影响因子,将各影响因子对应的网络通道裁剪掉,重新迭代运行裁剪后的网络模型,直到损失曲线不再发生变化或者损失值的变化波动程度小于0.01为止,完成通道剪枝压缩过程。
裁剪比例的设定为:找到占比50%—70%的网络卷积模块为通道裁剪的目标,并基于此画出不同的通道裁剪率对识别率的影响图像,找到识别率和通道裁剪率曲线的拐点作为最终的裁剪比例阈值;
现有的模型压缩方法一般在经过压缩后,其精度会造成一定的损失,此时,如果对压缩后网络再次进行多次训练时,其精度会有一定的提升;而本申请中的通道剪枝由于从某种程度上讲属于卷积层的结构性剪枝,因此对于剪枝完成的模型再次进行训练,其精度并不会有较大的变化,如图5所示,随着裁剪率的变化,当通道裁剪率大于70%的时候,目标的mAP值逐渐下降,意味着识别的精度会随着下降。从根本原因上讲,随着对网络通道的逐渐裁剪,一些重要的通道将会被忽略,从而导致精度的下降,而后续通过实验也可以发现,对这些通道进行裁剪造成的精度损失是永久性的,它并不会因为对网络的多次训练而恢复。
步骤五、在神经网络每次读取图片进入训练前,加入图像增强模块随机调整图像的亮度,对比度,饱和度和色相相关属性;
许多识别网络对原始的图像矩阵进行识别的方式,难免会使得模型受到一些无关因素的影响,因此通过训练过程中图像预处理过程可以提高模型的准确率。而在图像处理中,翻转是不应该影响识别结果的,可以在训练过程中随机翻转训练图像,这样就会使得到的模型识别出不同角度的目标。
考虑到随机调整图像的亮度,对比度,饱和度和色相等也应该不影响最终的识别结果,所以在训练网络模型的时候,应该随机调整图像的这些相关属性,使得训练好的模型尽可能小地受到这些无关因素的影响。
整体图像处理的结构分为以下几个步骤:
首先:给定一张图片,将图片压缩至416×416的大小;
然后,随机调整图像的色彩,即亮度,对比度,饱和度和色相。
图像处理的顺序也会影响最终所得到的结果,因此在进行训练时,需要定义多种不同的顺序,在训练数据预处理的时候随机选择一种使用,从而进一步降低无关因素对模型的影响。
接着随机截取图像的部分,减小需要关注的物体大小对图像识别算法的影响,并将随机截取的图像调整为输入层大小。
最后,加载标注的文件,对标签进行归一化处理,并转换其格式。
经过以上步骤后,就可以通过少量训练图像衍生得到许多训练样本,此外,通过将训练图像进行预处理,所训练得到的神经网络模型可以识别出不同大小、方位和色彩等方面的实体。
步骤六、针对压缩和剪枝处理后的模型,加入SENet模块进一步提升识别精度。
SENet模块的机制和核心就是让神经网络自动识别出一些对识别结果产生重要影响的特征信息通道,并有选择性对这些通道进行增强,而对那些影响较小的通道则进行抑制。
SENet模块的基本组成框架如图6所示,例如输入矩阵XC′×W′×H′在经过多次处理后变为某个特征矩阵UC×W×H,那么需要对该特征矩阵进行处理:
首先,将其进行压缩操作,即对W×H的维度进行聚集,产生1×1×C大小的特征描述通道;随后,对该通道进行激活操作,即对每个通道进行自选通处理,从而相应地产生衡量每个通道重要性的权重值Fscale,而这些权值就会被运用到特征矩阵U上,产生经过注意力机制处理后的新的特征矩阵
需要注意:将SENet模块加入到网络的不同位置会产生不同的影响。如果是加入到浅层网络中,因为浅层网络主要表征了不同特征的细节信息,因此注意力机制会删除掉部分不重要的特征细节,却加强相关的特征细节。而深层网络由于其对于特征的提取更为纯粹,因此SENet模块对于特征的提取会显得更加特化。
由于SE模块会带来更多的计算量和参数量从而增加原模型的体积,因此,加入SE模块的原则是加入的数量尽可能少、造成的影响尽可能大,而考虑到在卷积网络中浅层网络对识别精度的影响最大,故而在浅层卷积网络即第一、二层卷积层前面加入SE注意力机制模块,让浅层神经网络自动识别出对识别结果影响较大的特征信息通道,并有选择性对这些通道进行增强,最终进一步提升整体网络的识别精度。
步骤七、利用图像增强模块调整后的训练图像,输入到加入SENet模块的神经网络中进行训练;
训练过程中,使用学习率动态调整模块设置分界点形成不同的训练阶段,并利用性能优化模块对训练过程中的误差损失函数进行优化,提升模型的识别精度。
具体过程为:
首先,考虑到目标检测网络训练轮数较多,因此同一种训练学习率可能会使得训练结果出现无法收敛。故而根据0.8和0.9两个分界点分别设置三个不同的训练阶段:0—0.8,0.8—0.9和0.9—1,并使得不同阶段的学习率依次下降10倍,如图7所示,从而可以实现一个较好的训练效果;如0-0.8的学习率为1,0.8-0.9的学习率为1/10,而0.9-1的学习率为1/100;
然后,使用损失函数优化模块对训练过程中的误差损失函数进行优化。
在YOLOv3网络中,损失函数由三部分组成:边界框回归损失值Localizationloss,置信度损失值Confidence loss以及目标的类别损失值Classification loss;公式如下:
Loss=Localization loss+Confidence loss+Classification loss
边界框回归损失值又可以定义为真实框和预测框的位置偏差,如下式所示:
其中代表着如果在i,j处的栅格处有目标,那么值就是1,否则为0,而所代表的意思则恰恰相反。在损失值的计算过程中加入了(2-wi×hi),目的在于提高小目标物体的识别率,即如果预测框和真实框都较小,那么在引入了这个补偿项后,边界框损失误差在总损失误差所占比例将会增大,从而使得整个训练过程对于小目标更为敏感。
但是需要注意,Localization loss只是简单的将检测框和真实框的位置的不同反映了出来,会忽略预测框和真实框的位置关系,当真实框和预测框重合时,损失函数将会失去梯度,从而给训练带来麻烦。并且,对一些小物体的检测或者是有遮挡物存在的目标检测来说,不能很好地将这些不同反映出来,因此对于小目标的检测来说,可以采用一些新的损失计算函数:
对于大部分检测算法而言,较为常用的边界框损失函数是IOU。与上述损失函数的计算相比它包含了预测框与真实框的交并集面积,因此可以更好的反映出检测框与真实框的位置关系,其计算式如下式所示。
但是在使用这种损失计量方式的时候,需要注意到IOU是无法分辨出不同方向检测框和真实框的朝向。如图8所示,三图的IOU值都是相同的,但是检测框和真实框的位置分布却大不相同,那么,为了量化以下三种不同排布的损失程度,就可以引入最大全包集的概念,使用GIOU的计算模式。
将真实框和预测框的最小闭包引入损失函数的计算式中去,即使用1-GIOU作为损失函数位置误差的计算式。
A和B分别代表损失函数计算式中的真实框和预测框的属性,因而A∩B就代表了真实框和预测框的交集面积,同理A∪B代表了真实框和预测框的并集面积。而C就代表了A和B的最小闭包的面积。
简单而言,最大全包集其实就是在找到一个可以将检测框和真实框的并集完全包含进去的框,就类似上图的虚线框一样。那么,如果想评估两个框相交的程度,就可以计算这个全包集与检测框和真实框并集的差集。
通过上式可以看出,新设的GIOU相比较原始的位置偏差误差可以更注重非重合区域,可以反映真实框和预测框的重合度。
因此损失函数计算式如下所示:
Loss=Localization loss+Confidence loss+Classification loss#
Localization loss=1-GIOU或IOU
那么,在引入了计算式子后,还需要考虑参数的分配情况,如图9所示,列出了Localization loss,Confidence loss和Classification loss三者在训练过程中所占比例的大小的不同。可以看出,在小型目标预测实验中,根据预测目标的不同,在使用1-GIOU作为Localization loss的情况下,其值在总Loss损失值中所占比例最小。再考虑到该值计算的结果代表了真实框和预测框的位置损失情况,所以该计算式理应体现出它在网络回归计算中的重要程度。
为此,可以在Localization loss前面加上一个影响系数k,从而一方面使得它在损失计算中的占比与其它的Loss均衡,另一方面也可以加快整体网络的收敛。
Loss=k×Localization loss+Confidence loss+Classification loss
下表列出了在实例中影响系数k在取值不同的条件下对于整体网络的影响:
可以看出,随着影响系数k的增大,网络模型的mAP值在逐渐增大,尤其是在k=4时,mAP值达到了79.0%。但是当影响系数k>4时,网络却出现了因为损失函数的位置误差值过大而无法收敛的现象,其原因应该是k值过大时,网络在进行反向传播的过程中出现了梯度爆炸的现象。
因此,最终可以确定损失函数的计算模式为:
Loss=4×Localization loss+Confidence loss+Classification loss
步骤八、利用训练好的目标识别网络模型,对实时采集的图像进行目标识别。
对原网络进行模型压缩和性能优化处理之后,就可以考虑对改进后网络进行目标识别训练。可以设定训练批次为100次,并将训练所需要的图片和标签依次放入train文件夹中,那么经过训练之后,就会发现所得到的权重文件体积会相比较原网络模型所训练出来的权重文件小近似5—6倍,而实验可以发现,改进后的网络识别精度会和原网络的精度近似相同甚至略有提升。
本实施例设定的优化模型中,主要分为网络损失函数优化,图像模型增强处理以及网络结构压缩几个部分。其中,模型压缩分为两种改进的结构:
其一,是采用了深度可分离卷积模块。
简言之,是将标准卷积分解为深度卷积和点卷积,深度卷积为输入的每个通道都提供不同的卷积核滤波器,继而输出与输入通道数目相匹配的输出权重矩阵;点卷积即让这些输出权重矩阵和一个1×1的卷积核做普通卷积运算,从而得到最终的输出值。
从运算资源的消耗量上看,对输入特征进行普通卷积的时候,所需耗费的运算资源数为DK×DK×M×N×DF×DF,而深度可分离卷积通过将卷积核进行分离,使得运算资源数的消耗下降为深度卷积和点卷积运算量之和,即为DK×DK×M×DF×DF+DF×DF×M×N,整体可得的运算量之比如下所示:
可以发现,当N较大时,即输出特征的数量较多时,将普通卷积替换为深度可分离卷积可以实现较大程度的计算量和模型体积的压缩。
但是,如何最大效率地将该模块嵌入到原始网络模型结构中就成为了一个问题;本实施例采用综合网络层数和网络参数数量的嵌入方式。其过程主要包含以下几个步骤:
首先,基于整体网络的结构得到可以进行替换的网络层级编号;
由于YOLOv3存在路由层,因此部分网络层可能会与多个网络层相连。而这种类型的网络层不能算入可替换网络层级的范围内。
然后,得到可替换网络层级的参数数量,并进行排序;选取参数量占比较大并且处于深层的网络层,对其进行深度可分离卷积替换。
替换的策略分为两种:一种是大幅度修改网络的结构,二是仅对部分深层网络进行替换。第一种方式尽管对网络的结构造成极大的压缩,但是对于浅层网络而言,会造成很大的损害,并且也会使得训练的收敛速度造成影响。
最后,对修改之后的网络进行网络再训练,并进行参数微调。
总的来说,相比微调而言,大幅度的压缩其实并没有真正对网络压缩效率的提高有更大的改进。此外,在目标识别神经网络中,一般浅层网络提取的是目标的纹理和细节特征,深层网络则更注重对于轮廓,特殊区域的提取,所以,浅层网络相比较深层网络而言包含了更多的目标特征。如果此时对这些浅层网络的结构做大幅度的删减,则会造成浅层网络特征的丢失,从而对整个识别系统造成较大的精度损失。
因此,最终考虑神经网络结构的压缩需要考虑以下几点基本的策略:第一、不能对浅层网络结构进行较大的改动。第二、则是需要根据不同卷积层在整个网络中的占比权重,找出那些影响较大的卷积层,并对此进行压缩处理。
其二,是采取通道剪枝的压缩策略。
压缩策略是一种基于BN层缩放系数来判断不同通道重要性的剪枝方法。
具体来说,在卷积输入层正向传播至输出层时,不同通道的影响因子也是不同的。因此,可以考虑在网络进行训练时,对这些影响因子进行稀疏正则化使得网络自动识别出不重要的连接并将之剔除,从而实现整个网络模型的压缩。
通道剪枝的压缩方法分为通道稀疏正则化和通道裁剪两个部分:其中,稀疏正则化的目的是卷积网络在训练的过程中有意识地识别出那些对训练结构影响较大地通道,并赋予其大权值,而对于那些影响力不足的通道,便赋予小权值,从而有利于后续的通道删减操作。
当得到了一个经过了稀疏正则化后的模型时,就可以设定一个裁剪比例将网络中低于该阈值的通道都裁剪掉。因此,这时通道裁剪率就成为了影响网络压缩性能和识别准确率的重要因素。需要注意的是,裁剪率的选取需要权衡这两者的变化,当裁剪率过低时,可能会带来较低的压缩收益,而对通道裁剪过度,又会给网络带来精度的永久性损失。
具体压缩规过程为:首先选取可以进行裁剪的网络层编号,其次选取合适的通道裁剪率对这些网络层进行通道剪枝处理,最后进行微调。可以看出影响通道剪枝效率的最大影响因子就是通道裁剪率。随着对网络通道的逐渐裁剪,一些重要的通道将会被忽略,从而会导致精度的下降,而由于通道剪枝是对网络的卷积核数量进行缩减,因此这种精度损失是永久性的,它并不会因为对网络再进行多次训练而恢复。所以,在选取合适的通道裁剪率的时候,应该分别计算得出不同的通道裁剪率对于网络精度的影响,选取图像的拐点处作为合适的通道裁剪率最为恰当。
其三,在得到这些结构压缩的方式后,就需要将这两种方法结合在一起使用。
经过实验的分析可以得到一个规律:即深度可分离卷积对于模型体积的裁剪能力不如通道剪枝策略,但是它相比较通道裁剪而言,性能下降程度较小,而且其也降低了网络的计算负担,使得整体网络预测速率得到了提升。因此综合性能和压缩能力的处理。可以采用通道裁剪+深度可分离卷积+其它性能优化模块的综合处理框架。
由于两种压缩方法对于浅层卷积块的处理会对原有模型的性能造成不可恢复的影响,因此需要针对这两种压缩策略的特点分别进行嵌入处理。通过衡量体积压缩和识别性能的关系,需要考虑以下几点裁剪准则:
(一)尽量不对浅层的网络进行处理。这是由于浅层网络包含了大量特征细节信息,删减掉浅层网络的权重系数会对整体网络的识别率造成不可恢复的损害。
(二)不能对路由层前面所连接的网络层进行处理。路由层的作用是将浅层网络和深层网络的特征图进行拼接,从而避免了深层网络丢失大量特征细节信息的缺点。而一旦对路由层前面的卷积层进行了处理,就会使得该卷积层后面以及路由层所连接的深层网络同时受到影响,因此在程序设计上将会受到很多限制。
其具体步骤如下所示:
首先,根据上述裁剪准则找到网络中符合要求的卷积层;将这些卷积层进行通道裁剪处理,并得到不同通道裁剪率情况下通道剪枝最终的压缩性能和识别率的对照图。
然后,选取合适的通道裁剪率对原有网络结构进行压缩处理,从而得到压缩后的卷积层;并计算出各个卷积层参数占比数据图,并选取卷积层中参数占比较大的卷积层,将这些卷积层替换为深度可分离卷积模块。
接着,在浅层以及路由层网络处加入一些通道注意力机制模块,进一步提升网络的识别性能。
最后,对改进后的网络重新进行训练并记录最终压缩后网络的性能及压缩率变化。
此外,对混合压缩模型和其它压缩策略的性能进行比较可以看出(对各个参数已经进行了归一化处理),与单独采用深度可分离卷积和通道剪枝的方法相比,混合策略对于原模型的压缩程度更强,并且,相比较前两种用识别精度换取压缩率的方式相比,混合策略反而对于原模型的识别率有一定的改善作用,且由于计算所耗费资源数的下降,它对于预测时间的缩短也比其它方法更有成效。
Claims (5)
1.一种适用于嵌入式设备的改进目标实时识别网络结构的方法,其特征在于,包括以下步骤:
步骤一、正常运行未经压缩的目标识别网络模型,计算出各层级的卷积模块的权重参数量在总模型所有卷积层权重参数量之和中的占比;
步骤二、选出占比50%—70%的卷积模块并替换为深度可分离卷积模块,完成模型的初次压缩;迭代运行初次压缩模型,直到损失曲线上的损失值波动小于0.01;
步骤三、针对损失值稳定的压缩模型,将每个通道的影响因子引入到损失函数中,并对损失函数进行稀疏正则化;
首先,针对每层卷积网络内的各个通道,将各通道对应的影响因子的理论值γ与每个通道的输出进行乘积,从而将影响因子引入到损失函数中,并加入稀疏惩罚项进行稀疏正则化;
计算公式如下:
其中,x为卷积网络的输入,y为卷积网络的输出,W是网络的权重矩阵;
∑(x,y)l(f(x,W),y)是卷积网络的常规Loss计算式;g(·)采用了L1正则项,为损失函数Loss引入了稀疏性惩罚项;λ为稀疏惩罚项在总体损失函数中所占的比例系数;Γ为各通道对应的影响因子γ集合;
然后,将引入γ后的损失函数进行多次逆向传播训练,得到各影响因子γ的真实值;
步骤四、设定裁剪比例阈值,选出稀疏正则化后低于该比例阈值的影响因子,将各影响因子对应的网络通道裁剪掉,重新迭代运行裁剪后的网络模型,直到损失曲线不再发生变化或者损失值的变化波动程度小于0.01为止,完成通道剪枝压缩过程;
步骤五、在神经网络每次读取图片进入训练前,加入图像增强模块随机调整图像的亮度,对比度,饱和度和色相相关属性;
步骤六、针对压缩和剪枝处理后的模型,加入SENet模块进一步提升识别精度;
步骤七、利用图像增强模块调整后的训练图像,输入到加入SENet模块的神经网络中进行训练;
训练过程中,使用学习率动态调整模块设置分界点形成不同的训练阶段,并利用性能优化模块对训练过程中的误差损失函数进行优化;
具体过程为:
首先,根据0.8和0.9两个分界点分别设置三个不同的训练阶段:0—0.8,0.8—0.9和0.9—1,并使得不同阶段的学习率依次下降10倍;
然后,对误差损失函数进行优化的过程为:
采用IOU或GIOU作为损失的计量方式,并加入缩放系数k,计算公式如下:
Loss=k×Localization loss+Confidence loss+Classification loss
Localization loss为边界框损失误差函数;Confidence loss为置信度损失函数;Classification loss为目标的类别损失函数;
步骤八、利用训练好的目标识别网络模型,对实时采集的图像进行目标识别。
2.如权利要求1所述的一种适用于嵌入式设备的改进目标实时识别网络结构的方法,其特征在于,步骤二中所述的深度可分离卷积模块是将标准卷积分解为深度卷积和点卷积;
深度卷积为输入的每个通道都提供不同的卷积核滤波器,继而输出与输入通道数目相匹配的输出权重矩阵;
点卷积让输出的权重矩阵和一个1×1的卷积核做普通卷积运算,从而得到最终的输出值。
3.如权利要求1所述的一种适用于嵌入式设备的改进目标实时识别网络结构的方法,其特征在于,所述步骤四中裁剪比例的设定为:基于不同的通道裁剪率对识别率的影响图像,找到识别率和通道裁剪率曲线的拐点作为最终的裁剪比例阈值;
根据影响因子γ的真实值,选出低于设定阈值的各影响因子,将对应的网络通道进行修剪和微调,实现通道级别的模型剪枝,并去掉其对应输入和输出的权重参数。
4.如权利要求1所述的一种适用于嵌入式设备的改进目标实时识别网络结构的方法,其特征在于,所述步骤六中加入SE模块的原则是:在浅层卷积网络即第一、二层卷积层前面加入SE注意力机制模块,让浅层神经网络自动识别出不同特征信息通道对结果的影响程度,并有选择性对产生重要影响的通道进行增强或对影响较小的通道进行抑制处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077925.8A CN112163628A (zh) | 2020-10-10 | 2020-10-10 | 一种适用于嵌入式设备的改进目标实时识别网络结构的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011077925.8A CN112163628A (zh) | 2020-10-10 | 2020-10-10 | 一种适用于嵌入式设备的改进目标实时识别网络结构的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112163628A true CN112163628A (zh) | 2021-01-01 |
Family
ID=73867974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011077925.8A Pending CN112163628A (zh) | 2020-10-10 | 2020-10-10 | 一种适用于嵌入式设备的改进目标实时识别网络结构的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112163628A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699841A (zh) * | 2021-01-13 | 2021-04-23 | 华南理工大学 | 一种基于行车视频的交通标志检测识别方法 |
CN113111889A (zh) * | 2021-03-10 | 2021-07-13 | 国网浙江省电力有限公司宁波供电公司 | 用于边缘计算端的目标检测网络处理方法 |
CN113160062A (zh) * | 2021-05-25 | 2021-07-23 | 烟台艾睿光电科技有限公司 | 一种红外图像目标检测方法、装置、设备及存储介质 |
CN113177527A (zh) * | 2021-05-27 | 2021-07-27 | 安阳工学院 | 一种车型识别方法及装置 |
CN113420651A (zh) * | 2021-06-22 | 2021-09-21 | 四川九洲电器集团有限责任公司 | 深度卷积神经网络的轻量化方法、系统及目标检测方法 |
CN113537377A (zh) * | 2021-07-28 | 2021-10-22 | 杭州海康威视数字技术股份有限公司 | 网络模型裁剪方法、装置、电子设备及可读存储介质 |
CN113723377A (zh) * | 2021-11-02 | 2021-11-30 | 南京信息工程大学 | 一种基于ld-ssd网络的交通标志检测方法 |
CN114332070A (zh) * | 2022-01-05 | 2022-04-12 | 北京理工大学 | 一种基于智能学习网络模型压缩的陨坑检测方法 |
CN114707532A (zh) * | 2022-01-11 | 2022-07-05 | 中铁隧道局集团有限公司 | 一种基于改进的Cascade R-CNN的探地雷达隧道病害目标检测方法 |
CN114882346A (zh) * | 2021-01-22 | 2022-08-09 | 中国科学院沈阳自动化研究所 | 一种基于视觉的水下机器人目标自主识别方法 |
CN114898152A (zh) * | 2022-05-13 | 2022-08-12 | 电子科技大学 | 嵌入式弹性自扩展通用学习框架 |
WO2022179492A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 一种卷积神经网络的剪枝处理方法、数据处理方法及设备 |
CN115376022A (zh) * | 2022-06-30 | 2022-11-22 | 广东工业大学 | 基于神经网络的小目标检测算法在无人机航拍中的应用 |
CN116579409A (zh) * | 2023-07-11 | 2023-08-11 | 菲特(天津)检测技术有限公司 | 基于重参数化的智能相机模型剪枝加速方法及加速系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110197257A (zh) * | 2019-05-28 | 2019-09-03 | 浙江大学 | 一种基于增量正则化的神经网络结构化稀疏方法 |
CN110263675A (zh) * | 2019-06-03 | 2019-09-20 | 武汉联一合立技术有限公司 | 一种社区安保机器人的垃圾目标识别系统及其识别方法 |
CN111325342A (zh) * | 2020-02-19 | 2020-06-23 | 深圳中兴网信科技有限公司 | 模型的压缩方法、装置、目标检测设备和存储介质 |
CN111461291A (zh) * | 2020-03-13 | 2020-07-28 | 西安科技大学 | 基于YOLOv3剪枝网络和深度学习去雾模型的长输管线巡检方法 |
CN111476116A (zh) * | 2020-03-24 | 2020-07-31 | 南京新一代人工智能研究院有限公司 | 一种用于车辆检测跟踪的旋翼无人机系统及检测跟踪方法 |
CN111612143A (zh) * | 2020-05-22 | 2020-09-01 | 中国科学院自动化研究所 | 深度卷积神经网络的压缩方法及系统 |
-
2020
- 2020-10-10 CN CN202011077925.8A patent/CN112163628A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110197257A (zh) * | 2019-05-28 | 2019-09-03 | 浙江大学 | 一种基于增量正则化的神经网络结构化稀疏方法 |
CN110263675A (zh) * | 2019-06-03 | 2019-09-20 | 武汉联一合立技术有限公司 | 一种社区安保机器人的垃圾目标识别系统及其识别方法 |
CN111325342A (zh) * | 2020-02-19 | 2020-06-23 | 深圳中兴网信科技有限公司 | 模型的压缩方法、装置、目标检测设备和存储介质 |
CN111461291A (zh) * | 2020-03-13 | 2020-07-28 | 西安科技大学 | 基于YOLOv3剪枝网络和深度学习去雾模型的长输管线巡检方法 |
CN111476116A (zh) * | 2020-03-24 | 2020-07-31 | 南京新一代人工智能研究院有限公司 | 一种用于车辆检测跟踪的旋翼无人机系统及检测跟踪方法 |
CN111612143A (zh) * | 2020-05-22 | 2020-09-01 | 中国科学院自动化研究所 | 深度卷积神经网络的压缩方法及系统 |
Non-Patent Citations (3)
Title |
---|
王杰杰: "卷积神经网络加速与优化方法的研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
邵伟平等: "基于MobileNet 与YOLOv3 的轻量化卷积神经网络设计", 《计算机应用》 * |
陈豪: "基于深度学习的信号识别模型轻量化方法研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112699841A (zh) * | 2021-01-13 | 2021-04-23 | 华南理工大学 | 一种基于行车视频的交通标志检测识别方法 |
CN114882346A (zh) * | 2021-01-22 | 2022-08-09 | 中国科学院沈阳自动化研究所 | 一种基于视觉的水下机器人目标自主识别方法 |
WO2022179492A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 一种卷积神经网络的剪枝处理方法、数据处理方法及设备 |
CN113111889A (zh) * | 2021-03-10 | 2021-07-13 | 国网浙江省电力有限公司宁波供电公司 | 用于边缘计算端的目标检测网络处理方法 |
CN113160062A (zh) * | 2021-05-25 | 2021-07-23 | 烟台艾睿光电科技有限公司 | 一种红外图像目标检测方法、装置、设备及存储介质 |
CN113177527A (zh) * | 2021-05-27 | 2021-07-27 | 安阳工学院 | 一种车型识别方法及装置 |
CN113420651A (zh) * | 2021-06-22 | 2021-09-21 | 四川九洲电器集团有限责任公司 | 深度卷积神经网络的轻量化方法、系统及目标检测方法 |
CN113537377B (zh) * | 2021-07-28 | 2024-01-23 | 杭州海康威视数字技术股份有限公司 | 网络模型裁剪方法、装置、电子设备及可读存储介质 |
CN113537377A (zh) * | 2021-07-28 | 2021-10-22 | 杭州海康威视数字技术股份有限公司 | 网络模型裁剪方法、装置、电子设备及可读存储介质 |
CN113723377A (zh) * | 2021-11-02 | 2021-11-30 | 南京信息工程大学 | 一种基于ld-ssd网络的交通标志检测方法 |
CN114332070A (zh) * | 2022-01-05 | 2022-04-12 | 北京理工大学 | 一种基于智能学习网络模型压缩的陨坑检测方法 |
CN114332070B (zh) * | 2022-01-05 | 2024-05-28 | 北京理工大学 | 一种基于智能学习网络模型压缩的陨坑检测方法 |
CN114707532A (zh) * | 2022-01-11 | 2022-07-05 | 中铁隧道局集团有限公司 | 一种基于改进的Cascade R-CNN的探地雷达隧道病害目标检测方法 |
CN114898152B (zh) * | 2022-05-13 | 2023-05-30 | 电子科技大学 | 嵌入式弹性自扩展通用学习系统 |
CN114898152A (zh) * | 2022-05-13 | 2022-08-12 | 电子科技大学 | 嵌入式弹性自扩展通用学习框架 |
CN115376022A (zh) * | 2022-06-30 | 2022-11-22 | 广东工业大学 | 基于神经网络的小目标检测算法在无人机航拍中的应用 |
CN115376022B (zh) * | 2022-06-30 | 2024-04-05 | 广东工业大学 | 基于神经网络的小目标检测算法在无人机航拍中的应用 |
CN116579409A (zh) * | 2023-07-11 | 2023-08-11 | 菲特(天津)检测技术有限公司 | 基于重参数化的智能相机模型剪枝加速方法及加速系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112163628A (zh) | 一种适用于嵌入式设备的改进目标实时识别网络结构的方法 | |
CN109859190B (zh) | 一种基于深度学习的目标区域检测方法 | |
CN113392960B (zh) | 一种基于混合空洞卷积金字塔的目标检测网络及方法 | |
CN107145889B (zh) | 基于具有RoI池化的双CNN网络的目标识别方法 | |
CN113128355A (zh) | 一种基于通道剪枝的无人机图像实时目标检测方法 | |
CN113420651A (zh) | 深度卷积神经网络的轻量化方法、系统及目标检测方法 | |
CN114841244B (zh) | 一种基于鲁棒采样和混合注意力金字塔的目标检测方法 | |
CN113420794B (zh) | 一种基于深度学习的二值化Faster R-CNN柑橘病虫害识别方法 | |
CN113034506B (zh) | 遥感图像语义分割方法、装置、计算机设备和存储介质 | |
CN112419333B (zh) | 一种遥感影像自适应特征选择分割方法及系统 | |
CN113837308A (zh) | 基于知识蒸馏的模型训练方法、装置、电子设备 | |
CN112991362B (zh) | 一种基于混合高斯模型的色选机粘连物料图像分割方法 | |
CN117557775B (zh) | 基于红外和可见光融合的变电站电力设备检测方法及系统 | |
CN111680739A (zh) | 一种目标检测和语义分割的多任务并行方法及系统 | |
CN112288084B (zh) | 基于特征图通道重要性的深度学习目标检测网络压缩方法 | |
CN115272776B (zh) | 基于双路卷积与双注意的高光谱图像分类方法及存储介质 | |
CN116385958A (zh) | 一种用于电网巡检和监控的边缘智能检测方法 | |
CN115393690A (zh) | 一种轻量化神经网络的空对地观测多目标识别方法 | |
CN112528904A (zh) | 一种用于砂石颗粒物粒径检测系统的图像分割方法 | |
CN117649526A (zh) | 一种面向自动驾驶道路场景的高精度语义分割方法 | |
CN116306813A (zh) | 一种基于yolox轻量化及网络优化的方法 | |
CN114882011A (zh) | 一种基于改进Scaled-YOLOv4模型的织物瑕疵检测方法 | |
CN112967296B (zh) | 一种点云动态区域图卷积方法、分类方法及分割方法 | |
CN112132207A (zh) | 基于多分支特征映射目标检测神经网络构建方法 | |
Zhang et al. | Point clouds classification of large scenes based on blueprint separation convolutional neural network |
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 |