基于图像处理的Depthwise快速卷积系统及图像识别方法与流程

专利2022-06-28  89


本发明涉及一种图像卷积技术,尤其是一种基于图像处理的depthwise快速卷积系统。



背景技术:

随着电子科技的不断进步,图像和视频在主流媒体中的使用率逐步提高,已经稳定地占据了主要地位,取代了人们对文字的需求度。

在机器学习或者神经网络计算的领域中,对图像和视频的处理,使用需要将待处理的图像以一定的格式存储到存储单元中,然后通过反复读取图像像素对数据进行卷积等进一步的计算。

常用的图像卷积实现的方式就是通过对图像数据进行三个维度的数据存储,分别沿着两个维度进行固定窗口取数据,进一步完成内部数据的乘积值获取。这种读取数据的方式虽然安全很少出现遗漏,但是也有比较明确的缺点:

1)每次需要进行计算时,重复读取图像存储存储单元,而且需要考虑有读取带宽以及多余的读取存储单元消耗的功耗;

2)第一次读取计算后,需要将数据结果存储起来,这将消耗更多的资源。

针对这种图像读取和卷积的方式,需要对整个过程中数据计算和读取的方式进行一定程度上的改进,从而降低图像卷积消耗的功耗,加快图像卷积的过程,最终达到提高图像处理的速度和质量的结果。



技术实现要素:

发明目的:提供一种基于图像处理的depthwise快速卷积系统,以解决上述问题。

技术方案:一种基于图像处理的depthwise快速卷积系统,包括图像像素读取单元和dw卷积计算单元,通过以行作为数据单位与卷积核进行运算实现图像卷积,减少对图像存储单元的重复读取;

图像像素读取单元,以h、w和d三个维度对图像中每一组像素进行标注,将待处理的图像存储到存储单元中,根据计算并行度先考虑d维度,再h维度,最后是w维度;

dw卷积计算单元,按行对图像数据进行读取后,每一行图像数据都要与三行的卷积核进行乘累加计算,直至完成所有图像数据行的计算,最终通过像素与对应卷积核乘积的累加得到最终的卷积结果。

根据本发明的一个方面,所述dw卷积计算单元将待处理的图像数据获取之后,按行与三层卷积核分别进行乘累加运算,具体步骤为:

步骤1、选取卷积核,在w维度和h维度组成的平面上从地址1开始取3*3的像素组作为weight层;

步骤2、完成图像数据组的第一行与三层卷积核数据组的计算;

步骤21、由于卷积核是3*3的组成,所以一次进行三个图像数据与三个卷积核数据的对应计算,以此类推,第一行数据与第一行卷积核数据计算后得出数据组为dw00,具体为:p1*w1 p2*w2 p3*w3,p2*w1 p3*w2 p4*w3,p3*w1 p4*w2 p5*w3,直到完成该行每一个数据乘累加运算;

步骤22、进行第一行数据与第二行卷积核数据的计算,得出数据组为dw01,具体为:p1*w9 p2*w10 p3*w11,p2*w9 p3*w10 p4*w11,p3*w9 p4*w10 p5*w11,直到完成该行每一个数据乘累加运算;

步骤23、进行第一行数据与第三行卷积核数据的计算,得出dw02,具体为:p1*w17 p2*w18 p3*w19,p2*w17 p3*w18 p4*w19,p3*w17 p4*w18 p5*w19,直到完成该行每一个数据乘累加运算;

其中,p1为图像数据组的第一个数据,p2为图像数据组的第二个数据,p3为图像数据组的第三个数据,p4为图像数据组的第四个数据,p5为图像数据组的第五个数据,w1、w2、w3、w9、w10、w11、w17、w18、w19分别是卷积核数据组的9个数据;

步骤3、仿照步骤2,继续完成图像数据组其余行与卷积核的乘累加过程,直至图像数据组的所有数据均参与过运算;

步骤4、为了保证图像数据组的9个像素与卷积核的9个参数对应的乘积可以进行累加,在每行图像数据组的数据与卷积核的三行计算结果得出后,下一行计算得出的结果在累加时,需要整体右移一位与上一行的计算结果相对应,从而得到最终的卷积结果。

根据本发明的一个方面,所述dw卷积计算单元需要两个缓冲存储区进行数据暂存、计算和结果输出,具体计算过程为:

步骤1、输入两块存储区,buffera和bufferb;

步骤2、通过做乘积的累加获得卷积结果;

步骤21、使用缓冲存储区bufferb写入dw00的数据;

步骤22、使用buffera写入dw10的数据;同时,读取bufferb中的dw00后,与dw11相加后写入bufferb中;

