一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像处理方法及装置、图像处理模型的训练方法及装置与流程

2022-12-02 22:21:33 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,特别是涉及一种图像处理方法及装置、图像处理模型的训练方法及装置。


背景技术:

2.随着人工智能技术的发展,卷积神经网络作为人工智能领域的主流技术,在图像处理和识别领域得到了广泛的应用,但在传统的利用卷积神经网络进行图像处理时,存在卷积计算成本过高的缺点。
3.在传统技术中,在图像处理过程中,卷积神经网络在处理原始图像时,会令卷积核与原始图像进行卷积,一方面,由于卷积计算的计算量较大、计算时间较长,使得利用卷积神经网络进行图像处理时,较少使用大型卷积核,进而导致无法扩大感受野(感受野即原始图像中被卷积核覆盖的区域)以及完成复杂特征的提取,另一方面,随着数字摄影技术的发展,原始图像会越来越大,这也会提高卷积计算的计算量和计算时间,严重影响了卷积神经网络在图像处理和识别领域内的使用。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够减小运算量、缩短图像处理时间的图像处理方法及装置、图像处理模型的训练方法及装置、系统、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种图像处理方法。所述方法包括:
6.对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,所述图像矩阵为i行j列的矩阵,所述图像组为行向量,其中n、i、j均为正整数,且所述n个图像组中的元素总数为i与j的乘积;
7.构建卷积核对应的列向量,所述卷积核为p行q列的矩阵;
8.针对各所述图像组,将所述图像组与所述列向量进行乘积运算,得到乘积矩阵,并根据所述图像组对所述乘积矩阵的每一列进行下移处理,得到第一矩阵;
9.对各所述图像组对应的第一矩阵进行拼接,得到第二矩阵;
10.针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述待处理图像对应的目标图像。
11.在其中一个实施例中,所述构建卷积核对应的列向量,包括:
12.在所述卷积核的各行的最后一个元素后补充j-1个0,得到第一卷积核;
13.针对所述第一卷积核,按行顺序依次读取所述第一卷积核内各行的元素,得到卷积行向量;
14.对所述卷积行向量进行转置处理,得到所述卷积核对应的列向量。
15.在其中一个实施例中,所述根据所述图像组对所述乘积矩阵的每一列进行下移处理,得到第一矩阵,包括:
16.确定所述乘积矩阵中各列的首位元素[x
ij
*k
11
],其中,x
ij
为所述图像组中的任一元素,k
11
为所述卷积核对应的列向量中的第一个元素,i、j均为正整数;
[0017]
针对任一列的所述首位元素[x
ij
*k
11
],根据所述x
ij
在所述图像矩阵中的位置、所述图像矩阵的列数j、及所述卷积核的列数q,确定所述列对应的索引,所述索引用于表征所述列下移处理后,所述列的首位元素[x
ij
*k
11
]在所述第一矩阵中的位置;
[0018]
根据所述乘积矩阵中各列对应的所述索引对所述乘积矩阵各列进行下移处理,得到所述第一矩阵。
[0019]
在其中一个实施例中,所述根据所述乘积矩阵中各列对应的所述索引对所述乘积矩阵各列进行下移处理,得到所述第一矩阵,包括:
[0020]
根据所述乘积矩阵中各列对应的所述索引对所述乘积矩阵各列进行下移处理,得到第一子矩阵;
[0021]
针对所述第一子矩阵的任一行,进行所述行内元素的累加处理,得到所述第一矩阵,所述第一矩阵为列向量。
[0022]
在其中一个实施例中,所述针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述待处理图像对应的目标图像,包括:
[0023]
针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到结果列向量;
[0024]
针对所述结果列向量中的任一元素,根据所述元素在所述结果列向量中的位置、所述图像矩阵的列数j、及所述卷积核的列数q,确定所述元素在所述目标图像中的位置,得到所述目标图像。
[0025]
在其中一个实施例中,所述目标图像为当前卷积层对应的所述目标图像,所述方法还包括:
[0026]
将所述当前卷积层对应的所述目标图像作为下一卷积层的所述待处理图像输入到下一卷积层中,直到将最后一个卷积层对应的所述目标图像输入到池化层,所述池化层对所述最后一个卷积层对应的所述目标图像进行识别处理,得到所述待处理图像的图像识别结果。
[0027]
第二方面,本技术还提供了一种图像处理模型的训练方法,图像处理模型包括多个卷积层,所述卷积层用于实现前述任一实施例中的图像处理方法,所述卷积层包括第一卷积层和第二卷积层,所述第一卷积层为所述图像处理模型中的任一所述卷积层,所述第二卷积层为所述第一卷积层的下一卷积层;
[0028]
所述方法包括:
[0029]
获取样本图像,将所述样本图像输入图像处理模型中的第一卷积层,通过所述第一卷积层对所述样本图像对应的样本图像矩阵进行分组处理,得到n个样本图像组,所述样本图像矩阵为i行j列的矩阵,所述样本图像组为行向量,其中n、i、j均为正整数,且所述n个样本图像组中的元素总数为i与j的乘积;
[0030]
通过所述第一卷积层构建样本卷积核对应的列向量,所述样本卷积核为p行q列的矩阵;
[0031]
针对各所述样本图像组,通过所述第一卷积层将所述样本图像组与所述列向量进行乘积运算,得到样本乘积矩阵,并根据所述样本图像组对所述乘积矩阵的每一列进行下移处理,得到第一样本矩阵;
[0032]
通过所述第一卷积层对各所述样本图像组对应的第一样本矩阵进行拼接,得到第二样本矩阵,针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述样本图像对应的预测图像;
[0033]
根据所述样本图像对应的预测图像对所述第一卷积层对应的误差图像进行图像处理,得到卷积核误差,并根据所述卷积核误差,对所述第二卷积层对应的卷积核进行调整,得到所述第二卷积层对应的目标卷积核;
[0034]
根据所述图像处理模型中各所述卷积层对应的所述目标卷积核,确定训练后的所述图像处理模型。
[0035]
第三方面,本技术还提供了一种图像处理系统。所述系统包括:分组单元、n个组内计算单元、总体合并单元和协调器,其中n为正整数;
[0036]
所述分组单元,用于对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,所述图像矩阵为i行j列的矩阵,所述图像组为行向量,其中n、i、j均为正整数,且所述n个图像组中的元素总数为i与j的乘积;
[0037]
所述协调器,用于根据各所述图像组和各所述组内计算单元的工作状态,将所述n个图像组分发至各所述组内计算单元;
[0038]
所述组内计算单元,用于构建卷积核对应的列向量,将分发至所述组内计算单元内的所述图像组与所述列向量进行乘积运算,得到乘积矩阵,并根据所述图像组对所述乘积矩阵的每一列进行下移处理,得到第一矩阵,所述卷积核为p行q列的矩阵;
[0039]
所述总体合并单元,用于对各所述第一矩阵进行拼接,得到第二矩阵,并针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述待处理图像对应的目标图像。
[0040]
在其中一个实施例中,所述协调器包括:任务分配器、协调通信接收单元和协调通信发送单元;其中,
[0041]
所述协调通信接收单元,用于接收各所述组内计算单元的工作状态,将处于未工作状态的所述组内计算单元写入资源队列;
[0042]
所述任务分配器,用于将所述图像组写入任务队列,并控制所述协调通信发送单元依次将所述任务队列中的所述图像组,分配至所述资源队列中的所述组内计算单元进行图像处理。
[0043]
在其中一个实施例中,所述组内计算单元包括:逐点乘积单元、索引生成单元和组内合并单元;其中,
[0044]
所述逐点乘积单元,用于在所述卷积核的各行的最后一个元素后补充j-1个0,得到第一卷积核,针对所述第一卷积核,按行顺序依次读取所述第一卷积核内各行的元素,得到卷积行向量,并对所述卷积行向量进行转置处理,得到所述卷积核对应的列向量;
[0045]
所述逐点乘积单元,还用于将所述图像组与所述列向量进行乘积运算,得到所述乘积矩阵;
[0046]
所述索引生成单元,用于确定所述乘积矩阵中各列的首位元素[x
ij
*k
11
],并针对任一列的所述首位元素[x
ij
*k
11
],根据所述x
ij
在所述图像矩阵中的位置、所述图像矩阵的列数j、及所述卷积核的列数q,确定所述列对应的索引,所述索引用于表征所述列下移处理后,所述列的首位元素[x
ij
*k
11
]在所述第一矩阵中的位置,其中,x
ij
为所述图像组中的任一元素,k
11
为所述卷积核对应的列向量中的第一个元素,i、j均为正整数;
[0047]
所述索引生成单元,还用于根据所述乘积矩阵中各列对应的所述索引对所述乘积矩阵各列进行下移处理,得到第一子矩阵;
[0048]
所述组内合并单元用于针对所述第一子矩阵的任一行,进行所述行内元素的累加处理,得到所述第一矩阵。
[0049]
在其中一个实施例中,所述总体合并单元,还用于针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到结果列向量,并针对所述结果列向量中的任一元素,根据所述元素在所述结果列向量中的位置、所述图像矩阵的列数j、及所述卷积核的列数q,确定所述元素在所述目标图像中的位置,得到所述目标图像。
[0050]
第四方面,本技术还提供了一种图像处理装置,所述装置包括:
[0051]
分组模块,用于对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,所述图像矩阵为i行j列的矩阵,所述图像组为行向量,其中n、i、j均为正整数,且所述n个图像组中的元素总数为i与j的乘积;
[0052]
构建模块,用于构建卷积核对应的列向量,所述卷积核为p行q列的矩阵;
[0053]
乘积模块,用于针对各所述图像组,将所述图像组与所述列向量进行乘积运算,得到乘积矩阵;
[0054]
下移模块,用于根据所述图像组对所述乘积矩阵的每一列进行下移处理,得到第一矩阵;
[0055]
拼接模块,用于对各所述图像组对应的第一矩阵进行拼接,得到第二矩阵;
[0056]
累加模块,用于针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述待处理图像对应的目标图像。
[0057]
在其中一个实施例中,所述构建模块还用于:
[0058]
在所述卷积核的各行的最后一个元素后补充j-1个0,得到第一卷积核;
[0059]
针对所述第一卷积核,按行顺序依次读取所述第一卷积核内各行的元素,得到卷积行向量;
[0060]
对所述卷积行向量进行转置处理,得到所述卷积核对应的列向量。
[0061]
在其中一个实施例中,所述下移模块还用于:
[0062]
确定所述乘积矩阵中各列的首位元素[x
ij
*k
11
],其中,x
ij
为所述图像组中的任一元素,k
11
为所述卷积核对应的列向量中的第一个元素,i、j均为正整数;
[0063]
针对任一列的所述首位元素[x
ij
*k
11
],根据所述x
ij
在所述图像矩阵中的位置、所述图像矩阵的列数j、及所述卷积核的列数q,确定所述列对应的索引,所述索引用于表征所述列下移处理后,所述列的首位元素[x
ij
*k
11
]在所述第一矩阵中的位置;
[0064]
根据所述乘积矩阵中各列对应的所述索引对所述乘积矩阵各列进行下移处理,得到所述第一矩阵。
[0065]
在其中一个实施例中,所述下移模块还用于:
[0066]
根据所述乘积矩阵中各列对应的所述索引对所述乘积矩阵各列进行下移处理,得到第一子矩阵;
[0067]
针对所述第一子矩阵的任一行,进行所述行内元素的累加处理,得到所述第一矩阵,所述第一矩阵为列向量。
[0068]
在其中一个实施例中,所述累加模块还用于,针对所述第二矩阵的任一行,进行所
述行内元素的累加处理,得到结果列向量;
[0069]
针对所述结果列向量中的任一元素,根据所述元素在所述结果列向量中的位置、所述图像矩阵的列数j、及所述卷积核的列数q,确定所述元素在所述目标图像中的位置,得到所述目标图像。
[0070]
在其中一个实施例中,所述装置还包括:
[0071]
识别模块,用于将所述当前卷积层对应的所述目标图像作为下一卷积层的所述待处理图像输入到下一卷积层中,直到将最后一个卷积层对应的所述目标图像输入到池化层,所述池化层对所述最后一个卷积层对应的所述目标图像进行识别处理,得到所述待处理图像的图像识别结果。
[0072]
第五方面,本技术还提供了一种图像处理模型的训练装置,图像处理模型包括多个卷积层,所述卷积层用于实现前述任一实施例中的图像处理方法,所述卷积层包括第一卷积层和第二卷积层,所述第一卷积层为所述图像处理模型中的任一所述卷积层,所述第二卷积层为所述第一卷积层的下一卷积层;
[0073]
所述装置包括:
[0074]
分组模块,用于获取样本图像,将所述样本图像输入图像处理模型中的第一卷积层,通过所述第一卷积层对所述样本图像对应的样本图像矩阵进行分组处理,得到n个样本图像组,所述样本图像矩阵为i行j列的矩阵,所述样本图像组为行向量,其中n、i、j均为正整数,且所述n个样本图像组中的元素总数为i与j的乘积;
[0075]
构建模块,用于通过所述第一卷积层构建样本卷积核对应的列向量,所述样本卷积核为p行q列的矩阵;
[0076]
下移模块,用于针对各所述样本图像组,通过所述第一卷积层将所述样本图像组与所述列向量进行乘积运算,得到样本乘积矩阵,并根据所述样本图像组对所述乘积矩阵的每一列进行下移处理,得到第一样本矩阵;
[0077]
累加模块,用于通过所述第一卷积层对各所述样本图像组对应的第一样本矩阵进行拼接,得到第二样本矩阵,针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述样本图像对应的预测图像;
[0078]
图像处理模块,用于根据所述样本图像对应的预测图像对所述第一卷积层对应的误差图像进行图像处理,得到卷积核误差,并根据所述卷积核误差,对所述第二卷积层对应的卷积核进行调整,得到所述第二卷积层对应的目标卷积核;
[0079]
确定模块,用于根据所述图像处理模型中各所述卷积层对应的所述目标卷积核,确定训练后的所述图像处理模型。
[0080]
第六方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0081]
对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,所述图像矩阵为i行j列的矩阵,所述图像组为行向量,其中n、i、j均为正整数,且所述n个图像组中的元素总数为i与j的乘积;
[0082]
构建卷积核对应的列向量,所述卷积核为p行q列的矩阵;
[0083]
针对各所述图像组,将所述图像组与所述列向量进行乘积运算,得到乘积矩阵,并根据所述图像组对所述乘积矩阵的每一列进行下移处理,得到第一矩阵;
[0084]
对各所述图像组对应的第一矩阵进行拼接,得到第二矩阵;
[0085]
针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述待处理图像对应的目标图像。
[0086]
第七方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0087]
对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,所述图像矩阵为i行j列的矩阵,所述图像组为行向量,其中n、i、j均为正整数,且所述n个图像组中的元素总数为i与j的乘积;
[0088]
构建卷积核对应的列向量,所述卷积核为p行q列的矩阵;
[0089]
针对各所述图像组,将所述图像组与所述列向量进行乘积运算,得到乘积矩阵,并根据所述图像组对所述乘积矩阵的每一列进行下移处理,得到第一矩阵;
[0090]
对各所述图像组对应的第一矩阵进行拼接,得到第二矩阵;
[0091]
针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述待处理图像对应的目标图像。
[0092]
第八方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0093]
对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,所述图像矩阵为i行j列的矩阵,所述图像组为行向量,其中n、i、j均为正整数,且所述n个图像组中的元素总数为i与j的乘积;
[0094]
构建卷积核对应的列向量,所述卷积核为p行q列的矩阵;
[0095]
针对各所述图像组,将所述图像组与所述列向量进行乘积运算,得到乘积矩阵,并根据所述图像组对所述乘积矩阵的每一列进行下移处理,得到第一矩阵;
[0096]
对各所述图像组对应的第一矩阵进行拼接,得到第二矩阵;
[0097]
针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到所述待处理图像对应的目标图像。
[0098]
上述图像处理方法及装置、图像处理模型的训练方法及装置、系统、计算机设备、存储介质和计算机程序产品,可以对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,图像矩阵为i行j列的矩阵,图像组为行向量,其中n、i、j均为正整数,且n个图像组中的元素总数为i与j的乘积,并构建卷积核对应的列向量,卷积核为p行q列的矩阵。针对各图像组,将图像组与列向量进行乘积运算,可以得到乘积矩阵,并根据图像组对乘积矩阵的每一列进行下移处理,得到第一矩阵,且对各图像组对应的第一矩阵进行拼接,得到第二矩阵。针对第二矩阵的任一行,进行行内元素的累加处理,以得到所述待处理图像对应的目标图像,基于上述图像处理方法及装置、图像处理模型的训练方法及装置、系统、计算机设备、存储介质和计算机程序产品,在图像处理过程中,可以对待处理图像进行分组,得到多个图像组,并根据任一图像组和卷积核对应的列向量进行乘积运算,根据各图像组与卷积核对应的列向量对应的乘积矩阵,通过下移、合并、累加等处理,可以得到待处理图像对应的目标图像,其中,针对任一图像组,图像组所包含的元素数量小于待处理图像的元素数量,也即本技术实施例可以将待处理图像划分为多个图像组,进而并行进行图像组的卷积处理,由于各图像组的运算量远远小于待处理图像直接与卷积核进行卷积的运算量,因此,本申
请可以减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗时,提高图像处理效率。
附图说明
[0099]
图1为一个实施例中图像处理方法的流程示意图;
[0100]
图2(a)为一个实施例中传统图像处理方法中的卷积计算示意图;
[0101]
图2(b)为一个实施例中传统图像处理方法中的卷积计算示意图;
[0102]
图2(c)为一个实施例中传统图像处理方法中的卷积计算示意图;
[0103]
图3(a)为一个实施例中图像处理方法的示意图;
[0104]
图3(b)为另一个实施例中图像处理方法的示意图;
[0105]
图4为另一个实施例中图像处理方法的流程示意图;
[0106]
图5为另一个实施例中图像处理方法的流程示意图;
[0107]
图6为另一个实施例中图像处理方法的流程示意图;
[0108]
图7为另一个实施例中图像处理方法的流程示意图;
[0109]
图8为另一个实施例中图像处理方法的流程示意图;
[0110]
图9为一个实施例中图像处理系统的结构框图;
[0111]
图10为一个实施例中协调器的结构框图;
[0112]
图11为一个实施例中组内计算单元的结构框图;
[0113]
图12为一个实施例中总体合并单元的结构框图;
[0114]
图13为一个实施例中图像处理装置的结构框图;
[0115]
图14为一个实施例中图像处理模型的训练装置的结构框图;
[0116]
图15为一个实施例中计算机设备的内部结构图。
具体实施方式
[0117]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0118]
在一个实施例中,如图1所示,提供了一种图像处理方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
[0119]
步骤102,对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,图像矩阵为i行j列的矩阵,图像组为行向量,其中n、i、j均为正整数,且n个图像组中的元素总数为i与j的乘积。
[0120]
本技术实施例中,待处理图像为待进行图像处理的图像,示例性的,在图像识别和/或图像分类等图像处理领域中,待进行识别和/或分类操作的图像即为待处理图像。待处理图像对应的数字图像数据可以用矩阵来表示,该矩阵则为待处理图像对应的图像矩阵,其中,图像矩阵的行可以对应待处理图像的高(单位为像素),图像矩阵的列可以对应待处理图像的宽(单位为像素),图像矩阵中的元素可以对应待处理图像的像素点,图像矩阵可以是i行j列的矩阵,则图像矩阵中的元素总数为i与j的乘积。
[0121]
本实施例中,对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,且图像组为行向量,也即对图像矩阵中的所有元素进行分组,任一图像组中包括图像矩阵中的至少一个元素,以图像组中包括3个元素为例,该图像组可以表示为1
×
3。其中,n个图像组中的元素总数为i与j的乘积(图像矩阵中的元素总数)。
[0122]
示例性的,一个待处理图像对应的图像矩阵为按图像矩阵的行可以将其分为3个图像组,则图像组1为(x
11
,x
12
,x
13
),图像组2为(x
21
,x
22
,x
23
),图像组3为(x
31
,x
32
,x
33
)。
[0123]
需要说明的是,上述按行分组的方式仅作为本技术实施例中图像组划分的一种示例,实际上,也可以将相邻多个元素合成一组,例如:将图像矩阵分为2个图像组,则图像组1

