采用伪单元填充图像传感芯片进行首层卷积层处理的方法与流程

文档序号:22739471发布日期:2020-10-31 09:21阅读:112来源:国知局
采用伪单元填充图像传感芯片进行首层卷积层处理的方法与流程

本发明涉及图像传感器芯片技术领域,尤其涉及一种采用伪单元填充图像传感芯片进行首层卷积层处理的方法。



背景技术:

得益于卷积神经网络(cnn)的发展,智能视觉处理任务的准确率性能获得了极大的提升,如物体识别、语义分割等。在物联网时代,面向智能视觉处理应用的设备广泛地分布在终端,实现与用户的无缝交互。为了不遗漏任何关键事件,一些用于智能视觉应用的设备需要以常开的模式工作,例如处于监视目的针对特定对象的检测和识别。然而,这种连续感知需求巨大的能量开销,这对于大多数电池驱动的设备非常不利。现有的传统数字系统并不能够满足低功耗要求,问题在于需要将图像从模拟域转换并传输到数字域,而这消耗了大量的能量和带宽。

传感器内处理(pis)概念的提出成为解决上述问题的可行办法,图1为现有技术提供的处理单元阵列构成焦平面的示意图,如图1所示,焦平面(focalplane)由处理单元(pe,processingelement)阵列组成,感光并生成图像,图像分辨率由处理单元阵列大小决定,每个处理单元存储一个像素点的像素值,因此,图像的大小与处理单元阵列的大小相同。处理单元内集成了三个功能模块,分别为:1、像素模块,如图1所示,像素模块用pixel标识,位于pe的左下方,用于接受光强并进行光电转换,获得的电压值传递给计算模块用于计算;2、数字寄存器,如图1所示,数字寄存器用digitalreg标识,位于pe的右下方,用于存储cnn中的权值,此权值可以在pe内提供给计算模块用于计算,也可以通过权值右移或下移传递到右边相邻或者下边相邻的pe内。pe阵列中的任一行中最后一个pe的寄存器输出连接到所述任一行的第一个pe的输入,因此权值在行间可以进行循环右移;同理,同列的寄存器也是首尾相连,权值在列间可以进行循环下移;3、计算模块,如图1所示,计算模块用analogcomputationcircuit标识,位于pe的上方,用于利用像素模块产生的电压值和寄存器内保存的权值进行乘累加等计算操作并产生计算结果,对于2×2卷积中的4个pe,各pe上的计算模块也与其相邻的pe上的计算模块也相连接,当左上角的pe作为卷积结果输出位置时,其他三个pe上像素模块产生的电压值和寄存器内保存的权值的乘积都会传送到左上角的pe上,与左上角pe上像素模块产生的电压值和寄存器内保存的权值的乘积进行累加,作为卷积结果输出,而卷积核中的任一pe所在的位置都可以作为卷积结果输出位置,根据实际需要进行设置。除此之外,各处理单元还可以在相邻范围内进行任意规模的组合用以完成不同卷积核大小的计算。图1展示了卷积核大小为2×2和3×3两种情况。

根据卷积神经网络的计算特点,单个卷积核内的权值需要在整张图像上进行平移,通过由左至右、由上至下的方式遍历焦平面的所有位置。同时,由于卷积神经网络内有多个卷积核,因此卷积核需要同时平铺在焦平面上。现有技术都是基于图像传感芯片内原始焦平面的大小进行首层卷积层包含的卷积核的排布,这种排布方式为直接调度,即重复最大次数的首层卷积层的卷积核以尽量占满原始焦平面,保证原始焦平面上覆盖的卷积核数量最多,计算的并行度最高,但是由于原始焦平面大小、首层卷积层包括的卷积核大小和首层卷积层包括的卷积核个数的不同,直接调度可能无法在原始焦平面上均匀、有规律地分布首层卷积层包含的卷积核,这就导致了一些冗余的卷积,同时由于一帧的卷积数与一帧的能量消耗和处理时间成正比,也浪费了大量的能量和时间;其次,在完成整个图像帧的卷积后,需要几个额外的移位来重新设置卷积核的分布,这增加了控制的复杂性。

因此,如何避免现有技术中以图像传感芯片中原始焦平面进行首层卷积层的处理中的冗余卷积造成的大量能量和时间的浪费,以及增加的控制复杂性,仍然是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例提供一种采用伪单元填充图像传感芯片进行首层卷积层处理的方法,用以解决现有技术中现有技术中以图像传感芯片中原始焦平面进行首层卷积层的处理中的冗余卷积造成的大量能量和时间的浪费,以及增加的控制复杂性的问题。

第一方面,本发明实施例提供一种采用填充后图像传感芯片进行首层卷积层处理的方法,包括:

基于填充后图像传感芯片中新的焦平面的大小、首层卷积层中卷积核的个数和首层卷积层中卷积核的大小在所述新的焦平面上周期性的排列所述首层卷积层;