步骤23、读取bufferb中存储的dw00 dw11,加上当前行计算结果dw22后,输出第一个卷积计算结果;往bufferb中继续存储计算结果dw20;与此同时,读取buffera中的dw10,加上当前计算结果dw21后写回buffera中;

步骤3、交替以计算第二行和第三行的计算存储方式,计算出所有行的卷积计算结果。

根据本发明的一个方面,在需要快速进行图像处理的场景中,例如门禁人脸识别、商品轮廓调取,为了减轻机器学习或者神经网络计算的工作量,快速完成图像识别的要求,得到较好的图像处理结果,使用depthwise快速卷积系统对图像数据进行快速存储,具体步骤为:

步骤1、判断使用场景对图像卷积的质量和速度的要求,确认符合快速处理的场景设定;

步骤2、使用depthwise快速卷积系统对图像数据进行快速存储;

步骤3、进一步反复读取图像像素完成图像卷积和进一步的图像处理。

有益效果:本发明实现了图像卷积的快速算法,通过以行为单位,对图像数据进行采集和卷积,达到了卷积过程的高利用率和输出结果的一次性存储,避免了重复读取图像存储单元的过程,从而降低了卷积使用的计算空间,有助于快速准确地得出图像卷积的结果。

附图说明

图1是本发明的dw卷积计算单元的第一行图像数据与第一行卷积核计算的流程示意图。

图2是本发明的dw卷积计算单元的第一行图像数据与第二行卷积核计算的流程示意图。

图3是本发明的dw卷积计算单元的第一行图像数据与第三行卷积核计算的流程示意图。

图4是本发明的一次卷积计算的完整示意图。

图5是本发明对不同行像素数据计算后累加的流程示意图。

图6是本发明的缓冲存储区bufferb的存储示意图。

图7是本发明的缓冲存储区buffera和bufferb进行数据计算的过程示意图。

图8是本发明的缓冲存储区buffera和bufferb进行卷积结果输出的示意图。

具体实施方式

在该实施例中,一种基于图像处理的depthwise快速卷积系统,包括图像像素读取单元、dw卷积计算单元和检测对比单元,通过以行作为数据单位与卷积核进行运算实现图像卷积,减少对图像存储单元的重复读取;

图像像素读取单元,以h、w和d三个维度对图像中每一组像素进行标注,将待处理的图像存储到存储单元中,根据计算并行度先考虑d维度,再h维度,最后是w维度;

dw卷积计算单元,如图1所示,按行对图像数据进行读取后,每一行图像数据都要与三行的卷积核进行乘累加计算,直至完成所有图像数据行的计算,最终通过像素与对应卷积核乘积的累加得到最终的卷积结果;

在进一步的实施例中,所述dw卷积计算单元将待处理的图像数据获取之后,按行与三层卷积核分别进行乘累加运算,具体步骤为:

步骤1、选取卷积核,在w维度和h维度组成的平面上从地址1开始取3*3的像素组作为weight层;

步骤2、完成图像数据组的第一行与三层卷积核数据组的计算;

步骤21、由于卷积核是3*3的组成,所以一次进行三个图像数据与三个卷积核数据的对应计算,以此类推,第一行数据与第一行卷积核数据计算后得出数据组为dw00,具体为:

p1*w1 p2*w2 p3*w3,p2*w1 p3*w2 p4*w3,p3*w1 p4*w2 p5*w3·,

直到完成该行每一个数据乘累加运算;

步骤22、如图2所,进行第一行数据与第二行卷积核数据的计算,得出数据组为dw01,具体为:

p1*w9 p2*w10 p3*w11,p2*w9 p3*w10 p4*w11,p3*w9 p4*w10 p5*w11,直到完成该行每一个数据乘累加运算;

步骤23、如图3所示,进行第一行数据与第三行卷积核数据的计算,得出dw02,具体为:

p1*w17 p2*w18 p3*w19,

p2*w17 p3*w18 p4*w19,

p3*w17 p4*w18 p5*w19,

直到完成该行每一个数据乘累加运算;

其中,p1为图像数据组的第一个数据,p2为图像数据组的第二个数据,p3为图像数据组的第三个数据,p4为图像数据组的第四个数据,p5为图像数据组的第五个数据,w1、w2、w3、w9、w10、w11、w17、w18、w19分别是卷积核数据组的9个数据;

步骤3、仿照步骤2,继续完成图像数据组其余行与卷积核的乘累加过程,直至图像数据组的所有数据均参与过运算;

