CN111931123A - 边界卷积计算方法、装置、硬件加速器及计算机设备 - Google Patents

边界卷积计算方法、装置、硬件加速器及计算机设备 Download PDF

Info

Publication number
CN111931123A
CN111931123A CN202011093166.4A CN202011093166A CN111931123A CN 111931123 A CN111931123 A CN 111931123A CN 202011093166 A CN202011093166 A CN 202011093166A CN 111931123 A CN111931123 A CN 111931123A
Authority
CN
China
Prior art keywords
current image
convolution
image
convolution calculation
boundary
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
Application number
CN202011093166.4A
Other languages
English (en)
Other versions
CN111931123B (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.)
Nanjing Fengxing Technology Co ltd
Original Assignee
Nanjing Fengxing 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 Nanjing Fengxing Technology Co ltd filed Critical Nanjing Fengxing Technology Co ltd
Priority to CN202011093166.4A priority Critical patent/CN111931123B/zh
Publication of CN111931123A publication Critical patent/CN111931123A/zh
Application granted granted Critical
Publication of CN111931123B publication Critical patent/CN111931123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Biophysics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

本申请公开了边界卷积计算方法、装置、硬件加速器及计算机设备,该方法包括加载当前图像,若当前图像为整个图像的第一部分,则针对当前图像的第一边界元素执行第一局部卷积计算,并将结果存储至内部存储模块。若不是,则针对当前图像的第二边界元素执行第二局部卷积计算,从内部存储模块中取出目标邻近图像的第一局部卷积计算结果,将当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并,获得当前图像与目标邻近图像之间边界元素的卷积计算结果。上述方法对每部分图像的边界元素进行局部卷积计算并暂存,针对当前图像卷积时,取出之前暂存的局部卷积结果进行相加合并,实现边界卷积,有效提高卷积计算效率。

Description

