CN111445420B - 卷积神经网络的图像运算方法、装置和电子设备 - Google Patents
卷积神经网络的图像运算方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111445420B CN111445420B CN202010276826.6A CN202010276826A CN111445420B CN 111445420 B CN111445420 B CN 111445420B CN 202010276826 A CN202010276826 A CN 202010276826A CN 111445420 B CN111445420 B CN 111445420B
- Authority
- CN
- China
- Prior art keywords
- pooling
- convolution
- feature matrix
- layer
- 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
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 137
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000011176 pooling Methods 0.000 claims abstract description 270
- 239000011159 matrix material Substances 0.000 claims abstract description 187
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 238000013528 artificial neural network Methods 0.000 claims description 43
- 238000006073 displacement reaction Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/90—Dynamic range modification of images or parts thereof
- G06T5/94—Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (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)
- Image Analysis (AREA)
Abstract
本发明提供了一种卷积神经网络的图像运算方法、装置和电子设备,包括获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联;根据该运算参数,从待处理图像中采集图像块;针对每个图像块,通过该卷积神经网络计算其池化特征矩阵;根据每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。本发明根据电子设备的内部缓存,推导池化层输出的特征矩阵的尺度,进而设置与该卷积神经网络的网络参数相匹配的窗口尺度参数,使得根据该窗口尺度参数采集的图像块,通过卷积运算得到的卷积特征矩阵中不出现冗余数据,从而可以对卷积层输出的卷积结果直接进行池化计算,无需将其缓存至DDR,节约了内存资源和网络宽带。
Description
技术领域
本发明涉及图像处理技术领域,尤其是涉及一种卷积神经网络的图像运算方法、装置和电子设备。
背景技术
卷积神经网络包括输入层、隐藏层和输出层;其中,隐藏层又包括卷积层和池化层,该池化层也称为采样层。相关技术中,卷积神经网络加速器通常采用固定尺度的窗口采集图像块,然后通过卷积层对采集到的图像块进行卷积计算后,并将卷积结果缓存至DDR(Double Data Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器),再从DDR中获取卷积结果,通过池化层进行池化计算,输出池化结果。该方式中,由于图像块的采集窗口尺度固定,如果相对于某个卷积层的卷积计算,该采集窗口尺度过大,则采集的图像块会较大,存在冗余数据;并且,卷积层输出的卷积结果相对于后续的池化层,也可能会存在冗余数据。因此,需要采用上述将卷积结果缓存至DDR,再从DDR中读取卷积结果的方式解决冗余数据的问题。但是,在DDR中存取卷积结果的方式,会浪费大量的内存资源和网络带宽。
整体而言,现有的卷积神经网络运算方式会导致大量内存资源和网络带宽的浪费。
发明内容
有鉴于此,本发明的目的在于提供一种卷积神经网络的图像运算方法、装置和电子设备,可以减少内存资源的占用,并节约网络宽带。
第一方面,本发明实施例提供了一种卷积神经网络的图像运算方法,该方法应用于实现卷积神经网络运算的电子设备;该方法包括:获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联;根据该运算参数,从待处理图像中采集图像块;针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到该当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到当前图像块的池化特征矩阵;按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。
在本发明较佳的实施例中,上述获取预设的卷积神经网络的运算参数的步骤,包括:获取该电子设备的硬件参数;根据该硬件参数,确定预设的卷积神经网络的运算参数。
在本发明较佳的实施例中,上述根据该硬件参数,确定预设的卷积神经网络的运算参数的步骤,包括:根据该硬件参数,确定预设的卷积神经网络的约束条件;其中,该硬件参数包括该电子设备的内部缓存大小;该约束条件包括:该卷积神经网络中卷积层输出的卷积特征矩阵的最大尺度,或者,该卷积层输入的图像块的最大尺度;根据该约束条件,确定该卷积神经网络的运算参数。
在本发明较佳的实施例中,上述根据该约束条件,确定该卷积神经网络的运算参数的步骤,包括:如果该约束条件包括该卷积层输出的卷积特征矩阵的最大尺度,根据该卷积特征矩阵的最大尺度,确定该卷积层输入的图像块的最大尺度;根据该卷积层输入的图像块的最大尺度,确定该卷积神经网络中池化层输出的池化特征矩阵的尺度;根据该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数。
在本发明较佳的实施例中,上述根据该卷积特征矩阵的最大尺度,确定该卷积层输入的图像块的最大尺度的步骤,包括:通过下述公式,确定该卷积层输入的图像块的最大尺度:i_cov_width_valid_max=(o_cov_width_max-1)*cs_w+1;i_cov_height_valid_max=(o_cov_height_max-1)*cs_h+1;其中,i_cov_width_valid_max为该卷积层输入的图像块的最大宽度;i_cov_height_valid_max为该卷积层输入的图像块的最大高度;o_cov_width_max为该卷积层输出的卷积特征矩阵的最大宽度;o_cov_height_max为该卷积层输出的卷积特征矩阵的最大高度;cs_w为该卷积层的水平步长;cw_h为该卷积层的垂直步长。
在本发明较佳的实施例中,上述根据该卷积层输入的图像块的最大尺度,确定该卷积神经网络中池化层输出的池化特征矩阵的尺度的步骤,包括:通过下述公式,确定该卷积神经网络中池化层输出的池化特征矩阵的尺度:(pw_w+(pl_width-1)*ps_w-1)*cs_w+1=i_cov_width_valid_max;(pw_h+(pl_height-1)*ps_h-1)*cs_h+1=i_cov_height_valid max;其中,i_cov_width_valid_max为该卷积层输入的图像块的最大宽度;i_cov_height_valid_max为该卷积层输入的图像块的最大高度;cs_w为该卷积层的水平步长;cs_h为该卷积层的垂直步长;ps_w为该池化层的水平步长;ps_h为该池化层的垂直步长;pl_width为该池化层输出的池化特征矩阵的宽度;pl_height为该池化层输出的池化特征矩阵的高度;pw_w为该池化层的池化窗口宽度;pw_h为该池化层的池化窗口高度。
在本发明较佳的实施例中,上述根据该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数的步骤,包括:对该池化层输出的池化特征矩阵的尺度进行取整处理;根据取整后的该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数。
在本发明较佳的实施例中,上述根据取整后的该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数的步骤,包括:通过下述公式,计算该运算参数中,用于从待处理图像中采集图像块的窗口尺度:i_cov_width=(pw_w+(o_pl_width-1)*ps_w-1)*cs_w+cw_w;i_cov_height=(pw_h+(o_pl_height-1)*ps_h-1)*cs_h+cw_h;其中,i_cov_width为该窗口的宽度;i_cov_height为该窗口的高度;pw_w为该池化层的池化窗口宽度;pw_h为该池化层的池化窗口高度;o_pl_width为取整后的该池化层输出的池化特征矩阵的宽度;o_pl_height为取整后的该池化层输出的池化特征矩阵的高度;ps_w为该池化层的水平步长;ps_h为该池化层的垂直步长;cs_w为该卷积层的水平步长;cs_h为该卷积层的垂直步长。
在本发明较佳的实施例中,上述根据取整后的该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数的步骤,包括:通过下述公式,计算该运算参数中,用于从待处理图像中采集图像块的窗口位移:cb_ws=((pw_w+(o_pl_width-1)*ps_w-1)*cs_w+1-(pw_w-ps_w))*cs_w;cb_hs=((pw_h+(o_pl_height-1)*ps_h-1)*cs_h+1-(pw_h-ps_h))*cs_h;其中,cb_ws为该窗口的水平位移步长;该cb_hs为该窗口的垂直位移步长。
在本发明较佳的实施例中,上述运算参数包括:用于从待处理图像中采集图像块的窗口尺度参数和窗口位移参数,上述根据该运算参数,从待处理图像中采集图像块的步骤,包括:根据该运算参数中的窗口尺度参数和预设的默认初始位置,从待处理图像中确定第一个图像块;根据该窗口尺度参数和该窗口位移参数,按照预设顺序遍历该待处理图像,得到除该第一个图像块以外的图像块。
在本发明较佳的实施例中,上述按照每个图像块在待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵的步骤,包括:按照每个该图像块在该待处理图像中的位置,将位置相邻的图像块的池化特性矩阵进行拼接处理,得到该待处理图像的池化特征矩阵。
第二方面,本发明实施例还提供了一种卷积神经网络的图像运算装置,该装置应用于实现卷积神经网络运算的电子设备;该装置包括:运算参数获取模块,用于获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联;图像块采集模块,用于根据该运算参数,从待处理图像中采集图像块;图像块池化特征矩阵计算模块,用于针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到该当前图像块的池化特征矩阵;图像池化特征矩阵计算模块,用于按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。
第四方面,本发明实施例还提供了一种用于实现卷积神经网络运算的电子设备,该电子设备包括处理设备和存储装置;该存储装置上存储有计算机程序,该计算机程序在被该处理设备运行时执行上述卷积神经网络的图像运算方法的步骤。
第五方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理设备运行时执行上述卷积神经网络的图像运算方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种卷积神经网络的图像运算方法、装置和电子设备,首先获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联;然后根据该运算参数,从待处理图像中采集图像块;针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到该当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到当前图像块的池化特征矩阵;进而按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。该方式中,基于下述原理:在卷积神经网络的卷积核参数和池化窗口参数确定的情况下,如果输入卷积层的图像块的尺寸一定,那么卷积层输出的卷积特征矩阵的尺度,以及池化层输出的池化特征矩阵的尺度也是确定的;因此,在卷积神经网络的卷积核参数和池化窗口参数确定的情况下,根据电子设备的存储属性,可以推导池化层输出的特征矩阵的尺度,进而设置恰当的窗口尺度参数(也即基于其关联关系预先推导出卷积神经网络的运算参数),使得采集得到的图像块的尺寸是与该卷积神经网络的卷积核参数和池化窗口参数相匹配的,进而使得该图像块在卷积运算后得到的卷积特征矩阵中不出现冗余数据,从而可以对卷积层输出的卷积结果直接进行池化计算,而无需将该卷积结果缓存至DDR,实现了卷积运算到池化运算的流水线设计,可以减少内存资源的占用,并节约网络宽带。
此外,由于该运算方法可以适用于具有不同卷积核参数及池化窗口参数的神经网络,因而该方法具有很好的通用性。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种电子设备的结构示意图;
图2为本发明实施例提供的一种卷积神经网络的图像运算方法的流程示意图;
图3为本发明实施例提供的一种卷积神经网络图像运算中采集图像块的窗口位移示意图;
图4为本发明实施例提供的一种采集图像块的示意图;
图5为本发明实施例提供的另一种卷积神经网络的图像运算方法的流程示意图;
图6为本发明实施例提供的一种流水线设计的卷积神经网络运算过程示意图;
图7为本发明实施例提供的一种卷积神经网络的图像运算装置的结构示意图。
图标:100-电子设备;102-处理设备;104-存储装置;106-输入装置;108-输出装置;110-图像采集设备;112-总线***;71-运算参数获取模块;72-图像块采集模块;73-图像块池化特征矩阵计算模块;74-图像池化特征矩阵计算模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到现有的卷积神经网络运算方式会导致大量内存资源和网络带宽的浪费的问题,本发明实施例提供的一种卷积神经网络的图像运算、装置和电子设备,该技术可以应用于实现卷积神经网络的硬件设计,以及涉及卷积神经网络运算的各种应用场景中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种卷积神经网络的图像运算方法进行详细介绍。
这里,参照图1来描述用于实现本发明实施例的卷积神经网络的图像运算、装置和电子设备的实例电子设备。
如图1所示的一种电子设备的结构示意图,该电子设备100包括一个或多个处理设备102、一个或多个存储装置104、输入装置106、输出装置108以及一个或多个图像采集设备110,这些组件通过总线***112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备的组件和结构只是示例性的,而非限制性的,根据需要,该电子设备也可以具有其他组件和结构。
处理设备102可以为智能终端,或者是包含中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对该电子设备中的其它组件的数据进行处理,还可以控制该电子设备中的其它组件以执行目标对象统计的功能。
存储装置104可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理设备102可以运行程序指令,以实现下文的本发明实施例中(由处理设备实现)的客户端功能以及/或者其它期望的功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如应用程序使用和/或产生的各种数据等。
输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
图像采集设备110可以采集训练图片,并且将采集到的预览视频帧或图像数据存储在存储装置104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的卷积神经网络的图像运算、装置和电子设备中的各器件可以集成设置,也可以分散设置,诸如将处理设备102、存储装置104、输入装置106和输出装置108集成设置于一体,而将图像采集设备110设置于可以采集到图片的指定位置。当上述电子设备中的各器件集成设置时,该电子设备可以被实现为诸如相机、智能手机、平板电脑、计算机、车载终端等智能终端。
如图2所示,其为本发明实施例提供的一种卷积神经网络的图像运算方法的流程示意图,该方法应用于实现卷积神经网络运算的电子设备,由图2可见,该方法包括以下步骤:
步骤S202:获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联。
这里,上述实现卷积神经网络运算的电子设备可以是FPGA(Field ProgrammableGate Array,现场可编程逻辑门阵列)芯片、Asic(Application Specific IntegratedCircuit,专用集成电路)芯片等。
其中,该卷积神经网络根据预设的运算参数构建,该运算参数与该电子设备的存储属性相关联,该存储属性包括硬件电路内部的缓存。在其中一种可能的实施方式中,该运算参数包括用于从待处理图像中采集图像块的窗口尺度参数和窗口位移参数。在实际操作中,根据窗口尺度参数进行图像块采集,通常窗口尺度参数包括窗口的宽度和高度。并且,窗口位移参数为采集图像时采集窗口的移动参数,通常包括位移方向和位移步长。这里,参见图3,所示为一种卷积神经网络图像运算中采集图像块的窗口位移示意图,在图3示出的实施方式中,展示了采集窗口的水平位移和垂直位移的情形。
在本发明实施例中,上述窗口尺度参数与该卷积神经网络中池化层输出的特征矩阵的尺度相关联,其中,该卷积神经网络包括输入层、隐藏层和输出层,并且,隐藏层又包括卷积层和池化层。在实际操作中,根据上述窗口尺度参数先对待处理图像进行采样,得到图像块,然后将图像块输入卷积层进行卷积运算,得到卷积特征矩阵,再将该卷积特征输入到池化层,输出该图像块的池化特征矩阵。这里,由于在卷积核参数和池化窗口参数确定的情况下,如果输入图像块的尺寸一定,那么卷积层输出的卷积特征矩阵的尺度也是确定的,并且池化层输出的池化特征矩阵的尺度也是确定的;因此,可以如此反推,当卷积神经网络的卷积核参数和池化窗口参数确定的情况下,根据该电子设备的存储属性(例如,RAM缓存),可以推导池化层输出的特征矩阵的尺度,进而设置恰当的窗口尺度参数,使得采集得到的图像块的尺寸是与该卷积神经网络的卷积核参数和池化窗口参数相匹配的,例如,可以使得合宜尺寸的图像块在卷积运算后得到的卷积特征矩阵中不出现冗余数据。
这样,即可以对卷积运算后的卷积特征矩阵直接进行池化计算,得到图像块的池化特征矩阵,相比于现有获取图像块池化特征矩阵的技术,该方式不需要将卷积特征矩阵缓存至DDR,而可以实现卷积运算到池化运算的流水线设计。
需要说明的是,在实际实现时,上述运算参数中的窗口尺度参数不仅仅与该卷积神经网络中池化层输出的特征矩阵的尺度相关联,还与该卷积神经网络各层参数相关联,比如卷积层卷积核大小、步长,池化层窗口、步长等等,同时窗口尺度参数还与***的缓存容量相关联。
步骤S204:根据该运算参数,从待处理图像中采集图像块。
在实际操作中,从待处理图像中采集图像块的步骤可以通过下述步骤21-22实现:
(21)根据该运算参数中的窗口尺度参数和预设的默认初始位置,从待处理图像中确定第一个图像块。
其中,该初始位置可以是待处理图像中的任意位置,以采集窗口的左上角位置为例,可以设置初始位置为待处理图像的左上角所在像素点位置。
(22)根据该窗口尺度参数和该窗口位移参数,按照预设顺序遍历该待处理图像,得到除该第一个图像块以外的图像块。
这里,通过上述窗口尺度参数进行图像块采集,得到特定尺寸的图像块;并且,采集窗口根据上述窗口位移参数进行位移,其中预设的顺序即为窗口位移的方向路线,遍历该待处理图像,依次采集图像块,直至采集完待处理图像中的最后一个图像块。
参见图4,所示为一种采集图像块的示意图,在图4示出的实施方式中,该窗口尺度参数包括窗口宽度和窗口高度,并且,该窗口位移参数包括水平位移步长和垂直位移步长,其中,采集窗口位移的顺序是从该图像的左上角依次向右水平移动直至图像的右边界,然后根据垂直位移步长换行,继续水平移动并采集图像块。
步骤S206:针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到该当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到当前图像块的池化特征矩阵。
在本实施例中,每个图像块经过卷积计算得到卷积特征矩阵后,直接对通过该卷积神经网络的池化层对该卷积特征矩阵进行池化计算,得到该图像块对应的池化特征矩阵,相比于现有的计算图像块池化特征矩阵的技术,该计算方式不需要将卷积特征矩阵先缓存至DDR,然后再从DDR读取卷积结果以解决数据冗余的问题,因而可以减少内存资源的占用,并节约网络宽带。
步骤S208:按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。
在其中一种可能的实施方式中,可以按照每个图像块在待处理图像中的位置,将位置相邻的图像块的池化特性矩阵进行拼接处理,得到该待处理图像的池化特征矩阵。
本发明实施例提供的卷积神经网络的图像运算方法,首先获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联;然后根据该运算参数,从待处理图像中采集图像块;针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到该当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到当前图像块的池化特征矩阵;进而按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。该方式中,基于下述原理:在卷积神经网络的卷积核参数和池化窗口参数确定的情况下,如果输入卷积层的图像块的尺寸一定,那么卷积层输出的卷积特征矩阵的尺度,以及池化层输出的池化特征矩阵的尺度也是确定的;因此,在卷积神经网络的卷积核参数和池化窗口参数确定的情况下,根据电子设备的存储属性,可以推导池化层输出的特征矩阵的尺度,进而设置恰当的窗口尺度参数(也即基于其关联关系预先推导出卷积神经网络的运算参数),使得采集得到的图像块的尺寸是与该卷积神经网络的卷积核参数和池化窗口参数相匹配的,进而使得图像块在卷积运算后得到的卷积特征矩阵中不出现冗余数据,从而可以对卷积层输出的卷积结果直接进行池化计算,而无需将该卷积结果缓存至DDR,实现了卷积运算到池化运算的流水线设计,可以减少内存资源的占用,并节约网络宽带。
在图2所示卷积神经网络的图像运算方法的基础上,本实施例还提供了另一种卷积神经网络的图像运算方法,该方法应用于实现卷积神经网络运算的电子设备,其中,该方法重点描述了前述实施例中步骤S202(也即获取预设的卷积神经网络的运算参数)的具体实现过程。如图5所示为该卷积神经网络的运算方法的流程示意图,由图5可见,该方法包括以下步骤:
步骤S502:获取该电子设备的硬件参数。
这里,上述电子设备为用于实现卷积神经网络运算的电子设备,也即运行该卷积神经网络的运算方法的电子设备,其中,该电子设备可以是CNN硬件加速器。其中,硬件参数通常包括设备使用的处理器类型、主频和内存容量等。
步骤S504:根据该硬件参数,确定预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联。
在其中一种可能的实施方式中,可以通过下述步骤31-32确定预设的卷积神经网络的运算参数:
(31)根据该硬件参数,确定预设的卷积神经网络的约束条件;其中,该硬件参数包括该电子设备的内部缓存大小;该约束条件包括:该卷积神经网络中卷积层输出的卷积特征矩阵的最大尺度,或者,该卷积层输入的图像块的最大尺度。
这里,对于预设的卷积神经网络,也即该卷积神经网络的卷积核参数和池化窗口参数确定的情况下,如果已知运行该卷积神经网络的电子设备的内部缓存大小,则可对应的确定出该卷积神经网络中卷积层输出的卷积特征矩阵的最大尺度,并且,对于该卷积神经网络的卷积层,基于卷积层输出的卷积特征矩阵的尺度也可相应得到其输入的图像块的尺度,因而得到该卷积层输入的图像块的最大尺度。
(32)根据该约束条件,确定该卷积神经网络的运算参数。
在至少一种可能的实施方式中,如果该约束条件包括该卷积层输出的卷积特征矩阵的最大尺度,那么,可以通过下述步骤41-44来实现上述根据该约束条件,确定该卷积神经网络的运算参数的步骤:
(41)根据该卷积特征矩阵的最大尺度,确定该卷积层输入的图像块的最大尺度。
在本实施例中,通过下述公式确定该卷积层输入的图像块的最大尺度:
i_cov_width_valid_max=(o_cov_width_max-1)*cs_w+1(公式1.1)
i_cov_height_valid_max=(o_cov_height_max-1)*cs_h+1(公式1.2)
其中,i_cov_width_valid_max为该卷积层输入的图像块的最大宽度;i_cov_height_valid_max为该卷积层输入的图像块的最大高度;o_cov_width_max为该卷积层输出的卷积特征矩阵的最大宽度;o_cov_height_max为该卷积层输出的卷积特征矩阵的最大高度;cs_w为该卷积层的水平步长;cw_h为该卷积层的垂直步长。
(42)根据该卷积层输入的图像块的最大尺度,确定该卷积神经网络中池化层输出的池化特征矩阵的尺度。
在本实施例中,通过下述公式,确定该卷积神经网络中池化层输出的池化特征矩阵的尺度:
(pw_w+(pl_width-1)*ps_w-1)*cs_w+1=i_cov_width_valid_max(公式1.3)
(pw_h+(pl_height-1)*ps_h-1)*cs_h+1=i_cov_height_valid max(公式1.4)
其中,i_cov_width_valid_max为该卷积层输入的图像块的最大宽度;i_cov_height_valid_max为该卷积层输入的图像块的最大高度;cs_w为该卷积层的水平步长;cs_h为该卷积层的垂直步长;ps_w为该池化层的水平步长;ps_h为该池化层的垂直步长;pl_width为该池化层输出的池化特征矩阵的宽度;pl_height为该池化层输出的池化特征矩阵的高度;pw_w为该池化层的池化窗口宽度;pw_h为该池化层的池化窗口高度。
(43)根据该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数。
在至少一种可能的实施方式中,可以首先对该池化层输出的池化特征矩阵的尺度进行取整处理;然后,根据取整后的该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数。
其中,在对池化特征矩阵的尺度进行取整时,可以通过下述公式进行取整:
o_pl_width=floor(pl_width)(公式1.5)
o_pl_height=floor(pl_height)(公式1.6)
上式中,o_pl_width为取整后的该池化层输出的池化特征矩阵的宽度;o_pl_height为取整后的该池化层输出的池化特征矩阵的高度;floor表示取整。在实际操作中,通常为向下取整,例如,如果计算得到的尺度为5.3,则取整为5。
这里,将上述公式1.5和公式1.6代入上述公式1.3和公式1.4,可以得到下述公式:
i_cov_width_valid=(pw_w+(o_pl_width-1)*ps_w-1)*cs_w+1(公式1.7)
i_cov_height_valid=(pw_h+(o_pl_height-1)*ps_h-1)*cs_h+1(公式1.8)
在实际操作中,由于卷积层输入的图像块的尺寸跟卷积核大小有关,考虑padding的情况下,在得到取整后的该池化层输出的池化特征矩阵的尺度之后,可以通过下述公式,计算该运算参数中用于从待处理图像中采集图像块的窗口尺度:
i_cov_width=(pw_w+(o_pl_width-1)*ps_w-1)*cs_w+cw_w(公式1.9)
i_cov_height=(pw_h+(o_pl_height-1)*ps_h-1)*cs_h+cw_h(公式1.10)其中,i_cov_width为该窗口的宽度;i_cov_height为该窗口的高度;pw_w为该池化层的池化窗口宽度;pw_h为该池化层的池化窗口高度;o_pl_width为取整后的该池化层输出的池化特征矩阵的宽度;o_pl_height为取整后的该池化层输出的池化特征矩阵的高度;ps_w为该池化层的水平步长;ps_h为该池化层的垂直步长;cs_w为该卷积层的水平步长;cs_h为该卷积层的垂直步长。
这里,上述采集图像块的窗口尺度也即是输入卷积层的图像块的尺度,相应地,也可以求得卷积层输出的卷积特征矩阵尺度如下:
o_cov_width=(i_cov_width_valid-1)/cs_w+1(公式1.11)
o_cov_height=(i_cov_height_valid-1)/cs_h+1(公式1.12)
其中,o_cov_width为卷积特征矩阵的宽度;o_cov_height为卷积特征矩阵的高度。
并且,在其中一种可能的实施方式中,还可以通过下述公式计算该运算参数中用于从待处理图像中采集图像块的窗口位移:
cb_ws=((pw_w+(o_pl_width-1)*ps_w-1)*cs_w+1-(pw_w-ps_w))*cs_w(公式1.13)
cb_hs=((pw_h+(o_pl_height-1)*ps_h-1)*cs_h+1-(pw_h-ps_h))*cs_h(公式1.14)
其中,cb_ws为该窗口的水平位移步长;该cb_hs为该窗口的垂直位移步长。
由上述公式1.13和公式1.14可以看出,图像块的窗口位移除了与卷积参数和首个图像块尺寸有关之外,还与池化参数有关,当pw_w等于ps_w,且pw_h等于ps_h时,窗口位移仅与卷积参数和首个图像块的尺寸有关,由以上两个公式可以获得池化输出的相邻图像块,无任何重叠。如图6所示,为一种流水线设计的卷积神经网络运算过程示意图,由图6可以看出,图中四个图像块经过卷积和池化运算,完成了各个图像块的无缝对接,从而真正的实现卷积到池化的流水线设计。
这样,即通过该池化层输出的池化特征矩阵的尺度,确定出该卷积神经网络的窗口尺度参数和窗口位移参数,进而可以根据该运行参数进行图像块采集。并且,根据上述步骤计算得到的该卷积神经网络的运行参数,是与运行该卷积神经网络的电子设备的硬件配置相匹配的,使得根据该运行参数采集得到的图像块,在卷积运算后得到的卷积特征矩阵中不出现冗余数据,从而可以对卷积层输出的卷积结果直接进行池化计算,而无需将该卷积结果缓存至DDR以解决冗余数据的问题。
步骤S506:根据该运算参数,从待处理图像中采集图像块。
步骤S508:针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到该当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到当前图像块的池化特征矩阵。
步骤S510:按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。
这里,本实施例中的步骤S506至步骤S510,对应上述实施例中的步骤S204至步骤S208,相应内容的描述可以参考前述实施例的对应部分,在此不再赘述。
为了更清楚理解本实施例提供的卷积神经网络的图像运算方法中,获取卷积神经网络的运算参数的过程,下面介绍一个应用实例。
假设根据某电子设备的内部RAM缓存大小,确定出卷积神经网络的约束条件如下表1和表2所示:
表1图像块宽度硬件约束
cs_w | I_cov_width_valid_max |
1 | 32 |
2 | 63 |
3 | 64 |
表2图像块高度硬件约束
cs_h | i_cov_height_valid_max |
1 | 16 |
2 | 31 |
3 | 46 |
并且,该卷积神经网络中某层网络特性如下:pw_w=5,ps_w=4,cs_w=2,cw_w=3;pw_h=5,ps_h=4,cs_h=2,cw_h=3。
由cs_w=2查表可得:i_cov_width_valid_max=63。
将i_cov_width_valid_max的值带入上述公式(1.3),得到:
(5+(pl_w-1)*4-1)*2+1=63,解出pl_width=7.75。
进而由公式(公式1.5)得到:o_pl_width=7。
将o_pl_width的值带入(公式1.7),计算得到i_cov_width_valid=57,可见,该值已经最接近理想值I_cov_width_valid_max。
进一步地,由(公式1.9)计算得到i_cov_width=59;
将i_cov_width的值带入(公式1.11)得到:o_cov_width=29。
因此,输入卷积层的图像块宽度(也即窗口的宽度)i_cov_width为59,输出卷积层的卷积特征矩阵的宽度o_cov_widt为29,输出池化层的池化特征矩阵的宽度o_pl_w为7。同理,可求得输出卷积层的图像块高度(也即窗口的宽度)i_cov_height为27,输出卷积层的卷积特征矩阵的高度o_cov_height为13,输出池化层的池化特征矩阵的高度o_pl_height为3。
这样,即实现了根据上述电子设备的硬件参数,确定预设的卷积神经网络的运算参数。在实际操作中,根据电子设备上卷积神经网络的网络参数,以及硬件设计存储资源大小的要求,根据上述公式1.1至公式1.14,即可计算出各个窗口信息(卷积输入、卷积输出、池化输出)和窗口的移位信息。由于这些窗口参数与卷积神经网络的通道数无关,因此,在硬件设计时可以通过cpu将上述运算参数配置到设计模块中的寄存器,再结合一定的控制逻辑,即可实现卷积到池化的流水线设计。这里,由于该运算方法可以适用于具有不同卷积核参数及池化窗口参数的神经网络,因而该方法具有很好的通用性。
本实施例提供的卷积神经网络的图像运算方法,根据实现该卷积神经网络运算的电子设备的硬件参数,确定出该卷积神经网络的约束条件,进而根据该约束条件确定该卷积神经网络的运算参数,并基于该运算参数采集图像块,使得图像块在卷积运算后得到的卷积特征矩阵中不出现冗余数据,从而可以对卷积层输出的卷积结果直接进行池化计算,而无需将该卷积结果缓存至DDR,实现了卷积运算到池化运算的流水线设计,可以减少内存资源的占用,进而减少CNN硬件实现面积,并且更加节约网络宽带。
对应于图2中所示的卷积神经网络的图像运算方法,本发明实施例还提供了一种卷积神经网络的图像运算装置,该装置应用于实现卷积神经网络运算的电子设备,参见图7,所示为一种卷积神经网络的图像运算装置的结构示意图,由图7可见,该装置包括依次连接的运算参数获取模块71、图像块采集模块72、图像块池化特征矩阵计算模块73和图像池化特征矩阵计算模块74,其中,各个模块的功能如下:
运算参数获取模块71,用于获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联;
图像块采集模块72,用于根据该运算参数,从待处理图像中采集图像块;
图像块池化特征矩阵计算模块73,用于针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到该当前图像块的池化特征矩阵;
图像池化特征矩阵计算模块74,用于按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。
本发明实施例提供的一种卷积神经网络的图像运算装置,首先获取预设的卷积神经网络的运算参数;该运算参数与该电子设备的存储属性相关联;然后根据该运算参数,从待处理图像中采集图像块;针对每个图像块,进行下述处理:通过该卷积神经网络的卷积层,对当前图像块进行卷积计算,得到该当前图像块的卷积特征矩阵;通过该卷积神经网络的池化层,对该卷积特征矩阵进行池化计算,得到当前图像块的池化特征矩阵;进而按照每个图像块在该待处理图像中的位置,将每个图像块的池化特征矩阵组成该待处理图像的池化特征矩阵。该装置中,基于下述原理:在卷积神经网络的卷积核参数和池化窗口参数确定的情况下,如果输入卷积层的图像块的尺寸一定,那么卷积层输出的卷积特征矩阵的尺度,以及池化层输出的池化特征矩阵的尺度也是确定的;因此,在卷积神经网络的卷积核参数和池化窗口参数确定的情况下,根据电子设备的存储属性,可以推导池化层输出的特征矩阵的尺度,进而设置恰当的窗口尺度参数(也即基于其关联关系预先推导出卷积神经网络的运算参数),使得采集得到的图像块的尺寸是与该卷积神经网络的卷积核参数和池化窗口参数相匹配的,进而使得图像块在卷积运算后得到的卷积特征矩阵中不出现冗余数据,从而可以对卷积层输出的卷积结果直接进行池化计算,而无需将该卷积结果缓存至DDR,实现了卷积运算到池化运算的流水线设计,可以减少内存资源的占用,并节约网络宽带。
在其中一种可能的实施方式中,上述运算参数获取模块71还用于:获取该电子设备的硬件参数;根据该硬件参数,确定预设的卷积神经网络的运算参数。
在另一种可能的实施方式中,上述运算参数获取模块71还用于:根据该硬件参数,确定预设的卷积神经网络的约束条件;其中,该硬件参数包括该电子设备的内部缓存大小;该约束条件包括:该卷积神经网络中卷积层输出的卷积特征矩阵的最大尺度,或者,该卷积层输入的图像块的最大尺度;根据该约束条件,确定该卷积神经网络的运算参数。
在另一种可能的实施方式中,上述运算参数获取模块71还用于:如果该约束条件包括该卷积层输出的卷积特征矩阵的最大尺度,根据该卷积特征矩阵的最大尺度,确定该卷积层输入的图像块的最大尺度;根据该卷积层输入的图像块的最大尺度,确定该卷积神经网络中池化层输出的池化特征矩阵的尺度;根据该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数。
在另一种可能的实施方式中,上述运算参数获取模块71还用于:通过下述公式,确定该卷积层输入的图像块的最大尺度:i_cov_width_valid_max=(o_cov_width_max-1)*cs_w+1;i_cov_height_valid_max=(o_cov_height_max-1)*cs_h+1;其中,i_cov_width_valid_max为该卷积层输入的图像块的最大宽度;i_cov_height_valid_max为该卷积层输入的图像块的最大高度;o_cov_width_max为该卷积层输出的卷积特征矩阵的最大宽度;o_cov_height_max为该卷积层输出的卷积特征矩阵的最大高度;cs_w为该卷积层的水平步长;cw_h为该卷积层的垂直步长。
在另一种可能的实施方式中,上述运算参数获取模块71还用于:通过下述公式,确定该卷积神经网络中池化层输出的池化特征矩阵的尺度:(pw_w+(pl_width-1)*ps_w-1)*cs_w+1=i_cov_width_valid_max;(pw_h+(pl_height-1)*ps_h-1)*cs_h+1=i_cov_height_valid max;其中,i_cov_width_valid_max为该卷积层输入的图像块的最大宽度;i_cov_height_valid_max为该卷积层输入的图像块的最大高度;cs_w为该卷积层的水平步长;cs_h为该卷积层的垂直步长;ps_w为该池化层的水平步长;ps_h为该池化层的垂直步长;pl_width为该池化层输出的池化特征矩阵的宽度;pl_height为该池化层输出的池化特征矩阵的高度;pw_w为该池化层的池化窗口宽度;pw_h为该池化层的池化窗口高度。
在另一种可能的实施方式中,上述运算参数获取模块71还用于:对该池化层输出的池化特征矩阵的尺度进行取整处理;根据取整后的该池化层输出的池化特征矩阵的尺度,确定该卷积神经网络的运算参数。
在另一种可能的实施方式中,上述运算参数获取模块71还用于:通过下述公式,计算该运算参数中,用于从待处理图像中采集图像块的窗口尺度:i_cov_width=(pw_w+(o_pl_width-1)*ps_w-1)*cs_w+cw_w;i_cov_height=(pw_h+(o_pl_height-1)*ps_h-1)*cs_h+cw_h;其中,i_cov_width为该窗口的宽度;i_cov_height为该窗口的高度;pw_w为该池化层的池化窗口宽度;pw_h为该池化层的池化窗口高度;o_pl_width为取整后的该池化层输出的池化特征矩阵的宽度;o_pl_height为取整后的该池化层输出的池化特征矩阵的高度;ps_w为该池化层的水平步长;ps_h为该池化层的垂直步长;cs_w为该卷积层的水平步长;cs_h为该卷积层的垂直步长。
在另一种可能的实施方式中,上述运算参数获取模块71还用于:通过下述公式,计算该运算参数中,用于从待处理图像中采集图像块的窗口位移:cb_ws=((pw_w+(o_pl_width-1)*ps_w-1)*cs_w+1-(pw_w-ps_w))*cs_w;cb_hs=((pw_h+(o_pl_height-1)*ps_h-1)*cs_h+1-(pw_h-ps_h))*cs_h;其中,cb_ws为该窗口的水平位移步长;该cb_hs为该窗口的垂直位移步长。
在另一种可能的实施方式中,上述运算参数包括:用于从待处理图像中采集图像块的窗口尺度参数和窗口位移参数,上述图像块采集模块72还用于:根据该运算参数中的窗口尺度参数和预设的默认初始位置,从待处理图像中确定第一个图像块;根据该窗口尺度参数和该窗口位移参数,按照预设顺序遍历该待处理图像,得到除该第一个图像块以外的图像块。
在另一种可能的实施方式中,上述图像池化特征矩阵计算模块74还用于:按照每个该图像块在该待处理图像中的位置,将位置相邻的图像块的池化特性矩阵进行拼接处理,得到该待处理图像的池化特征矩阵。
本发明实施例提供的卷积神经网络的图像运算装置,其实现原理及产生的技术效果和前述卷积神经网络的图像运算方法实施例相同,为简要描述,卷积神经网络的图像运算装置的实施例部分未提及之处,可参考前述卷积神经网络的图像运算方法实施例中相应内容。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述卷积神经网络的图像运算方法,具体实现可参见前述方法实施例,在此不再赘述。
本发明实施例所提供的卷积神经网络的图像运算方法、卷积神经网络的图像运算装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的卷积神经网络的图像运算方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种卷积神经网络的图像运算方法,其特征在于,所述方法应用于实现卷积神经网络运算的电子设备;所述方法包括:
获取所述电子设备的硬件参数;
根据所述硬件参数,确定预设的卷积神经网络的约束条件;其中,所述硬件参数包括所述电子设备的内部缓存大小;所述约束条件包括:所述卷积神经网络中卷积层输出的卷积特征矩阵的最大尺度,或者,所述卷积层输入的图像块的最大尺度;
根据所述约束条件,如果所述约束条件包括所述卷积层输出的卷积特征矩阵的最大尺度,根据所述卷积特征矩阵的最大尺度,确定所述卷积层输入的图像块的最大尺度;
根据所述卷积层输入的图像块的最大尺度,确定所述卷积神经网络中池化层输出的池化特征矩阵的尺度;
根据所述池化层输出的池化特征矩阵的尺度,确定所述卷积神经网络的运算参数;所述运算参数与所述电子设备的存储属性相关联;
根据所述运算参数,从待处理图像中采集图像块;
针对每个所述图像块,进行下述处理:通过所述卷积神经网络的卷积层,对当前图像块进行卷积计算,得到所述当前图像块的卷积特征矩阵;通过所述卷积神经网络的池化层,对所述卷积特征矩阵进行池化计算,得到所述当前图像块的池化特征矩阵;
按照每个所述图像块在所述待处理图像中的位置,将每个所述图像块的池化特征矩阵组成所述待处理图像的池化特征矩阵。
2.根据权利要求1所述的方法,其特征在于,根据所述卷积特征矩阵的最大尺度,确定所述卷积层输入的图像块的最大尺度的步骤,包括:
通过下述公式,确定所述卷积层输入的图像块的最大尺度:
i_cov_width_valid_max=(o_cov_width_max-1)*cs_w+1;
i_cov_height_valid_max=(o_cov_height_max-1)*cs_h+1;
其中,i_cov_width_valid_max为所述卷积层输入的图像块的最大宽度;i_cov_height_valid_max为所述卷积层输入的图像块的最大高度;o_cov_width_max为所述卷积层输出的卷积特征矩阵的最大宽度;o_cov_height_max为所述卷积层输出的卷积特征矩阵的最大高度;cs_w为所述卷积层的水平步长;cw_h为所述卷积层的垂直步长。
3.根据权利要求1所述的方法,其特征在于,根据所述卷积层输入的图像块的最大尺度,确定所述卷积神经网络中池化层输出的池化特征矩阵的尺度的步骤,包括:
通过下述公式,确定所述卷积神经网络中池化层输出的池化特征矩阵的尺度:
(pw_w+(pl_width-1)*ps_w-1)*cs_w+1=i_cov_width_valid_max;
(pw_h+(pl_height-1)*ps_h-1)*cs_h+1=i_cov_height_valid max;
其中,i_cov_width_valid_max为所述卷积层输入的图像块的最大宽度;i_cov_height_valid_max为所述卷积层输入的图像块的最大高度;cs_w为所述卷积层的水平步长;cs_h为所述卷积层的垂直步长;ps_w为所述池化层的水平步长;ps_h为所述池化层的垂直步长;pl_width为所述池化层输出的池化特征矩阵的宽度;pl_height为所述池化层输出的池化特征矩阵的高度;pw_w为所述池化层的池化窗口宽度;pw_h为所述池化层的池化窗口高度。
4.根据权利要求1所述的方法,其特征在于,根据所述池化层输出的池化特征矩阵的尺度,确定所述卷积神经网络的运算参数的步骤,包括:
对所述池化层输出的池化特征矩阵的尺度进行取整处理;
根据取整后的所述池化层输出的池化特征矩阵的尺度,确定所述卷积神经网络的运算参数。
5.根据权利要求4所述的方法,其特征在于,根据取整后的所述池化层输出的池化特征矩阵的尺度,确定所述卷积神经网络的运算参数的步骤,包括:
通过下述公式,计算所述运算参数中,用于从待处理图像中采集图像块的窗口尺度:
i_cov_width=(pw_w+(o_pl_width-1)*ps_w-1)*cs_w+cw_w;
i_cov_height=(pw_h+(o_pl_height-1)*ps_h-1)*cs_h+cw_h;
其中,i_cov_width为所述窗口的宽度;i_cov_height为所述窗口的高度;pw_w为所述池化层的池化窗口宽度;pw_h为所述池化层的池化窗口高度;o_pl_width为取整后的所述池化层输出的池化特征矩阵的宽度;o_pl_height为取整后的所述池化层输出的池化特征矩阵的高度;ps_w为所述池化层的水平步长;ps_h为所述池化层的垂直步长;cs_w为所述卷积层的水平步长;cs_h为所述卷积层的垂直步长。
6.根据权利要求5所述的方法,其特征在于,根据取整后的所述池化层输出的池化特征矩阵的尺度,确定所述卷积神经网络的运算参数的步骤,包括:
通过下述公式,计算所述运算参数中,用于从待处理图像中采集图像块的窗口位移:
cb_ws=((pw_w+(o_pl_width-1)*ps_w-1)*cs_w+1-(pw_w-ps_w))*cs_w;
cb_hs=((pw_h+(o_pl_height-1)*ps_h-1)*cs_h+1-(pw_h-ps_h))*cs_h;
其中,cb_ws为所述窗口的水平位移步长;所述cb_hs为所述窗口的垂直位移步长。
7.根据权利要求1所述的方法,其特征在于,所述运算参数包括:用于从待处理图像中采集图像块的窗口尺度参数和窗口位移参数,所述根据所述运算参数,从待处理图像中采集图像块的步骤,包括:
根据所述运算参数中的窗口尺度参数和预设的默认初始位置,从待处理图像中确定第一个图像块;
根据所述窗口尺度参数和所述窗口位移参数,按照预设顺序遍历所述待处理图像,得到除所述第一个图像块以外的图像块。
8.根据权利要求1所述的方法,其特征在于,按照每个所述图像块在所述待处理图像中的位置,将每个所述图像块的池化特征矩阵组成所述待处理图像的池化特征矩阵的步骤,包括:
按照每个所述图像块在所述待处理图像中的位置,将位置相邻的图像块的池化特性矩阵进行拼接处理,得到所述待处理图像的池化特征矩阵。
9.一种卷积神经网络的图像运算装置,其特征在于,所述装置应用于实现卷积神经网络运算的电子设备;所述装置包括:
运算参数获取模块,用于获取所述电子设备的硬件参数;根据所述硬件参数,确定预设的卷积神经网络的约束条件;其中,所述硬件参数包括所述电子设备的内部缓存大小;所述约束条件包括:所述卷积神经网络中卷积层输出的卷积特征矩阵的最大尺度,或者,所述卷积层输入的图像块的最大尺度;根据所述约束条件,如果所述约束条件包括所述卷积层输出的卷积特征矩阵的最大尺度,根据所述卷积特征矩阵的最大尺度,确定所述卷积层输入的图像块的最大尺度;根据所述卷积层输入的图像块的最大尺度,确定所述卷积神经网络中池化层输出的池化特征矩阵的尺度;根据所述池化层输出的池化特征矩阵的尺度,确定所述卷积神经网络的运算参数;所述运算参数与所述电子设备的存储属性相关联;
图像块采集模块,用于根据所述运算参数,从待处理图像中采集图像块;
图像块池化特征矩阵计算模块,用于针对每个所述图像块,进行下述处理:通过所述卷积神经网络的卷积层,对当前图像块进行卷积计算,得到所述当前图像块的卷积特征矩阵;通过所述卷积神经网络的池化层,对所述卷积特征矩阵进行池化计算,得到所述当前图像块的池化特征矩阵;
图像池化特征矩阵计算模块,用于按照每个所述图像块在所述待处理图像中的位置,将每个所述图像块的池化特征矩阵组成所述待处理图像的池化特征矩阵。
10.一种电子设备,其特征在于,所述电子设备包括处理设备和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理设备运行时执行1至8任一项所述的卷积神经网络的图像运算方法的步骤。
11.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理设备运行时执行1至8任一项所述的卷积神经网络的图像运算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010276826.6A CN111445420B (zh) | 2020-04-09 | 2020-04-09 | 卷积神经网络的图像运算方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010276826.6A CN111445420B (zh) | 2020-04-09 | 2020-04-09 | 卷积神经网络的图像运算方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111445420A CN111445420A (zh) | 2020-07-24 |
CN111445420B true CN111445420B (zh) | 2023-06-06 |
Family
ID=71651422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010276826.6A Active CN111445420B (zh) | 2020-04-09 | 2020-04-09 | 卷积神经网络的图像运算方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111445420B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678244B2 (en) | 2017-03-23 | 2020-06-09 | Tesla, Inc. | Data synthesis for autonomous control systems |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
SG11202103493QA (en) | 2018-10-11 | 2021-05-28 | Tesla Inc | Systems and methods for training machine models with augmented data |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
CN112183732A (zh) * | 2020-10-22 | 2021-01-05 | 中国人民解放军国防科技大学 | 卷积神经网络加速方法、装置和计算机设备 |
CN112883983B (zh) * | 2021-02-09 | 2024-06-14 | 北京迈格威科技有限公司 | 特征提取方法、装置和电子*** |
CN116306823B (zh) * | 2023-04-27 | 2023-08-04 | 北京爱芯科技有限公司 | 为mac阵列提供数据的方法、装置和芯片 |
CN117763399B (zh) * | 2024-02-21 | 2024-05-14 | 电子科技大学 | 一种自适应变长信号输入的神经网络分类方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701507A (zh) * | 2016-01-13 | 2016-06-22 | 吉林大学 | 基于动态随机池化卷积神经网络的图像分类方法 |
CN106407891A (zh) * | 2016-08-26 | 2017-02-15 | 东方网力科技股份有限公司 | 基于卷积神经网络的目标匹配方法及装置 |
WO2018052586A1 (en) * | 2016-09-14 | 2018-03-22 | Konica Minolta Laboratory U.S.A., Inc. | Method and system for multi-scale cell image segmentation using multiple parallel convolutional neural networks |
CN109117897A (zh) * | 2018-08-09 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 基于卷积神经网络的图像处理方法、装置及可读存储介质 |
CN109726798A (zh) * | 2018-12-27 | 2019-05-07 | 北京灵汐科技有限公司 | 一种数据处理方法及装置 |
WO2019084788A1 (zh) * | 2017-10-31 | 2019-05-09 | 深圳市大疆创新科技有限公司 | 用于神经网络的运算装置、电路及相关方法 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN110276444A (zh) * | 2019-06-04 | 2019-09-24 | 北京清微智能科技有限公司 | 基于卷积神经网络的图像处理方法及装置 |
CN110858398A (zh) * | 2018-08-24 | 2020-03-03 | 深圳市前海安测信息技术有限公司 | 基于深度学习的舌体分割装置、方法及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016054779A1 (en) * | 2014-10-09 | 2016-04-14 | Microsoft Technology Licensing, Llc | Spatial pyramid pooling networks for image processing |
-
2020
- 2020-04-09 CN CN202010276826.6A patent/CN111445420B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701507A (zh) * | 2016-01-13 | 2016-06-22 | 吉林大学 | 基于动态随机池化卷积神经网络的图像分类方法 |
CN106407891A (zh) * | 2016-08-26 | 2017-02-15 | 东方网力科技股份有限公司 | 基于卷积神经网络的目标匹配方法及装置 |
WO2018036146A1 (zh) * | 2016-08-26 | 2018-03-01 | 东方网力科技股份有限公司 | 基于卷积神经网络的目标匹配方法、装置及存储介质 |
WO2018052586A1 (en) * | 2016-09-14 | 2018-03-22 | Konica Minolta Laboratory U.S.A., Inc. | Method and system for multi-scale cell image segmentation using multiple parallel convolutional neural networks |
WO2019084788A1 (zh) * | 2017-10-31 | 2019-05-09 | 深圳市大疆创新科技有限公司 | 用于神经网络的运算装置、电路及相关方法 |
WO2019127838A1 (zh) * | 2017-12-29 | 2019-07-04 | 国民技术股份有限公司 | 卷积神经网络实现方法及装置、终端、存储介质 |
CN109117897A (zh) * | 2018-08-09 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 基于卷积神经网络的图像处理方法、装置及可读存储介质 |
CN110858398A (zh) * | 2018-08-24 | 2020-03-03 | 深圳市前海安测信息技术有限公司 | 基于深度学习的舌体分割装置、方法及存储介质 |
CN109726798A (zh) * | 2018-12-27 | 2019-05-07 | 北京灵汐科技有限公司 | 一种数据处理方法及装置 |
CN110276444A (zh) * | 2019-06-04 | 2019-09-24 | 北京清微智能科技有限公司 | 基于卷积神经网络的图像处理方法及装置 |
Non-Patent Citations (4)
Title |
---|
于波 等.基于深度卷积神经网络的图像重建算法.《计算机***应用》.2018,(第09期),170-175. * |
***.基于Adaboost算法的人脸实时检测方法研究.《中国优秀硕士学位论文全文数据库 信息科技辑》.2009,(第08期),I138-831. * |
李锐."基于卷积神经网络的人群计数技术研究".《中国优秀硕士学位论文全文数据库 社会科学II辑》.2020,(第2期),H123-43. * |
王显宏.面向深度学习平台的内存管理器的设计与实现.《中国优秀硕士学位论文全文数据库 信息科技辑》.2019,(第01期),I137-154. * |
Also Published As
Publication number | Publication date |
---|---|
CN111445420A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111445420B (zh) | 卷积神经网络的图像运算方法、装置和电子设备 | |
US10455152B2 (en) | Panoramic video processing method and device and non-transitory computer-readable medium | |
US9082171B2 (en) | Image processing device for reducing image noise and the method thereof | |
EP3779769B1 (en) | Optical flow computing method and computing device | |
US20220028041A1 (en) | Image denoising method and apparatus, electronic device and non-transitory computer readalble storage medium | |
EP3907695B1 (en) | Electronic apparatus and control method thereof | |
CN110428382B (zh) | 一种用于移动终端的高效视频增强方法、装置和存储介质 | |
CN112883983B (zh) | 特征提取方法、装置和电子*** | |
CN108184097B (zh) | 一种远程医疗中图像的实时查看方法 | |
CN115035152B (zh) | 医学图像处理方法、装置以及相关设备 | |
CN110889809A (zh) | 图像处理方法及装置、电子设备、存储介质 | |
CN111080571A (zh) | 摄像头遮挡状态检测方法、装置、终端和存储介质 | |
CN110689496B (zh) | 降噪模型的确定方法、装置、电子设备和计算机存储介质 | |
CN113838134B (zh) | 图像关键点检测方法、装置、终端和存储介质 | |
CN109871814B (zh) | 年龄的估计方法、装置、电子设备和计算机存储介质 | |
CN112801882A (zh) | 图像处理方法及装置、存储介质和电子设备 | |
CN112328924B (zh) | web端实现图片查看器的方法、电子设备、介质及*** | |
JP5683153B2 (ja) | 画像処理装置および画像処理方法 | |
CN109429067B (zh) | 动态图片压缩方法及装置、计算机设备及存储介质 | |
CN113538237A (zh) | 一种图像拼接***、方法及电子设备 | |
CN111755103A (zh) | 一种转换病理切片方法及装置 | |
CN112750136B (zh) | 一种图像处理方法和*** | |
WO2021212498A1 (zh) | 图像处理方法、片上***和电子设备 | |
CN114666600B (zh) | 基于不规则模板的数据编码方法、装置、电子设备及介质 | |
TWI842285B (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 |