采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图;

其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器。

优选地,该方法中,所述新的焦平面是在原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,具体包括:

若所述首层卷积层的宽度不超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域;

若所述首层卷积层的宽度超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;

将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域。

优选地,该方法中,所述将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元,具体包括:

若na×wk≤wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为且填充后的新的焦平面的高度为其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度;

对应地,确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元,具体包括:

若na×wk>wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为nr×wk且填充后的新的焦平面的高度为其中,其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度。

优选地,该方法中,所述采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图,具体包括:

基于所述新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc;

在完成(cc-1,cr×(cc-1)+cr-1)的位移和卷积计算后,输出na个特征图,na为所述首层卷积层中卷积核的个数。

优选地,该方法中,所述基于所述新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc,具体包括:

当na×wk≤wi时,

通过如下公式确定对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc:

cr=na×wk,cc=hk;

其中,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度;

当na×wk>wi时,

通过如下公式确定对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc:

cr=nr×wk,cc=hk×na/nr,

其中,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度。

第二方面,本发明实施例提供一种采用伪单元填充图像传感芯片进行首层卷积层处理的装置,包括:

排列单元,用于基于填充后图像传感芯片中新的焦平面的大小、首层卷积层中卷积核的个数和首层卷积层中卷积核的大小在所述新的焦平面上周期性的排列所述首层卷积层;

卷积单元,用于采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图;

其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器。

优选地,该装置中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,具体包括:

若所述首层卷积层的宽度不超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域;

若所述首层卷积层的宽度超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;

将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域。

优选地,该装置中,所述将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元,具体包括:

若na×wk≤wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为且填充后的新的焦平面的高度为其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度;

对应地,确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元,具体包括:

若na×wk>wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为nr×wk且填充后的新的焦平面的高度为其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的采用伪单元填充图像传感芯片进行首层卷积层处理的方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的采用伪单元填充图像传感芯片进行首层卷积层处理的方法的步骤。

本发明实施例提供的方法,通过在填充后图像传感芯片中新的焦平面上周期性的排列所述首层卷积层,然后采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图,其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器,如此,可以保证新的焦平面可以使首层卷积层的卷积核在新的焦平面上规律、均匀的排布,且新的焦平面克服了原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度带来的控制复杂度增加的问题。因此,通过填充后的焦平面优化了卷积核的排布和调度方式,保证进行首层卷积层的卷积处理时计算每一帧的并行度最高,耗能最低,和卷积完成后重置的控制复杂度最低。本发明实施例提供的方法,实现了减少卷积处理的耗能和时间,并将卷积处理完成后的重置控制复杂度减少到最低。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术提供的处理单元阵列构成焦平面的示意图;

图2为现有技术提供的lenet-5网络的首层卷积层在32×32的pe阵列组成的焦平面上的映射示意图;

图3为现有技术提供的alexnet网络的首层卷积层在227×227pe阵列组成的焦平面上的映射示意图;

图4为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行卷积的起始卷积过程示意图;

图5为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行0次下移和9次右移卷积计算后的示意图;

图6为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行1次下移和32×1+0次右移卷积计算后的示意图;

图7为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行4次下移和32×4+31次右移卷积计算后的示意图;

图8为现有技术提供的alexnet网络首层卷积层在227×227pe阵列组成的焦平面上的卷积处理的冗余计算示意图;

图9为本发明实施例提供的采用填充后图像传感芯片进行首层卷积层处理的方法的流程示意图;

图10为本发明实施例提供的首层卷积层的宽度不超过所述原始焦平面的宽度情况下的新的焦平面的填充示意图;

图11为本发明实施例提供的首层卷积层的宽度超过所述原始焦平面的宽度情况下的新的焦平面的填充示意图;

图12为本发明实施例提供的首层卷积层的宽度不超过所述原始焦平面的宽度情况下的新的焦平面的大小确定示意图;

图13为本发明实施例提供的首层卷积层的宽度超过所述原始焦平面的宽度情况下的新的焦平面的大小确定示意图;

图14为本发明实施例提供的采用伪单元填充图像传感芯片进行首层卷积层处理的装置的结构示意图;

图15为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有的以图像传感芯片中原始焦平面进行首层卷积层的处理普遍存在冗余卷积造成的大量能量和时间的浪费,以及增加的控制复杂性的问题。下面首先对一些本发明常用的缩略语进行解释和关键参量进行标识定义进行说明,然后对于现有技术中存在的冗余卷积造成的大量能量和时间的浪费,以及增加的控制复杂性问题进行详细说明。

cnn:convolutionalneuralnetwork,卷积神经网络;

bnn:binaryneuralnetwork,二值神经网络;

pis:processinginsensor,传感器内处理;

pe:processingelement,处理单元;