步骤4、如图4所示,为了保证图像数据组的9个像素与卷积核的9个参数对应的乘积可以进行累加,在每行图像数据组的数据与卷积核的三行计算结果得出后,下一行计算得出的结果在累加时,如图5所示,整体移位,以同上一行的计算结果相对应,从而得到最终的卷积结果。

在进一步的实施例中,所述dw卷积计算单元需要两个缓冲存储区进行数据暂存、计算和结果输出,具体计算过程为:

步骤1、输入两块存储区,buffera和bufferb;

步骤2、通过做乘积的累加获得卷积结果;

步骤21、如图6所示,使用缓冲存储区bufferb写入dw00的数据;

步骤22、如图7所示,使用buffera写入dw10的数据;同时,读取bufferb中的dw00后,与dw11相加后写入bufferb中;

步骤23、如图8所示,读取bufferb中存储的dw00 dw11,加上当前行计算结果dw22后,输出第一个卷积计算结果;往bufferb中继续存储计算结果dw20;与此同时,读取buffera中的dw10,加上当前计算结果dw21后写回buffera中;

步骤3、交替以计算第二行和第三行的计算存储方式,计算出所有行的卷积计算结果。

在进一步的实施例中,还包括检测对比单元,在图像读取的空缺时间段,随机抽取8x8x4像素数据组进行传统图像卷积,并将卷积结果与所述dw卷积计算单元得出的结果进行比对,从而修正个别误差计算数据。在进一步的实施例中,所述检测对比单元通过随机抽取像素数据组,使用传统卷积方法进行图像卷积,与depthwise快速卷积方法得出的结果进行对比,修正个别误差计算数据,具体步骤如下:

步骤1、随机抽取8x8x4像素数据组;

步骤2、使用传统卷积方法对随机像素数据组进行图像卷积;

步骤21、传统卷积方法在选取的随机像素数据组上完成9宫格滑窗取卷积核,然后窗内进行乘累加计算得到结果,按照h维度重复滑窗,直到完成所有数据计算;

步骤22、对应h维度的滑窗位置,进行w维度的滑窗计算,直到完成所有数据计算;

步骤3、比较传统卷积方法和depthwise快速卷积方法对随机像素数据组进行图像卷积的结果,修正个别误差数据,以修正后的快速卷积方法继续完成图像卷积。

在进一步的实施例中,所述检测对比单元在进行图像卷积的空闲时间进行,不影响正常图像卷积过程,在搜集处理结果的基础上对快速卷积方法进行误差修复,保证快速卷积的准确率。

在进一步的实施例中,在需要快速进行图像处理的场景中,例如门禁人脸识别、商品轮廓调取,为了减轻机器学习或者神经网络计算的工作量,快速完成图像识别的要求,得到较好的图像处理结果,使用depthwise快速卷积系统对图像数据进行快速存储,具体步骤为:

步骤1、判断使用场景对图像卷积的质量和速度的要求,确认符合快速处理的场景设定;

步骤2、使用depthwise快速卷积系统对图像数据进行快速存储;

步骤3、进一步反复读取图像像素完成图像卷积和进一步的图像处理。

在进一步的实施例中,所述dw卷积计算单元提高了图像存储和计算的利用率,减少了对像素组数据读取的重复率,减轻了图像卷积的资源消耗。

总之,本发明具有以下优点:使用三维度的存储空间图像数据进行读取,保证了数据的一一对应;在dw卷积计算单元中,通过以行为单位,对图像数据进行采集和卷积,完成了卷积计算的高利用率和输出结果的一次性存储,避免了重复读取图像存储单元的过程,从而降低了卷积使用的计算空间,有助于快速准确地得出图像卷积的结果;检测对比单元在不影响正常图像卷积的基础上,对快速卷积的过程进行了进一步的误差剔除,保证了快速卷积算法的可信度。本发明整体上计算方案简单,实用度高,提高了图像数据卷积的速度,保证了图像卷积的准确度,可信度高。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。


技术特征:

1.一种基于图像处理的depthwise快速卷积系统,其特征在于,包括图像像素读取单元和dw卷积计算单元,通过以行作为数据单位与卷积核进行运算实现图像卷积,可以减少重复读取存储单元的过程;

图像像素读取单元,以h、w和d三个维度对图像中每一组像素进行标注,将待处理的图像存储到存储单元中,根据计算并行度先考虑d维度,再h维度,最后是w维度;

dw卷积计算单元,按行对图像数据进行读取后,每一行图像数据都要与三行的卷积核进行乘累加计算,直至完成所有图像数据行的计算,最终通过像素与对应卷积核乘积的累加得到最终的卷积结果。

