掌桥专利:专业的专利平台
掌桥专利
首页

面向移动端图像分类的轻量级卷积神经网络的设计方法

文献发布时间:2023-06-19 11:42:32


面向移动端图像分类的轻量级卷积神经网络的设计方法

技术领域

本发明涉及深度学习和图像处理技术领域,特别是一种面向移动端图像分类的轻量级卷积神经网络的设计方法。

背景技术

深度学习在计算机视觉领域(图像处理、目标检测和视频分析等)中展现出了巨大潜力,随着工业、安防、交通、互联网等领域对嵌入式系统和移动终端设备应用需求的迅速增加,面向实时图像分类任务的卷积神经网络模型面临新的技术挑战。由于大部分卷积神经网络模型需运行于PC机或服务器之上,往往涉及巨大的计算量和参数量,如此大规模的网络模型无法部署到资源受限的移动终端设备上。因此,针对移动端应用中的实时图像分类问题,研究一种通用、高效的轻量级卷积神经网络结构设计和模型压缩方法具有广泛应用前景和重要工程价值。

发明内容

发明目的:移动终端设备在执行实时图像分类任务时,受限于硬件资源和应用场景,往往难以部署规模较大的卷积神经网络模型。本发明对现有的轻量级卷积神经网络模型进行针对性改进,在保证模型性能的前提下大幅度减小其运算和存储成本,使得模型易于部署到移动端设备上。由于卷积神经网络模型的计算成本很大程度上取决于输入图像大小,当输入尺寸降至一半时,模型可以节省75%计算量。因此,本发明设计了一款面向移动终端图像分类的轻量级卷积神经网络,主要包括MainNet和AuxiliaryNet两部分,AuxiliaryNet用来提取输入图像的特征信息,MainNet用来提取经过下采样后的输入图像特征信息,将这两部分输出特征进行信息拼接;针对MainNet、AuxiliaryNet采取不同剪枝策略,在保证模型分类性能前提下减小了模型计算量和参数量;根据剪枝效果对网络结构进行重构,平衡了模型分类性能和计算复杂度,进一步减小了模型计算量和参数量。

技术方案:为实现上述目的,本发明提出一种面向移动端图像分类的轻量级卷积神经网络的设计方法,包括以下步骤:

步骤1:采用深度可分离卷积作为网络的主要结构,设计轻量级卷积神经网络;所设计的轻量级卷积神经网络主要由3~4个module构成,当原始输入图像分辨率小于224*224时,使用3个module,当原始输入图像分辨率大于等于224*224时,使用4个module;每一个module由MainNet和AuxiliaryNet两部分组成;MainNet为所设计轻量级网络的主体,其输出特征图通道数等于输入特征图通道数;AuxiliaryNet是MainNet的补充网络,用来获取下采样前的特征图信息,使用系数α控制输出特征图通道数,α默认初始值为1;两个网络输出的通过分支融合相拼接并送入下一个module中,输出特征的通道数由系数β进行控制;若MainNet和AuxiliaryNet的输出通道数分别为a和b,则分支融合后的通道数c=β*(a+b),β默认初始值为1;

步骤2:在训练集下对步骤1中的网络进行训练,训练迭代次数为160次;训练完成后,在测试集上进行测试,记录模型的准确率和计算量;

步骤3:将训练好的网络进行通道剪枝;通道剪枝属于结构剪枝,其通过剪除网络中不重要的通道以实现模型的简化;在剪枝过程中,裁剪阈值由在Loss函数中所添加的BN层γ因子确定;

使用占总和比值法以及k均值法分别确定MainNet和AuxiliaryNet网络中的裁剪阈值;对于MainNet,采用占总和比值的方式确定裁剪阈值;设共有f个由小到大排列的因子γ

步骤4:根据步骤3的裁剪情况对模型进行重构;设裁剪率p和q分别反映了MainNet和AuxiliaryNet中各卷积层的裁剪情况,其中,n为MainNet中重复的次数,X为各层被裁剪的通道数,Y为各层的总通道数,MainNet中的总通道数为进行扩张之后的通道数;

q=X/Y

裁剪率高的层重要性较低,将减小通道数;裁剪率低的层重要性较高,将增大通道数;根据裁剪率p和q将通道控制系数α和β重新赋值为α′和β′,实现模型重构;α控制AuxiliaryNet的通道数,每个module中的α根据该module中AuxiliaryNet的裁剪率q进行调整;β控制分支融合后的输出通道数,第一个module中的β根据第二个module中MainNet的裁剪率p进行调整,第二个module中的β根据第三个module中MainNet的裁剪率p进行调整,以此类推,最后一个module中β的值不进行调整;α和β重新赋值为α′和β′:

