一种应用于手机端的深度学习图像识别系统及实现方法与流程

文档序号:12468918阅读:468来源:国知局
一种应用于手机端的深度学习图像识别系统及实现方法与流程

本发明涉及手机端图像识别技术,特别涉及一种应用于手机端的深度学习图像识别系统及实现方法。



背景技术:

图像识别综合了很多学科内容,其中包括计算机科学与技术、物理学、统计学以及神经生物学等,广泛应用于地质勘探、图像遥感、机器人视觉、生物医学等多个领域。图像识别技术在个人计算机以及嵌入式终端设备上也已有很多成熟的应用案例,而随着手机功能的不断增强,该技术也逐渐被应用到智能手机但智能手机本身的弱处理能力和低内存的局限性对计算复杂的识别算法提出了考验。

目前智能手机发展非常迅速,基本上都集成高速处理芯片、大容量存储器、内置了百万像素的摄像头和WI-FI无线局域网接口卡,甚至一些高端的设备中还集成了大量传感器如GPS定位传感器和加速度传感器等这些性能不断提高的硬件设备,给计算机视觉和图像处理领域带来了新的发展空间,许多原来运行在PC上的计算机视觉算法,通过改进和优化,能有效的运行的智能终端的平台上。但是,相对于现在配备高速处理芯片和大容量存储芯片的服务器,智能手机还存在以下不足:较低的图像分辨率、缺少专门的图形加速器、没有浮点运算单元、尤其是低端处理器和低容量存储器等,限制了在智能手机上进行复杂运算和大规模计算

具体而言,现有的手机端图像识别技术中具有较多实现方式,比如,手机端单层次的类别图像识别,但缺点在于:类别数不够丰富,也没有表现类别之间的联系。比如,用于分类的卷积神经网络算法模型Inception-v3结构(相较于前一版本v3一个最重要的改进是分解(Factorization),将7x7分解成两个一维的卷积(1x7,7x1),3x3也是一样(1x3,3x1),这样的好处,既可以加速计算(多余的计算能力可以用来加深网络),又可以将1个conv拆成2个conv,使得网络深度进一步增加,增加了网络的非线性,还有值得注意的地方是网络输入从224x224变为了299x299,更加精细设计了35x35/17x17/8x8的模块。),但缺点在于:在原始结构内有两处直接一个Pooling层降维,容易造成一定的信息损失。比如,模型参数稀疏化,但缺点在于:直接用一个简单的阈值去减参数,导致模型准确率有一定的损失。又比如,模型参数量化,但缺点在于:K-means聚类易受参数数量大小而影响效果,鲁棒性不够;改变量化中心的方式计算量大,训练速度慢。再比如,模型参数稀疏存储,但缺点在于:对所有卷积层使用同样的比特位大小,存储效率不高。

综上,现如今的手机端图像识别系统大多采用深度学习训练得到的深度模型进行识别,但是如何有效率的展示图像识别的结果、如何更加准确的识别图像、同时还能在不影响模型识别准确率的情况下压缩模型,减少模型存储和计算量以适用于手机端,是有待解决的问题。



技术实现要素:

本发明要解决的技术问题是,提供基于概念类别映射的树状图像识别、并在算法上对原始Inception-v3模型结构做改进,同时提供了一种在不影响改进模型准确率情况下有效压缩模型的方法,保证模型在手机端有效稳定运行的深度学习图像识别系统。

解决上述技术问题,本发明提供了一种应用于手机端的深度学习图像识别方法,包括如下步骤:

根据概念划分映射得到一树状类别映射关系;

基于原始的Inception-v3网络结构,在网络中的降维处各增加一并联分支作为网络下一层的输入得到改进的Inception-v3网络结构;

按照所述改进的Inception-v3网络结构并在设定类上根据所述树状类别映射关系训练得到基模型;

对所述基模型进行压缩后在手机端运行识别出图像;

所述压缩至少包括:参数稀疏化、参数量化或者参数稀疏存储中的一种。

更进一步,所述降维处具体是指:

对于原始的Inception-v3网络结构,维度变化在147*147->73*73和71*71->35*35的两处降维的地方增加并联分支;

其中,所述并联分支是指,一卷积核为3*3,步长为2的卷积层,通过所述卷积层的输出和原始的Inception-v3网络结构中的Max Pooling层的输出做通道维度的拼接。

