一种基于移动终端的图像分类方法及系统与流程

文档序号:16883187发布日期:2019-02-15 22:23阅读:654来源:国知局
一种基于移动终端的图像分类方法及系统与流程

本发明属于图像处理与模式识别领域,具体涉及一种基于移动终端的图像分类方法及系统。



背景技术:

随着互联网技术的迅速发展,智能手机中高像素拍照功能的实现以及移动通讯网络的普遍覆盖,使得大量的图像信息涌入我们的生活。因此,如何在智能手机等移动终端上将海量的图像数据中区分为不同的类别是迫切需要解决的技术难题。

近年来深度神经网络从众多机器学习方法中脱颖而出,使图像分类的性能取得显著的突破,从而引起了广泛的关注。为了得到更好的特征,提升神经网络的性能,往往会构建很深的多层网络结构。这导致了深度神经网络具有数以百万计的参数量,需要消耗大量的计算和存储资源。而这给深度神经网络应用到智能手机等移动终端带来了巨大的困难。

为了将深度神经网络部署到智能手机等嵌入式设备上,目前常用的方法是对深度模型进行压缩,在保证分类性能的同时尽可能减少深度模型所需要的存储空间。目前,该领域已展开诸多研究,但依旧存在压缩网络训练难以收敛、分类精度低以及在移动终端运算效率低等问题。



技术实现要素:

针对现有技术存在的问题和改进需求,本发明提出了一种基于移动终端的图像分类方法及系统,将深度神经网络模型中的权重量化为2的指数,能有效提高嵌入式系统的移位操作运算。不同于现有的采用静态量化编码的方法,本发明提出的方法在模型训练过程中同时对量化码本进行动态更新,能有效减小量化误差,提升模型的预测性能及在移动状态上的运算效率。

一种基于移动终端的图像分类方法,包括离线训练阶段和在线分类阶段:

所述离线训练阶段具体为:

s1制定码本:

采用深度神经网络模型,获取深度神经网络模型的每层中权重绝对值最大值,并将其量化为底数为2的指数形式,从而得到码本的量化上限;在量化上限限定下,确定当前模型量化的码本;

s2量化权重:

对深度神经网络模型中的权重进行指数量化,将权重量化为最接近码本的值;

s3网络模型重训练:

输入样本图像,对量化的深度神经网络模型进行训练,在训练的前向过程中得到深度网络的交叉熵损失,在反向过程中根据交叉熵损失更新网络中的权重参数。

s4迭代与终止:

迭代执行步骤s2和s3,直到深度神经网络模型收敛或者达到设置的训练次数,则终止迭代,得到最终分类器;

所述在线分类阶段具体为:将待分类图像送入分类器,得到分类结果。

进一步地,所述码本的量化上限表示为:其由n2=floor(log2(max(|wl|))),floor(·)为向下取整操作,wl为深度神经网络的第l层权重,max()表示求最大值,||表示取绝对值。

进一步地,当量化为b比特时,所述码本表示为:pl={±2n},n∈[n1,n2],n∈z,其中l代表是深度神经网络的第l层,n1和n2是两个整数,满足n1<n2,n1=n2-2b-1+1,z表示正整数。

进一步地,当量化为b比特时,所述码本表示为:

pl={±2n,0},n∈[n1,n2],n∈z,其中l代表是深度神经网络的第l层,n1和n2是两个整数,满足n1<n2,n1=n2-2b-2+1,z表示正整数。

进一步地,对深度神经网络各层量化如下:

其中,为量化后的权重,2k为权重w的绝对值|w|的量化值;

指示函数w∈wl。

进一步地,对深度神经网络各层量化如下:

其中,为量化后的权重,2k为权重w的绝对值|w|的量化值;指示函数w∈wl。

进一步地,在训练的前向过程中得到深度网络的交叉熵损失,所述交叉熵损失表示为:

其中,是网络损失,是正则项,采用l2范数正则项,λ是正则项的系数,是模型压缩后的网络权值,是总损失函数。

进一步地,在反向过程中根据交叉熵损失更新网络中的权重参数:

其中,是第k次迭代时网络的权值,γ是学习率,是损失函数对网络权值的梯度。

一种基于移动终端的图像分类系统,包括离线训练模块和在线分类模块:

所述离线训练阶段用于:

s1制定码本:

采用深度神经网络模型,获取深度神经网络模型的每层中权重绝对值最大值,并将其量化为底数为2的指数形式,从而得到码本的量化上限;在量化上限限定下,确定当前模型量化的码本;

s2量化权重:

对深度神经网络模型中的权重进行指数量化,将权重量化为最接近码本的值;

s3网络模型重训练:

输入样本图像,对量化的深度神经网络模型进行训练,在训练的前向过程中得到深度网络的交叉熵损失,在反向过程中根据交叉熵损失更新网络中的权重参数。

s4迭代与终止:

迭代执行步骤s2和s3,当深度神经网络模型收敛或者达到设置的训练次数,则终止迭代,得到最终分类器;

所述在线分类阶段用于:将待分类图像送入分类器,得到分类结果。

与现有技术相比,本发明的优点和效果在于:

1.本发明提出采用动态更新码本自适应网络中的绝对值较大的权值参数,尽可能减小这些参数的量化对模型精度的影响;

2.本发明提出交替迭代算法用于模型训练,使得权值参数和码本交替更新,让训练过程的收敛速度更快。

附图说明

图1为本发明基于移动终端的图像分类方法的实现流程图;

图2为网络权值的量化规则

图3为本发明基于移动终端的图像分类模块图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

附图1为本发明基于移动终端的图像分类方法的实现流程图。本发明方法包括离线训练和在线分类两个阶段:

离线训练阶段具体为:

