CN110047031A - 一种像素段拼接的方法和装置 - Google Patents
一种像素段拼接的方法和装置 Download PDFInfo
- Publication number
- CN110047031A CN110047031A CN201910233198.0A CN201910233198A CN110047031A CN 110047031 A CN110047031 A CN 110047031A CN 201910233198 A CN201910233198 A CN 201910233198A CN 110047031 A CN110047031 A CN 110047031A
- Authority
- CN
- China
- Prior art keywords
- pixel
- fragment
- pixel fragment
- convolution
- supplementation
- 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.)
- Pending
Links
- 239000012634 fragment Substances 0.000 title claims abstract description 460
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000009469 supplementation Effects 0.000 claims abstract description 118
- 239000013589 supplement Substances 0.000 claims abstract description 60
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 13
- 230000000295 complement effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 abstract description 166
- 230000011218 segmentation Effects 0.000 abstract description 14
- 238000013135 deep learning Methods 0.000 description 38
- 238000010586 diagram Methods 0.000 description 21
- 241001269238 Data Species 0.000 description 18
- 239000000047 product Substances 0.000 description 10
- 238000013500 data storage Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 101000909637 Homo sapiens Transcription factor COE1 Proteins 0.000 description 4
- 102100024207 Transcription factor COE1 Human genes 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 101000909641 Homo sapiens Transcription factor COE2 Proteins 0.000 description 3
- 101000909628 Homo sapiens Transcription factor COE3 Proteins 0.000 description 3
- 101000909629 Homo sapiens Transcription factor COE4 Proteins 0.000 description 3
- 102100024204 Transcription factor COE2 Human genes 0.000 description 3
- 102100024200 Transcription factor COE3 Human genes 0.000 description 3
- 102100024201 Transcription factor COE4 Human genes 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001502 supplementing effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005194 fractionation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种像素段拼接的方法和装置,用以解决现有技术中存在卷积计算时会在特征图的行像素分段处丢失卷积计算数据的问题。具体实施中,针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;对已补充的像素段进行卷积运算。如此可以对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
Description
技术领域
本发明涉及无线通信技术领域,特别涉及一种像素段拼接的方法和装置。
背景技术
深度学习的概念源于人工神经网络的研究。随着深度学习研究的深入,卷积神经网络的运算量已经发生了极大地变化,为了满足深度学习中的运算能力的需求,现一般通过下列方式:(一)通过ASIC(Application Specific Integrated Circuits,专用集成电路)提升深度学习速率;(二)通过FPGA(Field-Programmable Gate Array,现场可编程门阵列)提升深度学习速率;(三)通过GPU(Graphics Processing Unit,图形处理器)方案提升深度学习速率。
在通过GPU方案提升卷积神经网络计算速度时卷积计算需要将参与卷积计算的所有的特征图以及对应的权重数据从DDR(Double Data Rate Synchronous Dynamic RandomAccess Memory,双倍速率同步动态随机存储器)中读取出来,并存储到SRAM(StaticRandom-Access Memory,静态随机存取存储器)中,再将SRAM中存储的这些数据传送到卷积计算中心进行计算。
由于SRAM的成本是比较高昂的,为了降低成本,且使得深度学习加速器中乘法器的数目能够处理完整的数据段,可以将卷积计算的数据进行切分,以分段后的特征图的行像素的像素段为基础单位进行卷积计算。然而这样可能造成卷积计算时在分段处卷积计算数据丢失。
综上所述,现有技术中卷积计算时会在特征图的行像素分段处丢失卷积计算数据。
发明内容
本发明提供一种像素段拼接的方法和装置,用以解决现有技术中存在卷积计算时会在特征图的行像素分段处丢失卷积计算数据的问题。
第一方面,本发明实施例提供一种像素段拼接的方法,该方法包括:
针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
对已补充的像素段进行卷积运算。
上述方法,针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;然后根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此在分段后对像素段进行卷积计算处理时,先对判断像素段是否满足预设边缘像素数据条件,若满足,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,进而利用像素段相邻的其他像素段中的像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
在一种可能的实施方式,所述像素段满足的预设边缘像素数据条件为下列中的任意一项:
条件一:所述像素段位于所有像素段排位的首位;
条件二:所述像素段位于所有像素段排位的末位;
条件三:所述像素段位于所有像素段排位的偶数次位置上。
在一种可能的实施方式,若所述像素段满足预设边缘像素数据条件一;
所示根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
上述方法,当像素段满足预设边缘像素数据条件一时,根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;然后根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此在除开最后一个像素段的所有像素段右侧补充上卷积计算时会丢失的像素数据;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
在一种可能的实施方式,若所述像素段满足预设边缘像素数据条件二;
所述根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充。
上述方法,当像素段满足预设边缘像素数据条件二时,则根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此在除开第一个像素段的所有像素段左侧补充上卷积计算时会丢失的像素数据;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
在一种可能的实施方式,若所述像素段满足预设边缘像素数据条件三;
所述根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
上述方法,当像素段满足预设边缘像素数据条件三时,则根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此对没间隔一个像素段,在偶数次位置上的像素段补充上卷积计算时会丢失的像素数据;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
第二方面,本申请实施例还提供一种像素段拼接的装置,所述装置包括:至少一个处理单元以及至少一个存储单元,该装置具有实现上述第一方面的各实施例的功能。
第三方面,本申请实施例还提供一种像素段拼接的装置,所述装置包括:确定模块、像素补充模块以及卷积运算模块,该装置具有实现上述第一方面的各实施例的功能。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中神经卷积网络的结构模型;
图2为现有技术中神经网络卷积进行卷积计算的内部计算过程;
图3为本发明实施例提供的一种特征图像素数据存储方式;
图4为本发明实施例提供的一种卷积核权重系数存储方式;
图5为本发明实施例提供的一种特征图行像素分段的方法的流程示意图;
图6为本发明实施例中提供一种像素段拼接的方法的流程示意图;
图7为本发明实施例中提供第一种像素段拼接的结构示意图;
图8为本发明实施例中提供第二种像素段拼接的结构示意图;
图9为本发明实施例中提供第三种像素段拼接的结构示意图;
图10为本发明实施例中提供一种像素段拼接的方法的详细流程示意图;
图11为本发明实施例提供第一种像素段拼接的装置结构示意图;
图12为本发明实施例提供第二种像素段拼接的装置结构示意图。
具体实施方式
随着人工智能技术的发展,深度学习由于在图像识别方面的出色表现已成为人工智能识别技术中的一个重要发展方向。
深度学习的概念最初是源于人工神经网络的研究,例如含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
其次,深度学习是机器学习研究中的一个新的领域,是机器学习中一种基于对数据进行表征学习的方法,目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据。
在现有的深度学习运用过程总,深度学习的卷积计算都是基于GPU进行的。基于GPU进行深度学习时,一般通过DDR与SRAM联合构建深度学习加速器装置,在使用时将需要进行卷积计算的所有数据一次性由DDR读取出来并存储到SRAM内。
进一步的,随着人工智能技术的发展,需要运用深度学习卷积计算的数据量越来越庞大,如果仍采用现有技术,将需要进行卷积计算的所有数据一次性由DDR读取出来并存储到设置的SRAM时,则需要大量的SRAM的用于缓存计算数据。然而现有技术下,SRAM成本比较高,使用大面积SRAM无疑将会使得深度学习的成本极大地增加。
为了在保证计算速度的前提下,降低构建深度学习加速器的成本,本发明实施例通过对卷积计算的数据进行划分,将深度学习卷积计算拆分特征图行像素为计算单位进行计算的方式减小使用的SRAM的面积,进而降低成本。
然而,现在特征图的数据是十分丰富的,特征图的分辨率比较高,可能出现深度学习加速器中乘法器能够处理的像素数目小于特征图行像素的数目,进而导致深度学习加速器无法完成该特征图的卷积计算。
基于此,可以通过将特征图行方向上像素进行分段处理,使得每一段像素段的像素数目小于深度学习加速器一次计算能够处理的像素的数目,这样将特征图行像素进行分段,对每一像素段分别进行处理,进而完成对特征图卷积计算。
然而,在对特征图行方向上像素进行分段处理后,在对像素段进行卷积运算时,会在特征图的行像素分段处出现卷积计算数据丢失的情况。
为解决数据丢失的问题,本发明实施例中提供一种像素段拼接的方法和装置,在确定像素段满足预设边缘像素数据条件时,根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,再利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,进而完成对特征图卷积计算。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为一种神经卷积网络的结构模型,图中共有3个特征图,分别为A、B以及C;4个输出通道分别为OUT1、OUT2、OUT3以及OUT4,则在进行卷积计算时,特征图A分别针对输出通道OUT1、OUT2、OUT3以及OUT4分别拥有对应的卷积核WA1、WA2、WA3、WA4,同理特征图B分别针对输出通道OUT1、OUT2、OUT3以及OUT4分别拥有对应的卷积核WB1、WB2、WB3、WB4,C分别针对输出通道OUT1、OUT2、OUT3以及OUT4分别拥有对应的卷积核WC1、WC2、WC3、WC4;
如此,由图示可知,最后得到的针对输出通道OUT1的卷积计算结果为A×WA1+B×WB1+C×WC1;
得到的针对输出通道OUT2的卷积计算结果为A×WA2+B×WB2+C×WC2;
得到的针对输出通道OUT3的卷积计算结果为A×WA3+B×WB3+C×WC3;
得到的针对输出通道OUT4的卷积计算结果为A×WA4+B×WB4+C×WC4;
最终得到特征图对A、B、C经过图示神经卷积网络模型深度学习后得到的卷积计算结果为:Y=A×WA1+B×WB1+C×WC1+A×WA2+B×WB2+C×WC2+A×WA3+B×WB3+C×WC3+A×WA4+B×WB4+C×WC4。
如此可以看出,特征图卷积计算的实质时每一个特征图对应所有的输出通道的卷积结果之和。
进一步的,如图2所示,以特征图A针对输出通道OUT1为例,说明特征图针对一个输出通道进行卷积计算的内部计算过程,其中特征图A为5×5的矩阵,卷积核为3×3的矩阵,卷积滑动步长为1。
在特征图A针对输出通道OUT1进行卷积计算时,首先将卷积核与特征图A左上角的3×3个元素进行卷积计算,得到卷积结果为:;
随后按照设定的滑动步长向右侧滑动,并在滑动一个步长值后,继续利用卷积核对滑动后的覆盖的特征图进行卷积计算,……,直至完成卷积核覆盖的特征图的第一部分像素元素均完成卷积计算;随后,进行特征图的第二部分像素元素的卷积计算;
当特征图的所有像素元素都用于卷积计算后,特征图A针对输出通道OUT1的卷积计算完成。
如此可以看出,特征图A针对输出通道OUT1的卷积计算,实质是特征图A中的像素元素与特征图A针对输出通道OUT1的卷积核中权重系数的乘积之和。
基于此,本案明实施例中将深度学习的卷积计算过程进行拆分,将特征图的每一行的行像素数据与卷积核中的各个权重参数分别相乘,再确定所有乘积之和,作为通过所述卷积核对所述特征图进行卷积计算结果。
具体实施中,为了适应本发明实施例中的方案,发明实施例提供了相对应的数据存储格式,具体如图1和图2所示。
参见图3,图示中深度学习加速器的外部DDR被分成X个存储区进行存储(IMAP_MEM);
在进行特征图数据存储时,假设深度学习卷积网络输入特征图数目为N,每个特征图的行分辨率为M(即每个特征图包含有M行像素);
首先,将在第一个存储区(IMAP_MEM0)存储第一特征图的第一行;
随后在第二个存储区(IMAP_MEM1)中存储第二个特征图的第一行;
接着在第三个存储区(IMAP_MEM2)中存储第三个特征图的第一行;
……
当在第X个存储区(IMAM_MEM_X)中存储第X个特征图的第一行后;
接下来,在第一个存储区(IMAP_MEM0)中存储第X+1个特征图的第一行;
……
依次进行下去,直至将所有的输入特征图的第一行的像素数据都存储到外部DDR中;
随后,在类比存储输入特征图的第一行像素的方式,将所有的输入特征图的第二行的像素数据都存储到外部DDR中;
依次类推,直至将所有的输入特征图的每一行像素数据都存储到外部DDR中,即完成了输入特征图的存储。
其中,特征图像素数据的存储方式并不唯一,能够将特征图像素数据按行取出进行计算的其它存储方式亦可以实现本发明实施例中的方案,故上述存储方式仅为举例说明,不对本发明中的方案进行限定。
其次,深度学习的卷积计算时还会有各个输入特征图对应不同输出通道的不同卷积核,用于对输入特征图数据进行卷积计算。
对应的,本发明实施例中也提出了一种适用于本发明实施例的卷积核中的权重系数的存储方式。
图4所示为卷积计算的卷积核为3×3的矩阵为例的卷积核权重系数存储示意图,图中假设输入特征图为32个,输出特征通道为32个,3×3的卷积核的其系数如下:
COE0 | COE1 | COE2 |
COE3 | COE4 | COE5 |
COE6 | COE7 | COE8 |
其中,称COE0为卷积核的第一个权重系数;称COE1为卷积核的第二个权重系数,……,依次类推称COE8为卷积核的第9个权重系数。
由图示可以清晰明了的看出32个输入特征图对应于32个输出通道的32×32×9个权重系数的存储方式。存储方式具体如下:
首先,存储输入特征图1针对输出通道1的卷积核的第一个权重系数,随后存储输入特征图1针对输出通道2的卷积核的第一个权重系数,……,直至将输入特征图1针对输出通道32的卷积核的第一个权重系数;
随后存储输入特征图2针对输出通道1的卷积核的第一个权重系数,随后存储输入特征图2针对输出通道2的卷积核的第一个权重系数,……,直至将输入特征图2针对输出通道32的卷积核的第一个权重系数;
……
依此类推,直至将输入特征图32针对输出通道32的卷积核的第一个权重系数存储完,此时所有卷积核的第一个权重系数存储完毕;
继续存储输入特征图1针对输出通道1的卷积核的第二个权重系数,随后存储输入特征图1针对输出通道2的卷积核的第二个权重系数,……,直至将输入特征图1针对输出通道32的卷积核的第二个权重系数;
随后存储输入特征图2针对输出通道1的卷积核的第二个权重系数,随后存储输入特征图2针对输出通道2的卷积核的第二个权重系数,……,直至将输入特征图2针对输出通道32的卷积核的第二个权重系数;
……
依此类推,直至将输入特征图32针对输出通道32的卷积核的第二个权重系数存储完,此时所有卷积核的第二个权重系数存储完毕;
依据类推,接着存储各个输入特征图针对各个输出通道的卷积核的第二个权重系数……直至将所有卷积核的第九个权重系数存储完毕;
如此,32×32×9个卷积核的权重系数存储完成。
以上所有数据均是存储在DDR中的,在深度学习卷积训练时,需要从DDR中存储的数据中读取出相应的数据缓存到SRAM中,以便于计算中心完成对特征图像素数据的卷积计算。
在将输入特征图像素数据进行拆分存储时,随之建立输入特征图编号与输入特征图像素数据存储地址之间的对应关系;在将卷积核中的各个权重参数拆分存储时,同样建立了输入特征图的编号和权重系数编号存储地址之间的对应关系。如此以便于后续能够按照确定出的存储地址从DDR中读取相应的目标数据。
其中,卷积核的权重系数的存储方式并不唯一,能够顺利读取到每一步卷积计算需要用到的卷积核的权重系数的其它存储方式也可以运用到本发明实施例的方案中,上述存储方式仅为实现本发明实施例的方案的一种可能的实现方式,故上述举例说明不对本发明实施例中的方案进行限定。
在将用于卷积计算的输入特征图像素数据按照上述方式存储到DDR中,且按照上述方式将各个输入特征图对应各个输出通道的卷积核的权重系数分按照上述方式存储到DDR中后,即可通过深度学习加速器对输入特征图像素数据进行卷积计算。
在通过深度学习加速器对输入特征图像素数据进行卷积计算之前,还需要对所述特征图进行分段。
具体实施中,首先判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;再确定第一数目大于第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;最后,对各个像素段进行卷积计算。
具体实现过程中,在特征图行方向上像素的第一数目大于深度学习加速器处理像素的第二数目时,确定需要将特征图行方向上像素以行为单位对行方向上的像素进行分段处理,且保证分段后得到的像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,再对分段后的像素段分别进行卷积计算,深度学习加速器乘法器的数目对拆分后的像素段分别进行处理,以实现特征图行像素的卷积计算,进而完成针对特征图的卷积计算。
进一步的,以行为单位对行方向上的像素进行分段处理时,将根据所述第一数目以及所述第二数目,确定像素段的数目;然后根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理。
下面给出一种对特征图行像素进行分段的方法:
如图5所示,假设加速器每次只能运算N个像素,特征图一行行像素为L个像素,分段数为M,假设特征图数据为那就需要对图像进行切割时,将特征图一行行像素数目除以加速器能处理的像素的数目,若余数为0,则M=L÷N;
若余数不为0,则M=L÷N+1。
例如:假设加速器每次只能运算32个像素,特征图一行行像素为128个像素,由于特征图行方向上像素的第一数目大于加速器每次处理的像素数目,古确定需要以行为单位对行方向上的像素进行分段处理;
由于128÷32=4,即128能够整除32,故将以行为单位将该特征图行方向上的像素分为4段。
需要说明的是,当特征图行方向上像素的第一数目小于或等于加速器每次处理的像素数目时,可以看作根据加速器每次处理的像素数目将特征图的一整行行像素作为一个分段,也可以看作特征图的行像素进行分段处理。
在对特征图行像素进行分段得到若干像素段后,将针对每一个像素段进行卷积计算。
此时,为了避免由于数据分段后卷积计算时会在特征图的行像素分段处丢失卷积计算数据的问题,本发明实施例提供了相应的解决方案。
如图6所示,本发明实施例提供了一种像素段拼接的方法,该方法包括:
步骤600,针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
步骤601,根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
步骤602,对已补充的像素段进行卷积运算。
上述方法,针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;然后根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此在分段后对像素段进行卷积计算处理时,先对判断像素段是否满足预设边缘像素数据条件,若满足,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,进而利用像素段相邻的其他像素段中的像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
具体实现过程中,所述像素段满足的预设边缘像素数据条件为下列中的任意一项:
条件一:所述像素段位于所有像素段排位的首位;
条件二:所述像素段位于所有像素段排位的末位;
条件三:所述像素段位于所有像素段排位的偶数次位置上。
下面将分别针对三种预设边缘像素数据条件进行简单说明。
一、若所述像素段满足预设边缘像素数据条件一。
可选的,如图7所示,所述根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
上述方法,当像素段满足预设边缘像素数据条件一时,根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;然后根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此在除开最后一个像素段的所有像素段右侧补充上卷积计算时会丢失的像素数据;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
例如:假设卷积核为3X3矩阵:
特征图像素数据为:
第一段像素数据:
DA0 | DA1 | DA2 | DA3 |
DB0 | DB1 | DB2 | DB3 |
DC0 | DC1 | DC2 | DC3 |
DD0 | DD1 | DD2 | DD3 |
第二段像素数据:
DA4 | DA5 | DA6 | DA7 |
DB4 | DB5 | DB6 | DB7 |
DC4 | DC5 | DC6 | DC7 |
DD4 | DD5 | DD6 | DD7 |
假设我们需要卷积DB3这个点,则根据现有卷积规则可知:
DA2×COE0+DA3×COE1+DA4×COE2+DB2×COE3+DB3×COE4+DB4×COE5+DC2×COE6+DC3×COE7+DC4×COE8=RESULT。假设:按照4个像素分成一段,则DA0~DA3、DB0~DB3、DC0~DC3、DA0~DA3为第一段像素段分段数据,DA4~DA7、DB4~DB7、DC4~DC7、DA4~DA7为第二段像素段分段数据,在对DB3这个点进行卷积计算时,需要把DA4、DB4、DC4拼接到第一段运算;
本发明实施例中是以行为单位进行卷积计算的,故针对第一行像素数据,需要将DA4拼接到第一行像素数据运算中。
二、若所述像素段满足预设边缘像素数据条件二。
可选的,如图8所示,所述根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充。
上述方法,当像素段满足预设边缘像素数据条件二时,则根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此在除开第一个像素段的所有像素段左侧补充上卷积计算时会丢失的像素数据;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
例如:假设卷积核为3X3矩阵:
特征图像素数据为:
第一段像素数据:
DA0 | DA1 | DA2 | DA3 |
DB0 | DB1 | DB2 | DB3 |
DC0 | DC1 | DC2 | DC3 |
DD0 | DD1 | DD2 | DD3 |
第二段像素数据:
DA4 | DA5 | DA6 | DA7 |
DB4 | DB5 | DB6 | DB7 |
DC4 | DC5 | DC6 | DC7 |
DD4 | DD5 | DD6 | DD7 |
假设我们需要卷积DB3这个点,则根据现有卷积规则可知:
DA2×COE0+DA3×COE1+DA4×COE2+DB2×COE3+DB3×COE4+DB4×COE5+DC2×COE6+DC3×COE7+DC4×COE8=RESULT。
假设:按照4个像素分成一段,则DA0~DA3、DB0~DB3、DC0~DC3、DA0~DA3为第一段像素段分段数据,DA4~DA7、DB4~DB7、DC4~DC7、DA4~DA7为第二段像素段分段数据,在对DB4这个点进行卷积计算时,需要把DA3、DB3、DC3拼接到第一段运算;
本发明实施例中是以行为单位进行卷积计算的,故针对第二段像素段数据进行卷积计算时,需要将DA3拼接到第一行像素数据运算中。
三、若所述像素段满足预设边缘像素数据条件三。
可选的,如图9所示,所述根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
上述方法,当像素段满足预设边缘像素数据条件三时,则根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充;再对已补充的像素段进行卷积运算。如此对没间隔一个像素段,在偶数次位置上的像素段补充上卷积计算时会丢失的像素数据;再对已补充的像素段进行卷积运算。如此可以通过上述方法对像素段的像素数据进行补充,以使得补充后的像素数据进行卷积计算时不会丢失卷积计算数据。
该方法为上述两种方法的组合,具体实现可以参见预设边缘像素数据条件一和预设边缘像素数据条件二的实现方式。
在对满足预设边缘像素数据条件的像素段进行补充后,将针对所有的像素段进行卷积运算。
具体实施中,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。
上述方法,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。如此可以通过对分段后的像素段中的卷积计算确定像素段所属的行像素的卷积计算,进而得到特征图的卷积结果。
上述方法中,目标数据包括未补充像素数据的像素段的行像素数据和/或未补充像素数据的像素段所属的特征图的卷积计算权重数据;或者包括已补充像素数据的像素段的行像素数据和/或已补充像素数据的像素段所属的特征图的卷积计算权重数据。
下面以图3特征图数据的存储方式和图4中卷积核权重系数存储方式以及图6中的分段模型为例,简要说明本发明实施例中卷积计算过程,其中特征图的行分辨率为M,假设SRAM中最大可以存储2个目标数据,每个目标数据包括特征图的一行行像素和该行像素所属的特征图针对某一输出通道的卷积核中的一个权重系数。
在深度学习卷积训练一开始,深度学习卷积计算的加速器装置控制先从DDR中读取第1个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第一个像素段以及与该特征图0对应的输出通道(OUT0)的卷积核的第一个权重系数(Src0_OUT0_COE0);再读取第2个目标数据,包括特征图0第一行像素数据(Src0_line0)的第二个像素段以及与特征图对应的输出通道(OUT0)的卷积核的第二个权重系数(Src0_OUT0_COE1),随后一并存储到SRAM中,将SRAM存满;
计算中心完成第1个目标数据的卷积计算后,随后将SRAM中的第2个目标数据输入计算中心中进行计算,并从DDR中读取第3个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第三个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第三个权重系数(Src0_OUT0_COE2),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第1个目标数据;
计算中心完成第2个目标数据的卷积计算后,将SRAM中的第3个目标数据输入计算中心中进行计算,并从DDR中读取第4个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第四个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第四个权重系数(Src0_OUT0_COE3),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第2个目标数据;
计算中心完成第3个目标数据的卷积计算后,随后将SRAM中的第4个目标数据输入计算中心中进行计算,并从DDR中读取第5个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第二个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第一个权重系数(Src0_OUT0_COE0),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第3个目标数据;
依次类推,计算中心完成第3个目标数据、……第30个目标数据、第31个目标数据的卷积计算后,计算中心对第32个目标数据进行卷积计算,其中第32个目标数据包括特征图0的第一行像素数据(Src0_line0)的第四个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第9个权重系数(Src0_OUT0_COE8),并从DDR中读取第33个目标数据,其中第33个目标数据包括特征图0的第二行像素数据(Src0_line1)的第一个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第一个权重系数(Src0_OUT0_COE1),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第八个目标数据;
随后类比特征图0的第一行像素数据的处理方式,对特征图0的每一行行像素数据的处理,完成特征图0针对输出通道OUT0的卷积计算;
再类比特征图0针对输出通道OUT0的卷积计算的处理过程,计算书每一个特征图针对输出通道OUT0的卷积计算结果;
进一步的,类比各个特征图针对输出通道OUT0的卷积计算的过程,完成各个特征图针对其余31个输出通道的卷积计算结果。
其中,上述实施例中为了便于描述,仅以SRAM最多可以存储2个目标数据为例进行说明,具体实现过程中SRAM中可以存储多个目标数据,且具体的SRAM中可以存储的目标数据数目可以根据实际需求进行设定。
再进一步的,当SRAM中可以存储多个目标数据时,深度学习加速器装置可以在进行了多个目标数据的卷积计算后,在一次性从DDR中读取多个目标数据,将覆盖SRAM的存储空间中所有已进行卷积计算的目标数据;也可以在完成一个目标数据的卷积计算后,立即从DDR中读取一个目标数据覆盖所述已完成卷积计算的目标数据。
例如,当SRAM中可以存储8个目标数据时,可以设置每完成4个目标数据的卷积计算,从DDR中读取一次目标数据,一次读取4个目标数据;
也可以设置每完成4个目标数据的卷积计算,从DDR中读取一次目标数据,一次读取1个目标数据,具体实现可以依据具体需要设定,本发明实施例不对此进行限定。
下面将对本发明实施例中从DDR中读取目标数据的过程进行详细说明。
具体实施过程中,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据。
可选的,所述从DDR存储的目标数据中选择至少一个目标数据,包括:
确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
上述方法,首先确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;并确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;然后根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;并根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。如此即可确定出从DDR存储的目标数据中选择的目标数据,这样才能完成进一步的从DDR中读取所述目标数据。
例如:下面以图3特征图数据的存储方式和图4中卷积核权重系数存储方式以及图6中的分段模型为例,当前SRAM中最大可存储6个目标数据时,每完成3个目标数据的卷积计算后,确定需要从DDR存储的目标数据中选择目标数据,此时计算中心中进行卷积计算的目标数据为Src3_line5的第4个像素段和Src3_OUT4_COE3;
在选择需要从DDR存储的目标数据读取的目标数据时,首先确定计算中心中进行卷积计算的目标数据为特征图3的第五行像素数据的第4个像素段,目标数据中的Src3_OUT4_COE3为特征图3针对输出通道4进行卷积计算对应的卷积核的第4个权重系数;
随后确定SRAM存储的未进行卷积计算的目标数据的数目为2组,SRAM中存储的进行卷积计算的目标数据的数目3组;
这样,由于当前计算中心计算的目标数据的权重系数是目标数据所属的特征图3针对输出通道4进行卷积计算对应的卷积核的第4个权重系数,则SRAM存储的未进行卷积计算的目标数据分别对应特征图3针对输出通道4进行卷积计算对应的卷积核的第5个权重系数以及特征图3针对输出通道4进行卷积计算对应的卷积核的第6个权重系数,如此已知卷积核共有9个权重参数,特征图3的第五行像素数据的第4个像素段针对输出通道4的卷积计算还未完成,则确定从DDR中读取的第一个目标数据包括特征图3的第五行像素数据第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第7个权重系数(Src3_OUT4_COE6);同时SRAM中已完成卷积计算的目标数据有三个,确定需要从DDR存储的未进行卷积计算的目标数据中选择出3个目标数据;
如此选取出的目标数据分别为:
第一个目标数据:特征图3的第五行像素数据(Src3_line5)的第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第7个权重系数(Src3_OUT4_COE6);
第二个目标数据:特征图3的第五行像素数据(Src3_line5)的第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第8个权重系数(Src3_OUT4_COE7);
第三个目标数据:特征图3的第五行像素数据(Src3_line5)的第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第9个权重系数(Src3_OUT4_COE8)。
在确定出从DDR中选择的目标数据后,还需将这些目标数据有DDR红读取出来,并存储到SRAM中。
可选的,所述将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域,包括:
根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
上述方法中,依据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址,再进一步的根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址,然后确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。如此才可以进一步的将SRAM存储的目标数据输入计算中心,完成卷积计算。
如图10所示,本发明实施例中提供一种像素段拼接的方法的详细流程示意图。
步骤1000,判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目,如果大于,执行步骤1001,否则执行步骤1003;
步骤1001,根据所述第一数目以及所述第二数目,确定像素段的数目,且根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理;
步骤1002,判断目标数据是否预设边缘像素数据条件,如果满足,执行步骤1003;否则执行步骤1005;
步骤1003,根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
步骤1004,根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
步骤1005,从DDR中读取若干个目标数据并存储到SRAM中,直至存储满SRAM;
步骤1006,将SRAM存储的目标数据中的第一个目标数据传送到计算中心中进行卷积计算;
步骤1007,在计算中心中完成该目标数据的卷积计算后,再次将SRAM存储的目标数据中的第一个目标数据传送到计算中心中进行卷积计算;
步骤1008,判断是否从DDR存储的未进行卷积计算的目标数据中选择目标数据,如果是则执行步骤1009,否则执行步骤1007;
步骤1009,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
步骤1010,确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
步骤1011,根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
步骤1012,根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目;
步骤1013,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
步骤1014,根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
步骤1015,根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
其中,在对特征图行方向上像素进行分段处理后,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据;
在对特征图行方向上像素进行分段处理并进行像素补充后,所述目标数据为已补充的像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据;
未对特征图行方向上像素进行分段处理时,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
基于同一发明构思,本申请实施例中还提供了一种特征图行像素分段的装置,由于该装置实施本申请实施例方法中步骤,并且该装置解决问题的原理与该方法相似,因此该终端的实施可以参见系统的实施,重复之处不再赘述。
如图11所示,本发明实施例提供一种像素段拼接的装置,该装置包括:
至少一个处理单元1100以及至少一个存储单元1200,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:
针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
对已补充的像素段进行卷积运算。
可选的,所述像素段满足的预设边缘像素数据条件为下列中的任意一项:
条件一:所述像素段位于所有像素段排位的首位;
条件二:所述像素段位于所有像素段排位的末位;
条件三:所述像素段位于所有像素段排位的偶数次位置上。
可选的,若所述像素段满足预设边缘像素数据条件一;
所述处理单元1100具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
可选的,若所述像素段满足预设边缘像素数据条件二;
所述处理单元1100具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充。
可选的,若所述像素段满足预设边缘像素数据条件三;
所述处理单元1100具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
如图12所述,本发明实施例提供一种像素段拼接的装置,该装置包括:
确定模块1200,用于针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
像素补充模块1201,根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
卷积运算模块1202,用于对已补充的像素段进行卷积运算。
可选的,所述像素段满足的预设边缘像素数据条件为下列中的任意一项:
条件一:所述像素段位于所有像素段排位的首位;
条件二:所述像素段位于所有像素段排位的末位;
条件三:所述像素段位于所有像素段排位的偶数次位置上。
可选的,若所述像素段满足预设边缘像素数据条件一;
所示确定模块1200具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;
所示像素补充模块1201具体用于:
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
可选的,若所述像素段满足预设边缘像素数据条件二;
所示确定模块1200具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;
所示像素补充模块1201具体用于:
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充。
可选的,若所述像素段满足预设边缘像素数据条件三;
所示确定模块1200具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;
所示像素补充模块1201具体用于:
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
本申请实施例针对像素段拼接的方法还提供一种计算设备可读存储介质,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时可实现本申请实施例上面任何一种像素段拼接时的方案。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种像素段拼接的方法,其特征在于,该方法包括:
针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
对已补充的像素段进行卷积运算。
2.如权利要求1所述的方法,其特征在于,所述像素段满足的预设边缘像素数据条件为下列中的任意一项:
条件一:所述像素段位于所有像素段排位的首位;
条件二:所述像素段位于所有像素段排位的末位;
条件三:所述像素段位于所有像素段排位的偶数次位置上。
3.如权利要求2所述的方法,其特征在于,若所述像素段满足预设边缘像素数据条件一;
所示根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
4.如权利要求2所述的方法,其特征在于,若所述像素段满足预设边缘像素数据条件二;
所述根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充。
5.如权利要求2所述的方法,其特征在于,若所述像素段满足预设边缘像素数据条件三;
所述根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置,包括:
根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;
所述根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充,包括:
根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
6.一种像素段拼接的装置,其特征在于,该装置包括:
至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:
针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
对已补充的像素段进行卷积运算。
7.如权利要求6所述的装置,其特征在于,所述像素段满足的预设边缘像素数据条件为下列中的任意一项:
条件一:所述像素段位于所有像素段排位的首位;
条件二:所述像素段位于所有像素段排位的末位;
条件三:所述像素段位于所有像素段排位的偶数次位置上。
8.如权利要求7所述的装置,其特征在于,若所述像素段满足预设边缘像素数据条件一;
所述处理单元具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段右侧需要补充的像素的数目;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
9.如权利要求7所述的装置,其特征在于,若所述像素段满足预设边缘像素数据条件二;
所述处理单元具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充。
10.如权利要求7所述的装置,其特征在于,若所述像素段满足预设边缘像素数据条件三;
所述处理单元具体用于:
根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置时,根据卷积核系数和卷积步进值,确定所述像素段左侧需要补充的像素的数目以及所述像素段右侧需要补充的像素的数目;
根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充时,根据确定的所述像素段左侧需要补充的像素的数目,利用所述像素段左侧相邻像素段中的行像素对所述像素段进行补充,并根据确定的所述像素段右侧需要补充的像素的数目,利用所述像素段右侧相邻像素段中的行像素对所述像素段进行补充。
11.一种像素段拼接的装置,其特征在于,该装置包括:
确定模块,用于针对任意一个像素段,若所述像素段满足预设边缘像素数据条件,则根据卷积核系数和卷积步进值,确定所述像素段需要补充的像素的数目和位置;
像素补充模块,根据确定的所述像素段需要补充的像素的数目和位置,利用所述像素段相邻的其他像素段中的像素对所述像素段进行补充;
卷积运算模块,用于对已补充的像素段进行卷积运算。
12.一种计算机可存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910233198.0A CN110047031A (zh) | 2019-03-26 | 2019-03-26 | 一种像素段拼接的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910233198.0A CN110047031A (zh) | 2019-03-26 | 2019-03-26 | 一种像素段拼接的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110047031A true CN110047031A (zh) | 2019-07-23 |
Family
ID=67275219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910233198.0A Pending CN110047031A (zh) | 2019-03-26 | 2019-03-26 | 一种像素段拼接的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110047031A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101281643A (zh) * | 2008-04-23 | 2008-10-08 | 浙江大学 | 一种退化函数随空间变化图像的分块复原和拼接方法 |
CN101495952A (zh) * | 2006-08-25 | 2009-07-29 | 英特尔公司 | 结合流水线重叠的显示处理线缓冲器 |
CN101763627A (zh) * | 2008-12-12 | 2010-06-30 | 新奥特(北京)视频技术有限公司 | 一种高斯模糊的实现方法和装置 |
CN106296614A (zh) * | 2016-08-17 | 2017-01-04 | 北京集创北方科技股份有限公司 | 图像处理装置及图像处理方法 |
CN107240071A (zh) * | 2016-03-29 | 2017-10-10 | 掌赢信息科技(上海)有限公司 | 一种图像模糊处理方法及电子设备 |
CN107993239A (zh) * | 2017-12-25 | 2018-05-04 | 北京邮电大学 | 一种计算单目图像的深度次序的方法和装置 |
CN108108809A (zh) * | 2018-03-05 | 2018-06-01 | 山东领能电子科技有限公司 | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
CN109461119A (zh) * | 2019-01-31 | 2019-03-12 | 深兰人工智能芯片研究院(江苏)有限公司 | 卷积神经网络fpga加速中的图像填充方法及装置 |
-
2019
- 2019-03-26 CN CN201910233198.0A patent/CN110047031A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101495952A (zh) * | 2006-08-25 | 2009-07-29 | 英特尔公司 | 结合流水线重叠的显示处理线缓冲器 |
CN101281643A (zh) * | 2008-04-23 | 2008-10-08 | 浙江大学 | 一种退化函数随空间变化图像的分块复原和拼接方法 |
CN101763627A (zh) * | 2008-12-12 | 2010-06-30 | 新奥特(北京)视频技术有限公司 | 一种高斯模糊的实现方法和装置 |
CN107240071A (zh) * | 2016-03-29 | 2017-10-10 | 掌赢信息科技(上海)有限公司 | 一种图像模糊处理方法及电子设备 |
CN106296614A (zh) * | 2016-08-17 | 2017-01-04 | 北京集创北方科技股份有限公司 | 图像处理装置及图像处理方法 |
CN107993239A (zh) * | 2017-12-25 | 2018-05-04 | 北京邮电大学 | 一种计算单目图像的深度次序的方法和装置 |
CN108108809A (zh) * | 2018-03-05 | 2018-06-01 | 山东领能电子科技有限公司 | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 |
CN108681984A (zh) * | 2018-07-26 | 2018-10-19 | 珠海市微半导体有限公司 | 一种3*3卷积算法的加速电路 |
CN109461119A (zh) * | 2019-01-31 | 2019-03-12 | 深兰人工智能芯片研究院(江苏)有限公司 | 卷积神经网络fpga加速中的图像填充方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510485B (zh) | 一种基于卷积神经网络的无参照图像质量评估方法 | |
WO2021109876A1 (zh) | 图像处理方法、装置、设备及存储介质 | |
CN107862374A (zh) | 基于流水线的神经网络处理系统和处理方法 | |
CN107451654A (zh) | 卷积神经网络的加速运算方法、服务器及存储介质 | |
US11928595B2 (en) | Method of managing data representation for deep learning, method of processing data for deep learning and deep learning system performing the same | |
CN106096670A (zh) | 级联卷积神经网络训练和图像检测方法、装置及系统 | |
US20190279346A1 (en) | Image-blending via alignment or photometric adjustments computed by a neural network | |
CN107066239A (zh) | 一种实现卷积神经网络前向计算的硬件结构 | |
CN106611216A (zh) | 基于神经网络的计算方法及装置 | |
CN110009644A (zh) | 一种特征图行像素分段的方法和装置 | |
US20190005377A1 (en) | Artificial neural network reduction to reduce inference computation time | |
CN108446694A (zh) | 一种目标检测方法及装置 | |
CN106650928A (zh) | 一种神经网络的优化方法及装置 | |
CN110210482B (zh) | 改进类别不平衡的目标检测方法 | |
CN106779057A (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
CN109597965A (zh) | 基于深度神经网络的数据处理方法、系统、终端及介质 | |
CN110009103B (zh) | 一种深度学习卷积计算的方法和装置 | |
CN106471551A (zh) | 用于将现有3d模型转换成图形数据的方法和系统 | |
CN109034175A (zh) | 数据处理方法、装置及设备 | |
CN112465709B (zh) | 一种图像增强方法、装置、存储介质及设备 | |
CN110047031A (zh) | 一种像素段拼接的方法和装置 | |
WO2021120577A1 (zh) | 神经网络模型中的数据计算方法、图像处理方法及装置 | |
CN109359542A (zh) | 基于神经网络的车辆损伤级别的确定方法及终端设备 | |
CN114692034A (zh) | 图像显示方法、装置、电子设备及计算机存储介质 | |
CN111951954A (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 |