更进一步,方法还包括:在多处相邻串联的Inception模块之间加入跨模块直连分支。

更进一步,根据概念划分映射得到一树状类别映射关系的方法具体为:

首先,定义2000类细化关键词,用以训练深度卷积神经网络即在网络的最后一个Soft max层输出2000类概念;

其次,定义10类基本类为粗概念,定义60类基本细化类为细概念;

然后,按照类别概念完成以下映射关系:

10类粗概念涵盖60类细概念,

60类细概念涵盖2000类细化关键词。

更进一步,所述参数稀疏化具体为:

设定一与稀疏比呈正比的第一阈值,若小于该阈值的神经元之间的连接则会被剪断,

若大于该阈值的神经元的连接则会被保留,得到初步稀疏模型;

设定第二阈值,并按照同样的操作得到一个稀疏比大于初步稀疏模型的第二稀疏模型;

……

设定第三阈值,并按照同样的操作得到一个稀疏比大于第二稀疏模型的第三稀疏模型。

更进一步,设定上述稀疏比变化为30%->50%->70%。

更进一步,所述参数量化具体为:

将权重矩阵聚类为4个类别,其中属于同一类的权重共享同一个权重值大小,并存储权重值的index索引;

在原始的Inception-v3网络结构,对每个卷积层和全连接层分别按照压缩比计算公式设定个量化中心,其中n表示参数个数,每个参数用b bits表示,k为量化后的中心数。

更进一步,方法进一步还包括:

在量化训练时采用固定类别中心不变,并将每次前馈索引离权重最近的类别中心做为该权重值,

和/或,根据稀疏模型有效参数的分布范围,线性等间隔的选取类别中心;

和/或,后馈时不进行额外计算,即固定类别中心更新权重值的index。

更进一步,所述参数稀疏存储具体为:

对于权重值的index,存储与上一个有效权重值的相对位置,不存储绝对位置的index。

基于上述本发明还提供了一种应用于手机端的深度学习图像识别系统,包括:映射关系单元、结构改进单元以及模型单元,

所述映射关系单元,用以根据概念划分映射得到一树状类别映射关系;

所述结构改进单元,用以基于原始的Inception-v3网络结构,在网络中的降维处各增加一并联分支作为网络下一层的输入得到改进的Inception-v3网络结构;

所述模型单元,用以按照所述改进的Inception-v3网络结构并在设定类上根据所述树状类别映射关系训练得到基模型;

以及,对所述基模型进行压缩后在手机端运行识别出图像;所述压缩至少包括:参数稀疏化、参数量化或者参数稀疏存储中的一种。

本发明的有益效果:

本发明首先是在识别2000类概念的基础上,通过类别概念映射关系得到基本类型10类和基本细化类型60类概念,形成一个树状的图像识别系统。同时,在算法上,本发明改进了原始的Inception-v3结构,通过在降维的地方加入并联分支结和Inception模块之间加入直连分支,提升了信息传递的有效性和识别准确率。然后对于改进后的模型结构,通过稀疏参数、量化参数和稀疏存储,再次训练得到一个稀疏模型,保证在准确率不损失的前提下,大大压缩和减少原始模型的计算量,保证在手机端稳定运行。

此外,本发明中树状概念的类别识别更合理,建立了类别之间联系。还改进了原始网络结构,相比于原始Inception-v3结构直接用max pooling降维信息损失较大。还改进了模型稀疏化策略,逐步加大阈值比直接设定单个阈值的准确率损失更小。另外,改进了模型量化策略,固定中心更新权重index计算量小,训练速度快,改进了模型稀疏存储,不同维度下的卷积层采用不同的比特大小存储相对位置,提高压缩效率。

附图说明

图1是本发明实现方法流程示意图;

图2是本发明的系统结构示意图;

图3是树状的类别映射关系示意图;

图4(a)、图4(b)是分别在Inception-v3网络结构中加入一条并联分支示意图;

图5是加入跨模块直连分支的示意图;

图6是参数稀疏化的示意图;

图7是参数量化示意图;

图8是采用稀疏存储示意图。

具体实施方式

现在将参考一些示例实施例描述本公开的原理。可以理解,这些实施例仅出于说明并且帮助本领域的技术人员理解和实施例本公开的目的而描述,而非建议对本公开的范围的任何限制。在此描述的本公开的内容可以以下文描述的方式之外的各种方式实施。