mac:multiplyaccumulatecomputation,乘累加计算;

pup:pseudounitpadding,伪单元填充;

wi:图像传感芯片采集的图像的宽度,也是填充前图像传感芯片内原始焦平面的宽度;

hi:图像传感芯片采集的图像的高度,也是填充前图像传感芯片内原始焦平面的高度;

wk:首层卷积层包含的卷积核的宽度;

hk:首层卷积层包含的卷积核的宽度;

nr:填充后图像传感芯片内原始焦平面的宽度能容纳首层卷积层中卷积核宽度的个数;

nc:填充后图像传感芯片内原始焦平面的高度能容纳首层卷积层中卷积核高度的个数;

na:首层卷积层包含卷积核的个数;

cr:图像传感芯片中焦平面进行卷积处理时的行循环周期;

cc:图像传感芯片中焦平面进行卷积处理时的列循环周期;

s(a,b×a+c):表示焦平面上的所有卷积核右移b步之后,向下移动第1步,然后再右移b步之后,向下移动第2步,一直循环重复,直到向下移动第a步后,再向右移动c步时焦平面的状态。

se:表示一帧图像经过图像传感芯片内焦平面进行首层卷积层处理之后的所述焦平面的状态。

现有的使用图像传感芯片进行首层卷积层的卷积计算都是直接将na个卷积核周期性的重复平铺在图像传感芯片内的焦平面上。图2为现有技术提供的lenet-5网络的首层卷积层在32×32的pe阵列组成的焦平面上的映射示意图,图3为现有技术提供的alexnet网络的首层卷积层在227×227pe阵列组成的焦平面上的映射示意图。如图2所示,lenet-5网络的首层卷积层包括6个卷积核,分别用k1、k2、k3、k4、k5和k6表示,而且这六个卷积核的大小都是5×5,即每个卷积核都要占用焦平面上的一个5×5的pe阵列,然后将这六个卷积核周期性地在焦平面上重复平铺进行映射,由于32无法被5整除,因此,焦平面的最后两行和最后两列无法映射一个完整的卷积核,因此保持空闲状态,空闲状态的pe中存储的权重值无效,空闲状态的pe组成的区域即图中用斜线标识出的区域,由图2提供的lenet-5网络的首层卷积层在32×32的pe阵列组成的焦平面上的映射方式可知用该焦平面进行lenet-5网络的首层卷积层处理时,cr=32,cc=32,se=s(4,32×4+31)。如图3所示,alexnet网络的首层卷积层包括96个卷积核,分别用k1、k2、k3、…、k95和k96表示,而且这96个卷积核的大小都是11×11,即每个卷积核都要占用焦平面上的一个11×11的pe阵列,然后将这96个卷积核周期性地在焦平面上重复平铺进行映射,由于227无法被11整除,因此,焦平面的最后7行和最后7列无法映射一个完整的卷积核,因此保持空闲状态,空闲状态的pe中存储的权重值无效,空闲状态的pe组成的区域即图中用斜线标识出的区域,由图3提供的lenet-5网络的首层卷积层在227×227的pe阵列组成的焦平面上的映射方式可知用该焦平面进行lenet-5网络的首层卷积层处理时,cr=227,cc=227,se=s(54,227×54+226)。

进行卷积核的滑动时,遵循“行优先”规则,整个图像的卷积可以通过如下步骤进行:1、进行一次卷积运算后进行一次右移(rightshift);2、当所有卷积核都返回到一行的初始位置时,进行一次下移(downshift);3、重复步骤1和2,直到所有卷积核都遍历了整个图像中的所有位置为止;4、通过几次右移和下移返回初始状态。此处需要说明的是,整个图像的大小即图像传感芯片中焦平面的pe阵列大小,因为一个pe有一个像素模块可以用于存储一个像素点的像素值。每移动一次卷积核,都是将当前pe的权值传到右边相邻的pe上,以供pe内存储的像素值与更新后的权重值进行乘法计算,然后将乘积值传到pe所属的卷积核的结果输出位置pe进行累加输出,作为输出特征图中的对应于pe所属的卷积核的结果输出位置pe的像素点的像素值,在本发明中,默认卷积核的左上角的pe为卷积核的结果输出位置pe。