为(x
11
,x
12
,x
13
,x
21
,x
22
),图像组2

为(x
23
,x
31
,x
32
,x
33
),本技术实施例中不对图像组的划分方式做具体限定。
[0124]
步骤104,构建卷积核对应的列向量,卷积核为p行q列的矩阵。
[0125]
本技术实施例中,在基于卷积神经网络对待处理图像进行图像处理的过程中,首先在卷积层部分利用卷积核对待处理图像进行卷积处理,以对待处理图像进行特征提取,得到待处理图像的特征图像,也即得到待处理图像对应的目标图像。之后经过非线性激活层和池化层进一步对目标图像进行处理,可以得到图像处理结果。
[0126]
本技术实施例中,卷积核为一个p行q列的矩阵,可以基于待处理图像通过卷积核卷积处理后的目标图像的列数,构建卷积核对应的列向量,该列向量中包括的元素总数为目标图像的列数与卷积核的行数的乘积,其中,列向量中除包含卷积核中的所有元素之外,其余元素为0。
[0127]
步骤106,针对各图像组,将图像组与列向量进行乘积运算,得到乘积矩阵,并根据图像组对乘积矩阵的每一列进行下移处理,得到第一矩阵。
[0128]
本技术实施例中,针对各图像组,令图像组和列向量进行乘积运算,可以得到一个乘积矩阵,在乘积矩阵中,任一元素为图像组中任一元素与列向量中任一元素的乘积,例如,仍以上述示例为例,对于图像组1:(x
11
,x
12
,x
13
),卷积核对应的列向量为一个15
×
1的列向量,将图像组1与列向量进行乘积运算,即将x
11
分别与列向量中的15个元素相乘,将x
12
分别与列向量中的15个元素相乘,将x
13
分别与列向量中的15个元素相乘,最终得到一个15
×
3的乘积矩阵。
[0129]
在传统技术中,基于卷积神经网络对待处理图像进行图像处理时,可以直接利用卷积公式,来计算待处理图像对应的图像矩阵与卷积核进行卷积后得到的目标图像,其中,图像矩阵为x,图像矩阵中各元素用x(i,j)表示,卷积核为k,卷积核中各元素用k(p,q)表示,目标图像为y,目标图像中各元素用y(u,v)表示,卷积公式示,目标图像为y,目标图像中各元素用y(u,v)表示,卷积公式在利用卷积公式进行计算的过程中,目标图像中任一元素分别与图像矩阵中的元素、卷积核中的元素具有极高的耦合程度,很难将目标矩阵拆分并进行分组并行计算。
[0130]
针对上述问题,图像矩阵中的各元素x(i,j)可以表示为一个单位冲击信号δ(i,j)输入图像矩阵时,图像矩阵的输出信号,即为x(i,j)=x(i,j)
·
δ(i,j),此时,图像矩阵中
任一元素与卷积核卷积表示为其中,k(p-i,q-j)表示卷积核的原点从(1,1)移动到了(i,j),而对于目标图像中的任一元素,y(u,v)为位于(u,v)位置处的x(i,j)与k(p-i,q-j)的乘积的累加。
[0131]
参照图2(a)、图2(b)以及图2(c)所示,利用3行3列的卷积核对一个图像矩阵为3行3列的待处理图像进行图像处理,图2(a)中包含9个子图,各子图为一个5行5列的网格,每个网格可以用于表征经过图像处理后的目标图像的元素位置,空白网格表示该位置处没有元素,每个子图代表一个x(i,j)与k(p-i,q-j)进行乘积运算,其中,y(3,3)为9个子图中位置为(3,3)的元素之和。
[0132]
结合上述内容与图2(b)可知,各x(i,j)与k(p-i,q-j)进行乘积运算后,各元素的位置产生了不同程度的移位。
[0133]
在本技术实施例中,图像组作为一个行向量与卷积核对应的列向量进行乘积运算后,得到乘积矩阵,乘积矩阵中的一列为图像组中的一个元素分别与卷积核对应列向量中的所有元素相乘得到,也即乘积矩阵中的一列可以看做对应图2(a)中的一个子图,根据图2(b)和图2(c)所示的各x(i,j)与k(p-i,q-j)进行乘积运算后,各元素位置的移位,可以得到具有普适性的乘积矩阵中的每一列下移的规律,之后,可以根据图像组对乘积矩阵的每一列进行下移处理,得到第一矩阵,其中,各图像组至少包括图像矩阵中的一个元素,也即任一图像组对应的第一矩阵至少有一列。
[0134]
其中,对一个图像组与列向量进行乘积运算得到一个乘积矩阵,并对该乘积矩阵的每一列进行下移处理,得到第一矩阵的过程为一次组内计算,本实施例中,针对各图像组,可以采用并行组内计算,即针对各图像组,并行进行上述组内计算过程。
[0135]
步骤108,对各图像组对应的第一矩阵进行拼接,得到第二矩阵。
[0136]
本技术实施例中,对各图像组对应的第一矩阵进行拼接,参照图3(a)所示,在进行拼接时,按照行数将各第一矩阵的各行对齐,拼接后可以得到第二矩阵。
[0137]
步骤110,针对第二矩阵的任一行,进行行内元素的累加处理,得到待处理图像对应的目标图像。
[0138]
本技术实施例中,针对第二矩阵的任一行,进行行内元素的累加处理,得到待处理图像对应的目标图像,其中,第二矩阵的任一行内的元素相加,能得到目标图像中的一个元素,第二矩阵中全部行完成累加处理后得到一个目标图像对应的列向量,目标图像对应的列向量中的元素即为目标图像中的元素,通过将目标图像对应的列向量中的元素的位置进行调整,就可以得到待处理图像对应的目标图像,通过对目标图像进行图像处理,可以得到待处理图像的图像处理结果,例如:得到待处理图像的识别结果。
[0139]
上述图像处理方法中,在图像处理过程中,可以对待处理图像进行分组,得到多个图像组,并根据任一图像组和卷积核对应的列向量进行乘积运算,根据各图像组与卷积核对应的列向量对应的乘积矩阵,通过下移、合并、累加等处理,可以得到待处理图像对应的目标图像,其中,针对任一图像组,图像组所包含的元素数量小于待处理图像的元素数量,也即本技术实施例可以将待处理图像划分为多个图像组,进而并行进行图像组的卷积处理,由于各图像组的运算量远远小于待处理图像直接与卷积核进行卷积的运算量,因此,本技术可以减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗
时,提高图像处理效率。
[0140]
在一个实施例中,如图4所示,步骤104,构建卷积核对应的列向量,包括:
[0141]
步骤402,在卷积核的各行的最后一个元素后补充j-1个0,得到第一卷积核。
[0142]
本技术实施例中,在卷积核的各行的最后一个元素后补充j-1个0,得到第一卷积核。仍以上述示例为例,各x(i,j)与k(p-i,q-j)进行乘积运算的过程中,卷积核的原点从(1,1)移动到了(i,j),也即卷积核的原点共进行了i
×
j次移动,卷积核原点经过i
×
j次移动后,卷积核所经过的位置可以形成一个(i p-1)行(j q-1)列的矩阵,参照图2(b)和图2(c)所示,在图2(b)中任意一个子图中,卷积核的每一行与其下一行之间,均相差j-1个空白元素位置,因此,在卷积核各行的最后一个元素后添加j-1个0,以补充卷积核经过移位后,相邻两行之间产生的空白元素。
[0143]
举例来说,当卷积核为待处理图像对应的图像矩阵为3行3列的矩阵,在卷积核的每一行的最后一个元素后补充2个0,得到第一卷积核
[0144]
步骤404,针对第一卷积核,按行顺序依次读取第一卷积核内各行的元素,得到卷积行向量。
[0145]
本技术实施例中,针对第一卷积核,按行顺序依次读取第一卷积核内各行的元素,也即首先读取第一卷积核内第一行的元素,完成第一行元素的读取后,再开始读取第二行的元素,完成第二行元素的读取后,读取第三行的元素
……
直至读取完第一卷积核内最后一行的元素,并且在进行第一卷积核内每一行的元素读取时,按照每一行内元素的位置顺序进行元素读取。
[0146]
仍以上述示例为例,针对第一卷积核首先读取第一行的元素:k
11
,k
12
,k
13
,0,0,之后读取第二行的元素k
21
,k
22
,k
23
,0,0,最后读取第三行的元素k
31
,k
32
,k
33
,0,0,最终得到卷积行向量(k
11
,k
12
,k
13
,0,0,k
21
,k
22
,k
23
,0,0,k
31
,k
32
,k
33
,0,0)。
[0147]
步骤406,对卷积行向量进行转置处理,得到卷积核对应的列向量。
[0148]
本技术实施例中,对卷积行向量进行转置处理,转置可以对列向量和行向量之间进行转化,则对卷积行向量进行转置处理后,得到了卷积核对应的列向量。
[0149]
本实施例中,通过在卷积核每一行的最后一个元素后补充j-1个0,得到第一卷积核,能够补充卷积核经过移位后,相邻两行之间产生的空白元素,进而将第一卷积核转变为卷积行向量,并转化为卷积核对应的列向量,令卷积核对应的列向量与各图像组进行后续的图像处理,其中,针对任一图像组,图像组所包含的元素数量小于待处理图像的元素数量,也即本技术实施例可以将待处理图像划分为多个图像组,进而并行进行图像组的卷积处理,由于各图像组的运算量远远小于待处理图像直接与卷积核进行卷积的运算量,因此,本技术可以减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗时,提高图像处理效率
[0150]
在一个实施例中,如图5所示,步骤106,所述根据所述图像组对所述乘积矩阵的每
一列进行下移处理,得到第一矩阵,包括:
[0151]
步骤502,确定乘积矩阵中各列的首位元素[x
ij
*k
11
],其中,x
ij
为图像组中的任一元素,k
11
为卷积核对应的列向量中的第一个元素,i、j均为正整数。
[0152]
本技术实施例中,确定乘积矩阵中各列的首位元素[x
ij
*k
11
],乘积矩阵为图像组与卷积核对应的列向量相乘得到的,图像组为行向量,因此,乘积矩阵中各列的首位元素均为卷积核对应的列向量中的第一个元素与图像组中任一元素的乘积,仍以上述示例为例,图像组1为(x
11
,x
12
,x
13
),卷积核对应的列向量(k
11
,k
12
,k
13
,0,0,k
21
,k
22
,k
23
,0,0,k
31
,k
32
,k
33
,0,0)
t
,将图像组1与卷积核对应的列向量进行乘积运算得到乘积矩阵,在该乘积矩阵中,第一行的元素分别为[x
11
*k
11
]、[x
12
*k
11
]、[x
13
*k
11
],而第一行的元素分别为乘积矩阵中每一列的首位元素,则该乘积矩阵中的首位元素分别为[x
11
*k
11
]、[x
12
*k
11
]、[x
13
*k
11
]。
[0153]
步骤504,针对任一列的首位元素[x
ij
*k
11
],根据x
ij
在图像矩阵中的位置、图像矩阵的列数j、及卷积核的列数q,确定列对应的索引,索引用于表征列下移处理后,列的首位元素[x
ij
*k
11
]在第一矩阵中的位置。
[0154]
本技术实施例中,通过确定任一列的首位元素[x
ij
*k
11
]在第一矩阵中的位置,即可确定该首位元素所处的列中各元素的位置,故可以根据x
ij
在图像矩阵中的位置(也即i、i)、图像矩阵的列数j、及卷积核的列数q,确定列对应的索引,索引用于表征该列下移处理后,列的首位元素[x
ii
*k
11
]在第一矩阵中的位置。
[0155]
示例性的,确定列对应的索引的过程可以参照下述公式(一)。
[0156]
ha=(i-1)
×
(q j-1) j
ꢀꢀ
公式(一)
[0157]
其中,ha表示乘积矩阵第a列对应的索引,i表示x
ij
在图像矩阵中的第i行,j表示x
ij
在图像矩阵中的第j列,j表示图像矩阵的列数,q表示卷积核的列数。
[0158]
举例来说,参照图3(a)和图3(b)所示,图3(a)和图3(b)中各元素可以用x(i,j)*k(p,q)表示,也可以用[x
ij
*k
pq
]表示,[x
11
*k
11
]为第一个乘积矩阵中第一列的首位元素,其中i=j=1,j=q=3,则h1=1,则[x
11
*k
11
]在第一矩阵的第1行;[x
21
*k
11
]为第二个乘积矩阵中第一列的首位元素,其中i=2,j=1,j=q=3,则h2=6,则[x
21
*k
11
]在第一矩阵中的第6行。
[0159]
步骤506,根据乘积矩阵中各列对应的索引对乘积矩阵各列进行下移处理,得到第一矩阵。其中“下移”处理等效于是将“原来乘积矩阵的每一列”当成一个“尾部增加了若干个0的列向量”,对其各元素实现向下的“循环移位”,向下移位次数即为各列对应的所述索引值-1。
[0160]
本技术实施例中,可以根据乘积矩阵中各列对应的索引,对乘积矩阵各列进行下移处理,进而得到第一矩阵。
[0161]
仍以上述示例为例,设图像按行分组,第1行元素(x
11
,x
12
,x
13
)形成图像组1,获得乘积矩阵1;第2行元素(x
21
,x
22
,x
23
)形成图像组2,获得乘积矩阵2。乘积矩阵1中各列的首位元素分别为[x
11
*k
11
]、[x
12
*k
11
]、[x
13
*k
11
],故各列对应的索引分别为h1=1、h2=2、h3=3,则[x
11
*k
11
]在第一矩阵1中的第一行,其对应的第一列不需下移(h
1-1=0),[x
12
*k
11
]在第一子矩阵1中的第二行,其对应的第二列整列向下移动1(h
2-1=1),[x
13
*k
11
]在第一子矩阵1中的第三行,其对应的第三列整列向下移动2(h
3-1=2)。对上述乘积矩阵中的各列进行下移后,可以得到第一子矩阵1;对于乘积矩阵2则第一列的首位元素[x
21
*k
11
],[x
21
*k
11
]在第一矩阵2中的第6行,其对应的第一列整列向下移动5。
[0162]
在本实施例中,针对任一图像组,确定各乘积矩阵中各列对应的索引,并根据索引对乘积矩阵中的各列进行下移处理,得到第一矩阵,之后针对第一矩阵中各行元素再进行累加处理,就可以直接得到图像组与卷积核卷积后的结果,利用简单的下移处理和累加处理,替代传统的利用卷积公式进行卷积的图像处理方式,其中,图像组所包含的元素数量小于待处理图像的元素数量,各图像组的运算量远远小于待处理图像直接与卷积核进行卷积的运算量,因此,本技术可以减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗时,提高图像处理效率。
[0163]
在一个实施例中,如图6所示,步骤506,根据乘积矩阵中各列对应的索引对乘积矩阵各列进行下移处理,得到第一矩阵,包括:
[0164]
步骤602,根据乘积矩阵中各列对应的索引对乘积矩阵各列进行下移处理,得到第一子矩阵。
[0165]
步骤604,针对第一子矩阵的任一行,进行行内元素的累加处理,得到第一矩阵,第一矩阵为列向量。
[0166]
本技术实施例中,根据乘积矩阵中各列对应的索引对乘积矩阵各列进行下移处理,得到第一子矩阵,并针对第一子矩阵的任一行,进行行内元素的累加处理,也即分别将第一子矩阵的每一行的元素相加,得到第一矩阵。
[0167]
仍以上述示例为例,参照图3(b)所示,针对x第1行对应的乘积矩阵,根据各列对应的索引h1=1、h2=2、h3=3对乘积矩阵各列进行下移处理后,得到第一子矩阵,分别将第一子矩阵的每一行的元素相加,得到图3(b)所示的y,即x第1行这个图像组对应的第一矩阵(行向量)。
[0168]
本实施例中,针对任一图像组对应的乘积矩阵,将各列进行下移处理得到第一子矩阵,针对第一子矩阵的任一行,对行内元素进行累加处理,其中,针对任一图像组,图像组所包含的元素数量小于待处理图像的元素数量,也即本技术实施例可以将待处理图像划分为多个图像组,进而并行进行图像组的卷积处理,由于各图像组的运算量远远小于待处理图像直接与卷积核进行卷积的运算量,因此,本技术可以减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗时,提高图像处理效率。
[0169]
在一个实施例中,参照图7所示,步骤110,针对所述第二矩阵的任一行,进行行内元素的累加处理,得到待处理图像对应的目标图像,包括:
[0170]
步骤702,针对第二矩阵的任一行,进行行内元素的累加处理,得到结果列向量。
[0171]
本技术实施例中,针对第二矩阵的任一行,进行行内元素的累加处理,即将第二矩阵的每一行的元素相加,得到结果列向量。
[0172]
步骤704,针对结果列向量中的任一元素,根据元素在结果列向量中的位置、图像矩阵的列数j、及卷积核的列数q,确定元素在目标图像中的位置,得到所述目标图像。
[0173]
本技术实施例中,针对结果列向量中的任一元素,根据该元素在结果列向量中的位置、图像矩阵的列数j、及卷积核的列数q,确定元素在目标图像中的位置,得到目标图像。
[0174]
其中,示例性的,确定元素在目标图像中的位置的过程可以为:确定目标图像的行数为(i p-1),目标图像的列数为(j q-1),从结果列向量中的第一列元素开始,向下读取元素,第一次读取(j q-1)个元素后,将(j q-1)个元素按照读取顺序写为目标图像中的第一行,之后继续向下读取结果列向量中的元素,第二次读取(j q-1)个元素后,将(j q-1)个元
素按照读取顺序写为目标图像中的第二行
……
第(i p-1)次读取(j q-1)个元素后,将(j q-1)个元素按照读取顺序写为目标图像中的第(i p-1)行,最终得到目标图像(卷积结果)。
[0175]
确定元素在目标图像中的位置的过程还可以为:令结果列向量中元素的位置与(j q-1)相除,当余数为0时,元素的位置与(j q-1)相除的商为该元素在目标图像中的行数,(j q-1)为该元素在目标图像中的列数;当余数不为0时,元素的位置与(j q-1)相除的商加1后的数值,为该元素在目标图像中的行数,余数为该元素在目标图像中的列数。
[0176]
需要说明的是,上述确定元素在目标图像中的位置的方法为本实施例的一个示例,本技术实施例中对确定元素在目标图像中的位置的方法不做具体限定。
[0177]
在本实施例中,将待处理图像的图像矩阵进行分组,得到多个图像组,针对任一图像组,由于各图像组的运算量远远小于待处理图像直接与卷积核进行卷积的运算量,因此,本技术可以减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗时,提高图像处理效率。
[0178]
在一个实施例中,目标图像为当前卷积层对应的目标图像,所述方法还包括:
[0179]
将当前卷积层对应的目标图像作为下一卷积层的待处理图像输入到下一卷积层中,直到将最后一个卷积层对应的目标图像输入到池化层,池化层对最后一个卷积层对应的目标图像进行识别处理,得到待处理图像的图像识别结果。
[0180]
本技术实施例中,卷积神经网络包括多个卷积层,各卷积层中具有一个卷积核,将待处理图像输入到卷积神经网络中进行图像处理的过程中,会根据各卷积层中的卷积核对待处理图像进行图像处理,其中图像处理过程如下:
[0181]
待处理图像在当前卷积层中以前述图像处理步骤进行图像处理,得到当前卷积层对应的目标图像后,可以将当前卷积层对应的目标图像作为下一卷积层的待处理图像(以下简称为待处理图像)输入到下一卷积层中,并在下一卷积层中对该待处理图像进行图像处理,得到下一卷积层对应的目标图像,根据上述步骤在各卷积层中进行图像处理后,将最后一个卷积层对应的目标图像输入到池化层中,池化层可以对最后一个卷积层对应的目标图像进行后续的识别处理,得到待处理图像的图像识别结果。
[0182]
本技术实施例中,图像处理均可以采用前述各实施例所述的图像处理方法来实现,加快了各卷积层的图像处理速度,减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗时,提高图像处理效率。
[0183]
在一个实施例中,参照图8所示,提供了一种图像处理模型的训练方法,图像处理模型包括多个卷积层,卷积层用于实现前述任一实施例中的图像处理方法,卷积层包括第一卷积层和第二卷积层,第一卷积层为图像处理模型中的任一卷积层,第二卷积层为第一卷积层的下一卷积层,所述方法包括:
[0184]
步骤802,获取样本图像,将样本图像输入图像处理模型中的第一卷积层,通过第一卷积层对样本图像对应的样本图像矩阵进行分组处理,得到n个样本图像组,样本图像矩阵为i行j列的矩阵,样本图像组为行向量,其中n、i、j均为正整数,且n个样本图像组中的元素总数为i与j的乘积;
[0185]
步骤804,通过第一卷积层构建样本卷积核对应的列向量,样本卷积核为p行q列的矩阵;
[0186]
步骤806,针对各样本图像组,通过第一卷积层将样本图像组与列向量进行乘积运
算,得到样本乘积矩阵,并根据样本图像组对乘积矩阵的每一列进行下移处理,得到第一样本矩阵;
[0187]
步骤808,通过第一卷积层对各样本图像组对应的第一样本矩阵进行拼接,得到第二样本矩阵,针对第二矩阵的任一行,进行行内元素的累加处理,得到样本图像对应的预测图像;
[0188]
步骤810,根据样本图像对应的预测图像对第一卷积层对应的误差图像进行图像处理,得到卷积核误差,并根据卷积核误差,对第二卷积层对应的卷积核进行调整,得到第二卷积层对应的目标卷积核;
[0189]
步骤812,根据图像处理模型中各卷积层对应的目标卷积核,确定训练后的图像处理模型。
[0190]
本技术实施例中,图像处理模型为一个神经网络模型,可以对图像进行特征提取、图像识别等图像处理,其中,图像处理模型中包括多个卷积层,各卷积层均有一个卷积核,第一卷积层为图像处理模型中的任一卷积层,第二卷积层为第一卷积层的下一卷积层,则第一卷积层的输出为第二卷积层的输入,在进行模型训练时,将样本图像输入到图像处理模型的卷积层1(即第一卷积层)中,之后,卷积层1根据前述实施例中的图像处理方法对样本图像进行处理,得到卷积层1的样本图像对应的预测图像,其中,图像处理方法的具体步骤参照前述实施例所述内容,在此不再赘述。
[0191]
卷积层1的样本图像对应的预测图像作为卷积层2的样本图像输入到卷积层2中,根据上述步骤进行图像处理,得到卷积层2的样本图像对应的预测图像
……
重复上述步骤,直到所有卷积层完成图像处理,得到样本图像的目标图像。
[0192]
之后,可以通过反向迭代传播对图像处理模型中的参数(即卷积核)进行调整,可以根据第一卷积层的样本图像对应的预测图像,对第一卷积层对应的误差图像进行图像处理,得到卷积核误差,并根据卷积核误差,对第二卷积层对应的卷积核进行调整,得到第二卷积层对应的目标卷积核。
[0193]
根据上述步骤,依次得到各卷积层对应的目标卷积核,将各卷积层对应的卷积核参数更新为此次迭代得到目标卷积核,通过多个样本图像对图像处理模型进行多次训练,最终可以得到满足图像处理需求的图像处理模型。
[0194]
在一个实施例中,确定各卷积层对应的目标卷积核的具体步骤如下所述:将当前卷积层对应的误差图像作为待处理图像,进行图像处理后,得到当前卷积层对应的第一目标图像,并根据第一目标图像,确定上一卷积层对应的误差图像,其中,图像处理采用前述任一实施例中的图像处理方法实现;
[0195]
根据上一卷积层输出的目标图像,对上一卷积层对应的误差图像进行图像处理,得到卷积核误差;
[0196]
根据卷积核误差,对当前卷积层对应的卷积核进行调整,得到当前卷积层对应的目标卷积核。
[0197]
本技术实施例中,在卷积神经网络的反向传播过程中,采用了卷积的方式进行图像处理,以对各卷积层的卷积核进行调整。其中,可以将当前卷积层对应的误差图像作为待处理图像,并对当前卷积层对应的卷积核进行翻转操作,得到翻转后的卷积核,根据翻转后的卷积核对待处理图像进行图像处理,得到当前卷积层的第一目标图像,其中,翻转操作
指:将卷积核翻转180
°
(将卷积核上下翻转一次,再左右翻转一次),上述图像处理采用前述任一实施例中的图像处理方法实现。之后,再根据第一目标图像和当前卷积层的输出,确定上一卷积层对应的误差图像。
[0198]
其中,对于任一卷积层,该卷积层的输入为该卷积层的待处理图像,该卷积层的输出为该卷积层的目标图像,且该卷积层的输入为上一卷积层的输出。
[0199]
示例性的,上述确定上一卷积层对应的误差图像的过程参照下述公式(二):
[0200][0201]
其中,δ
(l-1)
表示上一卷积层对应的误差图像,δ
(l)
表示当前卷积层对应的误差图像,rot180(w
(l)
)表示翻转后的卷积核,表示卷积,