如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。

本申请中的对应名词解释如下:

Activation relu:修正线性单元激活函数层

Convolution:卷积层

BatchNorm:批归一化层

Pooling max:最大值池化层

Concat:合并层

Inception:多分支并联模块模块,为网络中重复用到的一种通用模块。

图1是本发明实现方法流程示意图,具体步骤为:一种应用于手机端的深度学习图像识别方法,包括如下步骤:

步骤S100根据概念划分映射得到一树状类别映射关系;树状概念的类别识别更合理,建立了类别之间联系。

步骤S101基于原始的Inception-v3网络结构,在网络中的降维处各增加一并联分支作为网络下一层的输入得到改进的Inception-v3网络结构;相比于原始Inception-v3结构直接用max pooling降维信息损失较大。

步骤S102按照所述改进的Inception-v3网络结构并在设定类上根据所述树状类别映射关系训练得到基模型;

步骤S103对所述基模型进行压缩后在手机端运行识别出图像,所述压缩至少包括:参数稀疏化、参数量化或者参数稀疏存储中的一种。

另外,上述步骤S103中改进了模型量化策略,固定中心更新权重index计算量小,训练速度快,改进了模型稀疏存储,不同维度下的卷积层采用不同的比特大小存储相对位置,提高压缩效率。

作为本实施例中的优选,在所述步骤S101中,所述降维处具体是指:

对于原始的Inception-v3网络结构,维度变化在147*147->73*73和71*71->35*35的两处降维的地方增加并联分支;

其中,所述并联分支是指,一卷积核为3*3,步长为2的卷积层,通过所述卷积层的输出和原始的Inception-v3网络结构中的Max Pooling层的输出做通道维度的拼接。

作为本实施例中的优选,所述步骤S101中还包括:在多处相邻串联的Inception模块之间加入跨模块直连分支。

作为本实施例中的优选,所述步骤S100中根据概念划分映射得到一树状类别映射关系的方法具体为:

首先,定义2000类细化关键词,用以训练深度卷积神经网络即在网络的最后一个Soft max层输出2000类概念;

其次,定义10类基本类为粗概念,定义60类基本细化类为细概念;

然后,按照类别概念完成以下映射关系:

10类粗概念涵盖60类细概念,

60类细概念涵盖2000类细化关键词。

作为本实施例中的优选,在所述步骤S103中所述参数稀疏化具体为:

设定一与稀疏比呈正比的第一阈值,若小于该阈值的神经元之间的连接则会被剪断,

若大于该阈值的神经元的连接则会被保留,得到初步稀疏模型;

设定第二阈值,并按照同样的操作得到一个稀疏比大于初步稀疏模型的第二稀疏模型;

……

设定第三阈值,并按照同样的操作得到一个稀疏比大于第二稀疏模型的第三稀疏模型。

优选地,设定上述稀疏比变化为30%->50%->70%。

作为本实施例中的优选,在所述步骤S103中所述参数量化具体为:

将权重矩阵聚类为4个类别,其中属于同一类的权重共享同一个权重值大小,并存储权重值的index索引;

在原始的Inception-v3网络结构,对每个卷积层和全连接层分别按照压缩比计算公式设定个量化中心,其中n表示参数个数,每个参数用b bits表示,k为量化后的中心数。

上述步骤中进一步还包括:

在量化训练时采用固定类别中心不变,并将每次前馈索引离权重最近的类别中心做为该权重值,

和/或,根据稀疏模型有效参数的分布范围,线性等间隔的选取类别中心;

和/或,后馈时不进行额外计算,即固定类别中心更新权重值的index。

作为本实施例中的优选,在所述步骤S103中所述参数稀疏存储具体为:

对于权重值的index,存储与上一个有效权重值的相对位置,不存储绝对位置的index。

在本实施例中,首先是在识别2000类概念的基础上,通过类别概念映射关系得到基本类型10类和基本细化类型60类概念,形成一个树状的图像识别系统。同时,在算法上,本发明改进了原始的Inception-v3结构,通过在降维的地方加入并联分支结和Inception模块之间加入直连分支,提升了信息传递的有效性和识别准确率。然后对于改进后的模型结构,通过稀疏参数、量化参数和稀疏存储,再次训练得到一个稀疏模型,保证在准确率不损失的前提下,大大压缩和减少原始模型的计算量,保证在手机端稳定运行。

