CN111311599B - 图像处理方法、装置、电子设备和存储介质 - Google Patents

图像处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111311599B
CN111311599B CN202010053570.2A CN202010053570A CN111311599B CN 111311599 B CN111311599 B CN 111311599B CN 202010053570 A CN202010053570 A CN 202010053570A CN 111311599 B CN111311599 B CN 111311599B
Authority
CN
China
Prior art keywords
convolution
batch
target
sub
image
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
CN202010053570.2A
Other languages
English (en)
Other versions
CN111311599A (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.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology 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 Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202010053570.2A priority Critical patent/CN111311599B/zh
Publication of CN111311599A publication Critical patent/CN111311599A/zh
Application granted granted Critical
Publication of CN111311599B publication Critical patent/CN111311599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • 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
    • 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/4038Image mosaicing, e.g. composing plane images from plane sub-images

Landscapes

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

Abstract

本公开关于一种图像处理方法、装置、设备和存储介质,该方法包括:获取待处理的原批图像,根据神经网络的卷积核的图像处理配置信息,获取适应于原批图像的目标切分数和目标卷积算法,按照目标切分数将原批图像进行等份切分,得到多个子批图像,将多个子批图像依次输入到卷积核,以使得该卷积核利用目标卷积算法依次对多个子批图像进行卷积运算,得到对应于多个子批图像的多个子图像处理结果,依次将多个子图像处理结果进行拼接得到与原批图像对应的图像处理结果。本公开能够重复利用较小的内存空间依次对各子批图像进行快速的卷积运算,各子批图像运算完毕后进行拼接可得到与原批图像等价的结果,实现在较小的内存空间下确保图像处理效率的效果。

Description

图像处理方法、装置、电子设备和存储介质
技术领域
本公开涉及图像处理技术领域,尤其涉及一种图像处理方法、装置、电子设备和存储介质。
背景技术
随着信息处理技术的迅速发展,人工智能技术在如手机、电脑等电子设备上得到广泛应用,其中深度学习技术在多种业务场景当中的重要性也日益凸显。而随着深度学习模型结构越来越复杂以及应用场景越来越丰富,提高神经网络模型的图像处理速度正受到越来越多的关注。
传统技术所提供的图像处理方法,需要各卷积核在神经网络的构建阶段都遍历各种可行的卷积运算方法来对原批图像进行卷积运算,找出用时最短的最优卷积算法,在运行阶段当计算该卷积核时直接使用该算法对原批图像进行卷积运算得到相应的图像处理结果,然而这种技术所选择的最优卷积算法通常需要较大的内存开销,导致难以在有限的内存空间条件下保证图像处理效率。
发明内容
本公开提供一种图像处理方法、装置、电子设备和存储介质,以至少解决传统技术中难以在有限的内存空间条件下保证图像处理效率的技术问题。
本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种图像处理方法,包括:
获取待处理的原批图像;
根据神经网络的卷积核的图像处理配置信息,获取适应于所述原批图像的目标切分数和目标卷积算法;其中,所述图像处理配置信息是在所述神经网络的构建阶段得到的,记录有适应于所述原批图像的目标切分数和目标卷积算法;
按照所述目标切分数将所述原批图像进行等份切分,得到多个子批图像;
将所述多个子批图像依次输入所述卷积核,以使所述卷积核利用所述目标卷积算法依次对所述多个子批图像进行卷积运算,得到对应于所述多个子批图像的多个子图像处理结果;
将所述多个子图像处理结果依次进行拼接,得到所述原批图像对应的图像处理结果。
在一个实施例中,在所述根据神经网络的卷积核的图像处理配置信息,获取适应于所述原批图像的目标切分数和目标卷积算法之前,还包括:
在所述神经网络的构建阶段,分别按照多种切分数对所述原批图像进行等份切分,得到对应于所述多种切分数的多个测试子批图像组;各测试子批图像组分别包括按照相应切分数等份切分得到的多个测试子批图像;将所述测试子批图像组输入所述卷积核,以使所述卷积核通过多种卷积算法对所述测试子批图像组进行卷积运算;确定各卷积算法对应的卷积运算时间,将卷积运算时间最短的卷积算法设为所述测试子批图像组的候选卷积算法;基于与所述多个测试子批图像组对应的多个候选卷积算法,确定所述目标切分数和目标卷积算法。
在一个实施例中,所述基于与所述多个测试子批图像组对应的多个候选卷积算法,确定所述目标切分数和目标卷积算法,包括:
根据与所述多个候选卷积算法对应的多个卷积运算时间,采用动态规划算法从所述多种切分数中确定所述目标切分数,并将与所述目标切分数对应的候选卷积算法设为所述目标卷积算法。
在一个实施例中,在所述分别按照多种切分数对所述原批图像进行等份切分,得到对应于所述多种切分数的多个测试子批图像组之前,还包括:
确定所述原批图像的批数;根据所述批数设置所述多种切分数。
在一个实施例中,在所述根据神经网络的卷积核的图像处理配置信息,获取适应于所述原批图像的目标切分数和目标卷积算法之前,还包括:
在所述神经网络的构建阶段,根据所述目标切分数以及与所述目标切分数对应的目标卷积算法,生成所述卷积核的图像处理配置信息;所述图像处理配置信息,用于所述卷积核在所述神经网络的运行阶段对所述原批图像进行卷积运算处理。
根据本公开实施例的第二方面,提供一种图像处理装置,包括:
第一获取模块,用于获取待处理的原批图像;
第二获取模块,用于根据神经网络的卷积核的图像处理配置信息,获取适应于所述原批图像的目标切分数和目标卷积算法;其中,所述图像处理配置信息是在所述神经网络的构建阶段得到的,记录有适应于所述原批图像的目标切分数和目标卷积算法;
切分模块,用于按照所述目标切分数将所述原批图像进行等份切分,得到多个子批图像;
运算模块,用于将所述多个子批图像依次输入所述卷积核,以使所述卷积核利用所述目标卷积算法依次对所述多个子批图像进行卷积运算,得到对应于所述多个子批图像的多个子图像处理结果;
拼接模块,用于将所述多个子图像处理结果依次进行拼接,得到所述原批图像对应的图像处理结果。
在一个实施例中,所述装置还包括:
子图像获取单元,用于在所述神经网络的构建阶段,分别按照多种切分数对所述原批图像进行等份切分,得到对应于所述多种切分数的多个测试子批图像组;各测试子批图像组分别包括按照相应切分数等份切分得到的多个测试子批图像;
卷积运算单元,用于将所述测试子批图像组输入所述卷积核,以使所述卷积核通过多种卷积算法对所述测试子批图像组进行卷积运算;
第一确定单元,用于确定各卷积算法对应的卷积运算时间,将卷积运算时间最短的卷积算法设为所述测试子批图像组的候选卷积算法;
第二确定单元,用于基于与所述多个测试子批图像组对应的多个候选卷积算法,确定所述目标切分数和目标卷积算法。
在一个实施例中,第二确定单元,进一步用于根据与所述多个候选卷积算法对应的多个卷积运算时间,采用动态规划算法从所述多种切分数中确定所述目标切分数,并将与所述目标切分数对应的候选卷积算法设为所述目标卷积算法。
在一个实施例中,所述装置还包括:
批数确定单元,用于确定所述原批图像的批数;
切分数设置单元,用于根据所述批数设置所述多种切分数。
在一个实施例中,所述装置还包括:配置信息生成单元,用于在所述神经网络的构建阶段,根据所述目标切分数以及与所述目标切分数对应的目标卷积算法,生成所述卷积核的图像处理配置信息;所述图像处理配置信息,用于所述卷积核在所述神经网络的运行阶段对所述原批图像进行卷积运算处理。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上所述的图像处理方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上所述的图像处理方法。
本公开的实施例提供的技术方案至少带来以下有益效果:获取待处理的原批图像,根据神经网络的卷积核的图像处理配置信息,获取适应于该原批图像的目标切分数和目标卷积算法,然后按照目标切分数将该原批图像进行等份切分,得到多个子批图像,接着将多个子批图像依次输入到上述卷积核,以使得该卷积核利用目标卷积算法依次对多个子批图像进行卷积运算,得到对应于多个子批图像的多个子图像处理结果,最后依次将多个子图像处理结果进行拼接,得到与原批图像对应的图像处理结果。该方案能够按照目标切分数将数据量较大的原批图像等份切分为多个子批图像,从而使得卷积核能够通过速度最优的目标卷积算法,重复利用较小的内存空间依次对各子批图像进行快速的卷积运算,由于各子批图像之间相互独立,这样在各子批图像运算完毕后进行拼接即可得到与原批图像等价的结果,实现在较小的内存空间下确保图像处理效率的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种图像处理方法的流程图。
图2是根据一示例性实施例示出的一种神经网络的卷积运算原理示意图。
图3是根据一示例性实施例示出的一种确定候选卷积算法的实现流程图。
图4是根据一示例性实施例示出的一种基于动态规划算法确定目标切分数和目标卷积算法的实现流程图。
图5是根据一示例性实施例示出的一种图像处理方法的流程图。
图6是根据一示例性实施例示出的一种图像处理装置的框图。
图7是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在一个实施例中,提供了一种图像处理方法,如图1所示,图1是根据一示例性实施例示出的一种图像处理方法的流程图,该图像处理方法可以基于如手机、个人电脑等电子设备实现,该方法主要包括以下步骤:
步骤S101,获取待处理的原批图像。
本步骤中,待处理的原批图像可以理解为待处理的多张图像,以多张图像为例进行说明,图像的数量即为该原批图像的批数,图像的数量越多,原批图像的批数越多,例如可以将一定数量的视频图像序列作为待处理的原批图像。
步骤S102,根据神经网络的卷积核的图像处理配置信息,获取适应于原批图像的目标切分数和目标卷积算法;其中,该图像处理配置信息是在神经网络的构建阶段得到的,记录有适应于原批图像的目标切分数和目标卷积算法。
本步骤,神经网络的计算过程一般包括神经网络的构建阶段和运行阶段,而构建阶段是指该神经网络架构第一次计算网络的阶段,在该神经网络的构建阶段,可以获取得到该神经网络的卷积核的卷积运算配置信息,该卷积运算配置信息记录有包括适应于该卷积核的目标切分数和目标卷积算法。其中,神经网络可以包括多个卷积核,各卷积核可对原批图像处理进行处理。举例来说,神经网络可以包括卷积核1和卷积核2,如果需要将原批图像输入到卷积核1进行处理,则卷积核1为当前卷积核,在该当前卷积核的卷积运算配置信息当中,包括有适应于原批图像的目标切分数和目标卷积算法,其中,目标切分数用于对原批图像进行等份切分,而目标卷积算法是指在该目标切分数条件下,该卷积核对切分后的原批图像进行卷积运算时,运算速度最快的卷积算法,在目标切分数及其对应的目标卷积算法是在该神经网络的构建过程中确定的。
步骤S103,按照目标切分数将原批图像进行等份切分,得到多个子批图像。
本步骤主要是可以按照卷积核的卷积运算配置信息中记录的目标切分数对原批图像进行等份切分,得到多个子批图像。以多张图像为例进行说明,图像的数量即为该原批图像的批数,图像的数量越多,原批图像的批数越多,本步骤可以按照一定的切分数对原批图像进行等份切分,设图像的数量为128,则如果切分数设为64,则切分得到两个子批图像,批数均为64,如果切分数设为32,则切分得到四个子批图像,批数均为32。
本步骤按照目标切分数对原批图像进行等分划分得到多个子批图像,相比于原批图像,各子批图像的数据量相对较小,因此在对各子批图像进行卷积运算时,所占用的内容空间也相对较小,这样就能够在内存空间较小的情况下将原批图像进行分批运算,让每个子批图像重复使用该较小的内存空间进行卷积运算。
步骤S104,将多个子批图像依次输入卷积核,以使卷积核利用目标卷积算法依次对多个子批图像进行卷积运算,得到对应于多个子批图像的多个子图像处理结果。
本步骤可以在神经网络的运行阶段,将划分得到的多个子批图像依次输入到卷积核进行卷积运算,而卷积核所采用的卷积运算方法是卷积运算配置信息中记录的目标卷积算法,该目标卷积算法是该卷积核在上述目标切分数条件下,对切分后的原批图像进行卷积运算时,运算速度最快的卷积算法。举例来说,设图像的数量为128,目标切分数设为64,则切分得到两个子批图像,批数均为64,其中,常见的卷积算法可以包括:GEMM(GeneralMatrix Multiplication,通用矩阵乘法规则)算法、FFT(Fast Fourier Transform,快速傅立叶变换)算法和WINOGRAD(Coppersmith–Winograd algorithm,矩阵相乘算法)算法,设目标算法为WINOGRAD算法,则本步骤将WINOGRAD算法应用于该卷积核,以使得该卷积核通过该WINOGRAD算法依次对两个子批图像进行卷积运算,即申请内存空间L,利用该内存空间L先对其中一个批数为64的子批图像进行卷积运算,然后再利用该同一内存空间L对另一个批数为64的子批图像进行卷积运算,从而得到对应于各子批图像的多个子图像处理结果。
步骤S105,将多个子图像处理结果依次进行拼接,得到原批图像对应的图像处理结果。
由于原批图像内部的各图像相互独立,则将两个子批图像的卷积运算结果进行依次拼接,即可得到与原批图像计算等价的结果。由此可见,通过该方案,能够实现在有限的内存空间下,采用速度最优的卷积运算方法对划分的子批图像进行卷积运算,原批图像总体的卷积运算速度得到了提升。
下面结合图2对本实施例的图像处理方法进行说明,图2是根据一示例性实施例示出的一种神经网络的卷积运算原理示意图,其中,conv1和conv2分别表示神经网络的卷积核1和卷积核2,该卷积核1和卷积核2在神经网络当中按照时间顺序(Time)布置,则图像数据可以先经过卷积核1进行运算,再经由卷积核2运算。在传统技术当中,可以基于cuDNN数据库(NVIDIADeep Neural Network library,一种对深度神经网络进行GPU加速计算的计算库),该cuDNN数据库支持多种标准计算如前向/反向卷积、池化和归一化等卷积算法,如下表1所示为cuDNN数据库所支持的前向卷积算法:
表1
如图2所示,神经网络中,卷积核1需要计算的原批图像的批数为128,卷积核2需要计算的原批图像的批数也为128,传统技术通常会为卷积核1和卷积核2分别配置最优卷积算法,以使得卷积核1以及卷积核2对相应的整批原批图像进行处理时运算速度最快,然而考虑到当对某卷积核(卷积核1和/或卷积核2)最快的算法是WINOGRAD算法,其所需内存空间为N,当前可用内存空间为M,如果N>M,则传统方法会认为当前内存空间不足以使用WINOGRAD算法,从而选择GEMM算法导致对原批图像进行卷积运算的速度变慢。而在本公开实施例当中,设在构建阶段获取得到的卷积核1对原批图像的目标切分数为64时,使用算法S1具有最快的卷积运算速度,卷积核1对原批图像的目标切分数为32时,使用算法S2具有最快的速度,则在神经网络的运行阶段,使用该配置,将相应的原批图像切分成等份的多个子批图像,再将对应的最快卷积算法应用到卷积核1、卷积核2当中对相应的多个子批图像进行卷积运算,即将数据量较大的原批图像等份切分为数据量较小的多个子批图像,可以在有限内存空间下使用最快的卷积运算方法,而每个子批图像可以重复利用同一内存空间,依次串行计算,即相当于所有的子批图像都使用了最快的卷积运算方法,总用时被缩短,实现了速度的优化。
本公开上述实施例,获取待处理的原批图像,根据神经网络的卷积核的图像处理配置信息,获取适应于该原批图像的目标切分数和目标卷积算法,然后按照目标切分数将该原批图像进行等份切分,得到多个子批图像,接着将多个子批图像依次输入到上述卷积核,以使得该卷积核利用目标卷积算法依次对多个子批图像进行卷积运算,得到对应于多个子批图像的多个子图像处理结果,最后依次将多个子图像处理结果进行拼接,得到与原批图像对应的图像处理结果。该方案能够按照目标切分数将数据量较大的原批图像等份切分为多个子批图像,从而使得卷积核能够通过速度最优的目标卷积算法,重复利用较小的内存空间依次对各子批图像进行快速的卷积运算,由于各子批图像之间相互独立,这样在各子批图像运算完毕后进行拼接即可得到与原批图像等价的结果,实现在较小的内存空间下确保图像处理效率的效果。
在一个实施例中,可以通过如下方式确定目标切分数和目标卷积算法,在上述步骤S102中的根据神经网络的卷积核的图像处理配置信息,获取适应于原批图像的目标切分数和目标卷积算法之前,还可以包括如下步骤:
在神经网络的构建阶段,分别按照多种切分数对原批图像进行等份切分,得到对应于多种切分数的多个测试子批图像组;各测试子批图像组分别包括按照相应切分数等份切分得到的多个测试子批图像;将测试子批图像组输入卷积核,以使卷积核通过多种卷积算法对测试子批图像组进行卷积运算;确定各卷积算法对应的卷积运算时间,将卷积运算时间最短的卷积算法设为测试子批图像组的候选卷积算法;基于与多个测试子批图像组对应的多个候选卷积算法,确定目标切分数和目标卷积算法。
本实施例主要是在神经网络的构建阶段,确定出卷积核对原批图像的目标切分数和目标卷积算法,以便在神经网络的运行阶段,卷积核可以直接利用该目标卷积算法对按照目标切分数进行等份切分后的子批图像进行卷积运算。
本实施例中,在神经网络的构建阶段,首先按照多种不同的切分数对原批图像进行等份切分处理,而切分数不同,对原批图像进行等份切分处理后,相应得到多个测试子批图像组。在一些可能的实施方式当中,可以先确定原批图像的批数,再根据该原批图像的批数设置该多种不同的切分数。例如,原批图像的批数为B,则可以根据该批数B确定一切分数选择区间1至B,进而可以在该区间从小到大依次选择多个整数作为该多种不同的切分数对原批图像进行等份切分。
由于切分得到的各测试子批图像组分别对应于上述多种不同的切分数,各测试子批图像组当中分别包括有按照相应切分数等份切分得到的多个测试子批图像。接着,将测试子批图像组输入卷积核进行运算,在对该测试子批图像组进行运算时,卷积核会遍历各种不同的卷积算法对每一个测试子批图像组进行卷积运算,由此,对于每一个测试子批图像组来说,都可以得到各种卷积算法所对应的卷积运算时间,进而将卷积运算时间最短的卷积算法,设为该测试子批图像组的候选卷积算法,由于测试子批图像组的数量为多个,相应的,可以得到与多个测试子批图像组对应的多个候选卷积算法,最后基于该多个候选卷积算法确定出该卷积核的目标切分数和目标卷积算法,例如可以从多个候选卷积算法当中挑选出卷积运算时间最短的候选卷积算法作为目标卷积算法,而由于一个候选卷积算法对应一个切分数,因此在得到目标卷积算法后可以将与其对应的切分数作为目标切分数。
其中,如图3所示,图3是根据一示例性实施例示出的一种确定候选卷积算法的实现流程图,基于如图3所示的运算流程,可以求出卷积核在不同切分数下所对应的最优卷积算法配置及其卷积运算时间,该流程主要是这一步遍历切分数b,从最小切分数1到原批图像的批数B的所有可选的切分数b,对每一个切分数b遍历所有的卷积算法,找出卷积运算时间最短的最优卷积算法,从而记录这个配置信息c(b)与其最优时间Ta(b)。其中,ALGO为如cuDNN等卷积算法库提供的卷积算法集合,T表示卷积运算时间,Ta表示在当前已知最快的卷积算法下的运行时间,c(b)表示在切分数b下的卷积运算配置信息,包含了最快的卷积算法与切分数b的数值。
在一个实施例中,进一步的,可以采用动态规划算法从多个候选卷积算法中确定出目标卷积算法及其对应的目标切分数,上述基于与多个测试子批图像组对应的多个候选卷积算法,确定目标切分数和目标卷积算法,具体可以包括如下步骤:
根据与多个候选卷积算法对应的多个卷积运算时间,采用动态规划算法从多种切分数中确定目标切分数,并将与目标切分数对应的候选卷积算法设为目标卷积算法。
本实施例可以通过动态规划的过程,实现将原批图像按照目标切分数切分成多个子批图像,将该目标切分数及其对应的最优卷积算法,被放在卷积核的卷积配置信息c(B)中,在神经网络的运行阶段调取这个卷积配置信息进行卷积运算。图4示出了本实施例中的动态规划过程,具体的,不同的切分数b从1逐渐增大到原批图像的批数B,假设当前分析切分数b=2,在该切分数2情况之下,有切分(1,1)与不切分(2)两种情况,判断对比采用相应的候选卷积算法计算切分(1,1)情况下的卷积运算用时是否大于不切分直接情况下的卷积运算用时,如果切分(1,1)的总用时短,则进入下一次迭代即切分数b=3,在该切分数3情况之下,有两种切分方式,即切分(1+1,1)与不切分(3),如果切分(1+1,1)的速度比不切分(3)慢,则将不切分(3)代入下一次迭代即切分数b=4,在该切分数4情况之下,有两种切分方式切分(3,1)与不切分(4),以此类推,最终可以得到最优的目标切分数及其对应的目标卷积算法,实现基于动态规划确定出应该切分的目标切分数及其对应的目标卷积算法,共同构成卷积核对原批图像进行卷积运算的最优配置。
进一步的,在一些实施例当中,在步骤S102中的根据神经网络的卷积核的图像处理配置信息,获取适应于原批图像的目标切分数和目标卷积算法之前,还可以包括如下步骤:
在神经网络的构建阶段,根据目标切分数以及与目标切分数对应的目标卷积算法,生成卷积核的图像处理配置信息;其中,该图像处理配置信息,可以用于卷积核在神经网络的运行阶段对原批图像进行卷积运算处理。
本实施例主要是在神经网络的构建阶段,在确定出卷积核的目标切分数及其对应的目标卷积算法后,可以将该目标切分数及其对应的目标卷积算法作为卷积核的卷积运算配置信息,这样,在卷积核需要对原批图像进行卷积运算时,能够及时获取该卷积运算配置信息,提取其中的目标切分数和目标卷积算法,对原批图像进行等份切分,采用相应的目标卷积算法对切分后的各子批图像进行卷积运算。
在一个实施例中,提供了一种图像处理方法,如图5所示,图5是根据一示例性实施例示出的一种图像处理方法的流程图,该方法可以包括如下步骤:
步骤S501,获取待处理的原批图像;
步骤S502,在神经网络的构建阶段,分别按照多种切分数对原批图像进行等份切分,得到对应于多种切分数的多个测试子批图像组;
步骤S503,将测试子批图像组输入卷积核,以使卷积核通过多种卷积算法对测试子批图像组进行卷积运算;
步骤S504,确定各卷积算法对应的卷积运算时间,将卷积运算时间最短的卷积算法设为测试子批图像组的候选卷积算法;
步骤S505,根据与多个候选卷积算法对应的多个卷积运算时间,采用动态规划算法从多种切分数中确定目标切分数,并将与目标切分数对应的候选卷积算法设为目标卷积算法;
步骤S506,根据目标切分数以及与目标切分数对应的目标卷积算法,生成卷积核的图像处理配置信息;
步骤S507,在神经网络的运行阶段,获取神经网络的卷积核的图像处理配置信息,根据该图像处理配置信息获取适应于原批图像的目标切分数和目标卷积算法;
步骤S508,按照目标切分数将原批图像进行等份切分,得到多个子批图像;
步骤S509,将多个子批图像依次输入卷积核,以使卷积核利用目标卷积算法依次对多个子批图像进行卷积运算,得到对应于多个子批图像的多个子图像处理结果;
步骤S510,将多个子图像处理结果依次进行拼接,得到原批图像对应的图像处理结果。
本公开实施例,在较小的内存空间下使用更快的卷积算法,更好的使用如cuDNN等卷积算法库达到更快的计算速度,测试数据表明本公开实施例,相比于传统的cuDNN使用策略,对于一般卷积在较小内存空间下实现了1.5到2倍的加速,特别地对于3×3与5×5卷积,在较小内存空间下实现了3到4倍的加速。其中,在测试环境为:显卡TitanXP,CUDA9.0和cuDNN7.0.5之下,测试数据显示:
对于维度为(256,64,27,27)的原批图像,其中,该原批图像的维度格式为NCHW,N代表批个数,C代表通道数,H代表高,W代表宽,在这里256代表256个数据,64代表每个数据有64个通道,第一个27代表高,第二个27代表宽;在利用维度为(192,64,5,5)的卷积核进行卷积计算时,当使用最快的WINOGRAD算法时,耗时是3.58ms,所需内存335MB;当使用GEMM算法时,耗时是11.59ms,所需内存只有4.3KB;使用本公开实施例提供的方案,将原批图像切分为8个维度为(32,64,27,27)的子批图像依次进行卷积运算,总耗时为3.56ms,所需内存55MB。可见,本公开实施例所需内存小于WINOGRAD算法所需内存,是因为将该原批图像进行了等份切分,对每一份数据进行WINOGRAD算法所需的内存为55MB,符合可用空间64MB的限制,则每一份数据都重复使用该55MB空间进行WINOGRAD,用时为所有等份数据的用时总和。
本公开实施例可以应用于卷积神经网络中对图像进行处理,其中,卷积神经网络是深度神经网络的一类,主要应用于视觉图像分析,而卷积神经网络使用多层感知机作为基础结构,通过前向计算与误差的反向传导对每一层卷积核进行迭代更新,达到提取视觉特征的目的。由此,卷积神经网络当中通常包括多个卷积核,可以首先确定输入到各卷积核的原批图像,然后基于如上任一项实施例提供的图像处理方法,获取各卷积核的卷积运算配置信息,包括相应卷积核的目标切分数和目标卷积算法,然后在神经网络的运行阶段,按照相应卷积核的目标切分数将原批图像进行等份切分,得到相应的多个子批图像,将各子批图像依次输入相应的卷积核,以使该卷积核利用目标卷积算法依次对多个子批图像进行卷积运算,得到对应于多个子批图像的多个子图像处理结果,最后将相应卷积核处理得到的多个子图像处理结果依次进行拼接,即可得到原批图像对应的图像处理结果,从而使得卷积神经网络的运算在较小的内存空间中取得最快的运算效率,提高了卷积神经网络对图像处理的效率。
无论是对于神经网络的训练还是推理应用,卷积运算的数据量都在越来越大,这体现在批的数字变大,例如128和256等等。随着数据量逐渐变大,显卡的可用的存储空间就成为瓶颈,因此难以支持大数据的FFT/WINOGRAD算法,而本公开的方案解决了这个问题,提供了一种更科学利用显存空间的方法,找出每个卷积核最优的卷积运算方式,对需要使用卷积运算的各种深度学习应用场景都有帮助,提高卷积运算速度,特别是对于大数据量的深度学习任务,提速效果更好。
在一个实施例中,提供了一种图像处理装置,如图6所示,图6是根据一示例性实施例示出的一种图像处理装置的框图,该图像处理装置可以包括:
第一获取模块601,用于获取待处理的原批图像;
第二获取模块602,用于根据神经网络的卷积核的图像处理配置信息,获取适应于原批图像的目标切分数和目标卷积算法;其中,图像处理配置信息是在神经网络的构建阶段得到的,记录有适应于原批图像的目标切分数和目标卷积算法;
切分模块603,用于按照目标切分数将原批图像进行等份切分,得到多个子批图像;
运算模块604,用于将多个子批图像依次输入卷积核,以使卷积核利用目标卷积算法依次对多个子批图像进行卷积运算,得到对应于多个子批图像的多个子图像处理结果;
拼接模块605,用于将多个子图像处理结果依次进行拼接,得到原批图像对应的图像处理结果。
在一个实施例中,上述装置还可以包括:
子图像获取单元,用于在神经网络的构建阶段,分别按照多种切分数对原批图像进行等份切分,得到对应于多种切分数的多个测试子批图像组;各测试子批图像组分别包括按照相应切分数等份切分得到的多个测试子批图像;
卷积运算单元,用于将测试子批图像组输入卷积核,以使卷积核通过多种卷积算法对测试子批图像组进行卷积运算;
第一确定单元,用于确定各卷积算法对应的卷积运算时间,将卷积运算时间最短的卷积算法设为测试子批图像组的候选卷积算法;
第二确定单元,用于基于与多个测试子批图像组对应的多个候选卷积算法,确定目标切分数和目标卷积算法。
在一个实施例中,第二确定单元,进一步用于根据与多个候选卷积算法对应的多个卷积运算时间,采用动态规划算法从多种切分数中确定目标切分数,并将与目标切分数对应的候选卷积算法设为目标卷积算法。
在一个实施例中,上述装置还可以包括:
批数确定单元,用于确定原批图像的批数;
切分数设置单元,用于根据批数设置多种切分数。
在一个实施例中,上述装置还可以包括:
配置信息生成单元,用于在神经网络的构建阶段,根据目标切分数以及与目标切分数对应的目标卷积算法,生成卷积核的图像处理配置信息;图像处理配置信息,用于卷积核在神经网络的运行阶段对原批图像进行卷积运算处理。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在一个实施例中,提供了一种电子设备,其内部结构图可以如图7所示,图7是根据一示例性实施例示出的一种电子设备的框图。该电子设备包括通过系统总线连接的处理器和存储器。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机程序被处理器执行时以实现一种图像处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本公开的方案相关的部分结构的框图,并不构成对本公开的方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种电子设备,包括处理器,用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上任一项实施例所述的图像处理方法。
本领域普通技术人员可以理解实现如上任一项实施例所述方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
据此,在一个实施例中还提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上任一项实施例所述的图像处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (10)

1.一种图像处理方法,其特征在于,包括:
获取待处理的原批图像;
根据神经网络的卷积核的图像处理配置信息,获取适应于所述原批图像的目标切分数和目标卷积算法;其中,所述图像处理配置信息是在所述神经网络的构建阶段得到的,记录有适应于所述原批图像的目标切分数和目标卷积算法;所述目标卷积算法与所述目标切分数相对应;
按照所述目标切分数将所述原批图像进行等份切分,得到多个子批图像;
将所述多个子批图像依次输入所述卷积核,以使所述卷积核利用所述目标卷积算法依次对所述多个子批图像进行卷积运算,得到对应于所述多个子批图像的多个子图像处理结果;
将所述多个子图像处理结果依次进行拼接,得到所述原批图像对应的图像处理结果;
还包括:
分别按照多种切分数对所述原批图像进行等份切分,得到对应于所述多种切分数的多个测试子批图像组;各测试子批图像组分别包括按照相应切分数等份切分的多个测试子批图像;
将测试子批图像组输入卷积核,以使卷积核通过多种卷积算法对测试子批图像组进行卷积运算;
将各卷积算法中卷积运算时间最短的卷积算法设为测试子批图像组的候选卷积算法;
基于与多个测试子批图像组对应的多个候选卷积算法,确定所述目标切分数和目标卷积算法。
2.根据权利要求1所述的方法,其特征在于,所述基于与多个测试子批图像组对应的多个候选卷积算法,确定所述目标切分数和目标卷积算法,包括:
根据与所述多个候选卷积算法对应的多个卷积运算时间,采用动态规划算法从所述多种切分数中确定所述目标切分数,并将与所述目标切分数对应的候选卷积算法设为所述目标卷积算法。
3.根据权利要求1所述的方法,其特征在于,在所述分别按照多种切分数对所述原批图像进行等份切分,得到对应于所述多种切分数的多个测试子批图像组之前,还包括:
确定所述原批图像的批数;
根据所述批数设置所述多种切分数。
4.根据权利要求1至3任一项所述的方法,其特征在于,在所述根据神经网络的卷积核的图像处理配置信息,获取适应于所述原批图像的目标切分数和目标卷积算法之前,还包括:
在所述神经网络的构建阶段,根据所述目标切分数以及与所述目标切分数对应的目标卷积算法,生成所述卷积核的图像处理配置信息;所述图像处理配置信息,用于所述卷积核在所述神经网络的运行阶段对所述原批图像进行卷积运算处理。
5.一种图像处理装置,其特征在于,包括:
第一获取模块,用于获取待处理的原批图像;
第二获取模块,用于根据神经网络的卷积核的图像处理配置信息,获取适应于所述原批图像的目标切分数和目标卷积算法;其中,所述图像处理配置信息是在所述神经网络的构建阶段得到的,记录有适应于所述原批图像的目标切分数和目标卷积算法;所述目标卷积算法与所述目标切分数相对应;
切分模块,用于按照所述目标切分数将所述原批图像进行等份切分,得到多个子批图像;
运算模块,用于将所述多个子批图像依次输入所述卷积核,以使所述卷积核利用所述目标卷积算法依次对所述多个子批图像进行卷积运算,得到对应于所述多个子批图像的多个子图像处理结果;
拼接模块,用于将所述多个子图像处理结果依次进行拼接,得到所述原批图像对应的图像处理结果;
所述装置还包括:
子图像获取单元,用于分别按照多种切分数对所述原批图像进行等份切分,得到对应于所述多种切分数的多个测试子批图像组;各测试子批图像组分别包括按照相应切分数等份切分的多个测试子批图像;
卷积运算单元,用于将测试子批图像组输入卷积核,以使卷积核通过多种卷积算法对测试子批图像组进行卷积运算;
第一确定单元,用于将各卷积算法中卷积运算时间最短的卷积算法设为测试子批图像组的候选卷积算法;
第二确定单元,用于基于与多个测试子批图像组对应的多个候选卷积算法,确定所述目标切分数和目标卷积算法。
6.根据权利要求5所述的装置,其特征在于,第二确定单元,进一步用于根据与所述多个候选卷积算法对应的多个卷积运算时间,采用动态规划算法从所述多种切分数中确定所述目标切分数,并将与所述目标切分数对应的候选卷积算法设为所述目标卷积算法。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
批数确定单元,用于确定所述原批图像的批数;
切分数设置单元,用于根据所述批数设置所述多种切分数。
8.根据权利要求5至7任一项所述的装置,其特征在于,所述装置还包括:
配置信息生成单元,用于在所述神经网络的构建阶段,根据所述目标切分数以及与所述目标切分数对应的目标卷积算法,生成所述卷积核的图像处理配置信息;所述图像处理配置信息,用于所述卷积核在所述神经网络的运行阶段对所述原批图像进行卷积运算处理。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至4中任一项所述的方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至4中任一项所述的方法。
CN202010053570.2A 2020-01-17 2020-01-17 图像处理方法、装置、电子设备和存储介质 Active CN111311599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010053570.2A CN111311599B (zh) 2020-01-17 2020-01-17 图像处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010053570.2A CN111311599B (zh) 2020-01-17 2020-01-17 图像处理方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111311599A CN111311599A (zh) 2020-06-19
CN111311599B true CN111311599B (zh) 2024-03-26

Family

ID=71146790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010053570.2A Active CN111311599B (zh) 2020-01-17 2020-01-17 图像处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111311599B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767928B (zh) * 2020-06-28 2023-08-08 中国矿业大学 基于卷积神经网络提取图像特征信息的方法及装置
CN111951269B (zh) 2020-10-16 2021-01-05 深圳云天励飞技术股份有限公司 图像处理方法及相关设备
CN113485836B (zh) * 2021-07-21 2024-03-19 瀚博半导体(上海)有限公司 一种基于张量切分的张量处理方法和张量处理系统
CN116629308A (zh) * 2023-07-24 2023-08-22 科大讯飞股份有限公司 一种神经网络模型的推理方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708798A (zh) * 2015-11-16 2017-05-24 阿里巴巴集团控股有限公司 一种字符串切分方法及装置
CN108320019A (zh) * 2018-02-06 2018-07-24 澎峰(北京)科技有限公司 用于深度卷积神经网络的卷积计算方法及装置
CN109086705A (zh) * 2018-07-23 2018-12-25 北京旷视科技有限公司 图像处理方法、装置、电子设备及储存介质
CN110175506A (zh) * 2019-04-08 2019-08-27 复旦大学 基于并行降维卷积神经网络的行人重识别方法及装置
CN110245140A (zh) * 2019-06-12 2019-09-17 同盾控股有限公司 数据分箱处理方法及装置、电子设备和计算机可读介质
CN110473137A (zh) * 2019-04-24 2019-11-19 华为技术有限公司 图像处理方法和装置
CN110555847A (zh) * 2019-07-31 2019-12-10 瀚博半导体(上海)有限公司 一种基于卷积神经网络的图像处理方法及装置
CN110633785A (zh) * 2018-06-21 2019-12-31 清华大学 一种卷积神经网络的计算方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255547B2 (en) * 2014-12-04 2019-04-09 Nvidia Corporation Indirectly accessing sample data to perform multi-convolution operations in a parallel processing system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708798A (zh) * 2015-11-16 2017-05-24 阿里巴巴集团控股有限公司 一种字符串切分方法及装置
CN108320019A (zh) * 2018-02-06 2018-07-24 澎峰(北京)科技有限公司 用于深度卷积神经网络的卷积计算方法及装置
CN110633785A (zh) * 2018-06-21 2019-12-31 清华大学 一种卷积神经网络的计算方法及系统
CN109086705A (zh) * 2018-07-23 2018-12-25 北京旷视科技有限公司 图像处理方法、装置、电子设备及储存介质
CN110175506A (zh) * 2019-04-08 2019-08-27 复旦大学 基于并行降维卷积神经网络的行人重识别方法及装置
CN110473137A (zh) * 2019-04-24 2019-11-19 华为技术有限公司 图像处理方法和装置
CN110245140A (zh) * 2019-06-12 2019-09-17 同盾控股有限公司 数据分箱处理方法及装置、电子设备和计算机可读介质
CN110555847A (zh) * 2019-07-31 2019-12-10 瀚博半导体(上海)有限公司 一种基于卷积神经网络的图像处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张雨丰 ; 郑忠龙 ; 刘华文 ; 向道红 ; 何小卫 ; 李知菲 ; 何依然 ; KHODJA Abd Erraouf ; .基于特征图切分的轻量级卷积神经网络.模式识别与人工智能.2019,(第03期),全文. *

Also Published As

Publication number Publication date
CN111311599A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
CN111311599B (zh) 图像处理方法、装置、电子设备和存储介质
US20200285887A1 (en) Neural network method and apparatus
CN109343845A (zh) 一种代码文件生成方法和装置
US20220083857A1 (en) Convolutional neural network operation method and device
CN113919477A (zh) 一种卷积神经网络的加速方法及装置
CN111709415B (zh) 目标检测方法、装置、计算机设备和存储介质
CN113989169A (zh) 一种膨胀卷积加速计算方法及装置
DE102021107510A1 (de) Training eines neuronalen netzwerks unter speicherbeschränkung
CN112148276A (zh) 用于深度学习的可视化编程
DE112020006070T5 (de) Hardwarebeschleuniger mit rekonfigurierbarem befehlssatz
CN113869495A (zh) 神经网络卷积权重layout优化的方法、装置、设备及可读介质
CN117688984A (zh) 神经网络结构搜索方法、装置及存储介质
US20220067495A1 (en) Intelligent processor, data processing method and storage medium
CN118095205A (zh) 版式文件的信息提取方法、装置、设备及存储介质
CN117332766A (zh) 流程图生成方法、装置、计算机设备和存储介质
CN114494006A (zh) 图像重建模型的训练方法、装置、电子设备及存储介质
CN116957006A (zh) 预测模型的训练方法、装置、设备、介质及程序产品
CN113743448B (zh) 模型训练数据获取方法、模型训练方法和装置
CN116128044A (zh) 一种模型剪枝方法、图像处理方法及相关装置
CN113033894B (zh) 日用电量预测方法、装置、计算机设备和存储介质
KR102372869B1 (ko) 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법
CN113608724A (zh) 一种基于模型缓存实现的离线仓库实时交互方法与系统
CN110929623A (zh) 多媒体文件的识别方法、装置、服务器和存储介质
CN111062477A (zh) 一种数据处理方法、装置及存储介质
CN115456858B (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