表示点乘,σ’(z
(l-1)
)表示当前卷积层的输出。
[0202]
本技术实施例中,可以根据上一卷积层输出的目标图像,对上一卷积层对应的误差图像进行图像处理,得到卷积核误差,其中,图像处理仍可以采用前述任一实施例中的图像处理方法实现。
[0203]
示例性的,上述确定上一卷积层对应的误差图像的过程参照下述公式(三):
[0204][0205]
其中,δ
(w)
表示卷积核误差,a
(l-1)
表示上一卷积层输出的目标图像,δ
(l-1)
表示上一卷积层对应的误差图像。
[0206]
本技术实施例中,可以根据卷积核误差,对当前卷积核对应的卷积核进行调整,可以得到当前卷积核对应的目标卷积核。重复上述操作,可以依次对各卷积层对应的卷积核进行调整,完成对所有卷积层对应的卷积核的调整操作后,即完成了一次反向迭代,之后,可以重复多次上述步骤,对卷积神经网络进行多次反向迭代处理,最终得到更加准确的卷积核,提高卷积神经网络的图像处理质量。
[0207]
本技术实施例中,对各卷积层进行反向传播迭代的过程中的各图像处理过程,可以采用前述任一实施例中的图像处理方法实现,上述图像处理方法可以有效地加快单次图像处理效率,缩短单次图像处理时间,将权利要求1至5中任一项的图像处理方法,应用到卷积神经网络的反向传播迭代过程中,可以有效的减少反向迭代传播过程中的运算量,并可以缩短反向传播过程中的计算时间,降低耗时,提高迭代效率。
[0208]
本技术各实施例中图像处理方法的原理是根据卷积的原始定义,将卷积解耦成可通过map-reduce实现的并行处理方法,通过数据处理资源横向扩展,可缩短单次图像处理的时间,提升图像处理效率。如在卷积神经网络(cnn)“通过反向传播算法迭代求解卷积层参数”的过程中,使用本方法,则不仅提升了效率,更让“使用高清原始图像”或“使用大型卷积核”成为可能。其中,“使用大型卷积核”可扩大卷积的“感受野”(receptive field,即被卷积核覆盖的窗口,传统cnn中11*11的卷积核已属于少见的),实现复杂特征提取,助力分类识别效率的进一步提升。
[0209]
在一个示例性的实施例中,以一个待处理图像对应的图像矩阵为
卷积核为为例,其中i=j=p=q=3,本示例中按照图像矩阵的每一行,对图像矩阵进行分组处理,得到3个图像组,分别为图像组1:(x
11 x
12 x
13
),图像组2:(x
21 x
22 x
23
),图像组3:(x
31 x
32 x
33
)。
[0210]
构建上述卷积核对应的列向量,在卷积核各行的最后一个元素后补充2个0,得到的第一卷积核为按行顺序依次读取第一卷积核各行的元素,即首先读取第一行的元素:k
11
,k
12
,k
13
,0,0,之后读取第二行的元素:k
21
,k
22
,k
23
,0,0,最后读取第三行的元素k
31
,k
32
,k
33
,0,0,最终得到卷积行向量(k
11
,k
12
,k
13
,0,0,k
21
,k
22
,k
23
,0,0,k
31
,k
32
,k
33
,0,0),并对卷积行向量进行转置处理,将卷积行向量转化为列向量,该列向量即为卷积核对应的列向量。
[0211]
针对上述各图像组,可以采用并行的处理方式,即同时对上述3个图像组进行处理,以图像组1为例,将图像组1与卷积核对应的列向量进行乘积运算,得到乘积矩阵1,在乘积矩阵1中包括列向量1、列向量2和列向量3,列向量1的首位元素1为[x
11
*k
11
],列向量2的首位元素2为[x
12
*k
11
],列向量3的首位元素3为[x
13
*k
11
],参照确定索引过程的公式(一),得到列向量1对应的索引为1,列向量2对应的索引为2,列向量3对应的索引为3,并根据上述索引对各列进行移位处理,列向量1不变,列向量2下移1,列向量3下移2,进而的到第一子矩阵1,针对第一子矩阵1的任一行,进行行内元素的累加处理,其中,第一子矩阵1的第一行内的元素为[x
11
*k
11
],故y1′
=[x
11
*k
11
],第二行内的元素为[x
11
*k
12
]、[x
12
*k
11
],故y2′
=[x
11
*k
12
] [x
12
*k
11
]
……
同理对第一子矩阵1各行元素进行累加,最终得到第一矩阵1,依照上述方法,可以得到第一矩阵2及第一矩阵3。
[0212]
对上述的第一矩阵1、第一矩阵2和第一矩阵3进行拼接,拼接过程中将上述3个第一矩阵的各行依次对其,得到第二矩阵。之后针对第二矩阵的任一行,进行第二矩阵的行内元素的累加处理,以得到结果列向量,其中,第二矩阵的第一行内元素为:y1'、y1″
、y1″
',即结果列向量的第一个元素为y1=y1' y1″
y1″
',依次得到结果列向量中的各元素。
[0213]
上述结果列向量为(y1,y2,
……y25
)
t
,根据结果列向量中的元素在结果列向量中的位置、图像矩阵的列数j、及卷积核的列数q,确定元素在目标图像中的位置,得到目标图像。
[0214]
上述确定元素在目标图像中的位置的方法有两种,方法一,确定目标图像的行数为i p-1=5,目标图像的列数为j q-1=5,依次读取结果列向量的元素,当读取元素数目为5时,则将(y1,y2,y3,y4,y5)作为目标图像的第一行,第二次读取元素数目为5时,将该5个元素作为目标图像的第二行,按照上述方法,得到目标图像
[0215]
方法二,令结果列向量中各元素的位置与j q-1=5相除,当余数为0时,元素的位置与5相除的商为该元素在目标图像中的行数,5为该元素在目标图像中的列数;当余数不为0时,元素的位置与5相除的商加1后的数值,为该元素在目标图像中的行数,余数为该元
素在目标图像中的列数。则令y1的位置1除以5,商为0,余数为1,则y1对应的行数为0 1,列数为1,y2对应的行数为1,列数为2,y3对应的行数为1,列数为3
……
y5的位置5除以5,商为1,余数为0,则y5对应的行数为1,列数为5,按照上述方法,也可以得到目标图像。
[0216]
本技术实施例中,在对图像矩阵进行分组处理时,可以根据图像矩阵以及卷积核的大小,调整各图像组的大小,且可以通过多个进程/线程/协程/cpu/分布式容器,实现并行进行图像组的卷积处理,可以显著提升计算速度,所述方法为卷积神经网络运用到大型高清输入图像和大型卷积核提供了可行的方法,为进一步提升卷积神经网络的识别效果打下了基础。
[0217]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0218]
在一个实施例中,如图9所示,提供了一种图像处理系统,包括:分组单元、n个组内计算单元、总体合并单元和协调器,其中n为正整数;
[0219]
分组单元,用于对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,图像矩阵为i行j列的矩阵,图像组为行向量,其中n、i、j均为正整数,且n个图像组中的元素总数为i与j的乘积;
[0220]
协调器,用于根据各图像组和各组内计算单元的工作状态,将n个图像组分发至各组内计算单元;
[0221]
组内计算单元,用于构建卷积核对应的列向量,将分发至组内计算单元内的图像组与列向量进行乘积运算,得到乘积矩阵,并根据图像组对乘积矩阵的每一列进行下移处理,得到第一矩阵,卷积核为p行q列的矩阵;
[0222]
总体合并单元,用于对各第一矩阵进行拼接,得到第二矩阵,并针对第二矩阵的任一行,进行行内元素的累加处理,得到待处理图像对应的目标图像。
[0223]
本技术实施例中,在图像处理系统中还可以包括共享存储,在利用图像处理系统对待处理图像进行图像处理的过程中,所需要的各类数据,如图像矩阵、图像组、卷积核、第一矩阵、目标图像等,均可以存储到共享存储中。
[0224]
分组单元可以从共享存储内读取待处理图像对应的图像矩阵,并对图像矩阵进行分组处理,可以得到n个图像组,其中,分组单元对图像矩阵中的元素进行分组后,可以直接将图像矩阵中的元素存储进分组结果文件中,以将n个图像组以分组结果文件的形式在共享存储内存储,示例性的,仍以上述示例为例,分组单元将一个3行3列的图像矩阵按行进行分组处理,得到图像组1、图像组2和图像组3,并将上述3个图像组分别存储进分组结果文件1、分组结果文件2和分组结果文件3中,则分组结果文件g1包括元素x
11
、x
12
、x
13
,分组结果文件g2包括元素x
21
、x
22
、x
23
,分组结果文件g3包括元素x
11
、x
12
、x
13