2.根据权利要求1所述的一种基于图像处理的depthwise快速卷积系统,其特征在于,所述dw卷积计算单元将待处理的图像数据获取之后,按行与三层卷积核分别进行乘累加运算,具体步骤为:

步骤1、选取卷积核,在w维度和h维度组成的平面上从地址1开始取3*3的像素组作为weight层;

步骤2、完成图像数据组的第一行与三层卷积核数据组的计算;

步骤21、由于卷积核是3*3的组成,所以一次进行三个图像数据与三个卷积核数据的对应计算,以此类推,第一行数据与第一行卷积核数据计算后得出数据组为dw00,具体为:p1*w1 p2*w2 p3*w3,p2*w1 p3*w2 p4*w3,p3*w1 p4*w2 p5*w3······直到完成该行每一个数据乘累加运算;

步骤22、进行第一行数据与第二行卷积核数据的计算,得出数据组为dw01,具体为:p1*w9 p2*w10 p3*w11,p2*w9 p3*w10 p4*w11,p3*w9 p4*w10 p5*w11······直到完成该行每一个数据乘累加运算;

步骤23、进行第一行数据与第三行卷积核数据的计算,得出dw02,具体为:p1*w17 p2*w18 p3*w19,p2*w17 p3*w18 p4*w19,p3*w17 p4*w18 p5*w19······直到完成该行每一个数据乘累加运算;

其中,p1为图像数据组的第一个数据,p2为图像数据组的第二个数据,p3为图像数据组的第三个数据,p4为图像数据组的第四个数据,p5为图像数据组的第五个数据,w1、w2、w3、w9、w10、w11、w17、w18、w19分别是卷积核数据组的9个数据;

步骤3、仿照步骤2,继续完成图像数据组其余行与卷积核的乘累加过程,直至图像数据组的所有数据均参与过运算;

步骤4、为了保证图像数据组的9个像素与卷积核的9个参数对应的乘积可以进行累加,在每行图像数据组的数据与卷积核的三行计算结果得出后,下一行计算得出的结果在累加时,整体移位,以同上一行的计算结果相对应,从而得到最终的卷积结果。

3.根据权利要求1所述的一种基于图像处理的depthwise快速卷积系统,其特征在于,所述dw卷积计算单元需要两个缓冲存储区进行数据暂存、计算和结果输出,具体计算过程为:

步骤1、输入两块存储区,buffera和bufferb;

步骤2、通过做乘积的累加获得卷积结果;

步骤21、使用缓冲存储区bufferb写入dw00的数据;

步骤22、使用buffera写入dw10的数据;同时,读取bufferb中的dw00后,与dw11相加后写入bufferb中;

步骤23、读取bufferb中存储的dw00 dw11,加上当前行计算结果dw22后,输出第一个卷积计算结果;往bufferb中继续存储计算结果dw20;与此同时,读取buffera中的dw10,加上当前计算结果dw21后写回buffera中;

步骤3、交替以计算第二行和第三行的计算存储方式,计算出所有行的卷积计算结果。

4.根据权利要求1所述的一种基于图像处理的depthwise快速卷积系统,其特征在于,所述dw卷积计算单元提高了图像存储和计算的利用率,减少了对像素组数据读取的重复率,减轻了图像卷积的资源消耗。

5.一种快速图像识别方法,其特征在于,在需要快速进行图像处理的场景中,为了减轻机器学习或者神经网络计算的工作量,快速完成图像识别的要求,得到较好的图像处理结果,使用权利要求1至4任一项所述的depthwise快速卷积系统对图像数据进行快速存储,具体步骤为:

步骤1、判断使用场景对图像卷积的质量和速度的要求,确认符合快速处理的场景设定;

步骤2、使用depthwise快速卷积系统对图像数据进行快速存储;

步骤3、进一步反复读取图像像素完成图像卷积和进一步的图像处理。

技术总结
本发明公开了一种基于图像处理的Depthwise快速卷积系统,包括图像像素读取单元、DW卷积计算单元;所述图像像素读取单元能够以多维度的形式将待处理的图像存储到存储单元中;所述DW卷积计算单元按行对图像数据进行读取后,与三行的卷积核进行乘累加计算,获得所有像素点的计算结果。本发明实现了图像卷积的快速算法,可以减少重复读取图像存储单元的过程,降低了卷积使用的计算空间,有助于快速准确地得出图像卷积的结果。

技术研发人员:李钢;周欢欢;张旸
受保护的技术使用者:中国科学院自动化研究所南京人工智能芯片创新研究院
技术研发日:2020.01.14
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-10794.html

最新回复(0)