一种图像识别方法、终端设备及存储介质与流程

文档序号:20688920发布日期:2020-05-08 19:07阅读:307来源:国知局
一种图像识别方法、终端设备及存储介质与流程

本发明涉及图像识别领域,尤其涉及一种图像识别方法、终端设备及存储介质。



背景技术:

目前,图像分类、人脸识别等图像分类识别中,通常采用神经网络模型进行识别。然而,随着人工智能技术的不断发展,神经网络模型的部署也需要逐渐完成从大型pc机到端侧的转移,但由于端侧计算资源有限,又同时要保证神经网络模型的大小和精度几乎不受影响,由此,各种神经网络模型的压缩技术越来越受关注。为了实现神经网络的压缩与加速,技术人员提出了诸如剪枝、量化、低秩分解等方案。

最开始的剪枝方法按层权重绝对值大小剪枝,可以剪去激活较小的不重要的权重。通道剪枝则可以解决加速的问题,现有的通道剪枝方法主要有:(1)根据整体通道权值大小,整体权重较大的保留,而权重较小的剪除,典型的代表方法为pfec(lih,kadava,durdanovici,etal.pruningfiltersforefficientconvnets[j].2016);(2)用一个最能代表整个层权重的通道卷积核来近似,然后计算其他通道到这个通道的欧式距离,依次剪去距离该卷积核较小的通道,典型的代表方法为fpgm(hey,liup,wangz,etal.filterpruningviageometricmedianfordeepconvolutionalneuralnetworksacceleration[j].2018)。

以上两种通道剪枝方法虽然起到了一定的剪枝效果,但其剪枝效率不太高,而且会较大地影响神经网络的精度。



技术实现要素:

为了解决上述问题,本发明提出了一种图像识别方法、终端设备及存储介质。

具体方案如下:

一种图像识别方法,包括以下步骤:

s1:采集图像并对其进行标记后组成训练集;

s2:通过训练集对神经网络模型进行训练,并对训练后的神经网络模型进行剪枝,所述对神经网络模型进行剪枝的过程包括以下步骤:

s21:输入神经网络模型中每层卷积层的所有卷积核,设定每层卷积层的最大簇间距,初始化设定层数i=n,n表示卷积层的总层数;

s22:判断i<1是否成立,如果是,进入s26;否则,进入s23;

s23:将第i层卷积层的所有通道进行聚类合并为m个簇,使得合并后的任意两个簇之间的簇间距小于该层对应的最大簇间距;

s24:根据合并后的m个簇,生成第i层卷积层的m个通道,使得每个通道仅保留一个卷积核;

s25:令i=i-1,返回s22;

s26:输出每层卷积层的所有卷积核;

s3:通过剪枝后的神经网络模型对待识别图像进行识别后输出。

进一步的,步骤s23中聚类合并的方法包括以下步骤:

s231:初始化设定每个通道的卷积核作为一个簇;

s232:迭代计算任意两个簇之间的簇间距,当簇间距小于最大簇间距时,将该簇间距对应的两个簇合并为一个簇。

进一步的,簇间距的计算方法为根据两个簇中的卷积核之间的距离计算两个簇之间的最小距离、最大距离或平均距离中的一种。

进一步的,卷积核之间的距离的计算方法为:将卷积核转换为行向量,通过计算两个行向量之间的距离得到两个卷积核之间的距离。

一种图像识别终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。

本发明采用如上技术方案,结合层次聚类算法筛选出距离较近的卷积核,实现精准剪除彼此相似的卷积核,相比于现有的剪枝方式,不仅提高了通道剪枝的效率,而且可以确保不会对原网络模型的精度造成太大的影响,为神经网络模型压缩提供了新的解决方法,提高了图像识别的效率,为人工智能的落地部署提供了新的解决方案。

附图说明

图1所示为本发明实施例一的流程图。

具体实施方式

为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。

现结合附图和具体实施方式对本发明进一步说明。