s1制定码本:对随机初始化或者预训练的深度神经网络模型,获取每层中权重绝对值最大值,从而确定码本的量化上限,根据量化的位数,得到当前模型量化的码本。

在步骤s1中,获取初始未量化深度神经网络模型每层中权重绝对值最大值,并将其量化为底数为2的指数形式,具体量化表现为:其中n2=floor(log2(max(|wl|))),floor(·)为向下取整操作,wl为深度神经网络的第l层权重,||表示取绝对值。通过对深度神经网络每层权重绝对值最大值量化,得到码本的上限。

在步骤s1中,当量化为b比特时,码本可以表示为:pl={±2n},n∈[n1,n2],n∈z,其中l代表是深度神经网络的第l层,n1和n2是两个整数,满足n1<n2,z表示正整数。由于n1和n2之间有n2-n1+1个整数,且码本中正负整数的个数是相等的,因此码本中总的取值有2*(n2-n1+1)=2b个,即有n1=n2-2b-1+1,从而确定了码本pl。

在步骤s1中,制定的码本中也可引入0作为量化值,码本可以表示为pl={±2n,0},n∈[n1,n2],n∈z。由于0不能表示2的n(n为整数)次幂,需要额外的一个比特来表示0这个量化值,此时n1=n2-2b-2+1,其他处理不变。

s2量化权重:根据步骤s1制定的码本对深度神经网络模型中的权重进行量化,将权重量化为码本中最相近的值。

在步骤s2中,对权重进行量化,将深度神经网络中的权重量化为离码本中最近的值,具体量化规则如图2所示,对深度神经网络各层量化如下:

其中,为量化后的权重,2k为权重w的绝对值|w|的量化值;w∈wl为指示函数,用于区分网络中的正负权值。

在步骤s2中,在码本中引入0作为量化值,码本下限进行截断取0值即可,对应的量化方式如下:

s3网络模型重训练:对步骤s2量化的深度神经网络进行重训练。输入有类别标签的训练图像,在训练的前向过程中得到深度网络的交叉熵损失,在反向过程中根据交叉熵损失更新网络中的权重参数。

在步骤s3中,是在步骤s2上将深度神经网络中的权重量化完成后,对深度神经网络重训练,分为两个过程:前向传播和反向传播。在前向传播过程中,输入训练数据,在深度神经网络得到网络的交叉熵损失,其定义如下:

其中,是网络的损失,是l2范数正则项,本发明采用l2正则项,λ是正则项的系数,是模型压缩后的网络权值,是总损失函数。在反向传播过程中,网络的残差由后一层逐层向前传递,网络的权重根据残差计算的梯度进行更新,更新方式如下:

其中,是更新后的权重,γ是学习率,是损失函数对网络权值的梯度。对于量化模型来说,指示函数i(w)进行求导会导致得到的梯度为0,无法更新参数。在反向求导的过程中,可以这样处理模型中的权重可处理为:

因此在实际反向传播过程时,权重更新的方式为:

s4迭代与终止:步骤s3对权值的更新会破坏原有的量化,因此迭代执行步骤s2和步骤s3,当深度神经网络模型收敛或者达到设置的训练次数,则终止迭代,得到最终量化压缩模型。

s5图像目标分类:将未分类的图像送入步骤s4得到的量化压缩模型进行预测,根据预测结果对图像进行分类。

本发明基于移动终端的图像分类方法,将深度神经网络模型中的权重量化为2的指数,能有效提高嵌入式系统的移位操作运算。不同于现有的采用静态量化编码的方法,本发明提出的方法在模型训练过程中同时对量化码本进行动态更新,能有效减小量化误差,提升模型的预测性能及在移动状态上的运算效率。

实例:

本实例为提出基于移动终端的图像分类装置,包括三个模块:图像读取模块,图像分类模块以及图像整理模块,如图3所示。

本实例在标准数据集cifar-10上进行了测试。cifar-10是一个图像分类数据集,包括10个类别,分别为:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。所有的图像都是大小为32×32的三通道彩色图像,包含60000张图片,其中训练集为50000,验证集为10000。本实例在实验中所采用的深度神经网络是残差网络resnet。具体的步骤如下:

1.图像读取

逐一读取测试数据,并将尺寸规整为32*32.

2.图像分类

对读取的图像用动态量化的压缩深度神经网络进行预测。

所述压缩深度神经网络的训练过程为:对训练数据进行增强预处理,即在原32*32的图像边界上填补0扩充为36*36的图像,再随机的裁剪为32*32的图像,然后随机左右翻转;对模型进行动态量化编码,直至模型收敛,在训练过程中,都迭代了80000轮,每轮送进网络一个批次的数据是128,初始的学习率为0.1,当训练达到40000次学习率为0.01,达到60000次之后学习率为0.001,训练中使用l2正则项,其系数设置为0.001。

图像分类的预测结果如表1所示,分别比较了在码本中引入0和不引入0两种情况。

表1不同深度的resnet在不同位宽下,码本中引入0和不引入0对量化的影响。预训练的32位宽模型在resnet-20、resnet-32、resnet-44和resnet-56下的在验证集上的准确率依次为0.9212、0.9246、0.9332和0.9323,表中第五列和第七列表示的是量化后模型在验证集上的准确率减去预训练32位宽模型的准确率。

表1

从表1可以看到,本发明提出的方法能有效将深度神经网络模型进行压缩到很高的倍数,模型均能保证较高的性能,甚至将原始模型压缩到10.67倍时,模型的性能也只有较小的下降。

3.图像整理

根据预测结果将图片整理到相应类别的文件夹内。

本发明对深度神经网络的压缩效果明显,可以减小大型深度神经网络模型在存储资源和计算资源上的消耗,促进了深度神经网络在智能手机等资源受限移动终端上的部署,具有极强的现实应用。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1