图2是本发明的系统结构示意图,一种应用于手机端的深度学习图像识别系统,包括:映射关系单元1、结构改进单元2以及模型单元3,

所述映射关系单元1,用以根据概念划分映射得到一树状类别映射关系;

所述结构改进单元2,用以基于原始的Inception-v3网络结构,在网络中的降维处各增加一并联分支作为网络下一层的输入得到改进的Inception-v3网络结构;

所述模型单元3,用以按照所述改进的Inception-v3网络结构并在设定类上根据所述树状类别映射关系训练得到基模型;

以及,对所述基模型进行压缩后在手机端运行识别出图像;所述压缩至少包括:参数稀疏化、参数量化或者参数稀疏存储中的一种。

采用上述系统,有效率的展示图像识别的结果、更加准确的识别图像、同时还能在不影响模型识别准确率的情况下压缩模型,减少模型存储和计算量以适用于手机端。

具体地,本发明的原理如下:

可以理解,在本申请中定义了如下概念:

所述的训练包括但不限于,用一定的数据对网络进行学习。

所述的卷积神经网络包括但不限于,一种深度学习算法。

所述的降维包括但不限于,把高维度的特征转化为低维度的特征。

所述的Inception-v3包括但不限于,一种经典的用于分类的深度卷积神经网络结构。

所述的稀疏比包括但不限于,模型稀疏操作后剪去的参数量占总参数量的比例。

所述的维度包括但不限于,指特征的长宽维度,例如35*35。

如图3所示,首先,定义了2000类细化关键词,概念覆盖广,用于训练深度卷积神经网络,即网络的最后一个Softmax层输出2000类概念,保证模型具有一定的复杂度和很好的表达能力。同时定义10类基本类为粗概念,定义了60类基本细化类为细概念。按类别概念映射关系,10类粗概念涵盖60类细概念,60类细概念涵盖2000类细化关键词,形成一种树状的类别映射关系。

令2000类类别空间为χ,χ={x1,x2,x3...,x2000},令60类类别空间为γ,γ={y1,y2,y3...,y60},令10类类别空间为φ,φ={φ1,φ2,φ3,...,φ10},因此对于60类中任何一类存在与2000类的映射关系集合Θ={(Xi,yi)|Xi=(xi1,xi2,...,xim),1≤m≤60},yi的概率为对于10类同理。

通过上述映射的方式,即每一个粗类包括至少一个细类,将包含的所有细类的概率值取和,作为该粗类最后的概率值。例如2000类细类里的贵宾犬,属于60类里的狗和10类里的动物,那么在最终狗类的概率值会算上贵宾犬的概率,动物类的概率值会算上狗类的概率。

同时,定义的类别涵盖生活各种场景物体,具有一定的覆盖面和普适性。

10类:人物/食物/动物/风景/室内/运动/交通/文件/服饰/电器

60类:老人/小孩/妇女/男人/群像;蛋糕/面条/饺子/虾/西瓜/香蕉/葡萄/苹果;天空/日落/夜景/湖泊/森林/沙滩/瀑布/山/烟花/草地/花/塔/街巷/大厦;身份证/文档/银行卡;猫/狗/鱼/狮子/大象/斑马/豹子/长颈鹿;商场/家居;跑步/足球/篮球/羽毛球/滑雪;汽车/火车/飞机/船/自行车/公交车;手表/包/鞋子/裤子/眼镜/帽子;电视/相机/冰箱。

然后,如图4(a)、图4(b)所示,对于原始的Inception-v3网络结构,本发明中发现维度变化在147*147->73*73和71*71->35*35两处降维的地方直接用了一个Max Pooling层做降维操作,这样会导致信息在这两处产生了过多的损失,所以本发明在这两处各加入了一条并联分支,即一个卷积核为3*3,步长为2的卷积层,并将该卷积层的输出和Max Pooling层的输出做通道维度的拼接,作为网络下一层的输入,增加了网络的表达能力。

同时,如图5所示,为了后馈梯度更好的被传递和网络更好的被训练,本发明在多处相邻Inception模块串联之间加入跨模块直连分支,有效的提升了网络的表达能力,模型参数也不会有所增加。考虑到分类算法模型应用到手机设备中,由于手机系统资源有限,模型会面临计算量大和吃内存的问题,尤其对于Inception-v3的大网络结构,需要通过压缩模型算法,减少网络的复杂度。