图4为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行卷积的起始卷积过程示意图。如图4所示,展示的是进行了0次下移和0次右移后的焦平面的状态和输出的六张特征图上每个特征图上的六个像素点的卷积结果,“×”表示卷积核的输出,“×”旁边的坐标表示卷积核的输出结果作为特征图中的该坐标对应像素点的像素值。举例说明第一张特征图,图4中用1stfeaturemap标识,此时卷积核没有做过任何移动,因此,第一张特征图对应的是卷积核k1的卷积结果的输出,由于k1在焦平面上周期性平铺时重复了6次,因此,一次卷积计算就可以得到第一特征图上六个像素点的卷积结果。周期性平铺首层卷积核的卷积处理方式,实现了并行处理使得卷积处理的耗时大大减小。由于本发明中默认卷积核的左上角的pe为卷积计算的输出结果位置,因此,在s(0,0)状态下,第一张特征图中得到的将焦平面上(0,0)处pe、(5,0)处pe、(10,0)处pe、(15,0)处pe、(20,0)处pe和(25,0)处pe的输出结果分别作为第一张特征图(0,0)处、(5,0)处、(10,0)处、(15,0)处、(20,0)处和(25,0)处的像素值。图5为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行0次下移和9次右移卷积计算后的示意图。如图5所示,展示的是进行了0次下移和9次右移后的焦平面的状态和输出的六张特征图上每个特征图上的六个像素点的卷积结果,图5中的各个特征图上的黑色块代表已经获得的卷积输出。举例说明第一张特征图,图5中用1stfeaturemap标识,此时卷积核已经经过了0次下移和9次右移,因此,第一张特征图对应的是卷积核k1的卷积结果的输出,由于k1在焦平面上周期性平铺时重复了6次,因此,一次卷积计算就可以得到第一特征图上六个像素点的卷积结果。由于本发明中默认卷积核的左上角的pe为卷积计算的输出结果位置,因此,在s(0,9)状态下,第一张特征图中得到的将焦平面上(0,9)处pe、(5,9)处pe、(10,9)处pe、(15,9)处pe、(20,9)处pe和(25,9)处pe的输出结果分别作为第一张特征图(0,9)处、(5,9)处、(10,9)处、(15,9)处、(20,9)处和(25,9)处的像素值,而各个“×”前面的黑色块代表前8次右移过程中已经输出的卷积结果。对于图5中的第五张特征图(5thfeaturemap),由于卷积核k5正在跨越焦平面的右边界,因此,在此步骤没有卷积结果的输出。图6为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行1次下移和32×1+0次右移卷积计算后的示意图。如图6所示,展示的是进行了1次下移和32×1+0次右移后的焦平面的状态和输出的六张特征图上每个特征图上的六个像素点的卷积结果,图6中的各个特征图上的黑色块代表已经获得的卷积输出。举例说明第一张特征图,图6中用1stfeaturemap标识,此时卷积核已经经过了1次下移和32×1+0次右移,因此,第一张特征图对应的是卷积核k1的卷积结果的输出,由于k1在焦平面上周期性平铺时重复了6次,因此,一次卷积计算就可以得到第一特征图上六个像素点的卷积结果。由于本发明中默认卷积核的左上角的pe为卷积计算的输出结果位置,因此,在s(1,32×1+0)状态下,第一张特征图中得到的将焦平面上(1,0)处pe、(5,0)处pe、(11,0)处pe、(16,0)处pe、(21,0)处pe和(26,0)处pe的输出结果分别作为第一张特征图(1,0)处、(6,0)处、(11,0)处、(16,0)处、(21,0)处和(26,0)处的像素值,而各个“×”上方的黑色块代表前32次右移过程中已经输出的卷积结果。图7为现有技术提供的letnet-5网络的首层卷积层映射到32×32的pe阵列组成的焦平面上后对整个图像进行4次下移和32×4+31次右移卷积计算后的示意图。如图7所示,展示的是进行了4次下移和32×4+31次右移后的焦平面的状态和输出的六张特征图上每个特征图上的六个像素点的卷积结果,图7中的各个特征图上的黑色块代表已经获得的卷积输出。举例说明第二张特征图,图7中用2ndfeaturemap标识,此时卷积核已经经过了4次下移和32×4+31次右移,因此,第二张特征图对应的是卷积核k2的卷积结果的输出,由于k2在焦平面上周期性平铺时重复了6次,但是当前状态下卷积核k2列最下面的一个k2由于正在跨越焦平面的底边界,因此,在此步骤没有卷积结果的输出。因此,本状态下的卷积计算就可以得到第二特征图上五个像素点的卷积结果。由于本发明中默认卷积核的左上角的pe为卷积计算的输出结果位置,因此,在s(4,32×4+31)状态下,第二张特征图中得到的将焦平面上(4,4)处pe、(9,4)处pe、(14,4)处pe、(19,4)处pe和(24,4)处pe的输出结果分别作为第一张特征图(4,4)处、(9,4)处、(14,4)处、(19,4)处和(24,4)处的像素值,而特征图中的黑色块代表前4次下移和32×4+30次右移过程中已经输出的卷积结果。对于图7中的第一张特征图(1stfeaturemap),卷积核k1的卷积在状态s(4,27)时已经完成。由于cr=32,cc=32且s(32,32)=s(0,0),因此,在完成letnet-5网络首层卷积层的卷积处理后需要对该状态下的焦平面进行1次右移和28次下移来重置所有卷积核以便该焦平面重新作为letnet-5网络首层卷积层继续进行下一次卷积处理。因此,此处出现了因为焦平面的宽度不能整除卷积核的宽度造成完成卷积处理后需要额外的焦平面进行1次右移和28次下移来重置所有卷积核以便该焦平面重新作为letnet-5网络首层卷积层继续进行下一次卷积处理,增加了控制的复杂性。