边界卷积计算方法、装置、硬件加速器及计算机设备
技术领域
本申请涉及卷积神经网络技术领域,尤其涉及一种边界卷积计算方法、装置、硬件加速器及计算机设备。
背景技术
对图像进行卷积运算时,通常会令卷积核矩阵在图像上滑动,同时求取卷积核矩阵与图像中对应元素的相乘累加结果。实际计算时,由于执行卷积计算的硬件加速器尺寸有限,无法一次性完成整个图像的计算,通常一次仅针对部分图像执行卷积计算,计算完毕后加载下一部分图像再执行卷积计算。
通常,位于图像边界处的元素并不能被卷积操作到,原因在于边界的元素没有完全跟卷积核重叠。参见图1,若卷积核的大小为3×3(图中灰色部分),硬件加速器一次能够针对8×8大小的图像执行卷积计算,首次计算时,硬件加速器会加载出第1-8行及第1-8列的图像,卷积核按照每次一步从左到右在图像中进行滑动,每次覆盖图像中3行3列的元素,当滑到第6、7、8列时,便不会继续向右滑动。针对下一部分图像(第9-16行及第9至16列)进行卷积计算时,卷积核一开始便覆盖图像中的第9、10、11列,这种情况下,图像第7、8、9列及图像第8、9、10列并未被执行卷积操作。
为了解决这一问题,通常会在执行第二次卷积计算时,加载图像中第7-14列的元素进行计算。这种边界卷积的方法采用了重复加载的方式,将导致原本应该加载的第15及16列被第7及8列占据,增加了执行卷积计算的总次数,极大的降低了计算效率。
发明内容
为了解决利用重复加载的方式进行边界卷积计算,将导致增加计算的总次数,降低计算效率的问题,本申请通过以下实施例公开了边界卷积计算方法、装置、硬件加速器及计算机设备。
本申请第一方面公开了一种边界卷积计算方法,包括:
加载当前图像;
判断所述当前图像是否为整个图像的第一部分图像;
若是,则执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述当前图像的第一局部卷积计算的结果存储至内部存储模块,所述第一边界元素为所述当前图像中倒数n-1行和/或倒数n-1列的元素,n为卷积核的大小;
若不是,则执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算的结果存储至内部存储模块;
针对所述当前图像的第二边界元素执行第二局部卷积计算,所述第二边界元素为所述当前图像中正数n-1行和/或正数n-1列的元素;
从所述内部存储模块中取出目标邻近图像的第一局部卷积计算结果,其中,所述目标邻近图像为与所述当前图像相邻的图像,所述目标邻近图像与所述当前图像之间不存在重复的元素;
将所述当前图像的第二局部卷积计算结果与所述目标邻近图像的第一局部卷积计算进行相加合并,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
可选的,所述针对所述当前图像的第一边界元素执行第一局部卷积计算,包括:
若所述第一边界元素为所述当前图像中倒数n-1行的元素,则针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作;
或者,若所述第一边界元素为所述当前图像中倒数n-1列的元素,则针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作;
或者,若所述第一边界元素为所述当前图像中倒数n-1行及倒数n-1列的元素,则针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作,及针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作。
可选的,所述针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作,包括:
分别针对所述当前图像中倒数n-m行的元素与所述卷积核中正数n-m行的元素执行相乘累加操作,其中,m为小于n的正整数;
所述针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作,包括:
分别针对所述当前图像中倒数n-m列的元素与所述卷积核中正数n-m列的元素执行相乘累加操作。
可选的,所述针对所述当前图像的第二边界元素执行第二局部卷积计算,包括:
若所述第二边界元素为所述当前图像中正数n-1行的元素,则针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作;
或者,若所述第二边界元素为所述当前图像中正数n-1列的元素,则针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作;
或者,若所述第二边界元素为所述当前图像中正数n-1行及正数n-1列的元素,则针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作,及针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作。
可选的,所述针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作,包括:
分别针对所述当前图像中正数n-m行的元素与所述卷积核中倒数n-m行的元素执行相乘累加操作,其中,m为小于n的正整数;
所述针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作,包括:
分别针对所述当前图像中正数n-m列的元素与所述卷积核中倒数n-m列的元素执行相乘累加操作。
本申请第二方面公开了一种边界卷积计算装置,所述装置应用于本申请第一方面所述的边界卷积计算方法,所述边界卷积计算装置包括:
加载模块,用于加载当前图像;
判断模块,用于判断所述当前图像是否为整个图像的第一部分图像;
第一卷积计算模块,用于在所述当前图像是整个图像的第一部分图像时,执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述当前图像的第一局部卷积计算的结果存储至内部存储模块,所述第一边界元素为所述当前图像中倒数n-1行和/或倒数n-1列的元素,n为卷积核的大小;
第二卷积计算模块,用于在所述当前图像不是整个图像的第一部分图像时,执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算的结果存储至内部存储模块;
针对所述当前图像的第二边界元素执行第二局部卷积计算,所述第二边界元素为所述当前图像中正数n-1行和/或正数n-1列的元素;
从所述内部存储模块中取出目标邻近图像的第一局部卷积计算结果,其中,所述目标邻近图像为与所述当前图像相邻的图像,所述目标邻近图像与所述当前图像之间不存在重复的元素;
将所述当前图像的第二局部卷积计算结果与所述目标邻近图像的第一局部卷积计算进行相加合并,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
本申请第三方面公开了一种硬件加速器,可选的,用于执行本申请第一方面所述的边界卷积计算方法,所述硬件加速器包括:
输入缓存模块,用于加载当前图像及卷积核;
卷积计算模块,用于针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算结果输入至内部存储模块中,和/或,用于针对所述当前图像的第二边界元素执行第二局部卷积计算,并将所述第二局部卷积计算结果输入至结果合并模块中;
内部存储模块,用于存储各部分图像的第一局部卷积计算结果;
结果合并模块,用于将当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并操作,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
可选的,所述卷积计算模块包括卷积计算单元、第一累加单元及第二累加单元;
所述卷积计算单元的输出端分别接至所述第一累加单元及所述第二累加单元;
所述第一累加单元的输出端接至所述内部存储模块,所述第二累加单元的输出端接至所述结果合并模块;
所述结果合并单元包括多个加法器。
本申请第四方面公开了一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如本申请第一方面所述的边界卷积计算方法的步骤。
本申请第五方面公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第一方面所述的边界卷积计算方法的步骤。
本申请公开了边界卷积计算方法、装置、硬件加速器及计算机设备,该方法包括加载当前图像,若当前图像为整个图像的第一部分,则针对当前图像的第一边界元素执行第一局部卷积计算,并将结果存储至内部存储模块。若不是,则针对当前图像的第一边界元素执行第一局部卷积计算,并将结果存储至内部存储模块;针对当前图像的第二边界元素执行第二局部卷积计算,从内部存储模块中取出目标邻近图像的第一局部卷积计算结果,将当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并,获得当前图像与目标邻近图像之间边界元素的卷积计算结果。上述方法对每部分图像的边界元素进行局部卷积计算,并将计算结果暂存,针对当前图像卷积时,取出之前暂存的目标邻近图像的局部卷积结果,使其与当前图像的局部卷积结果进行合并,实现边界卷积,无需针对之前已经加载过的边界元素进行重复加载,不会导致整个图像卷积计算总次数的增加,有效提高卷积计算效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的边界卷积计算方法的过程示意图;
图2为本申请实施例公开的边界卷积计算方法的工作流程示意图;
图3为本申请实施例公开的边界卷积计算方法中,当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并的一种示意图;
图4为本申请实施例公开的边界卷积计算方法中,当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并的又一种示意图;
图5为本申请实施例公开的一种硬件加速器的结构示意图。
具体实施方式
为了解决利用重复加载的方式进行边界卷积计算,将导致增加计算的总次数,降低计算效率的问题,本申请通过以下实施例公开了边界卷积计算方法、装置、硬件加速器及计算机设备。
本申请第一实施例公开了一种边界卷积计算方法,参见图2所述的工作流程示意图,所述边界卷积计算方法包括:
步骤S11,加载当前图像。
步骤S12,判断所述当前图像是否为整个图像的第一部分图像,若判断结果为是,则执行步骤S13,若判断结果为不是,则执行步骤S14-步骤S17。
通常在对整个图像进行卷积计算时,会逐行逐列的加载部分图像,第一部分图像为整个图像中第一行第一列的图像。
步骤S13,针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述当前图像的第一局部卷积计算的结果存储至内部存储模块,所述第一边界元素为所述当前图像中倒数n-1行和/或倒数n-1列的元素,n为卷积核的大小。
步骤S14,针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算的结果存储至内部存储模块。
步骤S15,针对所述当前图像的第二边界元素执行第二局部卷积计算,所述第二边界元素为所述当前图像中正数n-1行和/或正数n-1列的元素。
步骤S16,从所述内部存储模块中取出目标邻近图像的第一局部卷积计算结果,其中,所述目标邻近图像为与所述当前图像相邻的图像,所述目标邻近图像与所述当前图像之间不存在重复的元素。
步骤S17,将所述当前图像的第二局部卷积计算结果与所述目标邻近图像的第一局部卷积计算进行相加合并,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
进一步的,所述针对所述当前图像的第一边界元素执行第一局部卷积计算,包括:
若所述第一边界元素为所述当前图像中倒数n-1行的元素,则针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作。
或者,若所述第一边界元素为所述当前图像中倒数n-1列的元素,则针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作。
或者,若所述第一边界元素为所述当前图像中倒数n-1行及倒数n-1列的元素,则针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作,及针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作。
以下例举出当前图像中存在第一边界元素、第二边界元素的情况:
1、若当前图像位于整个图像的第一行第一列,则其不存在第二边界元素,仅存在第一边界元素,且其第一边界元素为当前图像中倒数n-1行和倒数n-1列的元素;
2、若当前图像位于整个图像的第一行最后一列,则其存在第一边界元素和第二边界元素,且其第一边界元素为当前图像中倒数n-1行的元素,其第二边界元素为当前图像中正数n-1列的元素;
3、若当前图像位于整个图像的第一行(除了第一列及最后一列),则其存在第一边界元素和第二边界元素,且其第一边界元素为当前图像中倒数n-1行和倒数n-1列的元素,其第二边界元素为当前图像中正数n-1列的元素;
4、若当前图像位于整个图像的第一列(除了第一行及最后一行),则其存在第一边界元素和第二边界元素,且其第一边界元素为当前图像中倒数n-1行和倒数n-1列的元素,其第二边界元素为当前图像中正数n-1行的元素;
5、若当前图像位于整个图像的最后一列(除了第一行及最后一行),则其存在第一边界元素和第二边界元素,且其第一边界元素为当前图像中倒数n-1行的元素,其第二边界元素为当前图像中正数n-1行的元素和正数n-1列的元素;
6、若当前图像位于整个图像的最后一行第一列,则其存在第一边界元素和第二边界元素,且其第一边界元素为当前图像中倒数n-1列的元素,其第二边界元素为当前图像中正数n-1行的元素;
7、若当前图像位于整个图像的最后一行最后一列,则其不存在第一边界元素,存在第二边界元素,且其第二边界元素为当前图像中正数n-1行的元素和正数n-1列的元素;
8、若当前图像位于整个图像的最后一行(除了第一列及最后一列),则其存在第一边界元素和第二边界元素,且其第一边界元素为当前图像中倒数n-1列的元素,其第二边界元素为当前图像中正数n-1行的元素和正数n-1列的元素;
9、若当前图像位于整个图像的中位置不属于上述几种情况,则其存在第一边界元素和第二边界元素,且其第一边界元素为当前图像中倒数n-1行和倒数n-1列的元素,其第二边界元素为当前图像中正数n-1行的元素和正数n-1列的元素。
作为示例,假如卷积核尺寸为3×3,那么第一边界元素则为当前图像中的倒数两行和/或倒数两列的元素,第二边界元素则为当前图像的正数两行和/或正数两列的元素。
进一步的,所述针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作,包括:
分别针对所述当前图像中倒数n-m行的元素与所述卷积核中正数n-m行的元素执行相乘累加操作,其中,m为小于n的正整数。
所述针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作,包括:
分别针对所述当前图像中倒数n-m列的元素与所述卷积核中正数n-m列的元素执行相乘累加操作。
进一步的,所述针对所述当前图像的第二边界元素执行第二局部卷积计算,包括:
若所述第二边界元素为所述当前图像中正数n-1行的元素,则针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作。
或者,若所述第二边界元素为所述当前图像中正数n-1列的元素,则针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作。
或者,若所述第二边界元素为所述当前图像中正数n-1行及正数n-1列的元素,则针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作,及针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作。
进一步的,所述针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作,包括:
分别针对所述当前图像中正数n-m行的元素与所述卷积核中倒数n-m行的元素执行相乘累加操作,其中,m为小于n的正整数。
所述针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作,包括:
分别针对所述当前图像中正数n-m列的元素与所述卷积核中倒数n-m列的元素执行相乘累加操作。
作为示例,若卷积核尺寸为3×3,则将当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并的过程可参见图3及图4所示。图中,PUSM1表示第一局部卷积计算结果,PUSM2表示第二局部卷积计算结果。
本申请公开了边界卷积计算方法,该方法包括加载当前图像,若当前图像为整个图像的第一部分,则针对当前图像的第一边界元素执行第一局部卷积计算,并将结果存储至内部存储模块。若不是,则针对当前图像的第一边界元素执行第一局部卷积计算,并将结果存储至内部存储模块;针对当前图像的第二边界元素执行第二局部卷积计算,从内部存储模块中取出目标邻近图像的第一局部卷积计算结果,将当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并,获得当前图像与目标邻近图像之间边界元素的卷积计算结果。上述方法对每部分图像的边界元素进行局部卷积计算,并将计算结果暂存,针对当前图像卷积时,取出之前暂存的目标邻近图像的局部卷积结果,使其与当前图像的局部卷积结果进行合并,实现边界卷积,无需针对之前已经加载过的边界元素进行重复加载,不会导致整个图像卷积计算总次数的增加,有效提高卷积计算效率。
本申请第二实施例公开了一种边界卷积计算装置,所述装置应用于本申请第一实施例所述的边界卷积计算方法,所述边界卷积计算装置包括:
加载模块,用于加载当前图像。
判断模块,用于判断所述当前图像是否为整个图像的第一部分图像。
第一卷积计算模块,用于在所述当前图像是整个图像的第一部分图像时,执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述当前图像的第一局部卷积计算的结果存储至内部存储模块,所述第一边界元素为所述当前图像中倒数n-1行和/或倒数n-1列的元素,n为卷积核的大小。
第二卷积计算模块,用于在所述当前图像不是整个图像的第一部分图像时,执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算的结果存储至内部存储模块。
针对所述当前图像的第二边界元素执行第二局部卷积计算,所述第二边界元素为所述当前图像中正数n-1行和/或正数n-1列的元素。
从所述内部存储模块中取出目标邻近图像的第一局部卷积计算结果,其中,所述目标邻近图像为与所述当前图像相邻的图像,所述目标邻近图像与所述当前图像之间不存在重复的元素。
将所述当前图像的第二局部卷积计算结果与所述目标邻近图像的第一局部卷积计算进行相加合并,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
本申请第三实施例公开了一种硬件加速器,用于执行本申请第一实施例所述的边界卷积计算方法,参见图5所示的结构示意图,所述硬件加速器包括:
输入缓存模块,用于加载当前图像及卷积核。
卷积计算模块,用于针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算结果输入至内部存储模块中,和/或,用于针对所述当前图像的第二边界元素执行第二局部卷积计算,并将所述第二局部卷积计算结果输入至结果合并模块中。
内部存储模块,用于存储各部分图像的第一局部卷积计算结果。
结果合并模块,用于将当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并操作,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
进一步的,所述卷积计算模块包括卷积计算单元、第一累加单元及第二累加单元。
所述卷积计算单元的输出端分别接至所述第一累加单元及所述第二累加单元。所述第一累加单元的输出端接至所述结果合并模块,所述第二累加单元的输出端接至所述内部存储模块。
所述卷积计算单元用于针对当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算结果通过第二累加单元的累加之后输入至内部存储模块,所述卷积计算单元还用于针对当前图像的第二边界元素执行第二局部卷积计算,并将所述第二局部卷积计算结果通过第一累加单元的累加之后输入至结果合并模块。
所述结果合并单元包括多个加法器。
本申请第四实施例公开了一种计算机设备,包括:
存储器,用于存储计算机程序。
处理器,用于执行所述计算机程序时实现如本申请第一实施例所述的边界卷积计算方法的步骤。
本申请第五实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如本申请第一实施例所述的边界卷积计算方法的步骤。
以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

