CN109461119A - 卷积神经网络fpga加速中的图像填充方法及装置 - Google Patents
卷积神经网络fpga加速中的图像填充方法及装置 Download PDFInfo
- Publication number
- CN109461119A CN109461119A CN201910094728.8A CN201910094728A CN109461119A CN 109461119 A CN109461119 A CN 109461119A CN 201910094728 A CN201910094728 A CN 201910094728A CN 109461119 A CN109461119 A CN 109461119A
- Authority
- CN
- China
- Prior art keywords
- matrix
- row
- image
- processed
- pixel data
- 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.)
- Granted
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 93
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000001133 acceleration Effects 0.000 title claims abstract description 68
- 239000011159 matrix material Substances 0.000 claims abstract description 538
- 238000004364 calculation method Methods 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 claims abstract description 49
- 238000004590 computer program Methods 0.000 claims description 29
- 230000006399 behavior Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 21
- 238000013528 artificial neural network Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 9
- 230000001537 neural effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种卷积神经网络FPGA加速中的图像填充方法及装置,该方法包括:获取待处理图像;待处理图像呈现第一矩阵形式,第一矩阵中每个矩阵元为待处理图像的一个像素数据;对第一矩阵作零填充处理,得到第二矩阵;第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据;或者,第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为待处理图像的一个像素数据;根据第二矩阵和卷积权重作卷积计算,得到第三矩阵;第三矩阵的大小与第一矩阵的大小相同。通过这种方式,可以使计算后的图像和原图像大小相同。
Description
技术领域
本发明涉及卷积神经网络FPGA加速技术领域,尤指一种卷积神经网络FPGA加速中的图像填充方法及装置。
背景技术
随着科学技术的发展,越来越多的终端开始利用卷积神经网络来进行机器学习,以完成图像识别(比如人脸识别和物体检测)等等。而卷积神经网络(ConvolutionalNeural Network,CNN)的本质即卷积计算。
现有技术中,卷积计算过程如下:
请参见图1所示,为现在有技术中一种原图像和卷积权重作卷积计算的方法示意图。如图1所示,卷积神经网络现场可编程门阵列(Field Programmable Gate Array,FPGA)加速中的图像填充装置将输入的 6×6×1的图像(即原图像)和3×3×1的过滤器(即卷积权重为3×3×1的矩阵)作卷积计算,得到一个4×4×1的图像输出(即计算后的图像)。具体计算过程如下:
v1=p1*k1+p2*k2+p3*k3+p7*k4+p8*k5+p9*k6+p13*k7+p14*k8+p15*k9;
v2=p2*k1+p3*k2+p4*k3+p8*k4+p9*k5+p10*k6+p14*k7+p15*k8+p16*k9;
如此循环计算下去,可以得到输出图像的其它像素数据,比如v6,v7,v8,v10,v11,v12,v14,v15,v16等。
由此可见,现有技术中的卷积计算过程中,将输入的图像和卷积权重作卷积计算之后,得到的输出的4×4×1的图像,比输入的6×6×1的图像小。
发明内容
本发明实施例提供一种卷积神经网络FPGA加速中的图像填充方法及装置,用以解决原图像作卷积计算时输出的图像变小的问题。
第一方面,本发明实施例提供一种卷积神经网络FPGA加速中的图像填充方法,所述方法包括:
获取待处理图像;所述待处理图像呈现第一矩阵形式,所述第一矩阵中每个矩阵元为所述待处理图像的一个像素数据;
对所述第一矩阵作零填充处理,得到第二矩阵;所述第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为所述待处理图像的一个像素数据;或者,所述第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为所述待处理图像的一个像素数据;
根据所述第二矩阵和卷积权重作卷积计算,得到第三矩阵;所述第三矩阵的大小与所述第一矩阵的大小相同。
可选地,所述卷积权重是m*m*z的第四矩阵;所述m为大于等于2的整数,所述z=2n,n为整数;根据所述第二矩阵和卷积权重作卷积计算,得到第三矩阵,包括:
在所述第二矩阵中提取第五矩阵;所述第五矩阵为(m-1)*m*z的矩阵;所述第五矩阵的第一行是所述第二矩阵的第一行;所述第五矩阵和所述第四矩阵的第一子矩阵作卷积计算,得到所述第三矩阵的第一行像素数据;
在所述第二矩阵中提取第六矩阵;所述第六矩阵为m*m*z的矩阵;所述第六矩阵的第一行是所述第二矩阵的一行;所述第六矩阵和所述第四矩阵作卷积计算得到所述第三矩阵中其它行的像素数据;所述其它行是所述第三矩阵中除去所述第一行和最后一行以外的行;
在所述第二矩阵中提取第七矩阵;所述第七矩阵中为(m-1)*m*z的矩阵;所述第七矩阵的第一行是所述第二矩阵的倒数第m-1行;所述第七矩阵和所述第四矩阵的第二子矩阵作卷积计算得到所述第三矩阵的最后一行的像素数据。
可选地,所述第一子矩阵是所述第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵;
所述第二子矩阵是所述第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵。
可选地,所述第一矩阵为6×6×1的矩阵;所述第二矩阵为8×6×1的矩阵;所述卷积权重为3×3×1的矩阵。
可选地,所述FPGA中包括第一存储区域和第二存储区域;所述第一存储区域用于存储所述待处理图像的第一矩阵,所述第二存储区域用于存储所述卷积权重。
第二方面,本发明实施例提供一种卷积神经网络FPGA加速中的图像填充装置,所述装置包括第一存储单元、第二存储单元和处理单元;其中,
所述第一存储单元,用于存储待处理图像;所述待处理图像呈现第一矩阵形式,所述第一矩阵中每个矩阵元为所述待处理图像的一个像素数据;
所述第二存储单元,用于存储卷积权重;
所述处理单元,用于对所述第一矩阵作零填充处理,得到第二矩阵;所述第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为所述待处理图像的一个像素数据;或者,所述第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为所述待处理图像的一个像素数据;
所述处理单元还用于:根据所述第二矩阵和卷积权重作卷积计算,得到第三矩阵;所述第三矩阵的大小与所述第一矩阵的大小相同。
可选地,所述卷积权重是m*m*z的第四矩阵;所述m为大于等于2的整数,所述z=2n,n为整数;所述处理单元在用于对所述第一矩阵作零填充处理,得到第二矩阵时,具体用于:
在所述第二矩阵中提取第五矩阵;所述第五矩阵为(m-1)*m*z的矩阵;所述第五矩阵的第一行是所述第二矩阵的第一行;所述第五矩阵和所述第四矩阵的第一子矩阵作卷积计算,得到所述第三矩阵的第一行像素数据;
在所述第二矩阵中提取第六矩阵;所述第六矩阵为m*m*z的矩阵;所述第六矩阵的第一行是所述第二矩阵的一行;所述第六矩阵和所述第四矩阵作卷积计算得到所述第三矩阵中其它行的像素数据;所述其它行是所述第三矩阵中除去所述第一行和最后一行以外的行;
在所述第二矩阵中提取第七矩阵;所述第七矩阵中为(m-1)*m*z的矩阵;所述第七矩阵的第一行是所述第二矩阵的倒数第m-1行;所述第七矩阵和所述第四矩阵的第二子矩阵作卷积计算得到所述第三矩阵的最后一行的像素数据。
可选地,所述第一子矩阵是所述第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵;
所述第二子矩阵是所述第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵。
可选地,所述第一矩阵为6×6×1的矩阵;所述第二矩阵为8×6×1的矩阵;所述卷积权重为3×3×1的矩阵。
第三方面,本发明实施例提供一种卷积神经网络FPGA加速中的图像填充装置,所述装置包括第一存储器、第二存储器和处理器;其中,
所述第一存储器,用于存储待处理图像;所述待处理图像呈现第一矩阵形式,所述第一矩阵中每个矩阵元为所述待处理图像的一个像素数据;
所述第二存储器,用于存储卷积权重;
所述处理器,用于对所述第一矩阵作零填充处理,得到第二矩阵;所述第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为所述待处理图像的一个像素数据;或者,所述第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为所述待处理图像的一个像素数据;
所述处理器还用于:根据所述第二矩阵和卷积权重作卷积计算,得到第三矩阵;所述第三矩阵的大小与所述第一矩阵的大小相同。
可选地,所述卷积权重是m*m*z的第四矩阵;所述m为大于等于2的整数,所述z=2n,n为整数;所述处理器在用于对所述第一矩阵作零填充处理,得到第二矩阵时,具体用于:
在所述第二矩阵中提取第五矩阵;所述第五矩阵为(m-1)*m*z的矩阵;所述第五矩阵的第一行是所述第二矩阵的第一行;所述第五矩阵和所述第四矩阵的第一子矩阵作卷积计算,得到所述第三矩阵的第一行像素数据;
在所述第二矩阵中提取第六矩阵;所述第六矩阵为m*m*z的矩阵;所述第六矩阵的第一行是所述第二矩阵的一行;所述第六矩阵和所述第四矩阵作卷积计算得到所述第三矩阵中其它行的像素数据;所述其它行是所述第三矩阵中除去所述第一行和最后一行以外的行;
在所述第二矩阵中提取第七矩阵;所述第七矩阵中为(m-1)*m*z的矩阵;所述第七矩阵的第一行是所述第二矩阵的倒数第m-1行;所述第七矩阵和所述第四矩阵的第二子矩阵作卷积计算得到所述第三矩阵的最后一行的像素数据。
可选地,所述第一子矩阵是所述第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵;
所述第二子矩阵是所述第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵。
可选地,所述第一矩阵为6×6×1的矩阵;所述第二矩阵为8×6×1的矩阵;所述卷积权重为3×3×1的矩阵。
第四方面,本发明实施例提供一种卷积神经网络FPGA加速中的图像填充装置,包括处理器和存储器;其中,所述存储器用于存储一个或多个计算机程序;当所述存储器存储的一个或多个计算机程序被所述处理器执行时,使得所述卷积神经网络FPGA加速中的图像填充装置实现第一方面或上述第一方面的任意一种可能的设计的方法。
第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或上述第一方面的任意一种可能的设计的方法。
第六方面,本发明实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或上述第一方面的任意一种可能的设计的方法。
本发明有益效果如下:
本发明中实施例的技术方案中,卷积神经网络FPGA加速中的图像填充装置获取待处理图像;待处理图像呈现第一矩阵形式,第一矩阵中每个矩阵元为待处理图像的一个像素数据;对第一矩阵作零填充处理,得到第二矩阵;第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据;或者,第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为待处理图像的一个像素数据;根据第二矩阵和卷积权重作卷积计算,得到第三矩阵;第三矩阵的大小与第一矩阵的大小相同。通过这种方式,可以使计算后的图像和原图像大小相同。
附图说明
图1为现在有技术中一种原图像和卷积权重作卷积计算的方法示意图;
图2为一种像素数据的零填充方式的示意图;
图3为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充方法的流程示意图;
图4A为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置对第一矩阵作零填充处理的方法示意图;
图4B为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置对第一矩阵作零填充处理的方法示意图;
图5为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置作卷积计算的示意图;
图6为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图;
图7为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图;
图8为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图;
图9为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
附图中各部件的形状和大小不反映真实比例,目的只是示意说明本发明内容。
如图1所示,现有技术中的卷积算法会使得输出的图像比输入的图像小。
为了解决上述问题,可以采用零填充方式进行卷积计算。示例性的,请参考图2,为一种像素数据的零填充方式的示意图。如图2所示,在卷积操作之前,沿着像素数据四周边缘再填充零,例如将6×6×1的图像填充成了一个8×8×1的图像,然后用3×3×1的卷积权重对8×8×1的图像进行卷积计算,得到6×6×1的图像,从而得到了一个尺寸和原始图像6×6×1一样的图像。具体计算过程如下:
v1= 0*k1+0*k2+0*k3+0*k4+p1*k5+p2*k6+0*k7+p7*k8+p8*k9;
v2=0*k1+p1*k2+p2*k3+0*k4+p7*k5+p8*k6+0*k7+p13*k8+p14*k9;
如此循环计算下去,可以得到v6,v7,v8,……,v36。
由此可见,在这种零填充方式中,虽然保证了卷积计算之后的图像和原图像的大小一样,但是,采用零填充方式进行卷积计算,增加了两行和两列的像素数据,从而增加了像素数据的存储空间。
为了解决对像素数据四周边缘填充一层零数值后增加了像素数据的存储空间的问题,本发明实施例提供了一种卷积神经网络FPGA加速中的图像填充方法。请参考图3,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充方法的流程示意图。该方法可以适用于卷积神经网络FPGA加速中的图像填充装置(例如手机、iPad、电脑、机器人等终端,本发明实施例不限定),如图3所示,该方法包括:
S301、获取待处理图像;待处理图像呈现第一矩阵形式,第一矩阵中每个矩阵元为待处理图像的一个像素数据。
可选地,卷积神经网络FPGA加速中的图像填充装置可以通过多种方式获取待处理图像。比如,卷积神经网络FPGA加速中的图像填充装置内有摄像头,卷积神经网络FPGA加速中的图像填充装置可以通过摄像头拍摄获取待处理图像。再比如,通过图片(该图片可以是卷积神经网络FPGA加速中的图像填充装置本地存储的图片,也可以是卷积神经网络FPGA加速中的图像填充装置通过网络下载的图片)获取待处理图像。本发明实施例不对卷积神经网络FPGA加速中的图像填充装置获取待处理图像的方式进行具体的限定,只要卷积神经网络FPGA加速中的图像填充装置可以获取待处理图像即可。卷积神经网络FPGA加速中的图像填充装置获取待处理图像后,将待处理图像以第一矩阵的形式呈现,其中,第一矩阵中每个矩阵元为待处理图像的一个像素数据(像素点)。
S302、对第一矩阵作零填充处理,得到第二矩阵;第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据;或者,第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为待处理图像的一个像素数据。
可选地,卷积神经网络FPGA加速中的图像填充装置可以对第一矩阵作零填充处理,得到第二矩阵。卷积神经网络FPGA加速中的图像填充装置对第一矩阵的零填充方式可以有多种,下文举例介绍。
方式一:示例性的,请参考图4A,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置对第一矩阵作零填充处理的方法示意图。如图4A所示,第一矩阵为6×6×1的矩阵,即原图像为6×6×1的矩阵。第二矩阵为8×6×1的矩阵,即零填充处理后的图像为8×6×1的矩阵。
对于方式一,第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据,即第一矩阵的第一列和第八列为零,第二列至第七列为待处理图像的一个像素数据。
方式二:示例性的,请参考图4B,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置对第一矩阵作零填充处理的方法示意图。如图4B所示,第一矩阵为6×6×1的矩阵,即原图像为6×6×1的矩阵。第二矩阵为6×8×1的矩阵,即零填充处理后的图像为6×8×1的矩阵。
对于方式二,第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为待处理图像的一个像素数据,即第一矩阵的第一行和第八行为零,第二行至第七行为待处理图像的一个像素数据。
本发明实施例不对卷积神经网络FPGA加速中的图像填充装置得到的第二矩阵的呈现方式进行具体提的限定。下文以上述方式一,即第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据为例。
需要说明的是,本发明实施例是以卷积神经网络FPGA加速中的图像填充装置对第一矩阵填充零为例,事实上,卷积神经网络FPGA加速中的图像填充装置对第一矩阵填充其它数值,例如1、2等数值,本发明实施例不限定。
S303、根据第二矩阵和卷积权重作卷积计算,得到第三矩阵;第三矩阵的大小与第一矩阵的大小相同。
下面介绍第三矩阵中第一行像素数据的确定过程。
可选地,卷积神经网络FPGA加速中的图像填充装置可以在第二矩阵中提取第五矩阵。其中,第五矩阵为(m-1)*m*z的矩阵,第五矩阵的第一行是第二矩阵的第一行。第五矩阵和第四矩阵的(m-1)*m*z的第一子矩阵(第一子矩阵是第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵)作卷积计算,得到第三矩阵的第一行像素数据。
示例性的,请参考图5,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置作卷积计算的示意图。如图5所示,第二矩阵中第一列和最后一列填充零。第三矩阵中的v1的计算过程为:卷积神经网络FPGA加速中的图像填充装置可以从第二矩阵中提取第五矩阵,第五矩阵中的第一行为0,p1,p2;第二行为0,p7,p8。卷积神经网络FPGA加速中的图像填充装置可以从第四矩阵中提取第一子矩阵,第一子矩阵的第一行为k4,k5,k6;第二行为k7,k8,k9。然后,卷积神经网络FPGA加速中的图像填充装置对第五矩阵和第一子矩阵作卷积计算,得到第三矩阵的第一行的第一列像素数据v1。v1的具体计算如下:
v1=0*k4+p1*k5+p2*k6+0*k7+p7*k8+p8*k9。
第三矩阵中的v2的计算过程为:卷积神经网络FPGA加速中的图像填充装置可以从第二矩阵中提取第五矩阵,第五矩阵中的第一行为p1,p2,p3;第二行为p7,p8,p9。卷积神经网络FPGA加速中的图像填充装置可以从第四矩阵中提取第一子矩阵,第一子矩阵的第一行为k4,k5,k6;第二行为k7,k8,k9。然后,卷积神经网络FPGA加速中的图像填充装置对第五矩阵和第一子矩阵作卷积计算,得到第三矩阵的第一行的第二列像素数据v2。v2的具体计算如下:
v2= p1*k4+p2*k5+p3*k6+ p7*k7+p8*k8+p9*k9。
以此类推,第三矩阵中的第一行的其它像素数据比如v3、v4、v5和v6可以采用类似的计算方式。
下面介绍第三矩阵中其它行(除去第一行和最后一行的其它行)的像素数据的确定过程。
可选地,卷积神经网络FPGA加速中的图像填充装置可以在第二矩阵中提取第六矩阵。其中,第六矩阵为m*m*z的矩阵,第六矩阵的第一行是第二矩阵的一行。第六矩阵和第四矩阵作卷积计算得到第三矩阵中其它行的像素数据,其中,其它行是第三矩阵中除去第一行和最后一行以外的行。
下面以第三矩阵的第二行的像素数据计算方式为例进行介绍。
示例性的,请继续参考图5所示,第三矩阵中第二行中的v7的计算过程为:卷积神经网络FPGA加速中的图像填充装置可以从第二矩阵中提取第六矩阵,第六矩阵中的第一行为0,p1,p2;第二行为0,p7,p8;第三行为0,p13,p14。然后,卷积神经网络FPGA加速中的图像填充装置对第六矩阵和第四矩阵(第四矩阵为3×3×1的矩阵,即卷积权重为3×3×1的矩阵)作卷积计算,得到第三矩阵的第二行的第一列像素数据v7。v7的具体计算如下:
v7=0*k1+p1*k2+p2*k3+0*k4+p7*k5+p8*k6+0*k7+p13*k8+p14*k9。
第三矩阵中第二行中的v8的计算过程为:卷积神经网络FPGA加速中的图像填充装置可以从第二矩阵中提取第六矩阵,第六矩阵中的第一行为p1,p2,p3;第二行为p7,p8,p9;第三行为p13,p14,p15。然后,卷积神经网络FPGA加速中的图像填充装置对第六矩阵和第四矩阵作卷积计算,得到第三矩阵的第二行的第二列像素数据v8。v8的具体计算如下:
v8= p1*k1+p2*k2+p3*k3+ p7*k4+p8*k5+p9*k6+ p13*k7+p14*k8+p15*k9。
以此类推,第三矩阵的第二行的像素数据v9、v10、v11和v12可以采用类似的计算方式。其中,第三矩阵中的第三行至第五行的像素数据采用与第二行的像素数据相同的方式进行卷积计算,即像素数据v13至v30的计算方式与第二行像素数据的计算方式相同。
下面介绍第三矩阵中最后一行的像素数据的确定过程。
可选地,卷积神经网络FPGA加速中的图像填充装置可以在第二矩阵中提取第七矩阵。其中,第七矩阵中为(m-1)*m*z的矩阵,第七矩阵的第一行是第二矩阵的倒数第m-1行。第七矩阵和第四矩阵的第二子矩阵(第二子矩阵是第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵)作卷积计算得到第三矩阵的最后一行的像素数据。
示例性的,请继续参考图5所示,在第三矩阵中最后一行的v31的计算过程为:卷积神经网络FPGA加速中的图像填充装置可以从第二矩阵中提取第七矩阵,第七矩阵中的第一行为0,p25,p26;第二行为0,p31,p32。卷积神经网络FPGA加速中的图像填充装置可以从第四矩阵中提取第二子矩阵,第二子矩阵的第一行为k1,k2,k3;第二行为k4,k5,k6。然后,卷积神经网络FPGA加速中的图像填充装置对第七矩阵和第二子矩阵作卷积计算,得到第三矩阵的第六行的第一列像素数据v31。v31的具体计算如下:
v31=0*k1+p25*k2+p26*k3+0*k4+p31*k5+p32*k6。
在第三矩阵中最后一行的v32的计算过程为:卷积神经网络FPGA加速中的图像填充装置可以从第二矩阵中提取第七矩阵,第七矩阵中的第一行为p25,p26,p27;第二行为p31,p32,p33。卷积神经网络FPGA加速中的图像填充装置可以从第四矩阵中提取第二子矩阵,第二子矩阵的第一行为k1,k2,k3;第二行为k4,k5,k6。然后,卷积神经网络FPGA加速中的图像填充装置对第七矩阵和第二子矩阵作卷积计算,得到第三矩阵的第六行的第二列像素数据v32。v32的具体计算如下:
v32= p25*k1+p26*k2+p27*k3+ p31*k4+p32*k5+p33*k6。
以此类推,第三矩阵中的最后一行的其它像素数据比如v33、v34、v35和v36可以采用类似的计算方式。
请结合图4A和图5所示,卷积神经网络FPGA加速中的图像填充装置对原图像进行零填充处理后和卷积权重作卷积计算,可以得到与原图像大象相同的图像,即第三矩阵的大小与第一矩阵的大小相同。比如,原图像为6×6×1的矩阵,经过卷积计算之后的图像也是6×6×1的矩阵。
需要说明的是,上述是以m=3、n =0为例,即z=1,卷积权重为3×3×1的矩阵。事实上,m和n还可以是其他值,比如m=4、n=1等(即z=2,卷积权重为4×4×2的矩阵),本发明实施例不限定。
需要说明的是,本发明实施例是以原图像和卷积权重为三维的为例(即第一矩阵为j*j*z的矩阵,第四矩阵为m*m*z的矩阵),事实上,原图像和卷积权重还可以为二维的(即第一矩阵为j*j的矩阵,第四矩阵为m*m的矩阵),当然,原图像和卷积权重还可以是其它维的,比如四维,本发明实施例不限定。
由前述描述内容可知,本发明实施例提供的卷积神经网络FPGA加速中的图像填充方法中,对像素数据作零填充时,无需在所有像素数据边缘都填充零,只需填充两行或者两列零即可保证卷积计算之后的图像和原图像大小一样,在一定程度上节省了存储空间,而且由于只需填充两行或者两列零,卷积神经网络FPGA加速中的图像填充装置作卷积计算的计算量减小了,有助于提升卷积神经网络FPGA加速中的图像填充装置的卷积计算效率。
通过以上描述可知,本发明中实施例的技术方案中,卷积神经网络FPGA加速中的图像填充装置获取待处理图像;待处理图像呈现第一矩阵形式,第一矩阵中每个矩阵元为待处理图像的一个像素数据;对第一矩阵作零填充处理,得到第二矩阵;第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据;或者,第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为待处理图像的一个像素数据;根据第二矩阵和卷积权重作卷积计算,得到第三矩阵;第三矩阵的大小与第一矩阵的大小相同。通过这种方式,可以使计算后的图像和原图像大小相同。
基于同一发明构思下,本发明实施例提供了一种卷积神经网络FPGA加速中的图像填充装置。请参考图6所示,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图。可选地,卷积神经网络FPGA加速中的图像填充装置600可以是手机、iPad、电脑、机器人等终端,图像处理装置600也可以仅是一个电路板,或者是FPGA芯片,或者是其它的芯片,例如图形处理器(Graphics Processing Unit),本发明实施例不限定。
下文以图像处理装置600是FPGA芯片为例进行介绍图像填充后的处理的过程。
如图6所示,卷积神经网络FPGA加速中的图像填充装置600中可以包括第一存储区域601和第二存储区域602。其中,第一存储区域601可以为FPGA芯片中的一个块随机存储器(Block RAM);第二存储区域602可以为FPGA芯片中的另一个Block RAM。第一存储区域601和第二存储区域602可以是同一类型的Block RAM,也可以是不同类型的Block RAM,本发明实施例不限行。
可选地,第一存储区域用于存储待处理图像的原图像数据(即第一矩阵),第二存储区域用于存储卷积权重(即第四矩阵)。卷积神经网络FPGA加速中的图像填充装置600还可以包括处理单元(Processing Element,PE)603, 处理单元603用于将零填充处理后的图像数据(即第三矩阵)和卷积权重作卷积计算,得到计算后的图像数据。
请继续参考图6,在做卷积计算之前,卷积神经网络FPGA加速中的图像填充装置600可以将原图像数据(例如原图像数据为j*j*z的矩阵,其中,j为大于等于2的整数,图6中以原图像数据为6×6×1的矩阵为例)顺序的写入第一存储区域601中进行缓存,其中,将第一存储区域601中的每一行缓存的第一地址和最后一个地址空出来不写入数据(或者是将第一存储区域601中的每一列缓存的第一地址和最后一个地址空出来不写入数据),目的是为了将原图像数据进行零填充处理。在这种方式中,不需要再填充两行零数值,从而可以减少填充两行数据的缓存,节省图像数据的存储空间,进而可以提高卷积神经网络FPGA加速中的图像填充装置600的卷积计算效率。比如,卷积神经网络FPGA加速中的图像填充装置600将6×6×1的原图像数据顺序写入8×6×1的第一存储区域601时,将第一存储区域601中的每一行缓存的第一地址(第一列)和最后一个地址(最后一列)空出来不写入数据。卷积神经网络FPGA加速中的图像填充装置600在第一列和最后一列填充零后得到的矩阵,即在第一存储区域601中存储的原图像数据的顺序为对应如图4A所示的第二矩阵。可选地,在做卷积计算之前,卷积神经网络FPGA加速中的图像填充装置600可以将卷积权重(例如卷积权重是m*m*z的第二矩阵,其中,m为大于等于2的整数)顺序的写入第二存储区域602中进行缓存。
请继续参考图6,在做卷积计算时,处理单元603可以从第一存储区域601中读取零填充处理后的图像数据。处理单元603还可以从第二存储区域602读取卷积权重。处理单元603可以根据卷积权重和图像数据做卷积计算,得到计算后的图像。其中,计算后的图像的大小与原图像大小相同,具体的计算过程,请参见前述内容,在此不重复赘述。
本实施例中的卷积神经网络FPGA加速中的图像填充装置600与前述图3所示的卷积神经网络FPGA加速中的图像填充方法是基于同一构思下的发明,通过前述对卷积神经网络FPGA加速中的图像填充方法的详细描述,本领域技术人员可以清楚的了解本实施例中卷积神经网络FPGA加速中的图像填充装置600的实施过程,所以为了说明书的简洁,在此不再赘述。
基于同一发明构思下,本发明实施例提供了一种卷积神经网络FPGA加速中的图像填充装置。请参考图7所示,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图。
如图7所示,卷积神经网络FPGA加速中的图像填充装置700包括第一存储单元701、第二存储单元702和处理单元703;其中,
第一存储单元701,用于存储待处理图像;待处理图像呈现第一矩阵形式,第一矩阵中每个矩阵元为待处理图像的一个像素数据;
第二存储单元702,用于存储卷积权重;
处理单元703,用于对第一矩阵作零填充处理,得到第二矩阵;第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据;或者,第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为待处理图像的一个像素数据;
处理单元703还用于:根据第二矩阵和卷积权重作卷积计算,得到第三矩阵;第三矩阵的大小与第一矩阵的大小相同。
可选地,卷积权重是m*m*z的第四矩阵;m为大于等于2的整数,z=2n,n为整数;处理单元703在用于对第一矩阵作零填充处理,得到第二矩阵时,具体用于:
在第二矩阵中提取第五矩阵;第五矩阵为(m-1)*m*z的矩阵;第五矩阵的第一行是第二矩阵的第一行;第五矩阵和第四矩阵的第一子矩阵作卷积计算,得到第三矩阵的第一行像素数据;
在第二矩阵中提取第六矩阵;第六矩阵为m*m*z的矩阵;第六矩阵的第一行是第二矩阵的一行;第六矩阵和第四矩阵作卷积计算得到第三矩阵中其它行的像素数据;其它行是第三矩阵中除去第一行和最后一行以外的行;
在第二矩阵中提取第七矩阵;第七矩阵中为(m-1)*m*z的矩阵;第七矩阵的第一行是第二矩阵的倒数第m-1行;第七矩阵和第四矩阵的第二子矩阵作卷积计算得到第三矩阵的最后一行的像素数据。
可选地,第一子矩阵是第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵;
第二子矩阵是第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵。
可选地,第一矩阵为6×6×1的矩阵;第二矩阵为8×6×1的矩阵;卷积权重为3×3×1的矩阵。
本实施例中的卷积神经网络FPGA加速中的图像填充装置700与前述图3所示的卷积神经网络FPGA加速中的图像填充方法是基于同一构思下的发明,通过前述对卷积神经网络FPGA加速中的图像填充方法的详细描述,本领域技术人员可以清楚的了解本实施例中卷积神经网络FPGA加速中的图像填充装置700的实施过程,所以为了说明书的简洁,在此不再赘述。
基于同一发明构思下,本发明实施例提供了一种卷积神经网络FPGA加速中的图像填充装置。请参考图8所示,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图。
如图8所示, 卷积神经网络FPGA加速中的图像填充装置800包括第一存储器801、第二存储器802和处理器803;其中,
第一存储器801,用于存储待处理图像;待处理图像呈现第一矩阵形式,第一矩阵中每个矩阵元为待处理图像的一个像素数据;
第二存储器802,用于存储卷积权重;
处理器803,用于对第一矩阵作零填充处理,得到第二矩阵;第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为待处理图像的一个像素数据;或者,第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为待处理图像的一个像素数据;
处理器803还用于:根据第二矩阵和卷积权重作卷积计算,得到第三矩阵;第三矩阵的大小与第一矩阵的大小相同。
可选地,卷积权重是m*m*z的第四矩阵;m为大于等于2的整数,z=2n,n为整数;处理器803在用于对第一矩阵作零填充处理,得到第二矩阵时,具体用于:
在第二矩阵中提取第五矩阵;第五矩阵为(m-1)*m*z的矩阵;第五矩阵的第一行是第二矩阵的第一行;第五矩阵和第四矩阵的第一子矩阵作卷积计算,得到第三矩阵的第一行像素数据;
在第二矩阵中提取第六矩阵;第六矩阵为m*m*z的矩阵;第六矩阵的第一行是第二矩阵的一行;第六矩阵和第四矩阵作卷积计算得到第三矩阵中其它行的像素数据;其它行是第三矩阵中除去第一行和最后一行以外的行;
在第二矩阵中提取第七矩阵;第七矩阵中为(m-1)*m*z的矩阵;第七矩阵的第一行是第二矩阵的倒数第m-1行;第七矩阵和第四矩阵的第二子矩阵作卷积计算得到第三矩阵的最后一行的像素数据。
可选地,第一子矩阵是第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵;
第二子矩阵是第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵。
可选地,第一矩阵为6×6×1的矩阵;第二矩阵为8×6×1的矩阵;卷积权重为3×3×1的矩阵。
本实施例中的卷积神经网络FPGA加速中的图像填充装置800与前述图3所示的卷积神经网络FPGA加速中的图像填充方法是基于同一构思下的发明,通过前述对卷积神经网络FPGA加速中的图像填充方法的详细描述,本领域技术人员可以清楚的了解本实施例中卷积神经网络FPGA加速中的图像填充装置800的实施过程,所以为了说明书的简洁,在此不再赘述。
基于同一发明构思下,本发明实施例提供了一种卷积神经网络FPGA加速中的图像填充装置。请参考图9所示,为本发明实施例提供的一种卷积神经网络FPGA加速中的图像填充装置的结构示意图。如图9所示,卷积神经网络FPGA加速中的图像填充装置900包括处理器901和存储器902。可选地,处理器901可以是通用的中央处理器(Central ProcessingUnit,CPU)或特定应用集成电路(Application Specific Integrated Circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路。
可选地,存储器902可以包括高速随机存取存储器,还可以包括非易失存储器,例如磁盘存储器件、闪存器件或其他非易失性固态存储器件等,本发明实施例不作限定。
可选地,存储器902用于存储一个或多个计算机程序;当存储器902存储的一个或多个计算机程序被处理器901执行时,使得卷积神经网络FPGA加速中的图像填充装置900能够实现图3所示的实施例中的全部或部分步骤。
本实施例中的卷积神经网络FPGA加速中的图像填充装置900与前述图3所示的卷积神经网络FPGA加速中的图像填充方法是基于同一构思下的发明,通过前述对卷积神经网络FPGA加速中的图像填充方法的详细描述,本领域技术人员可以清楚的了解本实施例中卷积神经网络FPGA加速中的图像填充装置900的实施过程,所以为了说明书的简洁,在此不再赘述。
基于同一发明构思下,本发明实施例提供了一种计算机可读存储介质。可选地,计算机可读存储介质有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时,使计算机执行上述卷积神经网络FPGA加速中的图像填充方法的步骤。由于本实施例中的计算机程序与前述图3所示的卷积神经网络FPGA加速中的图像填充方法是基于同一构思下的发明,通过前述对卷积神经网络FPGA加速中的图像填充方法的详细描述,本领域技术人员可以清楚的了解本实施例中计算机程序的实施过程,所以为了说明书的简洁,在此不再赘述。
基于同一发明构思下,本发明实施例提供了一种计算机程序产品,计算机程序产品存储有计算机程序,计算机程序包括程序指令,程序指令当被计算机执行时,使得计算机执行上述卷积神经网络FPGA加速中的图像填充方法的步骤。由于本实施例中的计算机程序产品与前述图3所示的卷积神经网络FPGA加速中的图像填充方法是基于同一构思下的发明,通过前述对卷积神经网络FPGA加速中的图像填充方法的详细描述,本领域技术人员可以清楚的了解本实施例中计算机程序产品的实施过程,所以为了说明书的简洁,在此不再赘述。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种卷积神经网络FPGA加速中的图像填充方法,其特征在于,应用于现场可编程门阵列FPGA,所述方法包括:
获取待处理图像;所述待处理图像呈现第一矩阵形式,所述第一矩阵中每个矩阵元为所述待处理图像的一个像素数据;
对所述第一矩阵作零填充处理,得到第二矩阵;所述第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为所述待处理图像的一个像素数据;或者,所述第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为所述待处理图像的一个像素数据;
根据所述第二矩阵和卷积权重作卷积计算,得到第三矩阵;所述第三矩阵的大小与所述第一矩阵的大小相同。
2.如权利要求1所述的方法,其特征在于,所述卷积权重是m*m*z的第四矩阵;所述m为大于等于2的整数,所述z=2n,n为整数;根据所述第二矩阵和卷积权重作卷积计算,得到第三矩阵,包括:
在所述第二矩阵中提取第五矩阵;所述第五矩阵为(m-1)*m*z的矩阵;所述第五矩阵的第一行是所述第二矩阵的第一行;所述第五矩阵和所述第四矩阵的第一子矩阵作卷积计算,得到所述第三矩阵的第一行像素数据;
在所述第二矩阵中提取第六矩阵;所述第六矩阵为m*m*z的矩阵;所述第六矩阵的第一行是所述第二矩阵的一行;所述第六矩阵和所述第四矩阵作卷积计算得到所述第三矩阵中其它行的像素数据;所述其它行是所述第三矩阵中除去所述第一行和最后一行以外的行;
在所述第二矩阵中提取第七矩阵;所述第七矩阵中为(m-1)*m*z的矩阵;所述第七矩阵的第一行是所述第二矩阵的倒数第m-1行;所述第七矩阵和所述第四矩阵的第二子矩阵作卷积计算得到所述第三矩阵的最后一行的像素数据。
3.如权利要求2所述的方法,其特征在于,所述第一子矩阵是所述第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵;
所述第二子矩阵是所述第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵。
4.如权利要求2所述的方法,其特征在于,所述第一矩阵为6×6×1的矩阵;所述第二矩阵为8×6×1的矩阵;所述卷积权重为3×3×1的矩阵。
5.如权利要求1-4任一所述的方法,其特征在于,所述FPGA中包括第一存储区域和第二存储区域;所述第一存储区域用于存储所述待处理图像的第一矩阵,所述第二存储区域用于存储所述卷积权重。
6.一种卷积神经网络FPGA加速中的图像填充装置,其特征在于,所述装置包括第一存储器、第二存储器和处理器;其中,
所述第一存储器,用于存储待处理图像;所述待处理图像呈现第一矩阵形式,所述第一矩阵中每个矩阵元为所述待处理图像的一个像素数据;
所述第二存储器,用于存储卷积权重;
所述处理器,用于对所述第一矩阵作零填充处理,得到第二矩阵;所述第二矩阵的第一列和最后一列为零,其它列中每个矩阵元为所述待处理图像的一个像素数据;或者,所述第二矩阵的第一行和最后一行为零,其它行中每个矩阵元为所述待处理图像的一个像素数据;
所述处理器还用于:根据所述第二矩阵和卷积权重作卷积计算,得到第三矩阵;所述第三矩阵的大小与所述第一矩阵的大小相同。
7.如权利要求6所述的装置,其特征在于,所述卷积权重是m*m*z的第四矩阵;所述m为大于等于2的整数,所述z=2n,n为整数;所述处理器在用于对所述第一矩阵作零填充处理,得到第二矩阵时,具体用于:
在所述第二矩阵中提取第五矩阵;所述第五矩阵为(m-1)*m*z的矩阵;所述第五矩阵的第一行是所述第二矩阵的第一行;所述第五矩阵和所述第四矩阵的第一子矩阵作卷积计算,得到所述第三矩阵的第一行像素数据;
在所述第二矩阵中提取第六矩阵;所述第六矩阵为m*m*z的矩阵;所述第六矩阵的第一行是所述第二矩阵的一行;所述第六矩阵和所述第四矩阵作卷积计算得到所述第三矩阵中其它行的像素数据;所述其它行是所述第三矩阵中除去所述第一行和最后一行以外的行;
在所述第二矩阵中提取第七矩阵;所述第七矩阵中为(m-1)*m*z的矩阵;所述第七矩阵的第一行是所述第二矩阵的倒数第m-1行;所述第七矩阵和所述第四矩阵的第二子矩阵作卷积计算得到所述第三矩阵的最后一行的像素数据。
8.如权利要求7所述的装置,其特征在于,所述第一子矩阵是所述第四矩阵中的第二行至第m行的数据所构成的(m-1)*m*z的矩阵;
所述第二子矩阵是所述第四矩阵中的第1行至第m-1行的数据所构成的(m-1)*m*z的矩阵。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-5中任一所述的方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910094728.8A CN109461119B (zh) | 2019-01-31 | 2019-01-31 | 卷积神经网络fpga加速中的图像填充方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910094728.8A CN109461119B (zh) | 2019-01-31 | 2019-01-31 | 卷积神经网络fpga加速中的图像填充方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109461119A true CN109461119A (zh) | 2019-03-12 |
CN109461119B CN109461119B (zh) | 2019-05-21 |
Family
ID=65616482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910094728.8A Active CN109461119B (zh) | 2019-01-31 | 2019-01-31 | 卷积神经网络fpga加速中的图像填充方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109461119B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047031A (zh) * | 2019-03-26 | 2019-07-23 | 深兰科技(上海)有限公司 | 一种像素段拼接的方法和装置 |
CN110472700A (zh) * | 2019-10-14 | 2019-11-19 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于卷积神经网络的参数填充方法与装置 |
CN112258375A (zh) * | 2020-10-20 | 2021-01-22 | 北京石油化工学院 | 一种将特定文本信息填充到关联图像边界的方法及系统 |
CN112465932A (zh) * | 2020-12-10 | 2021-03-09 | 上海眼控科技股份有限公司 | 一种图像填充方法、装置、设备及存储介质 |
CN112614043A (zh) * | 2020-12-16 | 2021-04-06 | 上海壁仞智能科技有限公司 | 用于卷积的方法、计算设备和计算机可读存储介质 |
CN112801864A (zh) * | 2021-02-26 | 2021-05-14 | 翱捷智能科技(上海)有限公司 | 一种在深度学习硬件中的图像填充方法及装置 |
CN112862725A (zh) * | 2021-03-12 | 2021-05-28 | 上海壁仞智能科技有限公司 | 用于计算的方法、计算设备和计算机可读存储介质 |
CN113077406A (zh) * | 2020-11-25 | 2021-07-06 | 无锡乐骐科技有限公司 | 一种基于优化的卷积填充方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3330899A1 (en) * | 2016-12-01 | 2018-06-06 | VIA Alliance Semiconductor Co., Ltd. | Neural network unit with neural memory and array of neural processing units that collectively perform multi-word distance rotates of row of data received from neural memory |
CN108133262A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有用于执行高效3维卷积的存储器布局的神经网络单元 |
-
2019
- 2019-01-31 CN CN201910094728.8A patent/CN109461119B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3330899A1 (en) * | 2016-12-01 | 2018-06-06 | VIA Alliance Semiconductor Co., Ltd. | Neural network unit with neural memory and array of neural processing units that collectively perform multi-word distance rotates of row of data received from neural memory |
CN108133262A (zh) * | 2016-12-01 | 2018-06-08 | 上海兆芯集成电路有限公司 | 具有用于执行高效3维卷积的存储器布局的神经网络单元 |
Non-Patent Citations (2)
Title |
---|
BYR_JIANDONG: "keras卷积补零相关的border_mode的选择以及padding的操作", 《HTTPS://BLOG.CSDN.NET/LUJIANDONG1/ARTICLE/DETAILS/54918320》 * |
贾祖琛: "神经网络图像压缩算法的FPGA实现研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047031A (zh) * | 2019-03-26 | 2019-07-23 | 深兰科技(上海)有限公司 | 一种像素段拼接的方法和装置 |
CN110472700A (zh) * | 2019-10-14 | 2019-11-19 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于卷积神经网络的参数填充方法与装置 |
CN110472700B (zh) * | 2019-10-14 | 2020-06-16 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种基于卷积神经网络的参数填充方法与装置 |
CN112258375A (zh) * | 2020-10-20 | 2021-01-22 | 北京石油化工学院 | 一种将特定文本信息填充到关联图像边界的方法及系统 |
CN112258375B (zh) * | 2020-10-20 | 2023-09-01 | 北京石油化工学院 | 一种将特定文本信息填充到关联图像边界的方法及系统 |
CN113077406B (zh) * | 2020-11-25 | 2022-06-14 | 无锡乐骐科技股份有限公司 | 一种基于优化的图像卷积填充方法 |
CN113077406A (zh) * | 2020-11-25 | 2021-07-06 | 无锡乐骐科技有限公司 | 一种基于优化的卷积填充方法 |
CN112465932A (zh) * | 2020-12-10 | 2021-03-09 | 上海眼控科技股份有限公司 | 一种图像填充方法、装置、设备及存储介质 |
CN112614043A (zh) * | 2020-12-16 | 2021-04-06 | 上海壁仞智能科技有限公司 | 用于卷积的方法、计算设备和计算机可读存储介质 |
CN112614043B (zh) * | 2020-12-16 | 2023-04-07 | 上海壁仞智能科技有限公司 | 用于卷积的方法、计算设备和计算机可读存储介质 |
CN112801864A (zh) * | 2021-02-26 | 2021-05-14 | 翱捷智能科技(上海)有限公司 | 一种在深度学习硬件中的图像填充方法及装置 |
WO2022179597A1 (zh) * | 2021-02-26 | 2022-09-01 | 翱捷智能科技(上海)有限公司 | 一种在深度学习硬件中的图像填充方法及装置 |
CN112862725A (zh) * | 2021-03-12 | 2021-05-28 | 上海壁仞智能科技有限公司 | 用于计算的方法、计算设备和计算机可读存储介质 |
CN112862725B (zh) * | 2021-03-12 | 2023-10-27 | 上海壁仞智能科技有限公司 | 用于计算的方法、计算设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109461119B (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109461119B (zh) | 卷积神经网络fpga加速中的图像填充方法及装置 | |
CN105229696A (zh) | 用于多维数据存取的并行存储器 | |
CN107862650A (zh) | 加速计算二维图像cnn卷积的方法 | |
CN106779057B (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
CN107742150A (zh) | 一种卷积神经网络的数据处理方法和装置 | |
CN111158874A (zh) | 数据处理方法和装置、电子设备及存储介质 | |
CN109447893A (zh) | 一种卷积神经网络fpga加速中图像前处理方法及装置 | |
CN110147252A (zh) | 一种卷积神经网络的并行计算方法及装置 | |
CN110321996B (zh) | 一种基于卷积神经网络的图像处理的方法和装置 | |
CN110866862B (zh) | 基于缓冲器的数据处理方法、装置、存储介质及电子设备 | |
CN107729018A (zh) | 循环向量化方法和设备 | |
CN107909537A (zh) | 一种基于卷积神经网络的图像处理方法及移动终端 | |
CN105488753B (zh) | 一种对图像进行二维傅立叶变换或反变换的方法及装置 | |
CN106569805A (zh) | 一种画布存储、图形绘制方法和设备 | |
CN109324984B (zh) | 在卷积运算中使用循环寻址的方法和装置 | |
CN109447239B (zh) | 一种基于arm的嵌入式卷积神经网络加速方法 | |
CN104954749B (zh) | 一种信息记录方法 | |
CN102479381B (zh) | 一种2维图像旋转处理方法及处理装置 | |
CN108415881A (zh) | 卷积神经网络的运算装置及方法 | |
CN111356151A (zh) | 一种数据处理方法及装置、计算机可读存储介质 | |
CN102663759A (zh) | 一种遥感影像快速处理方法 | |
CN104883573A (zh) | 一种信号高效处理方法 | |
CN110503193B (zh) | 一种基于roi的池化运算方法和电路 | |
CN114760662A (zh) | 一种低时延速率匹配方法、装置、电子设备及存储介质 | |
CN114037054A (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 |