对于alexnet网络的首层卷积层,由于它在227×227的pe阵列组成的焦平面上的映射方式可知它在行和列方向上的排列都是不规则的,所以调度方法更加复杂。焦平面上存储的图像的大小与焦平面的大小相同,该图像在水平方向上只能容纳20个卷积核,5行卷积核(即55行的pe)中共包含有96个卷积核。因此,实现227×55+226次右移和55次下移可以确保所有的卷积核在整个图像上的滑动,然而,这种调度方案会导致一些冗余计算,将卷积核左上角的坐标作为其在图像中的坐标,也是其卷积结果输出位置。图8为现有技术提供的alexnet网络首层卷积层在227×227pe阵列组成的焦平面上的卷积处理的冗余计算示意图。如图8所示,fk4(firstkernel4,第一组卷积核中的第4个)卷积核和fk5(firstkernel5,第一组卷积核中的第5个)卷积核都在第0行,而sk4(secondkernel4,第一组卷积核中的第4个)在第44行,sk5(secondkernel5,第一组卷积核中的第5个)在第55行。因此,卷积操作从s(227×44+0)到s(227×54+226)对于第5张特征图来说是必需的,但是对第四张特征图是多余的,因为这些11行的输出已经在s(0,0)到s(10,227×10+226)的卷积操作中得到。图8中间的空心箭头表示卷积操作从s(0,0)到s(44,227×44)得到的第四张特征图(4thfeaturemap)和第五张特征图(5thfeaturemap)的变化,其中,斜线覆盖区域代表由pe组成的焦平面的区域,第四张特征图(4thfeaturemap)和第五张特征图(5thfeaturemap)中的交叉格覆盖区域表示特征图中已经获得卷积结果的区域。因此,此处出现了因为首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数造成的冗余的卷积,浪费了大量的时间和能量。

对此,本发明实施例提供了一种采用填充后图像传感芯片进行首层卷积层处理的方法。图9为本发明实施例提供的采用填充后图像传感芯片进行首层卷积层处理的方法的流程示意图,如图9所示,该方法包括:

步骤110,基于填充后图像传感芯片中新的焦平面的大小、首层卷积层中卷积核的个数和首层卷积层中卷积核的大小在所述新的焦平面上周期性的排列所述首层卷积层。

具体地,基于填充后图像传感芯片中新的焦平面的大小,首层卷积层中卷积核的个数和首层卷积层中卷积核的大小在所述新的焦平面上周期性的排列所述首层卷积层,其中,首层卷积层中卷积核的个数和首层卷积层中卷积核的大小根据首层卷积层所属bnn算法种类确定,bnn算法有多种,如lenet-5神经网络算法、alexnet神经网络算法、binarynet神经网络算法等等,此处不作具体限定。例如,对于lenet-5神经网络算法,其首层卷积层中卷积核的个数为6,首层卷积层中卷积核的大小为5×5,对于alexnet神经网络算法,其首层卷积层中卷积核的个数为96,首层卷积层中卷积核的大小为11×11。例如,当填充后图像传感芯片中新的焦平面的大小为60×30,首层卷积层所属神经网络算法为lenet-5神经网络算法,那么将首层卷积层在新的焦平面上周期性地排列是,将新的焦平面横向每层排列两组首层卷积核,即k1、k2、k3、k4、k5、k6、k1、k2、k3、k4、k5和k6,然后纵向上排列6层。

步骤120,采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图;

其中,pe内的像素部分电路进行光电转换,流过光电二极管的电流值等比于像素值来采集图像的像素值并存储于pe内的像素模块。所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器。

具体地,首先基于新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc,确定好的cr和cc用于控制卷积处理时的位移操作,即完成首层卷积层的卷积处理后焦平面的状态为s(cc-1,cr×(cc-1)+cr-1),即要经过cc-1次下移以及cr×(cc-1)+cr-1次右移才能完成整个首层卷积层的卷积处理。