实施例一:

本发明实施例提供了一种图像识别方法,包括以下步骤:

s1:采集图像并对其进行标记后组成训练集。

s2:通过训练集对神经网络模型进行训练,并对训练后的神经网络模型进行剪枝。

该实施例中采用的为卷积神经网络模型,在其他实施例中也可以采用其他类型的神经网络模型,在此不做限制。

神经网络模型的训练过程与现有训练方式相同,在此不再展开说明。

如图1所示,对神经网络模型进行剪枝的过程包括以下步骤:

s21:输入神经网络模型中每层卷积层的所有卷积核,设定每层卷积层的最大簇间距,初始化设定层数i=n,n表示卷积层的总层数。

所述最大簇间距决定了剪枝效率,本领域技术人员可以根据剪枝的比率来经验性地设定最大簇间距。当需要较为有效的剪枝效率时,可以选择较大的最大簇间距离,但此时需要考虑模型精度的影响,重训练的迭代次数也较高;而较小的最大簇间距离,则对模型精度影响较小,重训练的迭代次数也较少,甚至不用重训练。而对于剪枝率较高的情况,可以适度选择模型蒸馏进行精度修正,其中的教师网络为原网络模型或更大更精确的网络模型。不同卷积层的最大簇间距可以相同,也可以不同,在此不做限制。

s22:判断i<1是否成立,如果是,进入s26;否则,进入s23。

s23:设定第i层卷积层包括m个通道,将第i层卷积层的所有通道进行聚类合并为m个簇,其中m≤m,且任意两个簇之间的簇间距小于设定的该层对应的最大簇间距。

簇的聚类合并具体包括以下步骤:

s231:初始化设定每个通道的卷积核作为一个簇。

s232:迭代计算任意两个簇之间的簇间距,当簇间距小于该层对应的最大簇间距时,将该簇间距对应的两个簇合并为一个簇。

所述簇间距的计算方法为根据两个簇中的卷积核之间的距离计算两个簇之间的最小距离、最大距离或平均距离中的一种,具体可以根据实景的应用场景进行选择,其中:

最小距离:

最大距离:

平均距离:

其中,ci,cj分别表示两个簇,x,z分别表示簇中的样本,该实施例中为卷积核。

由于卷积核为矩阵形式,为了方便计算两个卷积核之间的距离,该实施例中优选将卷积核转换为行向量形式,通过计算两个行向量之间的距离得到两个卷积核之间的距离。

s24:根据合并后的m个簇,生成第i层卷积层的m个通道,使得每个通道仅保留一个卷积核。

每个簇中可以任意选择一个卷积核进行保留,其余卷积核删除。

s25:令i=i-1,返回s22。

s26:输出每层卷积层的所有卷积核。

s3:通过剪枝后的神经网络模型对待识别图像进行识别后输出。

本发明实施例采用的聚类合并算法在现有的层次聚类算法上进行了改进,由于最终聚合的簇的数量是难以确定的,因此,通过两个簇之间的最大距离作为迭代终止条件,相对于现有的将簇的数量作为迭代终止条件可以更好的提高聚类的准确性。

本发明实施例结合层次聚类算法筛选出距离较近的卷积核,实现精准剪除彼此相似的卷积核,相比于现有的剪枝方式,不仅提高了通道剪枝的效率,而且可以确保不会对原网络模型的精度造成太大的影响,为神经网络模型压缩提供了新的解决方法,提高了图像识别的效率,为人工智能的落地部署提供了新的解决方案。

实施例二:

本发明还提供一种图像识别终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。

进一步地,作为一个可执行方案,所述图像识别终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述图像识别终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述图像识别终端设备的组成结构仅仅是图像识别终端设备的示例,并不构成对图像识别终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述图像识别终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。

进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述图像识别终端设备的控制中心,利用各种接口和线路连接整个图像识别终端设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述图像识别终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。

所述图像识别终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)以及软件分发介质等。

尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

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