CN111178258B - 一种图像识别的方法、系统、设备及可读存储介质 - Google Patents

一种图像识别的方法、系统、设备及可读存储介质 Download PDF

Info

Publication number
CN111178258B
CN111178258B CN201911386454.6A CN201911386454A CN111178258B CN 111178258 B CN111178258 B CN 111178258B CN 201911386454 A CN201911386454 A CN 201911386454A CN 111178258 B CN111178258 B CN 111178258B
Authority
CN
China
Prior art keywords
neural network
activation value
network model
convolutional neural
layer
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.)
Active
Application number
CN201911386454.6A
Other languages
English (en)
Other versions
CN111178258A (zh
Inventor
沈付旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201911386454.6A priority Critical patent/CN111178258B/zh
Publication of CN111178258A publication Critical patent/CN111178258A/zh
Application granted granted Critical
Publication of CN111178258B publication Critical patent/CN111178258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本申请公开了一种图像识别的方法,包括:对卷积神经网络模型每一层的权值和激活值进行线性量化处理;根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络;利用量化推理网络对待识别图集进行图像识别。本申请通过分别对卷积神经网络模型每一层的权值和激活值进行线性量化处理,然后根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络,使得图像识别过程中神经网络的推理速度得到提高,并且大幅度的降低了卷积神经网络模型的大小,节省了设备的存储空间,降低了设备运行时的能耗。本申请同时还提供了一种图像识别的系统、设备及可读存储介质,具有上述有益效果。

Description

一种图像识别的方法、系统、设备及可读存储介质
技术领域
本申请涉及图像识别领域,特别涉及一种图像识别的方法、系统、设备及可读存储介质。
背景技术
当今深度学习等人工智能算法和技术快速且不断地涌现出来,当这些技术真正地能为我们地生活服务的时候,人工智能技术才能充分发挥它的价值所在。基于深度学习的人工智能在图像识别任务上得到了突破性地进展,但这些进展仍然是建立在昂贵的深度学习设备(主要以GPU集群为主)以及巨大的能耗费用的基础上得到的。
然而,由于图像识别任务的深度学习主要是建立在深度卷积神经网络的基础上进行的,这种需要庞大计算资源的数学结构在FPGA、手机等移动或者边缘设备上的部署又成了问题。而计算资源受限的设备无法成功部署且快速运行基于深度卷积神经网络的深度学习算法,导致图像识别的速度较低。
因此,如何提高图像识别的速度是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种图像识别的方法、系统、设备及可读存储介质,用于提高图像识别的速度。
为解决上述技术问题,本申请提供一种图像识别的方法,该方法包括:
获取激活值文件、待识别图集和卷积神经网络模型;
对所述卷积神经网络模型每一层的权值进行线性量化处理;
根据所述激活值文件确定激活值量化系数,并对所述卷积神经网络模型每一层的激活值进行线性量化处理;
根据线性量化处理后的所述卷积神经网络模型结合加速算法生成量化推理网络;
利用所述量化推理网络对所述待识别图集进行图像识别。
可选的,所述获取激活值文件、待识别图集和卷积神经网络模型,包括:
获取训练图集,并利用预设推理引擎对所述训练图集中的每张图片进行推理,得到对应的推理结果;
依次从每个所述推理结果中选取每个位置的最大推理值,并将每个位置的最大推理值保存为当前层的激活值;
将每个层对应的激活值保存为所述激活值文件。
可选的,所述获取激活值文件、待识别图集和卷积神经网络模型,包括:
从模型库中调用卷积神经网络模型文件,生成所述卷积神经网络模型。
可选的,在根据线性量化处理后的所述卷积神经网络模型结合加速算法生成量化推理网络之前,还包括:
接收输入的加速算法修改命令;
根据所述加速算法修改命令获取对应的配置文件,并根据所述配置文件确定新加速算法;
将所述加速算法替换为所述新加速算法。
本申请还提供一种图像识别的系统,该系统包括:
获取模块,用于获取激活值文件、待识别图集和卷积神经网络模型;
第一量化模块,用于对所述卷积神经网络模型每一层的权值进行线性量化处理;
第二量化模块,用于根据所述激活值文件确定激活值量化系数,并对所述卷积神经网络模型每一层的激活值进行线性量化处理;
生成模块,用于根据线性量化处理后的所述卷积神经网络模型结合加速算法生成量化推理网络;
图像识别模块,用于利用所述量化推理网络对所述待识别图集进行图像识别。
可选的,所述获取模块包括:
推理子模块,用于获取训练图集,并利用预设推理引擎对所述训练图集中的每张图片进行推理,得到对应的推理结果;
选取子模块,用于依次从每个所述推理结果中选取每个位置的最大推理值,并将每个位置的最大推理值保存为当前层的激活值;
保存子模块,用于将每个层对应的激活值保存为所述激活值文件。
可选的,所述获取模块包括:
调用子模块,用于从模型库中调用卷积神经网络模型文件,生成所述卷积神经网络模型。
可选的,还包括:
接收模块,用于接收输入的加速算法修改命令;
获取模块,用于根据所述加速算法修改命令获取对应的配置文件,并根据所述配置文件确定新加速算法;
替换模块,用于将所述加速算法替换为所述新加速算法。
本申请还提供一种图像识别设备,该图像识别设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述图像识别的方法的步骤。
本申请还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述图像识别的方法的步骤。
本申请所提供图像识别的方法,包括:获取激活值文件、待识别图集和卷积神经网络模型;对卷积神经网络模型每一层的权值进行线性量化处理;根据激活值文件确定激活值量化系数,并对卷积神经网络模型每一层的激活值进行线性量化处理;根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络;利用量化推理网络对待识别图集进行图像识别。
本申请所提供的技术方案,通过分别对卷积神经网络模型每一层的权值和激活值进行线性量化处理,然后根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络,最后利用量化推理网络对待识别图集进行图像识别,使得图像识别过程中神经网络的推理速度得到提高,并且大幅度的降低了卷积神经网络模型的大小,节省了设备的存储空间,降低了设备运行时的能耗。本申请同时还提供了一种图像识别的系统、设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种图像识别的方法的流程图;
图2为本申请实施例所提供的另一种图像识别的方法的流程图;
图3为本申请实施例所提供的一种图像识别的系统的结构图;
图4为本申请实施例所提供的另一种图像识别的系统的结构图;
图5为本申请实施例所提供的一种图像识别设备的结构图。
具体实施方式
本申请的核心是提供一种图像识别的方法、系统、设备及可读存储介质,用于提高图像识别的速度。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种图像识别的方法的流程图。
其具体包括如下步骤:
S101:获取激活值文件、待识别图集和卷积神经网络模型;
基于现有技术中,图像识别任务的深度学习主要是建立在深度卷积神经网络的基础上进行的,这种需要庞大计算资源的数学结构在FPGA、手机等移动或者边缘设备上的部署又成了问题。而计算资源受限的设备无法成功部署且快速运行基于深度卷积神经网络的深度学习算法,导致图像识别的速度较低;故本申请提供了一种图像识别的方法,踊跃解决上述问题;
可选的,这里提到的获取激活值文件、待识别图集和卷积神经网络模型,其具体可以为接收用户输入的激活值文件、待识别图集和卷积神经网络模型;
优选的,为了提高激活值文件的获取精度,同时避免激活值超过阈值范围,因此可以将激活值文件的各位置的元素值替换为最大值,即这里提到的获取激活值文件、待识别图集和卷积神经网络模型,其具体也可以为:
获取训练图集,并利用预设推理引擎对训练图集中的每张图片进行推理,得到对应的推理结果;
依次从每个推理结果中选取每个位置的最大推理值,并将每个位置的最大推理值保存为当前层的激活值;
将每个层对应的激活值保存为激活值文件。
优选的,该卷积神经网络模型的获取方式也可以为从模型库中调用卷积神经网络模型文件,生成卷积神经网络模型。
S102:对卷积神经网络模型每一层的权值进行线性量化处理;
这里提到的线性量化处理即为根据线性量化的基本方法,对于每层的权值,得到该层权值绝对值的最大值filter|max|,令该最大值为有符号INT8的最大值127,即引入缩放因子α,使得filter|max|·α=127,该层权值的其他元素同比例进行线性缩放即:filterquan=filter·α,其中filterquan为量化之后的权值,至此完成对权值的量化;
本申请在对权值的量化过程中不需要复杂的量化算法,根据基本的线性对称量化方法来完成,方便用户的理解与重现,且系统会自动从数据集中随机挑选量化所需的图片,不需要额外的量化标定数据集,极大的节省了设备的存储空间。
S103:根据激活值文件确定激活值量化系数,并对卷积神经网络模型每一层的激活值进行线性量化处理;
例如,可以根据激活值文件对激活值进行INT8量化得到每层激活值量化系数β,则相应层的激活值可以表示为actquan=act·β,其中,act为原始激活值大小,actquan为量化激活值大小。
S104:根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络;
可选的,这里提到的加速算法具体可以为Winograd快速卷积算法,本申请实现了Winograd快速卷积算法与卷积量化的方案结合,并实现了从F(2,3)到F(5x5,3x3)的所有Winograd的卷积量化,Winograd快速卷积算法本身即可起到卷积神经网络计算加速的作用,提高计算效率。再加入相应的量化之后,不仅可以极大地提高神经网络的推理速度,亦能大幅降低模型大小,节省了设备的存储空间,降低了设备运行时的能耗;
这里提到的,根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络,可以通过执行如下步骤实现:
针对不同的深度卷积网络模型,自动生成相应的结合2D Winograd的量化推理网络;
具体的,在卷积计算的过程中,卷积可以表示为:
acttop=∑actbottom*filter
其中,actbottom为上层激活值,acttop为本层激活值,filter为卷积计算中的权值,则卷积计算可表示为:
Figure BDA0002343759820000061
其中,acttop_quan和actbottom_quan分别为本层和上层的INT8量化整数激活值,βtop和βbottom分别为本层和上层激活值的量化系数,由此可得本层INT8量化激活值可表示为:
Figure BDA0002343759820000062
其中,∑actbottom_quan*filterquan括号内的部分即为卷积计算的主要部分,即需将该部分计算引入Winograd算法来实现量化的Winograd卷积加速;具体的,可以设上层的激活值actbottom_quan为卷积计算的输入INT8INPUT,filterquan为卷积计算的INT8权值,设为INT8KERNEL;然后对权值进行变换得到INT16大小的权值即:
g(INT8KERNEL)gT=INT16KERNEL
对输入进行变换得到INT16大小的输入即:
BT(INT8INPUT)B=INT16INPUT
之后进行点乘和最终的变换得到INT32大小的输出即:
INT32OUPUT=AT(INT16KNERNEL)⊙(INT16INPUT)A
最后再引入量化系数得到INT8的输出即:
Figure BDA0002343759820000071
另外,对于高阶Winograd比如F(5x5,3x3)的量化中,权值和激活值变换g(INT8KERNEL)gT、BT(INT8INPUT)B可能会超过INT16的大小范围,本申请还可以自动判断变换过程中的数值是否会产生过阈,假设变换的权值过阈则根据变换之后的绝对值最大值KERNEL|max|进行缩放,即令:
Figure BDA0002343759820000073
这里括号内INT15是考虑到有符号的INT16最大值的绝对值不会超过无符号INT15的最大值,则INT16KERNEL可表示为:
Figure BDA0002343759820000074
同样的激活值可表示为如果不过阈,则变换的权值和激活值保持不变,γ,δ值为1,最终卷积计算的INT8输出可表示为:
Figure BDA0002343759820000072
至此可完成不同的2D Winograd与量化结合的卷积计算。
可选的,还可以利用生成的2D Winograd量化神经网络再进行相应数据集的精度测试,比如ImageNet上进行推理验证数据集,如果该精度与FP32的推理测试精度相比损失在1%以内,则输出量化系数完成结合2D Winograd的量化。如果不满足要求,则程序自动对量化系数进行微调直到精度满足要求为止。
S105:利用量化推理网络对待识别图集进行图像识别。
基于上述技术方案,本申请所提供的一种图像识别的方法,通过分别对卷积神经网络模型每一层的权值和激活值进行线性量化处理,然后根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络,最后利用量化推理网络对待识别图集进行图像识别,使得图像识别过程中神经网络的推理速度得到提高,并且大幅度的降低了卷积神经网络模型的大小,节省了设备的存储空间,降低了设备运行时的能耗。
针对于上一实施例,在执行步骤S104之前,还可以执行如图2所示的步骤,下面结合图2进行说明。
请参考图2,图2为本申请实施例所提供的另一种图像识别的方法的流程图。
其具体包括以下步骤:
S201:接收输入的加速算法修改命令;
S202:根据加速算法修改命令获取对应的配置文件,并根据配置文件确定新加速算法;
S203:将加速算法替换为新加速算法。
基于上述技术方案,当接收输入的加速算法修改命令时,本申请可根据加速算法修改命令获取对应的配置文件,并根据配置文件确定新加速算法,最后将加速算法替换为新加速算法,即本申请可根据用户的需求配置自动调用相应的Winograd快速卷积算法,且通过基于python的深度学习框架PyTorch进行实现,用户只需提供模型文件和简单的配置需求即可完成不同网络的Winograd量化,方便且高效。
请参考图3,图3为本申请实施例所提供的一种图像识别的系统的结构图。
该系统可以包括:
获取模块100,用于获取激活值文件、待识别图集和卷积神经网络模型;
第一量化模块200,用于对卷积神经网络模型每一层的权值进行线性量化处理;
第二量化模块300,用于根据激活值文件确定激活值量化系数,并对卷积神经网络模型每一层的激活值进行线性量化处理;
生成模块400,用于根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络;
图像识别模块500,用于利用量化推理网络对待识别图集进行图像识别。
请参考图4,图4为本申请实施例所提供的另一种图像识别的系统的结构图。
该获取模块100可以包括:
推理子模块,用于获取训练图集,并利用预设推理引擎对训练图集中的每张图片进行推理,得到对应的推理结果;
选取子模块,用于依次从每个推理结果中选取每个位置的最大推理值,并将每个位置的最大推理值保存为当前层的激活值;
保存子模块,用于将每个层对应的激活值保存为激活值文件。
该获取模块100可以包括:
调用子模块,用于从模型库中调用卷积神经网络模型文件,生成卷积神经网络模型。
该系统还可以包括:
接收模块,用于接收输入的加速算法修改命令;
获取模块,用于根据加速算法修改命令获取对应的配置文件,并根据配置文件确定新加速算法;
替换模块,用于将加速算法替换为新加速算法。
以上系统中的各个组成部分可实际应用于以下的实施例中:
推理子模块获取训练图集,并利用预设推理引擎对训练图集中的每张图片进行推理,得到对应的推理结果;选取子模块依次从每个推理结果中选取每个位置的最大推理值,并将每个位置的最大推理值保存为当前层的激活值;保存子模块将每个层对应的激活值保存为激活值文件。调用子模块从模型库中调用卷积神经网络模型文件,生成卷积神经网络模型。
第一量化模块对卷积神经网络模型每一层的权值进行线性量化处理;第二量化模块根据激活值文件确定激活值量化系数,并对卷积神经网络模型每一层的激活值进行线性量化处理;生成模块根据线性量化处理后的卷积神经网络模型结合加速算法生成量化推理网络;图像识别模块利用量化推理网络对待识别图集进行图像识别。
接收模块接收输入的加速算法修改命令;获取模块根据加速算法修改命令获取对应的配置文件,并根据配置文件确定新加速算法;替换模块将加速算法替换为新加速算法。
请参考图5,图5为本申请实施例所提供的一种图像识别设备的结构图。
该图像识别设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,处理器622可以设置为与存储介质630通信,在图像识别设备600上执行存储介质630中的一系列指令操作。
图像识别设备600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述图1至图2所描述的图像识别的方法中的步骤由图像识别设备基于该图5所示的结构实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请所提供的一种图像识别的方法、系统、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种图像识别的方法,其特征在于,包括:
获取激活值文件、待识别图集和卷积神经网络模型;
对所述卷积神经网络模型每一层的权值进行线性量化处理;
根据所述激活值文件确定激活值量化系数,并对所述卷积神经网络模型每一层的激活值进行线性量化处理;
根据线性量化处理后的所述卷积神经网络模型结合加速算法生成量化推理网络;
利用所述量化推理网络对所述待识别图集进行图像识别;其中:
所述根据线性量化处理后的所述卷积神经网络模型结合加速算法生成量化推理网络的过程包括:
在卷积计算的过程中,卷积表示为:
Figure DEST_PATH_IMAGE002
,其中,
Figure DEST_PATH_IMAGE004
为上层激活值,
Figure DEST_PATH_IMAGE006
为本层激活值,
Figure DEST_PATH_IMAGE008
为卷积计算中的权值,则卷积计算表示为:
Figure DEST_PATH_IMAGE010
其中,
Figure DEST_PATH_IMAGE012
Figure DEST_PATH_IMAGE014
分别为本层和上层的INT8量化整数激活值,
Figure DEST_PATH_IMAGE016
Figure DEST_PATH_IMAGE018
分别为本层和上层激活值的量化系数,
Figure DEST_PATH_IMAGE020
为卷积计算的INT8 权值,
Figure DEST_PATH_IMAGE022
为缩放因子,则本层INT8量化激活值表示为:
Figure DEST_PATH_IMAGE024
其中,括号内的部分
Figure DEST_PATH_IMAGE026
即为卷积计算的主要部分,所述卷积计算的主要部分引入 Winograd 算法实现量化的 Winograd卷积加速:
设上层的激活值
Figure DEST_PATH_IMAGE014A
为卷积计算的输入INT8 INPUT,设为 INT8 KERNEL;
则,对权值进行变换得到INT16大小的权值即:
Figure DEST_PATH_IMAGE028
对输入进行变换得到INT16大小的输入即:
Figure DEST_PATH_IMAGE030
进行点乘和最终的变换得到INT32大小的输出即:
Figure DEST_PATH_IMAGE032
引入量化系数得到INT8 的输出即:
Figure DEST_PATH_IMAGE034
2.根据权利要求1所述的方法,其特征在于,所述获取激活值文件、待识别图集和卷积神经网络模型,包括:
获取训练图集,并利用预设推理引擎对所述训练图集中的每张图片进行推理,得到对应的推理结果;
依次从每个所述推理结果中选取每个位置的最大推理值,并将每个位置的最大推理值保存为当前层的激活值;
将每个层对应的激活值保存为所述激活值文件。
3.根据权利要求1所述的方法,其特征在于,所述获取激活值文件、待识别图集和卷积神经网络模型,包括:
从模型库中调用卷积神经网络模型文件,生成所述卷积神经网络模型。
4.根据权利要求1所述的方法,其特征在于,在根据线性量化处理后的所述卷积神经网络模型结合加速算法生成量化推理网络之前,还包括:
接收输入的加速算法修改命令;
根据所述加速算法修改命令获取对应的配置文件,并根据所述配置文件确定新加速算法;
将所述加速算法替换为所述新加速算法。
5.一种图像识别的系统,其特征在于,包括:
获取模块,用于获取激活值文件、待识别图集和卷积神经网络模型;
第一量化模块,用于对所述卷积神经网络模型每一层的权值进行线性量化处理;
第二量化模块,用于根据所述激活值文件确定激活值量化系数,并对所述卷积神经网络模型每一层的激活值进行线性量化处理;
生成模块,用于根据线性量化处理后的所述卷积神经网络模型结合加速算法生成量化推理网络;
图像识别模块,用于利用所述量化推理网络对所述待识别图集进行图像识别;其中:
所述生成模块,具体用于:
在卷积计算的过程中,卷积表示为:
Figure DEST_PATH_IMAGE002A
,其中,
Figure DEST_PATH_IMAGE004A
为上层激活值,
Figure DEST_PATH_IMAGE035
为本层激活值,
Figure DEST_PATH_IMAGE008A
为卷积计算中的权值,则卷积计算表示为:
Figure DEST_PATH_IMAGE010A
其中,
Figure DEST_PATH_IMAGE012A
Figure DEST_PATH_IMAGE014AA
分别为本层和上层的INT8量化整数激活值,
Figure DEST_PATH_IMAGE016A
Figure DEST_PATH_IMAGE018A
分别为本层和上层激活值的量化系数,
Figure DEST_PATH_IMAGE020A
为卷积计算的INT8 权值,
Figure DEST_PATH_IMAGE022A
为缩放因子,则本层INT8量化激活值表示为:
Figure DEST_PATH_IMAGE037
其中,括号内的部分
Figure DEST_PATH_IMAGE026A
即为卷积计算的主要部分,所述卷积计算的主要部分引入 Winograd 算法实现量化的 Winograd卷积加速:
设上层的激活值
Figure DEST_PATH_IMAGE014AAA
为卷积计算的输入INT8 INPUT,设为 INT8 KERNEL;
则,对权值进行变换得到INT16大小的权值即:
Figure DEST_PATH_IMAGE038
对输入进行变换得到INT16大小的输入即:
Figure DEST_PATH_IMAGE030A
进行点乘和最终的变换得到INT32大小的输出即:
Figure DEST_PATH_IMAGE039
引入量化系数得到INT8 的输出即:
Figure DEST_PATH_IMAGE034A
6.根据权利要求5所述的系统,其特征在于,所述获取模块包括:
推理子模块,用于获取训练图集,并利用预设推理引擎对所述训练图集中的每张图片进行推理,得到对应的推理结果;
选取子模块,用于依次从每个所述推理结果中选取每个位置的最大推理值,并将每个位置的最大推理值保存为当前层的激活值;
保存子模块,用于将每个层对应的激活值保存为所述激活值文件。
7.根据权利要求5所述的系统,其特征在于,所述获取模块包括:
调用子模块,用于从模型库中调用卷积神经网络模型文件,生成所述卷积神经网络模型。
8.根据权利要求5所述的系统,其特征在于,还包括:
接收模块,用于接收输入的加速算法修改命令;
获取模块,用于根据所述加速算法修改命令获取对应的配置文件,并根据所述配置文件确定新加速算法;
替换模块,用于将所述加速算法替换为所述新加速算法。
9.一种图像识别设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述图像识别的方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述图像识别的方法的步骤。
CN201911386454.6A 2019-12-29 2019-12-29 一种图像识别的方法、系统、设备及可读存储介质 Active CN111178258B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911386454.6A CN111178258B (zh) 2019-12-29 2019-12-29 一种图像识别的方法、系统、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911386454.6A CN111178258B (zh) 2019-12-29 2019-12-29 一种图像识别的方法、系统、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111178258A CN111178258A (zh) 2020-05-19
CN111178258B true CN111178258B (zh) 2022-04-22

Family

ID=70652317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911386454.6A Active CN111178258B (zh) 2019-12-29 2019-12-29 一种图像识别的方法、系统、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111178258B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783642B (zh) * 2020-06-30 2023-10-13 北京百度网讯科技有限公司 一种图像识别方法、装置、电子设备及存储介质
CN113177634B (zh) * 2021-04-28 2022-10-14 中国科学院自动化研究所 基于神经网络输入输出量化的图像分析系统、方法和设备
CN113971457B (zh) * 2021-10-29 2024-02-02 苏州浪潮智能科技有限公司 一种神经网络的计算性能优化方法及系统
CN114528924B (zh) * 2022-01-27 2024-05-10 山东浪潮科学研究院有限公司 一种图像分类模型的推理方法、装置、设备及介质
CN115829035B (zh) * 2022-12-29 2023-12-08 苏州市欧冶半导体有限公司 一种分布式量化方法、系统及终端设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101768521B1 (ko) * 2016-05-02 2017-08-17 네이버 주식회사 이미지에 포함된 객체에 대한 정보 데이터를 제공하는 방법 및 시스템
CN109767000A (zh) * 2019-01-16 2019-05-17 厦门美图之家科技有限公司 基于Winograd算法的神经网络卷积方法及装置
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110334803A (zh) * 2019-07-18 2019-10-15 南京风兴科技有限公司 基于稀疏化Winograd算法的卷积计算方法和卷积神经网络加速器
CN110334800A (zh) * 2019-07-18 2019-10-15 南京风兴科技有限公司 一种用于视频识别的轻量级3d卷积网络系统
CN110413255A (zh) * 2018-04-28 2019-11-05 北京深鉴智能科技有限公司 人工神经网络调整方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101768521B1 (ko) * 2016-05-02 2017-08-17 네이버 주식회사 이미지에 포함된 객체에 대한 정보 데이터를 제공하는 방법 및 시스템
CN110413255A (zh) * 2018-04-28 2019-11-05 北京深鉴智能科技有限公司 人工神经网络调整方法和装置
CN109767000A (zh) * 2019-01-16 2019-05-17 厦门美图之家科技有限公司 基于Winograd算法的神经网络卷积方法及装置
CN109902745A (zh) * 2019-03-01 2019-06-18 成都康乔电子有限责任公司 一种基于cnn的低精度训练与8位整型量化推理方法
CN110334803A (zh) * 2019-07-18 2019-10-15 南京风兴科技有限公司 基于稀疏化Winograd算法的卷积计算方法和卷积神经网络加速器
CN110334800A (zh) * 2019-07-18 2019-10-15 南京风兴科技有限公司 一种用于视频识别的轻量级3d卷积网络系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SpWA: An Efficient Sparse Winograd Convolutional Neural Networks Accelerator on FPGAs;Liqiang Lu, Yun Liang;《2018 Association for Computing Machinery》;20180629;第1-6页 *
卷积神经网络数字识别系统的FPGA实现;孙敬成 等;《计算机工程与应用》;20191121;第181-188页 *

Also Published As

Publication number Publication date
CN111178258A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
CN111178258B (zh) 一种图像识别的方法、系统、设备及可读存储介质
CN107480770B (zh) 可调节量化位宽的神经网络量化与压缩的方法及装置
US10929746B2 (en) Low-power hardware acceleration method and system for convolution neural network computation
CN107977704B (zh) 权重数据存储方法和基于该方法的神经网络处理器
CN108510067B (zh) 基于工程化实现的卷积神经网络量化方法
CN110555450B (zh) 人脸识别神经网络调整方法和装置
US20200050939A1 (en) Neural network model deployment method, prediction method and related device
TW201918939A (zh) 用於學習低精度神經網路的方法及裝置
CN108008948B (zh) 一种指令生成过程的复用装置及方法、处理装置
CN110546611A (zh) 通过跳过处理操作来减少神经网络处理器中的功耗
CN110929865B (zh) 网络量化方法、业务处理方法及相关产品
CN109766800B (zh) 一种移动端花卉识别模型的构建方法
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
Kavyashree et al. Compressed mobilenet v3: a light weight variant for resource-constrained platforms
CN112200300A (zh) 卷积神经网络运算方法及装置
CN108171328B (zh) 一种神经网络处理器和采用其执行的卷积运算方法
CN110647974A (zh) 深度神经网络中的网络层运算方法及装置
KR20180103671A (ko) 언어 모델을 압축하기 위한 전자 장치, 추천 워드를 제공하기 위한 전자 장치 및 그 동작 방법들
US20230252294A1 (en) Data processing method, apparatus, and device, and computer-readable storage medium
CN113780549A (zh) 溢出感知的量化模型训练方法、装置、介质及终端设备
CN111860841A (zh) 量化模型的优化方法、装置、终端及存储介质
CN116126354A (zh) 模型部署方法、装置、电子设备以及存储介质
Lin et al. Tiny Machine Learning: Progress and Futures [Feature]
CN110874635A (zh) 一种深度神经网络模型压缩方法及装置
CN115238883A (zh) 神经网络模型的训练方法、装置、设备及存储介质

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
GR01 Patent grant
GR01 Patent grant