其中,新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器。具体地,当原始焦平面的宽度(即组成原始焦平面的pe阵列的宽度)不能整除首层卷积层的卷积核的宽度时,会造成进行首层卷积层的卷积处理时的操作复杂度高,因为,在完成首层卷积层的处理后,要重置焦平面使得焦平面可以进行下一次首层卷积层的处理时需要较多的右移和下移操作;而当首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时,会造成进行首层卷积层的卷积处理时的有冗余卷积,冗余卷积已在前文中记述。因此,对原始焦平面的右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面满足新的焦平面的宽度可以整除所述卷积核的宽度且卷积核的个数可以整除新的焦平面的宽度容纳所述卷积核的宽度的个数,例如,对于原始焦平面的227×227的大小,经过填充后的新的焦平面的大小变为264×264,当其用于处理属于alexnet网络的首层卷积层时,该首层卷积层包括96个11×11的卷积核,新的焦平面的宽度264可以整除卷积核的宽度11,而且新的焦平面的宽度可以容纳24个卷积核的宽度,而首层卷积层的卷积核的个数96又可以整除24,因此,经过周期性的排列,同一组首层卷积层的卷积核的排列结果不会出现当前组首层卷积层的卷积核和下一组首层卷积层的卷积核在同一行,因此,避免了冗余卷积。而伪处理单元的内部构成只有一个权值寄存器,没有其他的计算电路和像素单元,它仅作为权重的占位符执行,不能与pe连接进行卷积操作,因此,伪处理单元的面积非常小,通常设计伪处理单元时它的面积仅占一个处理单元(pe)的面积的1/50左右。通过填充伪处理单元得到新的焦平面,使得首层卷积层的卷积核的分布在行方向和列方向都周期性的排列。

本发明实施例提供的方法,通过在填充后图像传感芯片中新的焦平面上周期性的排列所述首层卷积层,然后采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图,其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器,如此,可以保证新的焦平面可以使首层卷积层的卷积核在新的焦平面上规律、均匀的排布,且新的焦平面克服了原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度带来的控制复杂度增加的问题。因此,通过填充后的焦平面优化了卷积核的排布和调度方式,保证进行首层卷积层的卷积处理时计算每一帧的并行度最高,耗能最低,和卷积完成后重置的控制复杂度最低。本发明实施例提供的方法,实现了减少卷积处理的耗能和时间,并将卷积处理完成后的重置控制复杂度减少到最低。

基于上述实施例,该方法中,所述新的焦平面是在原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,具体包括:

若所述首层卷积层的宽度不超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域;

若所述首层卷积层的宽度超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;

将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域。

具体地,对原始焦平面进行伪处理单位填充得到新的焦平面的过程为:首先判断首层卷积层的宽度不超过所述原始焦平面的宽度,则将首层卷积层作为一个第一块,在原始焦平面上从左上顶点到右下顶点周期性排列所述第一块,使得排列后的块能覆盖所有原始焦平面上的处理单元,然后,用伪处理单元填充所述排列后的块覆盖处无处理单位的区域。图10为本发明实施例提供的首层卷积层的宽度不超过所述原始焦平面的宽度情况下的新的焦平面的填充示意图。如图10所示,将k1、k2、k3、k4、k5和k6组成一个第一块,然后将这个第一块在原始32×32的焦平面上周期性排列,因为一个第一块的宽度为30,不到32,因此,每一行需要排列两个第一块,即每一行都由k1、k2、k3、k4、k5、k6、k1、k2、k3、k4、k5和k6组成,由于焦平面的高度为32,而卷积核的高度为5,因此,需要排列7行卷积核才能使原始焦平面的处理单元被周期性排列的k1、k2、k3、k4、k5和k6组成的块全部覆盖,因此,新的焦平面的如图10所示,其中,斜纹区域代表由处理单元(pe)组成的原始焦平面,方格区域代表由伪处理单元(pseudounits)组成的新的焦平面,进而可以确定行循环周期cr=30,列循环周期cc=5,进行首层卷积层的卷积处理后的焦平面的状态为s(4,30×4+29),此时,仅需要一次右移和一次下移就可以重置所有的卷积核。

若判断首层卷积层的宽度超过所述原始焦平面的宽度,确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数,即选择卷积核个数中所有因数中最小的大于的因数为第一因数,然后将所述第一因数作为一行的卷积核的个数nr,然后将首层卷积层中的na个卷积核放入第二块中,第二块的宽度为nr,高度为块中最小单元为卷积核,在垂直方向上重复复制这个第二块,直到原始焦平面的所有处理单元(pe)被所述第二块所覆盖。然后使用伪处理单元填充被所述第二块覆盖但并没有pe的区域。图11为本发明实施例提供的首层卷积层的宽度超过所述原始焦平面的宽度情况下的新的焦平面的填充示意图。如图11所示,对于alexnet神经网络算法的首层卷积层,将96个11×11的卷积核排列成每行24个卷积核一共4行的第二块,将所述第二块在高度方向上重复排列,直到原始焦平面的所有处理单元(pe)被所述第二块所覆盖。因此,需要在原始焦平面底部填充40行伪处理单元,在原始焦平面右边填充40列伪处理单元,新的焦平面的如图11所示,其中,斜纹区域代表由处理单元(pe)组成的原始焦平面,方格区域代表由伪处理单元(pseudounits)组成的新的焦平面,进而可以确定行循环周期cr=264,列循环周期cc=44,进行首层卷积层的卷积处理后的焦平面的状态为s(43,264×43+263),此时,仅需要一次右移和一次下移就可以重置所有的卷积核。此外,由于采用了规则的卷积核分布,在伪单元的帮助下没有冗余计算,并且与直接在原始焦平面上进行卷积核排列的调度方法相比,卷积一个图像所需的移位次数较少了7%。