进一步,按照上述对Inception-v3结构的改进方法,在2000类上训练得到一个有较高准确率的模型,称之为基模型。对该基模型压缩分为三部分,参数稀疏化、参数量化和参数稀疏存储。

如图6所示,对于参数稀疏化,稀疏比越大,阈值设定就越大。本发明中先设定一个较小的阈值,小于该阈值的神经元之间的连接会被剪断,大于该阈值的连接会被保留,这时模型权重参数矩阵将变成稀疏矩阵,通过训练只去学习被保留的权重参数,得到一个初步稀疏的稀疏模型,这时模型的稀疏比较小。再设定一个更大一些的阈值,同样的操作得到一个稀疏比更大一些的模型。本发明中设定稀疏比变化为30%->50%->70%,通过这种逐步加大阈值加大稀疏比逐步压缩训练的方式,重要参数具有一定过渡性的被学习,比原有的只设定一次阈值进行稀疏化的方式要更为合理,保证了稀疏后的模型在识别准确率上较基模型不会出现较多的损失,有效的减少了网络参数。

如图7所示,对于参数量化,假设有一个卷积层,有4个输入神经元,4个输出神经元,那它的权重值就是一个4*4的矩阵,最左边为权重矩阵,最下边为梯度矩阵,可以看到,权重矩阵被聚类成立4个类别,属于同一类的权重共享同一个权重值大小,这样本发明中只需要存储权重值的index。例如对于图中4个量化类别中心,原来每个权重需要32bits,现在只需要2个bits存储类别index,直接压缩了16倍。在Inception-v3结构中,本发明中对每个卷积层和全连接层,分别设定256个量化中心,每个权重只需要用8bits即一个字节表示,大大减少了模型的参数存储。因此得到压缩比计算公式其中n表示参数个数,每个参数用b bits表示,k为量化后的中心数。

由上可知,本发明中根据稀疏模型有效参数的分布范围,线性等间隔的选取类别中心,简洁有效,而传统的K-means聚类易受数据数量大小而影响聚类效果,鲁棒性不够。在量化训练时本发明中采用固定类别中心不变,每次前馈索引离权重最近的类别中心做为该权重值,后馈时无需额外计算。这样的量化方式即固定类别中心更新权重值index,比固定权重值index更新类别中心要减少计算量,训练速度也更快。

如图8所示,为了进一步减少模型存储的开销,本发明中采用稀疏存储的方式,其中,Index表示索引,Diff表示索引差值,Value表示权重值。对于权重值的index,不再存储绝对位置的index,而是存储跟上一个有效权重值的相对位置,这样index可以用3bits(1~8)甚至更少的比特位来存储。当相对位置超出3bits所能表示的范围时,则在最后一位补0,防止溢出,具体见附图6。考虑到Inception-v3网络较深,不同维度下的卷积层稀疏比不同,即网络前部分卷积层参数较重要稀疏比也比较小,后部分卷积层尤其全连接层稀疏比较大。本发明中对维度35*35之前的卷积层采用8bits(表示范围1~256)来存储权重的相对位置,对维度35*35到全连接层之间的卷积层采用5bits(表示范围1~32)存储相对位置,对最后一层全连接层采用3bits(表示范围1~8)存储,有效的提升稀疏存储的效率。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

总体而言,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或其任意组合实施。一些方面可以以硬件实施,而其它一些方面可以以固件或软件实施,该固件或软件可以由控制器、微处理器或其它计算设备执行。虽然本公开的各种方面被示出和描述为框图、流程图或使用其它一些绘图表示,但是可以理解本文描述的框、设备、系统、技术或方法可以以非限制性的方式以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或其一些组合实施。

此外,虽然操作以特定顺序描述,但是这不应被理解为要求这类操作以所示的顺序执行或是以顺序序列执行,或是要求所有所示的操作被执行以实现期望结果。在一些情形下,多任务或并行处理可以是有利的。类似地,虽然若干具体实现方式的细节在上面的讨论中被包含,但是这些不应被解释为对本公开的范围的任何限制,而是特征的描述仅是针对具体实施例。在分离的一些实施例中描述的某些特征也可以在单个实施例中组合地执行。相反对,在单个实施例中描述的各种特征也可以在多个实施例中分离地实施或是以任何合适的子组合的方式实施。

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