Claims (10)

1.一种边界卷积计算方法,其特征在于,包括:
加载当前图像;
判断所述当前图像是否为整个图像的第一部分图像;
若是,则执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述当前图像的第一局部卷积计算的结果存储至内部存储模块,所述第一边界元素为所述当前图像中倒数n-1行和/或倒数n-1列的元素,n为卷积核的大小;
若不是,则执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算的结果存储至内部存储模块;
针对所述当前图像的第二边界元素执行第二局部卷积计算,所述第二边界元素为所述当前图像中正数n-1行和/或正数n-1列的元素;
从所述内部存储模块中取出目标邻近图像的第一局部卷积计算结果,其中,所述目标邻近图像为与所述当前图像相邻的图像,所述目标邻近图像与所述当前图像之间不存在重复的元素;
将所述当前图像的第二局部卷积计算结果与所述目标邻近图像的第一局部卷积计算进行相加合并,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
2.根据权利要求1所述的边界卷积计算方法,其特征在于,所述针对所述当前图像的第一边界元素执行第一局部卷积计算,包括:
若所述第一边界元素为所述当前图像中倒数n-1行的元素,则针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作;
或者,若所述第一边界元素为所述当前图像中倒数n-1列的元素,则针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作;
或者,若所述第一边界元素为所述当前图像中倒数n-1行及倒数n-1列的元素,则针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作,及针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作。
3.根据权利要求2所述的边界卷积计算方法,其特征在于,所述针对所述当前图像中倒数n-1行的元素与所述卷积核中正数n-1行的元素执行卷积操作,包括:
分别针对所述当前图像中倒数n-m行的元素与所述卷积核中正数n-m行的元素执行相乘累加操作,其中,m为小于n的正整数;
所述针对所述当前图像中倒数n-1列的元素与所述卷积核中正数n-1列的元素执行卷积操作,包括:
分别针对所述当前图像中倒数n-m列的元素与所述卷积核中正数n-m列的元素执行相乘累加操作。
4.根据权利要求2所述的边界卷积计算方法,其特征在于,所述针对所述当前图像的第二边界元素执行第二局部卷积计算,包括:
若所述第二边界元素为所述当前图像中正数n-1行的元素,则针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作;
或者,若所述第二边界元素为所述当前图像中正数n-1列的元素,则针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作;
或者,若所述第二边界元素为所述当前图像中正数n-1行及正数n-1列的元素,则针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作,及针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作。
5.根据权利要求4所述的边界卷积计算方法,其特征在于,所述针对所述当前图像中正数n-1行的元素与所述卷积核中倒数n-1行的元素执行卷积操作,包括:
分别针对所述当前图像中正数n-m行的元素与所述卷积核中倒数n-m行的元素执行相乘累加操作,其中,m为小于n的正整数;
所述针对所述当前图像中正数n-1列的元素与所述卷积核中倒数n-1列的元素执行卷积操作,包括:
分别针对所述当前图像中正数n-m列的元素与所述卷积核中倒数n-m列的元素执行相乘累加操作。
6.一种边界卷积计算装置,其特征在于,所述装置应用于权利要求1-5任一项所述的边界卷积计算方法,所述边界卷积计算装置包括:
加载模块,用于加载当前图像;
判断模块,用于判断所述当前图像是否为整个图像的第一部分图像;
第一卷积计算模块,用于在所述当前图像是整个图像的第一部分图像时,执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述当前图像的第一局部卷积计算的结果存储至内部存储模块,所述第一边界元素为所述当前图像中倒数n-1行和/或倒数n-1列的元素,n为卷积核的大小;
第二卷积计算模块,用于在所述当前图像不是整个图像的第一部分图像时,执行以下操作:
针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算的结果存储至内部存储模块;
针对所述当前图像的第二边界元素执行第二局部卷积计算,所述第二边界元素为所述当前图像中正数n-1行和/或正数n-1列的元素;
从所述内部存储模块中取出目标邻近图像的第一局部卷积计算结果,其中,所述目标邻近图像为与所述当前图像相邻的图像,所述目标邻近图像与所述当前图像之间不存在重复的元素;
将所述当前图像的第二局部卷积计算结果与所述目标邻近图像的第一局部卷积计算进行相加合并,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
7.一种硬件加速器,其特征在于,用于执行权利要求1-5任一项所述的边界卷积计算方法,所述硬件加速器包括:
输入缓存模块,用于加载当前图像及卷积核;
卷积计算模块,用于针对所述当前图像的第一边界元素执行第一局部卷积计算,并将所述第一局部卷积计算结果输入至内部存储模块中,和/或,用于针对所述当前图像的第二边界元素执行第二局部卷积计算,并将所述第二局部卷积计算结果输入至结果合并模块中;
内部存储模块,用于存储各部分图像的第一局部卷积计算结果;
结果合并模块,用于将当前图像的第二局部卷积计算结果与目标邻近图像的第一局部卷积计算进行相加合并操作,获得所述当前图像与所述目标邻近图像之间边界元素的卷积计算结果。
8.根据权利要求7所述的硬件加速器,其特征在于,所述卷积计算模块包括卷积计算单元、第一累加单元及第二累加单元;
所述卷积计算单元的输出端分别接至所述第一累加单元及所述第二累加单元;
所述第一累加单元的输出端接至所述内部存储模块,所述第二累加单元的输出端接至所述结果合并模块;
所述结果合并单元包括多个加法器。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1-5任一项所述的边界卷积计算方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理执行时实现如权利要求1-5任一项所述的边界卷积计算方法的步骤。
CN202011093166.4A 2020-10-14 2020-10-14 边界卷积计算方法、装置、硬件加速器及计算机设备 Active CN111931123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011093166.4A CN111931123B (zh) 2020-10-14 2020-10-14 边界卷积计算方法、装置、硬件加速器及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011093166.4A CN111931123B (zh) 2020-10-14 2020-10-14 边界卷积计算方法、装置、硬件加速器及计算机设备