步骤5:将重构后的网络模型在训练集上进行训练,训练迭代次数为160次;训练完成后,按照步骤3中所述方法进行剪枝,将剪枝后的模型在测试集上进行测试,记录模型的准确率和计算量;

步骤6:以步骤2所得到的模型准确率和计算量为基准,判断步骤5所得到的网络模型是否在保持准确率(准确率降低少于1%)的情况下降低了计算量;若准确率保持且计算量下降,则重复进行步骤4和5;若准确率降低超过1%或计算量不再下降,则将此时的模型输出为最终模型。

可选地,所述步骤1中的MainNet,具体为:MainNet为所设计轻量级网络的主体,用来处理经过下采样后的特征图信息;若输入图像的分辨率为K*K,则下采样后图像的分辨率为(K/2)*(K/2);MainNet的基本模块为bottleneck,bottleneck在module中的重复次数为n;bottleneck包含如下操作:(1)进行pointwise卷积扩张通道,输入通道数为C

进一步地,所述扩张系数t,在训练过程中,输入网络的特征图分辨率会逐渐降低,t也随之递减;当module数为3时,每个module中t的值分别为6、4、2;当module数为4时,每个module中t的值分别为6、4、2、1。

可选地,所述重复次数n,当module为3时,每个module中n的值分别为3、4、1;当module为4时,每个module中n的值分别为2、3、2、1。

可选地,所述步骤1中的AuxiliaryNet,具体为:AuxiliaryNet是MainNet的补充网络,用来获取下采样前的特征图信息;首先,AuxiliaryNet通过pointwise卷积来控制输入图像的通道数;与MainNet不同,此处pointwise卷积旨在减少输入通道数,由系数α来控制通道数量的缩减程度,α默认初始值为1;当输入特征图通道数为C

本发明所采用的技术方案具有的优点和有益效果是:

本发明提出了面向移动端图像分类的轻量级卷积神经网络的设计方法。通过对网络结构进行轻量化设计,在不牺牲分类性能前提下大大缩减了网络规模,有效降低了存储成本和计算量;采用针对性剪枝策略,根据裁剪情况对轻量级卷积神经网络进行重构,调整网络每层的通道数,以便平衡分类精度和模型复杂度;对模型进行多次重构并将重构后的模型训练、剪枝,得到性能优秀的最终模型。本发明最终得到的网络模型分类性能好,参数量、计算量远小于主流网络,能够适应硬件资源受限的移动终端设备的部署要求。

附图说明

图1为本发明步骤流程图;

图2为分支融合的结构示意图;

图3为所设计MainNet的结构示意图;

图4为所设计AuxiliaryNet的结构示意图;

具体实施方式

本实施例涉及一种面向移动端图像分类的轻量级卷积神经网络的设计方法,具体流程参见图1,包括以下6个步骤:

步骤1:采用深度可分离卷积作为网络的主要结构,设计轻量级卷积神经网络;所设计的轻量级卷积神经网络主要由3~4个module构成,当原始输入图像分辨率小于224*224时,使用3个module,当原始输入图像分辨率大于等于224*224时,使用4个module;每一个module由MainNet和AuxiliaryNet两部分组成;MainNet为所设计轻量级网络的主体,其输出特征图通道数等于输入特征图通道数;AuxiliaryNet是MainNet的补充网络,用来获取下采样前的特征图信息,使用系数α控制输出特征图通道数,α默认初始值为1;两个网络输出的通过分支融合相拼接并送入下一个module中,参见图2,输出特征的通道数由系数β进行控制;若MainNet和AuxiliaryNet的输出通道数分别为a和b,则分支融合后的通道数c=β*(a+b),β默认初始值为1。

所述步骤1中的MainNet参见图3,具体为:MainNet为所设计轻量级网络的主体,用来处理经过下采样后的特征图信息;若输入图像的分辨率为K*K,则下采样后图像的分辨率为(K/2)*(K/2);MainNet的基本模块为bottleneck,bottleneck在module中的重复次数为n;bottleneck包含如下操作:(1)进行pointwise卷积扩张通道,输入通道数为C

所述扩张系数t,在训练过程中,输入网络的特征图分辨率会逐渐降低,t也随之递减;当module数为3时,每个module中t的值分别为6、4、2;当module数为4时,每个module中t的值分别为6、4、2、1。

所述重复次数n,当module为3时,每个module中n的值分别为3、4、1;当module为4时,每个module中n的值分别为2、3、2、1。