[0225]
需要说明的是,上述存储图像组内元素的方式仅作为本技术实施例中存储图像组内元素的一种示例,实际上,也可以通过在分组结果文件中存储图像组中各元素在图像矩
阵中的位置,来存储图像组内各元素,例如:仍以上述示例为例,图像组1包括元素x
11
、x
12
、x
13
,则图像组1中各元素在图像矩阵中的位置分别为(1,1)、(1,2)、(1,3),因此,分组结果文件g1中的存储内容为([1,1],[1,2],[1,3]),本技术实施例中不对图像组的存储方式做具体限定。
[0226]
其中,以上述分组结果文件中存储图像组中各元素在图像矩阵中的位置为例,分组单元负责根据共享存储中的图像矩阵的全体元素,生成图像矩阵中各元素的元素位置。图像组内的元素个数可根据图像矩阵和卷积核的大小进行调整,最少包含1个图像矩阵中的元素,最多可以包含图像矩阵中的全部元素x(i,j)(1≤i≤i,≤j≤j)。针对任一图像组,图像组内的元素理论上可以由图像矩阵中任何位置的元素组成,但实际应用中一般选择1行元素组成一个图像组。假设共有c个图像组,则分组结果可存储为共享存储内的文件,文件名为g
(c)
(1≤c≤c),其中c表示组序号。g
(c)
内容为(i,j)的元组(行),即每行存储1个i值和1个y值,用分隔符分开,这些元组表示了图像组内的各元素在图像矩阵中的位置,以供后续步骤中各组内计算单元根据位置去读取图像矩阵中的元素。
[0227]
分组单元完成对图像矩阵的分组处理之后,会产生协调启动信号,并将协调启动信号和上述各分组结果文件的文件名发送至协调器,协调器接收并响应于协调启动信号,开始工作,协调器可以根据各分组结果文件的文件名清单,从共享存储中读取各分组结果文件,以及读取共享存储中的卷积核,其中,分组结果文件为图像组的一种存储形式。
[0228]
协调器将所需数据读取完毕后,会根据各分组结果文件和各组内计算单元的工作状态,将n个分组结果文件分发至各组内计算单元。组内计算单元的工作状态包括未工作、工作中、工作完成,当组内计算单元处于未工作的工作状态时,协调器会将未被处理过的任一分组结果文件发送至该组内计算单元,以在该组内计算单元中对该分组结果文件进行处理。
[0229]
本技术实施例中,图像处理系统中包括n个组内计算单元,其中,各组内计算单元之间相互独立、互不影响,各组内计算单元可以同时进行工作。其中,针对任一组内计算单元,可以根据分发至该组内计算单元的分组结果文件名,从共享存储中获取相应的分组结果文件,根据分组结果文件中存储的元素直接得到对应的图像组,或者根据分组结果文件中存储的元素在图像矩阵中的位置,进一步从共享存储中读取图像矩阵中的元素,以得到相应的图像组,仍以上述示例为例,分组结果文件g1为x
11
、x
12
、x
13
,则可以直接得到图像组1:(x
11
,x
12
,x
13
);或者g1内存储对应图像组内各元素在图像矩阵中的位置,即g1为([1,1],[1,2],[1,3]),则可以根据各元素在图像矩阵中的位置,以从图像矩阵中读取对应的元素,最终得到图像组1:(x
11
,x
12
,x
13
)。
[0230]
其中,组内计算单元会定时向协调器发送自己工作状态,当协调器发现该组内计算单元的工作状态为工作中时,则不会向该组内计算单元发送新的分组结果文件名。
[0231]
组内计算单元可以用于构建卷积核对应的列向量,并将分发至组内计算单元内的图像组与列向量进行乘积运算,以得到乘积矩阵,并且可以根据图像组对乘积矩阵的每一列进行下移处理,得到第一矩阵,此时,组内计算单元的工作状态为工作完成,第一矩阵可以以初始结果文件的形式存储在共享存储中。
[0232]
需要说明的是,实际应用中,存在组内计算单元的个数n与图像组的个数n不相同的情况,此时,协调器会根据组内计算单元的工作状态,将n个图像组分发至各组内计算单
元,以利用n个组内计算单元完成对n个图像组的处理,示例性的,有3个组内计算单元与5个图像组,图像处理系统开始工作时,组内计算单元1、组内计算单元2和组内计算单元3均处于未工作状态,此时协调器将图像组1发送至组内计算单元1,将图像组2发送至组内计算单元2,将图像组3发送至组内计算单元3,之后各组内计算单元处于工作中,当图像组1完成一次计算后,图像组1又重新处于未工作状态,协调器会将图像组4发送至图像组1,当图像组3完成一次计算后,图像组3又重新处于未工作状态,协调器会将图像组5发送至图像组3。
[0233]
在实际应用中,除了使用多个组内计算单元并行计算和总体合并单元,还可以使用其他类型的进程/线程/协程/cpu/分布式容器,以达到对多个图像组并行处理的目的。
[0234]
本技术实施例中,利用上述组内计算单元分别得到n个图像组对应的第一矩阵后(即完成了针对所有图像组的处理),总体合并单元开始工作,总体合并单元可以对各第一矩阵进行拼接,得到第二矩阵,并且针对第二矩阵的任一行,来进行行内元素的累加处理,以得到目标图像。其中,第一矩阵可以以初始结果文件的形式存储在共享存储中,协调器可以根据各第一矩阵对应的初始结果文件,得到初始结果文件名清单,并将初始结果文件名清单发送至总体合并单元,总体合并单元可以根据初始结果文件名清单,来读取共享存储上的各初始结果文件,以得到第一矩阵,之后总体合并单元可以对各第一矩阵进行处理,最终的到目标图像。
[0235]
本技术实施例中,分组单元可以将待处理图像划分为多个图像组,进而利用n各组内计算单元并行进行图像组的卷积处理,由于各图像组的运算量远远小于待处理图像直接与卷积核进行卷积的运算量,因此,利用所述系统进行图像处理可以减少图像处理过程中的运算量,并可以缩短图像处理过程中的计算时间,降低耗时,提高图像处理效率。
[0236]
在一个实施例中,共享存储的选型可根据需求调整,可以用各计算进程/线程所在服务器的内存、硬盘,也可以用nfs、hdfs等共享文件系统。
[0237]
在一个实施例中,参照图10所示,协调器包括:任务分配器、协调通信接收单元和协调通信发送单元;其中,
[0238]
协调通信接收单元,用于接收各组内计算单元的工作状态,将处于未工作状态的组内计算单元写入资源队列;
[0239]
任务分配器,用于将图像组写入任务队列,并控制协调通信发送单元依次将任务队列中的图像组,分配至资源队列中的组内计算单元进行图像处理。
[0240]
本技术实施例中,协调通信接收单元可以接收各组内计算单元的工作状态,并将处于未工作状态的组内计算单元写入资源队列,其中,协调通信接收单元会定时轮询各组内计算单元的工作状态,例如:每间隔5s则询问各组内计算单元的工作状态。
[0241]
任务分配器则用于将图像组写入任务队列,并根据资源队列内的未工作的组内计算单元和任务队列内的待处理的图像组,进行任务的分配,也即控制协调通信发送单元依次将任务队列中的图像组,分配到资源队列中的组内计算单元进行图像处理。
[0242]
本技术实施例中,协调通信接收单元接收各组内计算单元的工作状态,其中,协调通信接收单元还可以读取处于工作完成状态的组内计算单元的第一矩阵所对应的初始计算结果文件名,并将初始计算结果文件名写入资源队列,在组内计算单元完成对各个图像组的处理后,资源队列中包括了n个初始结果文件,任务分配器会控制协调通信发送单元将初始结果文件名清单发送至总体合并单元。
[0243]
本技术实施例中,任务分配器具有以下功能:
[0244]
功能1:协调通信接收单元接收来自分组单元的协调启动信号,启动本轮处理功能(相当于启动自身的实例)。同时将收到的分组结果文件名清单,作为任务写入任务队列。
[0245]
功能2:读取任务队列中的任务(即待处理的分组结果文件),如能从资源队列中读到可用资源(处于未工作状态的组内计算单元),则通过协调通信发送单元向对应的组内计算单元发送卷积核和分组结果文件名;如不能读到可用资源,则定时轮询资源队列,等待新的可用资源出现后向其发送待处理的分组结果文件名。同时读取到可用资源写入资源队列时附带的初始结果文件,形成初始结果文件名清单。
[0246]
功能3:当发现任务队列中所有分组结果文件均处理完后,则通过协调通信发送单元向总体合并单元发送初始结果文件的文件名清单,供其启动最终的总体合并,将所有初始结果文件中的第一矩阵进行合并,以得到最终的目标图像。
[0247]
功能4:协调通信接收单元接收来自总体合并单元的“工作完成”消息,终止本轮处理功能(停止自身的实例)。
[0248]
协调通信接收单元具有以下工作分支:
[0249]
工作分支1:接收来自分组单元的“协调启动”信号以及“分组结果文件名清单”,并转发给任务分配器,供任务分配器启动本轮处理,以及将“分组结果文件清单”作为任务写入任务队列。
[0250]
工作分支2:轮询接收来自各组内计算单元的“工作中”或“工作完成”消息,如为“工作中”则不作处理,继续轮询等待;如为“工作完成”消息则将同时收到的初始结果文件名写入资源队列,供任务分配器确认相关组内计算单元已空闲(即处于未工作状态),可以向该组内计算单元发布新的分组结果文件名,并读取初始结果文件的文件名,形成初始结果文件名清单。
[0251]
工作分支3:接收来自总体合并单元的“工作中”或“工作完成”消息,如为“工作中”则不作处理,继续轮询等待;如为“工作完成”消息则通知任务分配器,供任务分配器结束本轮对待处理图像的图像处理操作。
[0252]
协调通信发送单元具有以下工作分支:
[0253]
工作分支1:根据任务分配器的要求,向指定102组内计算单元转发由任务分配器提供的卷积核和分组结果文件名。
[0254]
工作分支2:转发任务分配器提供的初始结果文件名清单给总体合并单元,以供总体合并单元启动最终的总体合并处理,对所有第一矩阵进行处理,得到目标图像。
[0255]
在资源队列和任务队列中,队列采用生产-消费模式,生产者写入后队列会扩大,当消费读出后对应资源(空闲的组内计算单元)和任务(分组结果文件)会消失,队列会缩小。
[0256]
本技术实施例中,通过在协调器中设置资源队列和任务队列,以使得任务分配器根据各组内计算单元的工作状态,以及待处理的图像组,来向各组内计算单元分发各图像组,以此有序的进行任务分配,高效完成图像处理过程。
[0257]
在一个实施例中,参照图11所示,组内计算单元包括:逐点乘积单元、索引生成单元和组内合并单元;其中,
[0258]
逐点乘积单元,用于在卷积核的各行的最后一个元素后补充j-1个0,得到第一卷
积核,针对第一卷积核,按行顺序依次读取第一卷积核内各行的元素,得到卷积行向量,并对卷积行向量进行转置处理,得到卷积核对应的列向量;
[0259]
逐点乘积单元,还用于将图像组与列向量进行乘积运算,得到乘积矩阵;
[0260]
索引生成单元,用于确定乘积矩阵中各列的首位元素[x
ij
*k
11
],并针对任一列的首位元素[x
ij
*k
11
],根据x
ij
在图像矩阵中的位置、图像矩阵的列数j、及卷积核的列数q,确定列对应的索引,索引用于表征列下移处理后,列的首位元素[x
ij
*k
11
]在第一矩阵中的位置,其中,x
ij
为图像组中的任一元素,k
11
为卷积核对应的列向量中的第一个元素,i、j均为正整数;
[0261]
索引生成单元,还用于根据乘积矩阵中各列对应的索引对乘积矩阵各列进行下移处理,得到第一子矩阵;
[0262]
组内合并单元用于针对第一子矩阵的任一行,进行行内元素的累加处理,得到第一矩阵。
[0263]
本技术实施例中,组内计算单元还可以包括组内通信接收单元和组内通信发送单元,组内通信接收单元接收协调器所发送的图像组和卷积核,并将图像组和卷积核发送至逐点乘积单元,并将“计算任务启动”消息发送给组内通信接收单元,组内通信接收单元相应于“计算任务启动”消息,将组内计算单元的工作中的工作状态发送给协调器。
[0264]
本技术实施例中,逐点乘积单元会在卷积核各行的最后一个元素后补充j-1个0,得到第一卷积核,并针对第一卷积核,按行顺序依次读取第一卷积核内各行的元素,得到卷积行向量,并对卷积行向量进行转置处理,得到卷积核对应的列向量,逐点乘积单元将图像组与列向量进行乘积运算,得到乘积矩阵。
[0265]
索引生成单元能确定乘积矩阵中各列的首位元素[x
ij
*k
11
],并针对任一列的首位元素[x
ij
*k
11
],根据x
ij
在图像矩阵中的位置、图像矩阵的列数j、及卷积核的列数q,确定列对应的索引,索引用于表征列下移处理后,列的首位元素[x
ij
*k
11
]在第一矩阵中的位置,则索引生成单元根据乘积矩阵中各列对应的索引就可以对乘积矩阵各列进行下移处理,得到第一子矩阵。
[0266]
组内合并单元针对第一子矩阵的任一行,进行行内元素的累加处理,得到第一矩阵,其中,第一矩阵以初始结果文件的形式存储到共享存储中,当组内合并单元完成工作后,组内通信发送单元会将初始结果文件名,以及组内计算单元的工作完成的工作状态发送给协调器。
[0267]
本技术实施例中,逐点乘积单元首先接收组内通信接收单元转发来的“卷积核”、“分组结果文件的文件名”、图像矩阵的参数i和j,卷积核的参数p和q。其次,将卷积核进行处理后,可以得到卷积核对应的列向量kv,然后读取共享存储上的分组结果文件的文件内容,对于分组结果文件中的每个元素位置“(i,j)”,从共享存储上的图像矩阵中读取对应元素x(i,j),再将每个x(i,j)和kv相乘,获得存储向量,其中,存储向量对应乘积矩阵中的每一列,c表示第c个图像组,存储向量中有u个元素,因为存储向量为一个列向量,则u也可以表示存储向量中的第u维。
[0268]
索引生成单元用于生成索引,用于指导乘积矩阵中的每一列进行下移,则对于每个存储向量,均对应生成一个索引。其中,索引也可以为一个索引向量该索引向量中各
元素的值,标示了其对应的乘积矩阵的列中的每个元素在第一矩阵中的位置,则中具有u维。通过调整乘积矩阵中每一列中各元素的位置,等效实现了下移处理。
[0269]
组内合并单元根据存储向量和索引向量,计算本组对应的第一矩阵。首先可以生成当前组内计算单元的初始化的结果y
(c)
,y
(c)
为一个列向量,其中的元素均为0。以供后续根据存储向量和索引向量进行下移处理后,继续将第一子矩阵中的每一行内的元素累加,并将累加后得到的元素填入对应的初始化的结果y
(c)
中,生成本组的初始结果文件。
[0270]
其中,完成上述过程的完整伪代码如下:
[0271]
for(i,j)in分组c//每一个都参与计算
[0272]
使每一维都参与计算
[0273][0274]
其中:表示的第u维的值,表示的第u维,这段伪代码作用使对于每一个把其第u维加到y
(c)
的第维。由于这实现了下沉后相加,下沉的幅度依赖于x(i,j)中(i,j),等效实现了上文中x(i,j)
·
δ(i,j)和卷积核k卷积后的移位效果。
[0275]
生成本组的第一矩阵后,一方面,将第一矩阵存储到共享存储上的初始结果文件中,该初始结果文件中包含(i p-1)*(j q-1)行,各初始结果文件相当于图3(b)中y