Publications (2)

Publication Number Publication Date
CN111931123A true CN111931123A (zh) 2020-11-13
CN111931123B CN111931123B (zh) 2020-12-25

Family

ID=73335157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011093166.4A Active CN111931123B (zh) 2020-10-14 2020-10-14 边界卷积计算方法、装置、硬件加速器及计算机设备

Country Status (1)

Country Link
CN (1) CN111931123B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404088A (zh) * 2008-11-05 2009-04-08 华中科技大学 Ct图像重建的方法及系统
CN107437110A (zh) * 2017-07-11 2017-12-05 中国科学院自动化研究所 卷积神经网络的分块卷积优化方法及装置
CN107729994A (zh) * 2017-11-28 2018-02-23 北京地平线信息技术有限公司 执行卷积神经网络中的卷积层的运算的方法和装置
CN109409503A (zh) * 2018-09-27 2019-03-01 深圳市铱硙医疗科技有限公司 神经网络的训练方法、图像转换方法、装置、设备及介质
CN110800062A (zh) * 2017-10-16 2020-02-14 因美纳有限公司 用于变体分类的深度卷积神经网络
CN111091181A (zh) * 2019-12-09 2020-05-01 Oppo广东移动通信有限公司 卷积处理单元、神经网络处理器、电子设备及卷积运算方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404088A (zh) * 2008-11-05 2009-04-08 华中科技大学 Ct图像重建的方法及系统
CN107437110A (zh) * 2017-07-11 2017-12-05 中国科学院自动化研究所 卷积神经网络的分块卷积优化方法及装置
CN110800062A (zh) * 2017-10-16 2020-02-14 因美纳有限公司 用于变体分类的深度卷积神经网络
CN107729994A (zh) * 2017-11-28 2018-02-23 北京地平线信息技术有限公司 执行卷积神经网络中的卷积层的运算的方法和装置
CN109409503A (zh) * 2018-09-27 2019-03-01 深圳市铱硙医疗科技有限公司 神经网络的训练方法、图像转换方法、装置、设备及介质
CN111091181A (zh) * 2019-12-09 2020-05-01 Oppo广东移动通信有限公司 卷积处理单元、神经网络处理器、电子设备及卷积运算方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴进等: "一种基于 3D-BN-VGG 网络的行为识别算法", 《电讯技术》 *
赵博雅: "基于卷积神经网络的硬件加速器设计及实现研究", 《中国优秀博士学位论文全文数据库 工程科技Ⅱ辑》 *