所述步骤1中的AuxiliaryNet参见图4,具体为:AuxiliaryNet是MainNet的补充网络,用来获取下采样前的特征图信息;首先,AuxiliaryNet通过pointwise卷积来控制输入图像的通道数;与MainNet不同,此处pointwise卷积旨在减少输入通道数,由系数α来控制通道数量的缩减程度,α默认初始值为1;当输入特征图通道数为C

在本实例中,输入图像尺寸为32*32*3,采用3个module,网络结构如表1所示。

表1本发明所设计的轻量级卷积神经网络结构

步骤2:在训练集下对步骤1中的网络进行训练,训练迭代次数为160次;训练期间,在Loss函数中加入BN层的γ因子并施加L1正则约束,进而联合训练W和γ,Loss函数如下:

Loss函数第一项是网络的损失函数,采用交叉熵函数,其中x为训练输入的数据,y为标签,W为网络权重。第二项是BN层γ因子的L1正则约束项。其中,γ是BN层的缩放因子,每层通道都有相对应的γ,重要性越低的通道γ值越小;λ是一个超参数,取值为0.0001,用于均衡一、二两项;约束函数g()施加于BN层的γ因子,g(γ)=|γ|。

训练完成后,在测试集上进行测试,记录模型的准确率和计算量;

步骤3:将训练好的网络进行通道剪枝;通道剪枝属于结构剪枝,其通过剪除网络中不重要的通道以实现模型的简化;在剪枝过程中,裁剪阈值由在Loss函数中所添加的BN层γ因子确定;

使用占总和比值法以及k均值法分别确定MainNet和AuxiliaryNet网络中的裁剪阈值;对于MainNet,采用占总和比值的方式确定裁剪阈值;设共有f个由小到大排列的因子γ

步骤4:根据步骤3的裁剪情况对模型进行重构;设裁剪率p和q分别反映了MainNet和AuxiliaryNet中各卷积层的裁剪情况,其中,n为MainNet中重复的次数,X为各层被裁剪的通道数,Y为各层的总通道数,MainNet中的总通道数为进行扩张之后的通道数;

q=X/Y

裁剪率高的层重要性较低,将减小通道数;裁剪率低的层重要性较高,将增大通道数;根据裁剪率p和q将通道控制系数α和β重新赋值为α′和β′,实现模型重构;α控制AuxiliaryNet的通道数,每个module中的α根据该module中AuxiliaryNet的裁剪率q进行调整;β控制分支融合后的输出通道数,第一个module中的β根据第二个module中MainNet的裁剪率p进行调整,第二个module中的β根据第三个module中MainNet的裁剪率p进行调整,以此类推,最后一个module中β的值不进行调整;α和β重新赋值为α′和β′:

步骤5:将重构后的网络模型在训练集上进行训练,训练迭代次数为160次;训练完成后,按照步骤3中所述方法进行剪枝,将剪枝后的模型在测试集上进行测试,记录模型的准确率和计算量;

步骤6:以步骤2所得到的模型准确率和计算量为基准,判断步骤5所得到的网络模型是否在保持准确率(准确率降低少于1%)的情况下降低了计算量;若准确率保持且计算量下降,则重复进行步骤4和5;若准确率降低超过1%或计算量不再下降,则将此时的模型输出为最终模型。

为了验证本发明模型的有效性,实验选取了SqueezeNet、MobileNet V1/V2、ShuffleNet V1/V2这些经典轻量级卷积神经网络模型作比较。在CIFAR100数据集、PyTorch深度学习框架下采取相同的实验环境完成实验。Cifar100数据集总共包含100个类,每个类包含600个图像(500个训练图像和100个测试图像),图像尺寸为32*32*3。实验采用随机梯度下降法作为训练算法,动量设置为0.9,权重衰减设置为0.0001。初始学习率设置为0.2,采用余弦衰减来降低学习率,训练迭代次数设置为160,批大小为128,损失函数为交叉熵函数。实验结果如表2所示:

表2本发明模型与其他模型对比实验结果(Params和Flops不包括全连接层)

实验结果表明:本发明所设计模型的图像分类准确率优于其它轻量级网络,且大幅度降低了网络参数量和计算复杂度。本发明所设计的最终网络模型,具有0.22M的小参数量和13.15M的低FLOPs,在CIFAR100数据集上达到了70.82%的分类精度。

上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而做出的变化,均应属于本发明的保护范围之内。

相关技术
  • 面向移动端图像分类的轻量级卷积神经网络的设计方法
  • 一种面向物联网移动端设备的轻量级人体姿态识别方法
技术分类

06120113022345