、y

;另一方面,发送“任务完成”消息给组内通信发送单元。
[0276]
对于组内通信发送单元,一方面,接收组内通信接收单元的“启动任务”消息,发送“工作中”的状态信息给协调器,使之不再发来任务。另一方面,接收组内合并单元发来的“任务完成”消息,发送“工作完成”的状态信息、以及将初始结果文件发送给协调器,使之再次发来任务。
[0277]
在一个实施例中,总体合并单元,还用于针对第二矩阵的任一行,进行行内元素的累加处理,得到结果列向量,并针对结果列向量中的任一元素,根据元素在结果列向量中的位置、图像矩阵的列数j、及卷积核的列数q,确定元素在目标图像中的位置,得到目标图像。
[0278]
本技术实施例中,参照图12所示,总体合并单元还可以包括总体通信接收单元、总体通信合并单元和分组合并单元,其中,总体通信接收单元可以接收协调器发送来的初始计算结果文件名清单,初始计算结果文件名清单中包括各初始计算结果文件的名字,总体通信接收单元将初始计算结果文件名清单发送至分组合并单元,同时向总体通信发送单元发送“合并任务启动”消息,总体通信发送单元响应于“合并任务启动”消息,会将总体合并单元的工作中的工作状态发送给协调器。
[0279]
分组合并单元会根据接收到的初始计算结果文件名清单,在共享存储中读取各初始计算结果文件(也即第一矩阵),并用于对各第一矩阵进行拼接,得到第二矩阵,分组合并单元可以针对第二矩阵的任一行,来进行行内元素的累加处理,得到结果列向量,并针对结果列向量中的任一元素,根据元素在结果列向量中的位置、图像矩阵的列数j、及卷积核的列数q,确定元素在目标图像中的位置,以最终得到目标图像。
[0280]
当分组合并单元完成前述所有工作后,总体通信发送单元会将总体合并单元的工
作完成的工作状态发送给协调器,以使协调器结束本轮工作。
[0281]
本技术实施例中,分组合并单元首先接收总体通信接收单元转发来的初始结果文件o
(c)
的文件名清单;其次初始化总体合并的结果向量y
out
,其元素y
out
[u]均为0;然后实现分组合并,伪代码为:
[0282]
for c in 1...c
[0283]
{y
out
[u]=y
out
[u] o
(c)
[u]}
[0284]
然后则将y
out
[u]列转置成行,对这个获得的行向量,从前向后按j q-1一组进行截断和拼接,第1组j q-1个y
out
[u]作为第1行,第2组j q-1个y
out
[u]作为第2行,依次类推,共获得i p-1行,从而形成(i p-1)行(j q-1)列的目标图像。最后则发送“任务完成”消息给总体通信发送单元。
[0285]
总体通信接收单元:轮询协调器,接受协调器发来的所有初始结果文件o
(c)
的文件名清单,并转交给分组合并单元;同时发送“启动任务”消息给总体通信发送单元。
[0286]
总体通信发送单元接收总体通信接收单元的“启动任务”消息,发送“工作中”的状态信息给协调器。接收分组合并单元发来的“任务完成”消息,发送“工作完成”的状态信息给协调器,使之结束本轮工作。
[0287]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的图像处理方法的图像处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个图像处理装置实施例中的具体限定可以参见上文中对于图像处理方法的限定,在此不再赘述。
[0288]
在一个实施例中,如图13所示,提供了一种图像处理装置,包括:分组模块1302、构建模块1304、乘积模块1306、下移模块1308、拼接模块1310和累加模块1312,其中:
[0289]
分组模块1302,用于对待处理图像对应的图像矩阵进行分组处理,得到n个图像组,图像矩阵为i行j列的矩阵,图像组为行向量,其中n、i、j均为正整数,且所述n个图像组中的元素总数为i与j的乘积;
[0290]
构建模块1304,用于构建卷积核对应的列向量,卷积核为p行q列的矩阵;
[0291]
乘积模块1306,用于针对各图像组,将图像组与列向量进行乘积运算,得到乘积矩阵;
[0292]
下移模块1308,用于根据图像组对乘积矩阵的每一列进行下移处理,得到第一矩阵;
[0293]
拼接模块1310,用于对各图像组对应的第一矩阵进行拼接,得到第二矩阵;
[0294]
累加模块1312,用于针对第二矩阵的任一行,进行行内元素的累加处理,得到待处理图像对应的目标图像。
[0295]
在一个实施例中,所述构建模块1304,还用于在卷积核的各行的最后一个元素后补充j-1个0,得到第一卷积核;
[0296]
针对第一卷积核,按行顺序依次读取第一卷积核内各行的元素,得到卷积行向量;
[0297]
对卷积行向量进行转置处理,得到卷积核对应的列向量。
[0298]
在一个实施例中,所述下移模块1308,还用于确定乘积矩阵中各列的首位元素[x
ij
*k
11
],其中,x
ij
为所述图像组中的任一元素,k
11
为所述卷积核对应的列向量中的第一个元素,i、j均为正整数;
[0299]
针对任一列的首位元素[x
ij
*k
11
],根据x
ij
在所述图像矩阵中的位置、图像矩阵的列数j、及卷积核的列数q,确定列对应的索引,索引用于表征列下移处理后,列的首位元素[x
ij
*k
11
]在第一矩阵中的位置;
[0300]
根据乘积矩阵中各列对应的索引对乘积矩阵各列进行下移处理,得到第一矩阵。
[0301]
在一个实施例中,所述下移模块1308,还用于根据乘积矩阵中各列对应的索引对乘积矩阵各列进行下移处理,得到第一子矩阵;
[0302]
针对第一子矩阵的任一行,进行行内元素的累加处理,得到第一矩阵,所述第一矩阵为列向量。
[0303]
在一个实施例中,所述累加模块1312,还用于针对所述第二矩阵的任一行,进行所述行内元素的累加处理,得到结果列向量;
[0304]
针对所述结果列向量中的任一元素,根据元素在结果列向量中的位置、图像矩阵的列数j、及卷积核的列数q,确定元素在目标图像中的位置,得到目标图像。
[0305]
在一个实施例中,所述装置还包括:
[0306]
识别模块,用于将当前卷积层对应的目标图像作为下一卷积层的待处理图像输入到下一卷积层中,直到将最后一个卷积层对应的目标图像输入到池化层,池化层对所述最后一个卷积层对应的目标图像进行识别处理,得到待处理图像的图像识别结果。
[0307]
在一个实施例中,如图14所示,提供了一种图像处理模型的训练装置,图像处理模型包括多个卷积层,卷积层用于实现前述任一实施例中的图像处理方法,卷积层包括第一卷积层和第二卷积层,第一卷积层为图像处理模型中的任一卷积层,第二卷积层为第一卷积层的下一卷积层;
[0308]
所述装置包括:分组模块1402、构建模块1404、下移模块1406、累加模块1408、图像处理模块1410和确定模块1412,其中,
[0309]
分组模块1402,用于获取样本图像,将样本图像输入图像处理模型中的第一卷积层,通过第一卷积层对样本图像对应的样本图像矩阵进行分组处理,得到n个样本图像组,样本图像矩阵为i行j列的矩阵,样本图像组为行向量,其中n、i、j均为正整数,且n个样本图像组中的元素总数为i与j的乘积;
[0310]
构建模块1404,用于通过第一卷积层构建样本卷积核对应的列向量,样本卷积核为p行q列的矩阵;
[0311]
下移模块1406,用于针对各样本图像组,通过第一卷积层将样本图像组与列向量进行乘积运算,得到样本乘积矩阵,并根据样本图像组对乘积矩阵的每一列进行下移处理,得到第一样本矩阵;
[0312]
累加模块1408,用于通过第一卷积层对各样本图像组对应的第一样本矩阵进行拼接,得到第二样本矩阵,针对第二矩阵的任一行,进行行内元素的累加处理,得到样本图像对应的预测图像;
[0313]
图像处理模块1410,用于根据样本图像对应的预测图像对第一卷积层对应的误差图像进行图像处理,得到卷积核误差,并根据卷积核误差,对第二卷积层对应的卷积核进行调整,得到第二卷积层对应的目标卷积核;
[0314]
确定模块1412,用于根据图像处理模型中各卷积层对应的目标卷积核,确定训练后的图像处理模型。上述图像处理装置中的各个模块可全部或部分通过软件、硬件及其组
合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0315]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种图像处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0316]
本领域技术人员可以理解,图15中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0317]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0318]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0319]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0320]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0321]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形
处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0322]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0323]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献