Also Published As

Publication number Publication date
CN111931123B (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
US10642613B2 (en) Arithmetic processing device for deep learning and control method of the arithmetic processing device for deep learning
US20230064381A1 (en) Memory-Size- and Bandwidth-Efficient Method for Feeding Systolic Array Matrix Multipliers
CN108573305B (zh) 一种数据处理方法、设备及装置
US20190095776A1 (en) Efficient data distribution for parallel processing
US10713042B2 (en) Arithmetic processing device and control method for arithmetic processing device
US20180181406A1 (en) Arithmetic processing device and control method of the arithmetic processing device
CN111428189B (zh) 一种用于反卷积运算的数据预处理方法及装置
US10922785B2 (en) Processor and method for scaling image
CN111951269B (zh) 图像处理方法及相关设备
CN108073549B (zh) 卷积运算装置及方法
EP3093757A2 (en) Multi-dimensional sliding window operation for a vector processor
JP7171883B2 (ja) 効率的な畳み込みエンジン
US11586442B2 (en) System and method for convolving image with sparse kernels
WO2023065983A1 (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
CN112633470A (zh) 优化神经网络卷积残差结构的方法、系统、设备及介质
CN111931123B (zh) 边界卷积计算方法、装置、硬件加速器及计算机设备
CN110322388B (zh) 池化方法及装置、池化系统、计算机可读存储介质
KR101989793B1 (ko) 컨볼루션 신경망을 위한 가속기 인식 가지 치기 방법 및 기록 매체
CN112231627A (zh) 边界卷积计算方法、装置、计算机设备及可读存储介质
CN113963241B (zh) Fpga硬件架构及其数据处理方法、存储介质
CN116090518A (zh) 基于脉动运算阵列的特征图处理方法、装置以及存储介质
KR102510924B1 (ko) 대규모 병렬 연관된 승산기-누산기
EP3680827B1 (en) Information processing apparatus and memory control method
US20220269752A1 (en) Execution method for convolution computation
CN111124358A (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