CN110163366B - 深度学习前向预测的实现方法、装置和机器设备 - Google Patents
深度学习前向预测的实现方法、装置和机器设备 Download PDFInfo
- Publication number
- CN110163366B CN110163366B CN201810446351.3A CN201810446351A CN110163366B CN 110163366 B CN110163366 B CN 110163366B CN 201810446351 A CN201810446351 A CN 201810446351A CN 110163366 B CN110163366 B CN 110163366B
- Authority
- CN
- China
- Prior art keywords
- identification
- deep learning
- objects
- batch
- recognition
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
本发明揭示了一种深度学习前向预测的实现方法、装置和机器设备。所述方法包括:获取待进行深度学习对象识别的批量识别对象;获取部署有深度学习对象识别的机器的单次计算容量;根据单次计算容量对批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于单次计算容量;以组为单位将获得的若干组识别对象传入深度学习前向网络,获得批量识别对象进行深度学习对象识别的预测结果。在单次计算容量以及所进行的批量识别对象动态分组控制下,对输入的一组识别对象进行的深度学习前向运算是匹配于机器的单次计算容量的,充分利用了机器的计算资源,且避免内存资源的超负荷利用,并发性能得到增强。
Description
技术领域
本发明涉及计算机应用技术领域,特别涉及一种深度学习前向预测的实现方法、装置和机器设备。
背景技术
深度学习技术作为机器学习的重要实现,在现代社会的各个方面表现出强大功能,即深度学习在互联网应用中的诸多方面都有涉足,并且越来越多的出现在终端设备中,比如智能手机等便携移动设备,以为各种互联网应用实现内容识别。
深度学习的实现,包括前向网络和后向网络两大部分。其中,前向网络用于支持所进行的内容识别,而后向网络则用于不断优化前向网络所进行的内容识别。
由此可知,深度学习为实现内容识别所进行的运算,实质是通过前向网络而进行前向运算,以此来获得输入数据的预测结果。
现有前向运算的进行包括两种实现方式,一是单步运算,二则是一次处理。单步运算是对输入数据逐一进行运算,所以内存波动大,且计算资源并未获得充分利用。
为充分利用计算资源,则使用一次处理的方式进行前向运算。一次处理的方式,相当于将所有输入数据一次性打包输入进行运算,此方式的进行虽可充分利用计算资源,即所有计算资源将全部作用于一次性打包进行运算的输入数据,但是将造成非常大的内存波动,占用的内存过大,往往超负荷利用计算资源和内存资源,且影响了并发性能。
因此,亟待避免通过超负荷利用计算资源和内存资源而在深度学习前向运算中实现资源的充分利用,进而通过计算资源超负荷利用的避免,消除对并发性能的影响。
发明内容
为了避免通过超负荷利用计算资源和内存资源而实现资源的充分利用,且解决并发性能低下的技术问题,本发明提供了一种深度学习前向预测的实现方法、装置和机器设备。
一种深度学习前向预测的实现方法,所述方法包括:
获取待进行深度学习对象识别的批量识别对象;
获取部署有所述深度学习对象识别的机器的单次计算容量;
根据所述单次计算容量对所述批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于所述单次计算容量;
以组为单位将获得的所述若干组识别对象传入深度学习前向网络,获得所述批量识别对象进行深度学习对象识别的预测结果。
在一个示例性实施例中,所述获取待进行深度学习对象识别的批量识别对象,包括:
接收待进行深度学习对象识别的选择操作;
根据所述选择操作获取待进行深度学习对象识别的对象;
通过进行的对象检测获得所述对象对应的批量识别对象。
在一个示例性实施例中,所述对象包括图片,所述通过进行的对象检测获得所述对象对应的批量识别对象,包括:
将所述图片进行文本检测,获得所述图片中存在的文本区域;
根据所述图片中存在的文本区域,从所述图片提取得到多个文本行图片,所述多个文本行图片形成批量识别对象。
在一个示例性实施例中,所述获取部署有所述深度学习对象识别的机器的单次计算容量,包括:
根据所述深度学习对象识别所在机器的运行状态,获得所述批量识别对象进行深度学习对象识别的单次计算容量。
在一个示例性实施例中,所述根据所述单次计算容量对所述批量识别对象进行动态分组,获得若干组识别对象,包括:
预估每一识别对象所需计算容量;
以所述单次计算容量为目标,对所述批量识别对象中的所有识别对象迭代划分为若干组识别对象;
对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
根据每一组识别对象所需计算容量,如果所迭代划分的至少一组识别对象不匹配所述单次计算容量,则继续进行所述批量识别对象的迭代划分;
如果每一组识别对象所需计算容量都匹配于所述单次计算容量,则结束所述批量识别对象的迭代划分。
在一个示例性实施例中,所述以组为单位将获得的所述若干组识别对象传入深度学习前向网络,获得所述批量识别对象进行深度学习对象识别的预测结果,包括:
将所述若干组识别对象逐一传入深度学习前向网络,在所述深度学习前向网络中进行前向计算,获得每一识别对象相对于所述对象的局部预测结果;
根据每一识别对象相对于所述对象的存在,进行所述局部预测结果之间的拼接,获得所述批量对象进行深度学习对象识别的预测结果。
在一个示例性实施例中,所述对象包括图片,所述根据每一识别对象相对于所述对象的存在,进行所述局部预测结果之间的拼接,获得所述批量对象进行深度学习对象识别的预测结果,包括:
根据每一识别对象在所述图片中的位置,以及与其它识别对象之间的位置关系,拼接所获得的局部预测结果得到进行深度学习图片识别的预测结果。
一种深度学习前向预测的实现装置,所述装置包括:
批量获取模块,用于获取待进行深度学习对象识别的批量识别对象;
容量获取模块,用于获取部署有所述深度学习对象识别的机器的单次计算容量;
动态分组模块,用于根据所述单次计算容量对所述批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于所述单次计算容量;
分组传入模块,用于以组为单位将获得的所述若干组识别对象传入深度学习前向网络,获得所述批量识别对象进行深度学习对象识别的预测结果。
在一个示例性实施例中,所述批量获取模块包括:
操作接收单元,用于接收待进行深度学习对象识别的选择操作;
对象获取单元,用于根据所述选择操作获取待进行深度学习对象识别的对象;
对象检测单元,用于通过进行的对象检测获得所述对象对应的批量识别对象。
在一个示例性实施例中,所述对象包括图片,所述对象检测单元包括:
文本检测单元,用于将所述图片进行文本检测,获得所述图片中存在的文本区域;
图片提取单元,用于根据所述图片中存在的文本区域,从所述图片提取得到多个文本行图片,所述多个文本行图片形成批量识别对象。
在一个示例性实施例中,所述容量获取模块进一步用于根据所述深度学习对象识别所在机器的运行状态,获得所述批量识别对象进行深度学习对象识别的单次计算容量。
在一个示例性实施例中,所述动态分组模块包括:
容量预估单元,用于预估每一识别对象所需计算容量;
迭代划分单元,用于以所述单次计算容量为目标,对所述批量识别对象中的所有识别对象迭代划分为若干组识别对象;
组容量计算单元,用于对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
迭代控制单元,用于对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
所述迭代控制单元还用于如果每一组识别对象所需计算容量都匹配于所述单次计算容量,则结束所述批量识别对象的迭代划分。
在一个示例性实施例中,所述分组传入模块包括:
前向运算单元,用于将所述若干组识别对象逐一传入深度学习前向网络,在所述深度学习前向网络中进行前向计算,获得每一识别对象相对于所述对象的局部预测结果;
结果处理单元,用于根据每一识别对象相对于所述对象的存在,进行所述局部预测结果之间的拼接,获得所述批量对象进行深度学习对象识别的预测结果。
在一个示例性实施例中,所述结果处理单元进一步用于根据每一识别对象在所述图片中的位置,以及与其它识别对象之间的位置关系,拼接所获得的局部预测结果得到进行深度学习图片识别的预测结果。
一种机器设备,包括处理器以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如前所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
针对于给定的对象,发起深度学习的前向预测,此时,将首先获取待进行深度学习对象的批量识别对象,获取部署有所述深度学习对象识别的机器的单次计算容量,根据单次计算容量对批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于所述单次计算容量,最后以组为单位将获得的若干组识别对象传入深度学习前向网络,获得批量识别对象进行深度学习对象识别的预测结果,至此,便在单次计算容量以及所进行的批量识别对象动态分组控制下,对输入的一组识别对象所进行的深度学习前向运算是匹配于机器的单次计算容量的,因此,充分利用了所部署机器的计算资源,且由于对象是通过批量识别对象分组传入深度学习前向网络进行的深度学习前向运算,避免了内存资源的超负荷利用,故计算资源和内存资源的超负荷利用均被消除,并发性能得到相应增强。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的本发明所涉及的实施环境的示意简图;
图2是根据一示例性实施例示出的一种装置的框图;
图3是根据一示例性实施例示出的一种深度学习前向预测的实现方法的流程图;
图4是根据图3对应实施例示出的对步骤310的细节进行描述的流程图;
图5是根据图4对应实施例示出的对步骤315的细节进行描述的流程图;
图6是根据图3对应实施例示出的对步骤370的细节进行描述的流程图;
图7是根据一示例性实施例示出的本发明深度学习前向预测实现OCR识别网络中图片识别的应用示意简略图;
图8是一示例性实施例示出的一种深度学习前向预测的实现装置的框图;
图9是根据图8对应实施例示出的对批量获取模块的细节进行描述的框图;
图10是根据图9对应实施例示出的对对象检测单元的细节进行描述的框图;
图11是根据图8对应实施例示出的对分组传入模块的细节进行描述的框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的本发明所涉及的实施环境的示意简略。在一个示例性实施例中,本发明深度学习前向预测的实现方法,承载于所部署的机器上,以在此机器实现所输入各种对象的内容识别,获得相应的预测结果。
如图1所示的,本发明深度学习前向预测的实现方法,通过所部署的机器,比如服务器110,提供识别服务,进而支持各种场景。
在支持的一场景中,如图1所示的,通过接入服务器110的终端设备130,进行所需要识别对象的输入,将用户所需要识别的对象传入至服务器110,进而方能够在服务器110获得识别服务,完成对象的识别。
通过服务器110和终端设备130的相互配合,为各自对象的识别实现深度学习前向运算,以得到对象识别所对应的预测结果。
图2是根据一示例性实施例示出的一种装置的框图。例如,装置200可以是图1所示的服务器110。
参照图2,该装置200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)222(例如,一个或一个以上处理器)和存储器232,一个或一个以上存储应用程序242或数据244的存储介质230(例如一个或一个以上海量存储设备)。其中,存储器232和存储介质230可以是短暂存储或持久存储。存储在存储介质230的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器222可以设置为与存储介质230通信,在装置200上执行存储介质230中的一系列指令操作。装置200还可以包括一个或一个以上电源226,一个或一个以上有线或无线网络接口250,一个或一个以上输入输出接口258,和/或,一个或一个以上操作系统241,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。下述图4、图5、图6、图7和图8所示实施例中所述的由服务器所执行的步骤可以基于该图2所示的装置结构。
图3是根据一示例性实施例示出的一种深度学习前向预测的实现方法的流程图。该深度学习前向预测的实现方法,在一个示例性实施例中,如图3所示,至少包括以下步骤。
在步骤310中,获取待进行深度学习对象识别的批量识别对象。
其中,深度学习对象识别是指借助于深度学习技术而实现的对象识别过程,所指的对象是需要识别的输入数据,例如,该对象可以是图片,也可以是语音等。不同的对象,对应着不同的深度学习对象识别过程。例如,在对象是图片情况下,所进行的深度学习对象识别便是图片识别过程,其可为OCR识别,具体而言,可以是OCR文字识别,能够将图片中的内容识别为可编辑的文本;又例如,还可为语音或者视觉对象的识别等,在此不进行限定和一一列举,任一深度学习网络架构下识别的实现都可适用。
与深度学习对象识别相对应的,对待进行深度学习对象识别而获得的识别对象,是请求通过深度学习识别所携带内容的对象,请求通过深度学习而识别所携带内容的所有对象便形成当前待进行深度学习对象识别的批量识别对象。
应当理解的,所指的识别对象,是能够直接进行前向运算而获得相应预测结果的对象,对于后续所进行的前向运算而言,不再需要对识别对象进行处理。由此可知,所获取得到的识别对象是对待进行深度学习对象识别中涉及的对象进行预处理之后得到的。例如,对于所进行的图片内容识别而言,输入数据“图片”,即为待进行深度学习对象识别所对应的对象,而对此图片进行检测之后所获得的多个文本行图片,便构成了待进行深度学习对象识别的批量识别对象。
批量识别对象的存在,并不限于大量输入数据而产生的,即便仅仅存在一条输入数据,例如,一张需要进行深度学习对象识别的图片,也存在着批量识别对象的产生。
深度学习对象识别的进行,是指对象所对应借助于深度学习技术的识别过程发起,一方面可以通过所接入的终端设备中用户对所需要识别对象的选择发起,另一方面,也可以是所部署机器中深度学习前向预测被其它接口调用而发起的,例如,外部应用调用机器中承载的深度学习前向预测服务,进而借助于机器所承载的深度学习前向预测服务实现此外部应用中的对象识别。
批量识别对象,是对应于深度学习对象识别中的对象的。换而言之,所识别的对象是由获取的批量识别对象所形成的。批量识别对象包括若干识别对象,这些识别对象在一起便构成了所识别的对象。
因此,随着对象所对应深度学习前向预测的发起,将首先从此对象获取得到批量识别对象。
例如,在对象为图片时,为实现图片中文字内容的识别,所获取的批量识别对象便是从图片中获得的文本行图片。
面对不同的对象,所进行的批量识别对象获取可能各不相同,但是,无论何种类型的对象,都是基于其内容而进行批量识别对象获取的,以保证所获得的批量识别对象携带了对象中的全部内容,保证后续所获得预测结果的准确性,能够具备非常高的识别精度。
在步骤330中,获取部署有所述深度学习对象识别的机器的单次计算容量。
其中,部署有深度学习对象识别的机器,是指用于实现本发明所述深度学习前向预测的机器,例如,基于本发明所述深度学习前向预测方法进行图片识别的服务器。单次计算容量指示了机器执行一次运算所对应的计算容量,其指示了所能够承担计算量的大小,与机器中的核心数目以及核心数目与每个任务所使用的核心数量相关,并根据CPU主频和内存容量而获得的数值。
在一个示例性实施例的具体实现中,每个任务的执行都只有使用单核计算,则所获取的单次计算容量是单核计算容量,由单核计算容量控制深度学习前向运算的进行,进而避免一次性输入大量识别对象,对所计算资源和内存造成较大冲击,并且也在单核计算容量的控制下,使得机器能够启动CPU核数个任务,具备非常高的并发性能。
在一个示例性实施例中,步骤330包括:根据深度学习对象识别所在机器的运行状态,获得批量识别对象进行深度学习对象识别的单次计算容量。
在此,所指的运行状态,包括了CPU主频及内存容量,以及每个任务所使用的核心数量等。通过当前的运行状态控制后续所进行的识别对象批量运算,保证了后续所进行的识别对象批量运算能够适用于所部署的机器运行中。
在步骤350中,根据单次计算容量对批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于所述单次计算容量。
其中,应当理解,对发起进行识别的对象而获取的批量识别对象,其数目依赖于对象本身以及对象所携带的内容,不同的对象,所对应批量识别对象的数目各不相同。
针对于所进行深度学习前向预测的对象,获取得到一定数目的识别对象,至此,所进行的深度学习前向运算便面临着批量计算的执行,如何处理所获得的批量识别对象,便是深度学习前向运算所最为关注的内容。
如前所述的,单次计算容量指示了对于一次任务的执行而言,所能够承担的运算量,因此,将根据单次计算容量对批量识别对象进行动态分组,以获得适应于单次计算容量的若干个分组,每一分组都包含着批量识别对象中的至少一个识别对象。
对批量识别对象所进行的动态分组,便是根据单次计算容量而在批量识别对象中进行的动态划分过程,划分在一起的识别对象便构成一组。
进一步的,所进行的动态分组,将是根据单次计算容量而不断尝试进行的,以通过不断尝试进行的动态分组,而获得所有分组所分别需要的计算容量均匹配于单次计算容量的结果,此时所对应的分组,便形成了匹配于单次计算容量的若干组识别对象。
至此应当说明,对于一组识别对象而言,所需计算容量匹配于单次计算容量,是指所需计算容量与单次计算容量之间的差值趋于最小,即二者相互接近。
在一个示例性实施例中,步骤350包括:根据单次计算容量以及每一识别对象所需计算容量,进行批量识别对象中识别对象之间的分组计算,直至分组计算的每一组识别对象所需计算容量都接近于单次计算容量,则分组计算结束,获得分组计算中对应的若干组识别对象。
在一个示例性实话例的具体实现中,步骤350被配置执行以下过程:
预估每一识别对象所需计算容量;
以单次计算容量为目标,对批量识别对象中的所有识别对象迭代划分为若干组识别对象;
对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
根据每一组识别对象所需计算容量,如果所迭代划分的至少一组识别对象不匹配单次计算容量,则继续进行批量识别对象的迭代划分;
如果每一组识别对象所需计算容量都匹配于单次计算容量,则结束批量识别对象的迭代划分。
其中,每一识别对象进行深度学习前向运算都需要耗费一定的计算量,因此,每一识别对象都有对应的计算容量。而一组识别对象所需计算容量,即根据此分组下所有识别对象所需要的计算容量得到。
因此,所进行的动态分组,将是根据单次计算容量以及每一识别对象所需计算容量而进行的分组计算,即对批量识别对象所迭代进行的划分,分组计算中得到每一组识别对象所需计算容量都接近于单次计算容量时,即可结束分组计算,即所进行的迭代划分过程,当前所划分若干个组即为所需要获得的若干组识别对象。
对所有批量识别对象不断尝试进行的划分,并以所划分得到的每一组识别对象都匹配于单次计算容量作为迭代停止条件,以此来保证所进行动态分组是与机器的单次计算容量相吻合的。
具体的,批量识别对象中,每一识别对象所需计算容量记为c0,c1,c2,…,cn,通过分组计算将批量识别对象分为N组,即G0,G1,G2,…,GN,并且在所进行的分组计算中,使最小,即可结束所不断进行的分组计算,获得若干组识别对象,其中,C为部署有深度学习对象识别的机器对应的单次计算容量。
通过动态分组的进行,为后续所进行的深度学习前向运算提供了批量识别对象分组运算的依据,以此来保证资源的充分且适当利用,进而增强深度学习前向预测的系统稳定性。
在步骤370中,以组为单位将获得的若干组识别对象传入深度学习前向网络,获得批量识别对象进行深度学习对象识别的预测结果。
其中,通过前述步骤获得了若干组识别对象,至此,便可以对所获得的若干组识别对象进行深度学习前向运算。
具体的,深度学习前向网络,位于所部署机器上,且用于执行深度学习前向运算。所获得的若干组识别对象,便以组为单位依次传入深度学习前向网络,以所传入的一组识别对象便发起了一深度学习前向运算任务,以此类推,直至所有批量识别对象都以组为单位完成深度学习前向运算。若干组识别对象通过深度学习前向网络而输出的结果便构成了所发起深度学习对象识别的预测结果。
至此,对于所需要进行的对象识别而言,深度学习技术的实现得到了优化,所部署机器不再由于过多的数据量而受到计算资源和内存资源所相关的冲击,也不再由于过少数据量的输入而未能充分利用资源,所实现系统性能得到极大增强,并且也直接的提升了运算效率和速度。
通过如上所述的示例性实施例,也使得所部署机器能够并发执行所需要的其它运算,一方面能够保证了所部署机器中性能的优越性、功能以及使用场景的丰富性,也保证了服务的稳定性。
如上所述的示例性实施例,实现了深度学习的前向运算框架,进而能够应用于图片识别、文档识别、视频文字识别、实体标识识别等,例如,电商相关图片识别、行业内文档等全文档识别等,具备非常强的通用性。
图4是根据图3对应实施例示出的对步骤310的细节进行描述的流程图。该步骤310,如图4所示,至少包括以下步骤。
在步骤311中,接收待进行深度学习对象识别的选择操作。
其中,触发进行深度学习的选择操作是指在用户操控或者外部应用调用等方式下发起进行深度学习对象识别的操作,例如,用户在所使用终端设备中针对于对象所进行的选择制作。
通过所进行的对象选择和围绕所选择对象的操作发起进行深度学习对象识别,此时,所选择的对象将被传入实现深度学习对象识别的机器。
应当理解,触发进行深度学习对象识别选择操作的接收,首先是由发起选择操作的终端设备或者其它设备实现的,但是,在此基础上,也将借由终端设备或者其它设备实现深度学习对象识别所在机器,例如后台的服务器,接收所触发的选择操作。
在步骤313中,根据所选择操作获取待进行深度学习对象识别的对象。
其中,随着选择操作的接收,一方面感知深度学习对象识别的发起,另一方面也相应获得发起深度学习对象识别的对象。
至此,即可对所获得的对象执行深度学习对象识别过程。
在步骤315中,通过进行的对象检测获得对象对应的批量识别对象。
其中,对象检测是适应于对象的类型进行的。具体而言,适应于对象的类型确定对象检测的单位,进而以此单位为依据进行对象中内容的划分,承载了对象中内容的每一单位便构成识别对象。
也就是说,识别对象为对象中的一部分,对应于对象中存在的区域。换而言之,对象中内容所存在的诸多区域便被划分形成不同的识别对象,以此来获得对象对应的批量识别对象。
当然,对象的类型不同,其划分所获得的识别对象也将是不同的形式,例如,对于图片、语音和视频对象,所进行的对象检测将是适应于自身所对应的对象类型的。
图5是根据图4对应实施例示出的对步骤315的细节进行描述的流程图。在一个示例性实施例中,对象包括图片,则步骤315如图5所示的,至少包括以下步骤。
在步骤401中,将图片进行文本检测,获得图片中存在的文本区域。
其中,文字内容作为图片中的内容主体,因此,在对象为图片时,需要对图片中存在的文字内容进行识别,以此方可完成图片的识别。
针对于图片形式的对象,所进行的对象检测即为文本检测,以检测图片中存在的文本区域,进而由所检测的文本区域获得批量识别对象。
具体的,对图片所进行的文本检测,是将图片进行文本检测而得到多个文本行区域的过程,应当理解,对于图片中存在的文字内容而言,其往往是以“行”为单位分布的,因此,所进行的文本检测也是以“行”为单位执行的。
通过对图片进行文本检测,获得若干文本区域。在一个示例性实施例中,所获得的若干文本区域对应了图片中的若干行文字。
在步骤403中,根据图片中存在的文本区域,从图片提取得到多个文本行图片,多个文本行图片形成批量识别对象。
其中,按照文本检测得到的文本区域,进行文本行图片的提取,得到对应于图片中每一行文字的图片,这些图片即为前述所指的批量识别对象。
通过此示例性实施例,为所进行的图片识别获得批量存在的文本行图片,进而为后续所进行的深度学习前向运算提供了批量运算的基础,以提高运算效率和速度,进而增强图片识别速度。
图6是根据图3对应实施例示出的对步骤370的细节进行描述的流程图。该步骤370,如图6所示,至少包括以下步骤。
在步骤371中,将若干组识别对象逐一传入深度学习前向网络,在深度学习前向网络中进行前向计算,获得每一识别对象相对于对象的局部预测结果。
其中,在通过前述所进行的动态分组获得若干组识别对象之后,将对每一组识别对象进行深度学习前向运算,进而最终完成的所有批量识别对象的深度学习前向运算。以组为单位实现深度学习中的批量运算。
如前所述的,识别对象是对应于对象中的局部内容的,因此,此识别对象通过深度学习前向网络进行前向计算而获得的预测结果,也将是对应于对象中的局部内容的,因此,此识别对象所获得的预测结果是相对于对象的局部预测结果。
在步骤373中,根据每一识别对象相对于对象的存在,进行局部预测结果之间的拼接,获得批量对象进行深度学习对象识别的预测结果。
其中,所有识别对象的局部预测结果融合在一起,便得到对象进行深度学习对象识别的预测结果。
在一个示例性实施例中,步骤373包括:根据每一识别对象在图片中的位置,以及与其它识别对象之间的位置关系,拼接所获得的局部预测结果得到进行深度学习图片识别的预测结果。
借助于深度学习技术而进行的图片识别中,与前述文本区域相对应的,由每一识别对象对应于图片中的一文本区域,例如,实质为一文本行图片,故识别对象中的内容,便是图片中的一行文字。
因此,在获得每一识别对象相对于对象的局部预测结果之后,便需要进行局部预测结果的拼接,以获得所在对象的内容,至此,方能够获得图片识别所对应的预测结果。
在本发明的示例性实施例中,通过所进行的动态分组,实现了智能BATCH策略的自动调整,以在此智能BATCH策略下实现批量识别对象的自动分组,其中BATCH值是向深度学习前向网络输入的识别对象数量,即分组中的识别对象数量。
在此智能BATCH策略下,既能一次性处理多个识别对象,又进行着多次处理,因此充分利用了计算资源,又能减少内存波动,避免内存过大或过小,影响后台并发,在性能上远高于已有实现,既能够节省内存,又能够提升性能。
以OCR(Optical Character Recongnition,光学字符识别)识别网络所进行的图片识别为例,来描述本发明所涉及的深度学习前向预测的实现。此OCR识别网络是CNN(Convolutional Neural Network)卷积网络,即卷积神经网络。OCR识别网络所进行的图片识别依托于深度学习中的前向运算框架进行运算,获得图片识别所对应的预测结果,进而得到图片中可编辑的文本内容。
OCR识别网络中,通过深度学习中前向运算框架而识别图片的现有实现中,向前向运算框架输入的图片尺寸是变化的,这与图片内容长度有关,一个完整的运算过程会需要几十次的前向运算,图片有大有小。
深度学习运算包含两个部分,即前向运算和后向运算。前向运算用于输入层到隐含层,再到输出层的传播,得到所输入图片的预测结果;后向运算是输出层到隐含层,再到输入层的传播,后向运算用于修正隐含层的权值。
如前所述的,现有前向运算的进行,是固定BATCH策略的,要么BATCH值为1,即单步运算,计算资源无法得到充分利用;要么BATCH值为ALL,即为总数,以打包进行一次处理。
在通过本发明所涉及的深度学习前向预测实现OCR识别网络中图片识别的进行时,以图7所示的图片,即名片610为例。
图7所示的名片610,将作为输入,对名片610执行文本检测,即如步骤630所示的,以获得对应于名片610中若干“行”的若干个文本区域,进而提取出来获得多个文本行图片631。
至此,便对所获得的多个文本行图片631批量进行前向运算。所指的批量进行前向运算,并非是对所有文本行图片631一并打包执行前向运算,而是通过后续智能BATCH的执行,获得批量进行前向运算的输入。
具体的,如步骤650所示的,对多个文本行图片631根据部署机器的单次计算容量执行自动分组,获得相对于单次计算容量均最小的若干分组,例如,第一分组651和第二分组653。
所获得的若干分组中,分组之间对应的文本行图片631数量各不相同,进而使得后续按照输入至前向网络执行前向运算的BATCH值是动态变化的,而非固定的数值。
此时,将分组后的文本行图片按组分别交由前向网络执行前向运算,即以组为单位依次塞入前向网络中进行计算,以进行文本识别,如步骤670所示的,所获得的预测结果便提供了名片610中可编辑的文本内容。
可以看到,所进行的分组,对于每组包含的文本行图片而言,都充分利用了部署机器的运算容量,同时避免了以下两个问题:
1、顺序单张图片进行前向运算,无法充分利用部署机器中计算能力的问题;
2、所有图片一起进行前向运算,超过了部署机器的计算能力,出现资源争抢,导致耗时升高的问题。
至此,在此名片610的识别中,将得到如下实际运行效果:
策略 | 耗时(毫秒ms) |
单步运算 | 2712 |
一次处理 | 3123 |
本发明 | 1812 |
由此实际运行效果的比对可以看到,本发明在通过OCR识别网络进行图片识别时,能够更好的提高机器上的识别速度,在输入一批长度不一的带文字的单行图片时,根据所实现的智能BATCH,自动划分分组,充分利用CPU和内存的实际运算能力快速输出预测结果。
在本发明的实现中,根据CPU和内存的计算吞吐率自动评估得到适合的分组配置,保证了每个分组都可以充分利用且不会超负荷利用CPU的运算能力和内存的容量,提高机器的整体利用率,也以此来降低整体的耗时表现,内存占用的波动也得到了有效控制。
在本发明的作用下,不再随着批量图片的文字数目大幅提升而影响耗时,从而也避免了对部署OCR识别的硬件成本造成影响,在不优化网络和不升级机器配置的前提下,有效提升识别的性能表现,达到降低运营成本的目的。
下述为本发明装置实施例,可以用于执行本发明上述深度学习前向预测的实现方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明深度学习前向预测的实现方法实施例。
图8是一示例性实施例示出的一种深度学习前向预测的实现装置的框图。该深度学习前向预测的实现装置,如图8所示,包括但不限于:批量获取模块810、容量获取模块830、动态分组模块850和分组传入模块870。
批量获取模块810,用于获取待进行深度学习对象识别的批量识别对象。
容量获取模块830,用于获取部署有深度学习对象识别的机器的单次计算容量。
动态分组模块850,用于根据所述单次计算容量对所述批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于所述单次计算容量。
分组传入模块870,用于以组为单位将获得的所述若干组识别对象传入深度学习前向网络,获得所述批量识别对象进行深度学习对象识别的预测结果。
图9是根据图8对应实施例示出的对批量获取模块的细节进行描述的框图。在一个示例性实施例中,该批量获取模块810,如图9所示,包括但不限于:操作接收模块811、对象获取单元813和对象检测单元815。
操作接收单元811,用于接收待进行深度学习对象识别的选择操作;
对象获取单元813,用于根据所述选择操作获取待进行深度学习对象识别的对象;
对象检测单元815,用于通过进行的对象检测获得所述对象对应的批量识别对象。
图10是根据图9对应实施例示出的对对象检测单元的细节进行描述的框图。在一个示例性实施例中,对象检测单元815,如图10所示,包括但不限于:文本检测单元901和图片提取单元903。
文本检测单元902,用于将所述图片进行文本检测,获得所述图片中存在的文本区域;
图片提取单元903,用于根据所述图片中存在的文本区域,从所述图片提取得到多个文本行图片,所述多个文本行图片形成批量识别对象。
在一个示例性实施例中,容量获取模块830包括:容量预估单元、迭代划分单元、组容量计算单元和迭代控制单元。
容量预估单元,用于预估每一识别对象所需计算容量;
迭代划分单元,用于以所述单次计算容量为目标,对所述批量识别对象中的所有识别对象迭代划分为若干组识别对象;
组容量计算单元,用于对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
迭代控制单元,用于对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
所述迭代控制单元还用于如果每一组识别对象所需计算容量都匹配于所述单次计算容量,则结束所述批量识别对象的迭代划分。
在一个示例性实施例中,动态分组模块850进一步用于根据所述单次计算容量以及每一识别对象所需计算容量,进行所述批量识别对象中识别对象之间的分组计算,直至分组计算的每一组识别对象所需计算容量都接近于所述单次计算容量,则所述分组计算结束,获得所述分组计算中对应的若干组识别对象。
图11是根据图8对应实施例示出的对分组传入模块的细节进行描述的框图。在一个示例性实施例中,该分组传入模块870,如图11所示的,包括但不限于:前向运算单元871和结果处理单元873。
前向运算单元871,用于将所述若干组识别对象逐一传入深度学习前向网络,在所述深度学习前向网络中进行前向计算,获得每一识别对象相对于所述对象的局部预测结果;
结果处理单元873,用于根据每一识别对象相对于所述对象的存在,进行所述局部预测结果之间的拼接,获得所述批量对象进行深度学习对象识别的预测结果。
在一个示例性实施例中,结果处理单元873进一步用于根据每一识别对象在所述图片中的位置,以及与其它识别对象之间的位置关系,拼接所获得的局部预测结果得到进行深度学习图片识别的预测结果。
可选的,本发明还提供一种机器设备,该机器设备可以用于前述所示实施环境中,执行如上任一所示的方法的全部或者部分步骤。所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
所述计算机可读指令被所述处理器执行时实现前述方法。
该实施例中的装置的处理器执行操作的具体方式已经在前述方法的实施例中执行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (13)
1.一种深度学习前向预测的实现方法,其特征在于,所述方法包括:
获取待进行深度学习对象识别的批量识别对象,所述深度学习对象是文本行图片;
获取部署有所述深度学习对象识别的机器的单次计算容量;
根据所述单次计算容量对所述批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于所述单次计算容量,所获得的若干分组中分组之间对应的文本行图片数量各不相同,使得输入至所述深度学习前向网络的识别对象数量是动态变化的;
以组为单位将获得的所述若干组识别对象传入深度学习前向网络,获得所述批量识别对象进行深度学习对象识别的预测结果。
2.根据权利要求1所述的方法,其特征在于,所述获取待进行深度学习对象识别的批量识别对象,包括:
接收待进行深度学习对象识别的选择操作;
根据所述选择操作获取待进行深度学习对象识别的对象;
通过进行的对象检测获得所述对象对应的批量识别对象。
3.根据权利要求2所述的方法,其特征在于,所述对象包括图片,所述通过进行的对象检测获得所述对象对应的批量识别对象,包括:
将所述图片进行文本检测,获得所述图片中存在的文本区域;
根据所述图片中存在的文本区域,从所述图片提取得到多个文本行图片,所述多个文本行图片形成批量识别对象。
4.根据权利要求1所述的方法,其特征在于,所述根据所述单次计算容量对所述批量识别对象进行动态分组,获得若干组识别对象,包括:
预估每一识别对象所需计算容量;
以所述单次计算容量为目标,对所述批量识别对象中的所有识别对象迭代划分为若干组识别对象;
对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
根据每一组识别对象所需计算容量,如果所迭代划分的至少一组识别对象不匹配所述单次计算容量,则继续进行所述批量识别对象的迭代划分;
如果每一组识别对象所需计算容量都匹配于所述单次计算容量,则结束所述批量识别对象的迭代划分。
5.根据权利要求1所述的方法,其特征在于,所述以组为单位将获得的所述若干组识别对象传入深度学习前向网络,获得所述批量识别对象进行深度学习对象识别的预测结果,包括:
将所述若干组识别对象逐一传入深度学习前向网络,在所述深度学习前向网络中进行前向计算,获得每一识别对象相对于所述对象的局部预测结果;
根据每一识别对象相对于所述对象的存在,进行所述局部预测结果之间的拼接,获得所述批量对象进行深度学习对象识别的预测结果。
6.根据权利要求5所述的方法,其特征在于,所述对象包括图片,所述根据每一识别对象相对于所述对象的存在,进行所述局部预测结果之间的拼接,获得所述批量对象进行深度学习对象识别的预测结果,包括:
根据每一识别对象在所述图片中的位置,以及与其它识别对象之间的位置关系,拼接所获得的局部预测结果得到进行深度学习图片识别的预测结果。
7.一种深度学习前向预测的实现装置,其特征在于,所述装置包括:
批量获取模块,用于获取待进行深度学习对象识别的批量识别对象,所述深度学习对象是文本行图片;
容量获取模块,用于获取部署有所述深度学习对象识别的机器的单次计算容量;
动态分组模块,用于根据所述单次计算容量对所述批量识别对象进行动态分组,获得若干组识别对象,其中每组识别对象所需的计算容量均匹配于所述单次计算容量,所获得的若干分组中分组之间对应的文本行图片数量各不相同,使得输入至所述深度学习前向网络的识别对象数量是动态变化的;
分组传入模块,用于以组为单位将获得的所述若干组识别对象传入深度学习前向网络,获得所述批量识别对象进行深度学习对象识别的预测结果。
8.根据权利要求7所述的装置,其特征在于,所述批量获取模块包括:
操作接收单元,用于接收待进行深度学习对象识别的选择操作;
对象获取单元,用于根据所述选择操作获取待进行深度学习对象识别的对象;
对象检测单元,用于通过进行的对象检测获得所述对象对应的批量识别对象。
9.根据权利要求8所述的装置,其特征在于,所述对象包括图片,所述对象检测单元包括:
文本检测单元,用于将所述图片进行文本检测,获得所述图片中存在的文本区域;
图片提取单元,用于根据所述图片中存在的文本区域,从所述图片提取得到多个文本行图片,所述多个文本行图片形成批量识别对象。
10.根据权利要求7所述的装置,其特征在于,所述动态分组模块包括:
容量预估单元,用于预估每一识别对象所需计算容量;
迭代划分单元,用于以所述单次计算容量为目标,对所述批量识别对象中的所有识别对象迭代划分为若干组识别对象;
组容量计算单元,用于对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
迭代控制单元,用于对所迭代划分的若干组识别对象,分别计算每一组识别对象所需计算容量;
所述迭代控制单元还用于如果每一组识别对象所需计算容量都匹配于所述单次计算容量,则结束所述批量识别对象的迭代划分。
11.根据权利要求7所述的装置,其特征在于,所述分组传入模块包括:
前向运算单元,用于将所述若干组识别对象逐一传入深度学习前向网络,在所述深度学习前向网络中进行前向计算,获得每一识别对象相对于所述对象的局部预测结果;
结果处理单元,用于根据每一识别对象相对于所述对象的存在,进行所述局部预测结果之间的拼接,获得所述批量对象进行深度学习对象识别的预测结果。
12.根据权利要求11所述的装置,其特征在于,所述结果处理单元进一步用于根据每一识别对象在所述图片中的位置,以及与其它识别对象之间的位置关系,拼接所获得的局部预测结果得到进行深度学习图片识别的预测结果。
13.一种机器设备,其特征在于,包括处理器以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810446351.3A CN110163366B (zh) | 2018-05-10 | 2018-05-10 | 深度学习前向预测的实现方法、装置和机器设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810446351.3A CN110163366B (zh) | 2018-05-10 | 2018-05-10 | 深度学习前向预测的实现方法、装置和机器设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110163366A CN110163366A (zh) | 2019-08-23 |
CN110163366B true CN110163366B (zh) | 2022-08-26 |
Family
ID=67644941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810446351.3A Active CN110163366B (zh) | 2018-05-10 | 2018-05-10 | 深度学习前向预测的实现方法、装置和机器设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110163366B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370796A (zh) * | 2017-06-30 | 2017-11-21 | 香港红鸟科技股份有限公司 | 一种基于Hyper TF的智能学习系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2015336942B2 (en) * | 2014-10-24 | 2018-02-01 | Commonwealth Scientific And Industrial Research Organisation | Learning with transformed data |
US10671938B2 (en) * | 2016-01-27 | 2020-06-02 | Bonsai AI, Inc. | Artificial intelligence engine configured to work with a pedagogical programming language to train one or more trained artificial intelligence models |
JP2018018451A (ja) * | 2016-07-29 | 2018-02-01 | 富士通株式会社 | 機械学習方法、機械学習プログラム及び情報処理装置 |
-
2018
- 2018-05-10 CN CN201810446351.3A patent/CN110163366B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370796A (zh) * | 2017-06-30 | 2017-11-21 | 香港红鸟科技股份有限公司 | 一种基于Hyper TF的智能学习系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110163366A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11609968B2 (en) | Image recognition method, apparatus, electronic device and storage medium | |
KR20190126366A (ko) | 비디오 인식 및 훈련 방법과 장치, 전자 기기와 매체 | |
CN110489951A (zh) | 风险识别的方法、装置、计算机设备和存储介质 | |
CN112232426B (zh) | 目标检测模型的训练方法、装置、设备及可读存储介质 | |
CN111861754B (zh) | 交易打包方法、设备和存储介质 | |
CN109933610B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN112088393A (zh) | 图像处理方法、装置及设备 | |
CN113377998A (zh) | 数据加载的方法、装置、电子设备及存储介质 | |
US11947631B2 (en) | Reverse image search based on deep neural network (DNN) model and image-feature detection model | |
CN110955390A (zh) | 数据处理方法、装置和电子设备 | |
CN114463551A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN110163366B (zh) | 深度学习前向预测的实现方法、装置和机器设备 | |
US20200364090A1 (en) | Method, apparatus, and electronic device for improving parallel performance of cpu | |
CN110502975B (zh) | 一种行人重识别的批量处理系统 | |
US11403835B2 (en) | Method and device for processing feature point of image | |
CN111860557B (zh) | 图像处理方法及装置、电子设备及计算机存储介质 | |
US11475356B2 (en) | Data processing method, electronic device and computer readable storage method for deduplication of a training dataset | |
CN115100541B (zh) | 一种卫星遥感数据的处理方法、系统及云平台 | |
CN115984977A (zh) | 活体检测方法和系统 | |
CN109784226B (zh) | 人脸抓拍方法及相关装置 | |
CN114996484A (zh) | 数据检索方法和装置、数据处理方法和装置、设备及介质 | |
CN114662688A (zh) | 模型的训练方法、数据处理方法、装置、电子设备及介质 | |
US9361540B2 (en) | Fast image processing for recognition objectives system | |
CN113140042A (zh) | 三维扫描拼接方法、装置、电子装置和计算机设备 | |
CN113066038A (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 |