基于上述任一实施例,该方法中,所述将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元,具体包括:

若na×wk≤wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为且填充后的新的焦平面的高度为其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度;

对应地,确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元,具体包括:

若na×wk>wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为nr×wk且填充后的新的焦平面的高度为其中,其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度。

具体地,确定新的焦平面的大小方法如下:若na×wk≤wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为且填充后的新的焦平面的高度为图12为本发明实施例提供的首层卷积层的宽度不超过所述原始焦平面的宽度情况下的新的焦平面的大小确定示意图。如图12所示,将na个卷积核组成一个块(block),在焦平面的宽度方向上周期性重复,使得焦平面的宽度被s个块覆盖,其中,图12中在blocks中的竖虚线表示pe阵列的右边界,最后一个blocks要覆盖pe阵列的右边界,超出部分用伪处理单元进行填充,新的焦平面每一行可以容纳s×na个卷积核,且填充后的新的焦平面的高度为nc×hk,其中,nc为块在高度上的重复次数,图12中,斜线区域表示pe阵列区域,方格区域表示伪处理单元填充的区域。

若na×wk>wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为nr×wk且填充后的新的焦平面的高度为其中,图13为本发明实施例提供的首层卷积层的宽度超过所述原始焦平面的宽度情况下的新的焦平面的大小确定示意图。如图13所示,将na个卷积核组成一个块(block),这个块每行有nr个卷积核,一共有na/nr行,图13中右上方虚线框中的竖虚线为pe阵列的右边界,将所述块(block)在高度方向上重复排列,使得原焦平面的所有pe都被重复排列的块覆盖,然后将重复排列的块覆盖区域内没有处理单元的区域用伪处理单元进行填充。所述块在高度方向上重复的次数为而每个块的高度为因此,新的焦平面的高度为图13中,斜线区域表示pe阵列区域,方格区域表示伪处理单元填充的区域。

基于上述任一实施例,该方法中,所述采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图,具体包括:

基于所述新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc;

在完成(cc-1,cr×(cc-1)+cr-1)的位移和卷积计算后,输出na个特征图,na为所述首层卷积层中卷积核的个数。

基于上述任一实施例,该方法中,所述基于所述新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc,具体包括:

当na×wk≤wi时,

通过如下公式确定对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc:

cr=na×wk,cc=hk;

其中,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度;

当na×wk>wi时,

通过如下公式确定对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc:

其中,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度。

具体地,基于所述新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc需要根据不同情况进行讨论,若na×wk≤wi,则cr=na×wk,cc=hk,若na×wk>wi,则cc=nr×wk,cc=hk×na/nr,

将pup应用到各种bnn网络中进行第一层卷积层的卷积。表1为处理一幅图像的卷积结果,表1如下所示:

表1处理一幅图像的卷积结果

atheformatis:width×height×channel

btheformatis:outputchannel(kernelnumber)×width×height×inputchannel

cthereductionsofenergyandtimeconsumptionareequaltothereductionoftheconvolutionnumber.

其中,a表示输入的图像的大小为width(宽度)×height(高度)×channel(通道数),即原始焦平面的大小为width(宽度)×height(高度),b表示首层卷积层的规格为channel(kernelnumber,卷积核个数)×width(宽度)×height(高度)×inputchannel(输入图像的通道数),c表示能量和时间消耗的减少等效于卷积次数的减少。表1中的shiftingnumber(位移数)这一栏表示各种卷积方法需要的位移操作的次数,表1中的convolutionnumber(卷积次数)这一栏表示各种卷积方法需要的卷积计算的次数,通过reduction(减少比例)这一栏,可以看出pup(伪处理单元填充焦平面卷积方法)相对于direct(直接采用原始焦平面进行卷积处理方法)在位移操作方面的复杂度降低以及耗时和耗能量方面的提升。

普适的pup(伪处理单元填充进行首层卷积层的卷积处理方法)的时序控制代码如下:

基于上述任一实施例,本发明实施例提供一种采用伪单元填充图像传感芯片进行首层卷积层处理的装置,图14为本发明实施例提供的采用伪单元填充图像传感芯片进行首层卷积层处理的装置的结构示意图。如图14所示,该装置包括排列单元1410和卷积单元1420,其中,

所述排列单元1410,用于基于填充后图像传感芯片中新的焦平面的大小、首层卷积层中卷积核的个数和首层卷积层中卷积核的大小在所述新的焦平面上周期性的排列所述首层卷积层;

所述卷积单元1420,用于采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图;

其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器。

本发明实施例提供的装置,通过在填充后图像传感芯片中新的焦平面上周期性的排列所述首层卷积层,然后采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图,其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器,如此,可以保证新的焦平面可以使首层卷积层的卷积核在新的焦平面上规律、均匀的排布,且新的焦平面克服了原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度带来的控制复杂度增加的问题。因此,通过填充后的焦平面优化了卷积核的排布和调度方式,保证进行首层卷积层的卷积处理时计算每一帧的并行度最高,耗能最低,和卷积完成后重置的控制复杂度最低。本发明实施例提供的装置,实现了减少卷积处理的耗能和时间,并将卷积处理完成后的重置控制复杂度减少到最低。

基于上述任一实施例,该装置中,所述新的焦平面是在原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,具体包括:

若所述首层卷积层的宽度不超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域;

若所述首层卷积层的宽度超过所述原始焦平面的宽度,则所述新的焦平面通过如下步骤得到:

确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;

将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元;

采用伪处理单元填充所述排列后的块覆盖处无处理单位的区域。

基于上述任一实施例,该装置中,所述将所述首层卷积层作为第一块,在所述原始焦平面上左上顶点开始到覆盖到右下顶点结束重复排列所述第一块使得排列后的第一块覆盖所有处理单元,具体包括:

若na×wk≤wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为且填充后的新的焦平面的高度为其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度;

对应地,确定第一因数,所述第一因数为所述卷积核的个数的各因数中最小的大于所述原始焦平面的宽度除以所述卷积核的宽度的因数;将所述首层卷积层排列成宽度为第一因数个卷积核的第二块,在所述原始焦平面上的左上顶点开始到覆盖到右下顶点结束重复排列所述第二块使得排列后的第二块覆盖所有处理单元,具体包括:

若na×wk>wi,则在所述原始焦平面右边和底边采用伪处理单元进行填充,使得填充后的新的焦平面的宽度为nr×wk且填充后的新的焦平面的高度为其中,其中,na为所述首层卷积层中卷积核的个数,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度。

基于上述任一实施例,该装置中,所述采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图,具体包括:

基于所述新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc;

在完成(cc-1,cr×(cc-1)+cr-1)的位移和卷积计算后,输出na个特征图,na为所述首层卷积层中卷积核的个数。

基于上述任一实施例,该装置中,所述基于所述新的焦平面的大小、所述卷积核的数量和所述卷积核的大小确定首层卷积层对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc,具体包括:

当na×wk≤wi时,

通过如下公式确定对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc:

cr=na×wk,cc=hk;

其中,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度;

当na×wk>wi时,

通过如下公式确定对所述处理单位中采集的像素值进行处理时的行循环周期cr和列循环周期cc:

cr=nr×wk,cc=hk×na/nr,

其中,wk为所述首层卷积层中卷积核的宽度,wi为所述原始焦平面的宽度,hk为所述首层卷积层中卷积核的高度,hi为所述原始焦平面的高度。

图15为本发明实施例提供的电子设备的实体结构示意图,如图15所示,该电子设备可以包括:处理器(processor)1501、通信接口(communicationsinterface)1502、存储器(memory)1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。处理器1501可以调用存储在存储器1503上并可在处理器1501上运行的计算机程序,以执行上述各实施例提供的采用填充后图像传感芯片进行首层卷积层处理的方法,例如包括:基于填充后图像传感芯片中新的焦平面的大小、首层卷积层中卷积核的个数和首层卷积层中卷积核的大小在所述新的焦平面上周期性的排列所述首层卷积层;采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图;其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器。

此外,上述的存储器1503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的采用填充后图像传感芯片进行首层卷积层处理的方法,例如包括:基于填充后图像传感芯片中新的焦平面的大小、首层卷积层中卷积核的个数和首层卷积层中卷积核的大小在所述新的焦平面上周期性的排列所述首层卷积层;采用新的焦平面对各处理单元中采集的图像的各像素值进行处理,输出对应的特征图;其中,所述新的焦平面是在填充前图像传感芯片中的原始焦平面的宽度不能整除所述首层卷积层中卷积核的宽度或者所述首层卷积层中卷积核的个数不能整除所述原始焦平面的宽度最多容纳所述卷积核的宽度的个数时对所述原始焦平面的右边和底边填充伪处理单元以达到新的焦平面的大小得到,所述新的焦平面的大小满足其宽度可以整除所述卷积核的宽度且所述卷积核的个数可以整除所述新的焦平面的宽度容纳所述卷积核的宽度的个数,所述伪处理单元仅包括用于保存卷积核权值的寄存器。

以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1