一种图像处理方法、装置及计算设备

文档序号:32840652发布日期:2023-01-06 20:42阅读:26来源:国知局
1.本技术涉及人工智能(artificialintelligence,ai)
技术领域
:,尤其涉及一种图像处理方法、装置及计算设备。
背景技术
::2.图像处理是底层计算机视觉的主要研究方向。近年来,基于卷积神经网络(convolutionalneuralnetwork,cnn)的方法在图像处理性能方面取得了令人瞩目的效果。一般越复杂的神经网络可以取得越优的效果。然而受到运行速度和功耗的限制,在手机等计算能力较弱的终端设备上进行图像处理的网络一般不能过于复杂。尽管可以通过精心设计的网络结构或专用计算引擎(比如图形处理器)来减轻这种约束,但是相应的硬件成本和功耗仍然增加了现有cnn方法在终端设备上部署的难度。另一方面,在智能车等终端设备上,高速行驶中变道与突发险情处理等应用场景对图像处理方法的运行时延有较高要求。因此,如何设计一种高效的图像处理方法,满足部署在终端设备时低功耗与低时延的要求,同时具有较好的图像处理性能,是目前亟需解决的技术问题。技术实现要素:3.本技术提供了一种图像处理方法、装置、计算设备、计算设备集群、计算机存储介质及计算机产品,能够满足部署在终端设备时低功耗与低时延的要求,同时具有较好的图像处理性能。4.第一方面,本技术提供一种图像处理方法,该方法包括:获取第一图像;对于第一图像中的任意一个像素点,利用n个(n≥2)与该任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块,图像块中包括单个或多个像素点,其中,每个查找表的索引区域均包含该任意一个像素点,且不同的查找表的索引区域不同且至少有部分相同;根据第一图像中各个像素点所对应的图像块,得到第二图像,其中,第二图像的分辨率高于或等于第一图像的分辨率;输出第二图像。5.这样,在图像处理过程中,对于每个像素点均使用多个查找表协同工作,从而在维持计算量和存储量线性增长的情况下扩增了感受野,提升了图像处理性能。相比之下,现有利用空域信息的查找表技术仅使用单个查找表,感受野的扩增会使得存储量指数增长,会受到存储器规模和硬件成本的限制。6.在一种可能的实现方式中,利用n个与任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块,具体包括:将n个查找表中每个查找表的索引区域输入至相应的查找表中,得到n个第一子图像块,每个第一子图像块中均包括单个或多个像素点;将n个第一子图像块中相同位置的像素点均相加并求平均,以得到该任意一个像素点所对应的图像块。由于查找表对应的输出结果所对应的索引区域增加了,因此查找表的感受野也会相应的增加。同时,查找表的维度未发生变化,所以实现了在不增加查找表的维度的前提下,增大了查找表的感受野。7.在一种可能的实现方式中,将n个查找表中每个查找表的索引区域输入至相应的查找表中,得到n个第一子图像块,具体包括:针对n个查找表中任意一个查找表的索引区域,将该任意一个查找表的索引区域以任意一个像素点为中心,并沿第一方向旋转m次,以得到m个索引区域,m≥1;基于m个索引区域中每个索引区域对应的查找表,确定m个索引区域各自所对应的第二子图像块,以得到m个第二子图像块,每个第二子图像块中均包括单个或多个像素点;基于m个索引区域各自所对应的旋转角度,分别对m个索引区域各自所对应的第二子图像块沿与第一方向相反的方向旋转相同的角度,以得到m个第三子图像块;将任意一个查找表的索引区域所对应的第一子图像块和m个第三子图像块中相同位置的像素点均相加并求平均,以及,将计算结果作为该任意一个查找表的索引区域所对应的第一子图像块。由此以通过对索引区域进行旋转的方式进一步在不增加查找表的维度的前提下,增大查找表的感受野。8.在一种可能的实现方式中,n个查找表中第i个查找表的输出为第(i+1)个查找表的输入,n个查找表中第1个查找表的输入为第1个查找表的索引区域,n个查找表中第n个查找表的输出为该任意一个像素点所对应的图像块。也即是说,n个查找表可以级联,由此以实现增大查找表的感受野。9.在一种可能的实现方式中,n个查找表由m个查找表集合中所包含的查找表构成,每个查找表集合中均包括多个查找表。其中,第j个查找表集合中各个查找表的输入分别为以第(j-1)个查找表集合的输出为基准确定出的第j个查找表集合中相应的查找表的索引区域。第1个查找表集合中各个查找表的输入分别为以前述的任意一个像素点为基准确定出的第1个查找表集合中相应的查找表的索引区域。第m个查找表集合的输出为前述的任意一个像素点所对应的图像块。由此通过多个查找表互补并级联的方式确定出各个像素所对应的图像块,进一步地提升图像处理性能。10.第二方面,本技术提供一种图像处理装置,该装置包括:获取模块和处理模块。其中,获取模块用于获取第一图像。处理模块用于对于第一图像中的任意一个像素点,利用n个(n≥2)与该任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块,图像块中包括单个或多个像素点,其中,每个查找表的索引区域均包含该任意一个像素点,且不同的查找表的索引区域不同且至少有部分相同。处理模块还用于根据第一图像中各个像素点所对应的图像块,得到第二图像,其中,第二图像的分辨率高于或等于第一图像的分辨率;以及,输出第二图像。11.在一种可能的实现方式中,处理模块在利用n个与任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块时,具体用于:将n个查找表中每个查找表的索引区域输入至相应的查找表中,得到n个第一子图像块,每个第一子图像块中均包括单个或多个像素点;将n个第一子图像块中相同位置的像素点均相加并求平均,以得到该任意一个像素点所对应的图像块。12.在一种可能的实现方式中,处理模块在将n个查找表中每个查找表的索引区域输入至相应的查找表中,得到n个第一子图像块时,具体用于:针对n个查找表中任意一个查找表的索引区域,将该任意一个查找表的索引区域以任意一个像素点为中心,并沿第一方向旋转m次,以得到m个索引区域,m≥1;基于m个索引区域中每个索引区域对应的查找表,确定m个索引区域各自所对应的第二子图像块,以得到m个第二子图像块,每个第二子图像块中均包括多个像素点;基于m个索引区域各自所对应的旋转角度,分别对m个索引区域各自所对应的第二子图像块沿与第一方向相反的方向旋转相同的角度,以得到m个第三子图像块;将该任意一个查找表的索引区域所对应的第一子图像块和m个第三子图像块中相同位置的像素点均相加并求平均,以及,将计算结果作为该任意一个查找表的索引区域所对应的第一子图像块。13.在一种可能的实现方式中,n个查找表中第i个查找表的输出为第(i+1)个查找表的输入,n个查找表中第1个查找表的输入为第1个查找表的索引区域,n个查找表中第n个查找表的输出为该任意一个像素点所对应的图像块。14.在一种可能的实现方式中,n个查找表由m个查找表集合中所包含的查找表构成,每个查找表集合中均包括多个查找表。其中,第j个查找表集合中各个查找表的输入分别为以第(j-1)个查找表集合的输出为基准确定出的第j个查找表集合中相应的查找表的索引区域。第1个查找表集合中各个查找表的输入分别为以前述的任意一个像素点为基准确定出的第1个查找表集合中相应的查找表的索引区域。第m个查找表集合的输出为前述的任意一个像素点所对应的图像块。15.第三方面,本技术提供一种计算设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序;其中,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。16.第四方面,本技术提供一种计算设备集群,包括至少一个计算设备,每个计算设备均包括处理器和存储器。至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行第一方面或第一方面的任一种可能的实现方式所描述的方法。17.第五方面,本技术提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。18.第六方面,本技术提供一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。19.可以理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。附图说明20.图1是本技术实施例提供的一种不同复杂程度的cnn网络对图像进行处理的对比示意图;21.图2是本技术实施例提供的一种利用神经网络得到查找表的过程示意图;22.图3是本技术实施例提供的一种图像处理系统的架构示意图;23.图4是本技术实施例提供的一种索引区域和等效索引区域的示意图;24.图5是本技术实施例提供的一种对索引区域进行旋转的示意图;25.图6是本技术实施例提供的一种对查找表的输出结果进行旋转的示意图;26.图7是本技术实施例提供的一种层级式表值重索引示意图;27.图8是本技术实施例提供的一种量化可感知的层级式神经网络训练示意图;28.图9是本技术实施例提供的一种多查找表协同工作的示意图;29.图10是本技术实施例提供的一种卷积网络对y型索引模式的适配过程示意图;30.图11是本技术实施例提供的一种对拜尔像素的图像进行处理的过程示意图;31.图12是本技术实施例提供的一种图像处理方法的流程示意图;32.图13是本技术实施例提供的一种图像处理装置的结构示意图;33.图14是本技术实施例提供的一种计算设备的结构示意图;34.图15是本技术实施例提供的一种计算设备集群的结构示意图。具体实施方式35.本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本文中符号“/”表示关联对象是或者的关系,例如a/b表示a或者b。36.本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。37.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。38.在本技术实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。39.示例性的,由于复杂的神经网络的感受野(receptivefield,rf)较大,因此可以提升神经网络的图像处理性能。例如,如图1所示,图1的(a)是神经网络的输入;图1的(b)是当神经网络为简单的cnn网络,且其感受野为17x17时,该神经网络输出的结果;图1的(c)是当神经网络为复杂的cnn网络,且其感受野为45x45时,该神经网络输出的结果;图1的(d)是真值,即原始图像。通过图1的(b)、(c)和(d)进行对比可知,复杂的神经网络由于具有较大的感受野,因此其能够产生与真值更加接近的结果,即其图像处理性能更优。40.一般地,可以将神经网络转换为查找表(look-uptable,lut),并将查找表应用在图像处理中,以满足在终端设备上的部署。具体地,可以先利用训练完毕的神经网络获取到输入数据与输出数据间的映射关系,并以键-值的形式存储在查找表中。然后,在利用该查找表进行图像处理。例如,在获取到一个输入数据后,可以利用该输入数据在查找表中查找相应的数值结果,并输出该结果。由此即完成图像处理。41.举例来说,如图2的(a)所示,可以先对用于图像处理的神经网络进行训练,该神经网络可以由若干卷积层构成,输入与输出为单通道图像;与一般的图像处理的神经网络不同,该网络的感受野被严格限制在长宽为2x2的输入范围内,即一组输出结果仅取决于对应的4维输入i0,i1,i2,i3。该神经网络可以采用常规的反向梯度传播实现参数优化。42.在训练完成后,可以进行从神经网络到查找表的转换。如图2的(b)所示,在完成网络参数的训练后,通过遍历4维像素经过采样的数值组合来构造神经网络的输入,经过运算得到相应的输出结果。然后再将遍历得到的结果以键-值的形式存储在查找表中,得到4维的查找表,即4dlut。43.最后,可以利用转换的查找表进行图像处理。如图2的(c)所示,给定一组待处理的且以i0为中心点的输入i0,i1,i2,i3,查找已存储在表中的数值结果。若4dlut中未直接存储采样点i0,i1,i2,i3对应的结果,则先获取与输入相邻采样点的键值,再通过插值操作计算输出结果。由此,即完成图像处理。示例性的,继续参阅图2的(c),当需要对一个图像中的像素点i0进行处理时,输入可以i0,i1,i2,i3,接着可以得到输出的像素点为即得到i0所对应的图像块;在得到该图像中各个像素点对应的图像块后,将这些图像块分别置于它们各自所对应的像素点的位置,即可以得到处理后的图像。在一些实施例中,一个图像块中可以包括一个像素点,也可以包括多个像素点,具体可根据实际情况而定。44.这种方式虽然可以在终端设备上部署,但查找表所需的存储大小常随着神经网络的感受野的线性增加而指数增加。以4dlut为例,对于经过4比特(bit)采样的图像,4dlut共需要(24+1)4=1.274mb的空间存储图像处理结果。而当lut维度扩增1维,5dlut则需要(24+1)5=21.665mb的存储空间。因此,当查找表的维度增加时,对终端设备的存储空间的要求也会增加,致使难以在存储器规模较小的终端设备上部署。另外,单个查找表的感受野(即索引范围)的大小受到存储器规模和硬件成本的限制,因此只能构建索引范围较小的查找表,这导致了图像处理的性能受限。45.有鉴于此,本技术实施例提供了一种图像处理方法,可以在图像处理过程中不增加查找表的维度的前提下,增加查找表的感受野的大小,显著缓解了终端设备上存储器规模和硬件成本的约束,从而在保持查找表方法高效低功耗特点的同时,大幅提升其在多种图像处理任务上的性能。46.示例性的,图3示出了一种图像处理系统的架构示意图。如图3所示,该图像处理系统300可以包括:基于空域互补索引的多表协同处理单元310和/或基于表值重索引的多层级处理单元320。47.其中,基于空域互补索引的多表协同处理单元310主要是用于对于输入的图像中的任意一处局部区域,可以定义该区域的中心像素点为i0,并围绕中心点i0构造多个互补的索引区域,其中,每个索引区域中均包括中心点i0。以及,基于构造出的多个互补的索引区域,确定出各个索引区域对应的查找表。示例性的,可以将构造出的各个索引区域输入至预先训练好的神经网络模型中,以得到各个索引区域所对应的查找表。示例性的,本实施例中描述的互补与数学定义上的严格定义不同,本实施例中描述的互补是各索引区域可以有重叠的部分。本实施例中描述的互补仅要求各查找表具有其余查找表索引无法覆盖到的区域。另外,基于空域互补索引的多表协同处理单元310还可以基于各个像素点所关联的各个索引区域对应的查找表,确定出各个像素点所对应的图像块,以完成图像处理。48.对于围绕中心点i0构造多个互补的索引区域,以构造一个索引区域为例,可以由预先设定的查找表的维度,确定索引区域中所包含的像素点的数量。例如,当查找表的维度为4维时,索引区域中则包含4个像素点,且这4个像素点中包含中心点i0。49.对于确定查找表的过程,以确定4维的查找表,且输入图像中的一处区域为例,如图4所示,可以定义该区域的中心像素点为i0。然后,围绕中心点i0构造多个互补的索引,即lut(1)索引区域、lut(2)索引区域、与lut(3)索引区域。其中,lut(1)索引区域为[i0][i1][i3][i4],lut(2)索引区域为[i0][i2][i6][i8],lut(3)索引区域为[i0][i4][i5][i7]。在图4中,仅有lut(1)索引区域包含{i1,i3},仅有lut(2)索引区域包含{i2,i6,i8},仅有lut(3)索引区域包含{i5,i7},因此,各查找表对应的索引区域可以相互补充,以扩大感受野。当然,也可以选用其他的互补索引的查找表,不同的查找表间可以相互互补即可,此处不做限定。在确定出多个互补的索引区域后,可以将这些索引区域分别输入至预先训练好的神经网络模型中,以由该神经网络模型输出各个索引区域对应的查找表。[0050]在确定出多个互补的索引区域的查找表后,可以将中心点i0在各个查找表中对应的输出结果进行平均计算,即为所需的结果,即得到中心点i0所对应的图像块。例如,继续参阅图4,中心点i0对应的输出结果v0=(lut(1)[i0][i1][i3][i4]+lut(2)[i0][i2][i6][i8]+lut(3)[i0][i4][i5][i7])/3。当输入为[i0][i1][i3][i4]时,输出结果所对应的索引区域可以等效于由[i0][i1][i3][i4][i5][i6][i7][i8]组成。由于查找表对应的输出结果所对应的索引区域增加了,因此查找表的感受野也会相应的增加。同时,查找表的维度未发生变化,所以实现了在不增加查找表的维度的前提下,增大了查找表的感受野。其中,当输入数据为[i0][i1][i3][i4]时,通过查找表即可以查找得到输出结果为v0。对于其他维度的查找表,可以参考增加4维查找表的感受野的方式,此处不再赘述。[0051]在一些实施例中,为了进一步在不增加查找表的维度的前提下,增大查找表的感受野,还可以对构建出的各个查找表所对应的索引区域进行旋转,以及基于中心点i0在旋转前的索引区域对应的查找表的输出结果和旋转后的索引区域对应的查找表的输出结果,确定出中心点i0在所对应的查找表最终的输出结果。具体地,针对图4中任意一个查找表,以lut(1)为例,如图5的(a)所示,可以先基于索引区域为[i0][i1][i3][i4]的查找表,确定出中心点i0在该索引区域下对应的输出vj(1)。然后,如图5的(b)所示,将图5的(a)中的索引区域逆时针旋转90度,这时的索引区域变为了[i0][i1][i9][i10],然后可以基于索引区域为[i0][i1][i9][i10]的查找表,确定出中心点i0在该索引区域下对应的输出vj(2)。接着,如图5的(c)所示,将图5的(b)中的索引区域逆时针旋转90度,这时的索引区域变为了[i0][i9][i11][i12],然后可以基于索引区域为[i0][i9][i11][i12]的查找表,确定出中心点i0在该索引区域下对应的输出vj(3)。接着,如图5的(d)所示,将图5的(c)中的索引区域逆时针旋转90度,这时的索引区域变为了[i0][i3][i12][i13],然后可以基于索引区域为[i0][i3][i12][i13]的查找表,确定出中心点i0在该索引区域下对应的输出vj(4)。由于vj(2)和vj(1)不在同一计算区域,为了统一,可以将vj(2)顺时针旋转90度,以得到vj(2)′。同样的,可以将vj(3)顺时针旋转180度,以得到vj(3)′,以及,将vj(4)顺时针旋转270度,以得到vj(4)′。例如,如图6的(a)所示,假设vj(3)为[1][2][3][4],将其顺时针旋转90度,可以得到如图6的(b)所示的结果;在图6的(b)的基础上再顺时针旋转90度,可以得到如图6的(c)所示的结果,其中,图6的(c)所示的结果即为所需的结果vj(3)′。最后,可以将vj(1)、vj(2)′、vj(3)′和vj(4)′相加,并做平均,以及将计算得到的结果作为:当输入为[i0][i1][i3][i4]时通过lut(1)得到的输出结果,即v=(vj(1)+vj(2)′+vj(3)′+vj(4)′)/4。对于增加其他的查找表的感受野的方式,可以按照图5中所描述的方式进行处理,此处不再赘述。本实施中,对于旋转的角度可根据实际情况进行选择,此处不做限定,例如,可以仅选择旋转90度,也可以仅选择旋转180度或者270度,亦可以选择旋转90度和180度,又可以选择旋转180度和270度,等等。同样的,在确定出中心点i0在各个查找表中对应的输出结果后,可以将这些结果相加并求平均,以及计算结果作为最终所需的结果,以及可以在查找表中建立该输入和该输出间的关联关系,进而得到最新的查找表。示例性的,继续参阅图4,当选择对各个查找表均旋转90度、180度和270度时,最终得到的等效索引区域可以如图4中所示的等效索引区域。通过这种方式,实现了进一步增加查找表对应的输出结果所对应的索引区域,从而进一步地增加了查找表的感受野。[0052]基于表值重索引的多层级处理单元320主要是用于对以某个中心点i0相关的多个查找表进行层级处理,其中,第k级查找表的输入是第(k-1)级查找表的输出。由此通过级联多个查找表间的输入与输出,来扩大等效感受野。示例性的,如图7所示,以两级查找表的级联过程为例,lut(1)表示首级查找表,lut(2)表示次级查找表。在图7中,可以将lut(1)中的索引取值结果用作次级lut(2)的索引,这种层级式的索引过程可以表示为:[0053]v=lut(2)[lut(1)[i*]][lut(1)[i*]][lut(1)[i*]][lut(1)[i*]][0054]当将低质量的图像输入到基于表值重索引的多层级处理单元320中后,通过基于表值重索引的多层级处理单元320的层级处理,即可以输出高质量的图像。[0055]从感受野的角度来看,这种级联框架在原理上类似于在深度卷积神经网络中级联多个卷积层。但与cnn中的卷积层级联不同,由于lut大小的限制,图像数据的索引通常以整型数的格式存储。而在前述图2中描述的从神经网络到查找表的转换步骤之前,训练神经网络需要浮点(float-point)数据类型的梯度。为了解决数据类型带来的问题,本实施例中设计了一种量化可感知的重索引机制,将层级式索引的模式引入到神经网络的训练过程中。如图8所示,lut(1)的输出值在前向传递中被量化为整数(即指向integer的虚线所指的方向),而其梯度在反向传递中被保留为浮点值(即指向float-point的虚线所指的方向)。这样,数值量化操作在神经网络的层级式训练过程中可以被感知与建模,从而弥补由数值量化引起的性能损失。[0056]在一些实施例中,基于空域互补索引的多表协同处理单元310和基于表值重索引的多层级处理单元320,可以单独使用,也可以组合在一起使用。示例性的,图9示出了一种两者组合在一起使用的过程。如图9所示,将多查找表(multiplelut)简写为mulut,mulut-s/d/y分别表示三种具有不同像素索引模式的lut。block1x1表示输出图像的分辨率与输入图像保持相同,block2x2表示输出图像的分辨率为输入图像的2倍。三种lut对应的神经网络均由若干卷积层堆叠连接实现,其中s型lut对应的卷积网络首层采用卷积核大小为2x2的标准卷积,记为conv2x2。d型lut对应的卷积网络首层采用卷积核大小为2x2的空洞卷积(dilatedconvolution),记为conv2x2-d2。y型lut对应的卷积网络首层采用卷积核大小为1x4的标准卷积实现,记为conv1x4。由于y型索引模式不属于常规的网格化(grid)索引,无法直接调用现有的函数库进行运算。因此对应卷积网络的运算需要进行特殊适配。如图10所示,首先,将输入图像以滑动窗口的方式拆分为3x3大小的图像块,即unfold操作。然后在得到的各个图像块中,选取y型索引模式对应的像素坐标,并将相应坐标下的数值重排列为1x4的图像块。经过拆分与重排列后的图像即可适配首层为conv1x4的卷积网络。[0057]继续参阅图9,在图9中,首先选用3个与中心点i0相关的多个查找表对应的索引范围,然后分别将各个索引范围中的数据输入至各自对应的卷积网络中,它们各自对应的卷积网络输出的结果均为1维数据。接着,将各个卷积网络的输出结果合并为一个,例如求平均值等方式。然后,在将该结果作为中心点,并确定出与该结果相关的多个查找表的索引范围,以及分别将各个索引范围中的数据输入至各自对应的卷积网络中,它们各自对应的卷积网络输出的结果均为与所需的查找表的维度相同的维度的数据。最后,可以将这些数据合并为一个,并建立其与某个包含中心点i0的索引范围间的关联关系,由此即建立出新的查找表。该查找表的感受野大于之前的查找表的感受野,且维度不变。[0058]在一些实施例中,当输入的图像的像素是拜尔(bayer)像素排列模式时,可以以2倍的步长滑动窗口,在2x2的窗口内对输入进行lut查询,从而避免bayer像素模式的影响。然后,在采用前述的所描述的图像处理系统300进行多查找表协同处理,和/或,将第一阶段查找表的取值作为第二阶段的输入,实现层级式处理。示例性的,如图11所示,可以先以2倍步长,分别提取出红色通道的像素点、绿色通道的像素点和蓝色通道的像素点,然后,在采用前述的所描述的图像处理系统300分别对提取出的像素点进行处理。[0059]接下来,基于前述所描述的内容,对本技术实施例中提供的图像处理方法进行介绍。[0060]示例性的,图12示出了一种图像处理方法的流程。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图12所述,该图像处理方法可以包括以下步骤:[0061]s1201、获取待处理的第一图像。[0062]本实施例中,当用户输入其所需处理的图像后,就可以获取到待处理的第一图像。另外,也可以从用户设定的存储区域中自动获取待处理的第一图像。具体可根据实际情况而定。[0063]s1202、对于第一图像中的任意一个像素点,均利用n个(n≥2)与该任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块,该图像块中包括单个或多个像素点,其中,每个查找表的索引区域均包含该任意一个像素点,且不同的查找表的索引区域不同且至少有部分相同。[0064]本实施例中,对于第一图像中的任意一个像素点,均可以利用多个与该任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块。其中,该图像块中包括单个或多个像素点。另外,每个查找表的索引范围均包含该任意一个像素点,且不同的第一查找表的索引范围不同且至少有部分相同,即不同的查找表的索引范围互补。举例来说,继续参阅图4,该任意一个像素点可以为中心点i0,即lut(1)、lut(2)和lut(3)可以为与中心点i0关联的查找表。利用多个与该任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块的方式,可以参见前述“基于空域互补索引的多表协同处理单元310得到中心点i0所对应的图像块”的过程,此处不再赘述。[0065]作为一种可能实现方式,可以将n个查找表中每个查找表的索引区域输入至相应的查找表中,得到n个第一子图像块。其中,每个第一子图像块中均包括单个或多个像素点。然后,在将n个第一子图像块中相同位置的像素点均相加并求平均,以得到该任意一个像素点所对应的图像块。由于查找表对应的输出结果所对应的索引区域增加了,因此查找表的感受野也会相应的增加。同时,查找表的维度未发生变化,所以实现了在不增加查找表的维度的前提下,增大了查找表的感受野。详见前述对图4的描述,此处不再赘述。[0066]进一步地,针对n个查找表中任意一个查找表的索引区域,可以将任意一个查找表的索引区域以任意一个像素点为中心,并沿第一方向旋转m次,以得到m个索引区域,m≥1。然后,在基于m个索引区域中每个索引区域对应的查找表,确定m个索引区域各自所对应的第二子图像块,以得到m个第二子图像块。其中,每个第二子图像块中均包括单个或多个像素点。接着,可以基于m个索引区域各自所对应的旋转角度,分别对m个索引区域各自所对应的第二子图像块沿与第一方向相反的方向旋转相同的角度,以得到m个第三子图像块。最后,将任意一个查找表的索引区域所对应的第一子图像块和m个第三子图像块中相同位置的像素点均相加并求平均,以及,将计算结果作为任意一个查找表的索引区域所对应的第一子图像块。由此以通过对索引区域进行旋转的方式进一步在不增加查找表的维度的前提下,增大查找表的感受野。详见前述有关图5和图6的描述,此处不再赘述。[0067]作为又一种可能的实现方式,n个查找表中第i个查找表的输出为第(i+1)个查找表的输入,n个查找表中第1个查找表的输入为第1个查找表的索引区域,n个查找表中第n个查找表的输出为任意一个像素点所对应的图像块。也即是说,n个查找表可以级联,由此以实现增大查找表的感受野。[0068]作为另一种可能的实现方式,n个查找表可以由m个查找表集合中所包含的查找表构成,每个查找表集合中均包括多个查找表。其中,第j个查找表集合中各个查找表的输入分别为以第(j-1)个查找表集合的输出为基准确定出的第j个查找表集合中相应的查找表的索引区域。第1个查找表集合中各个查找表的输入分别为以前述的任意一个像素点为基准确定出的第1个查找表集合中相应的查找表的索引区域。第m个查找表集合的输出为前述的任意一个像素点所对应的图像块。示例性的,该处理过程可以理解是前述图9中的处理过程,详见前述描述,此处不再赘述。[0069]s1203、根据第一图像中各个像素点所对应的图像块,得到第二图像,第二图像的分辨率高于或等于第一图像的分辨率。[0070]本实施例中,在得到第一图像中各个像素点所对应的图像块后,可以将这些图像块拼接在一起,以得到第二图像。其中,第二图像的分辨率高于或等于第一图像的分辨率。在一些实施例中,在拼接各个图像块时,可以将各个图像块置于它们各自所对应的像素点的位置处。例如,在第一图像中的像素点1与图像块1对应,那么可以将图像块1置于像素点1的位置处。[0071]s1204、输出第二图像。[0072]本实施例中,在获取到第二图像后,可以输出该第二图像。比如显示在设备的显示屏上等。[0073]由此,在图像处理过程中,对于每个像素点均使用多个查找表协同工作,从而在维持计算量和存储量线性增长的情况下扩增了感受野,提升了图像处理性能。相比之下,现有利用空域信息的查找表技术仅使用单个查找表,感受野的扩增会使得存储量指数增长,会受到存储器规模和硬件成本的限制。[0074]基于上述实施例中的方法,本技术实施例还提供了一种图像处理装置。[0075]示例性的,图13示出了一种图像处理装置。如图13所示,该图像处理装置1300可以包括获取模块1301和处理模块1302。其中,获取模块1301用于获取第一图像。处理模块1302用于对于第一图像中的任意一个像素点,利用n个(n≥2)与该任意一个像素点关联的查找表,确定该任意一个像素点所对应的图像块,图像块中包括单个或多个像素点,其中,每个查找表的索引区域均包含该任意一个像素点,且不同的查找表的索引区域不同且至少有部分相同。处理模块1302还用于根据第一图像中各个像素点所对应的图像块,得到第二图像,其中,第二图像的分辨率高于或等于第一图像的分辨率;以及,输出第二图像。[0076]在一些实施例中,处理模块1302在利用n个与任意一个像素点关联的查找表,确定任意一个像素点所对应的图像块时,具体用于:将n个查找表中每个查找表的索引区域输入至相应的查找表中,得到n个第一子图像块,每个第一子图像块中均包括多个像素点;将n个第一子图像块中相同位置的像素点均相加并求平均,以得到任意一个像素点所对应的图像块。[0077]在一些实施例中,处理模块1302在将n个查找表中每个查找表的索引区域输入至相应的查找表中,得到n个第一子图像块时,具体用于:针对n个查找表中任意一个查找表的索引区域,将该任意一个查找表的索引区域以任意一个像素点为中心,并沿第一方向旋转m次,以得到m个索引区域,m≥1;基于m个索引区域中每个索引区域对应的查找表,确定m个索引区域各自所对应的第二子图像块,以得到m个第二子图像块,每个第二子图像块中均包括单个或多个像素点;基于m个索引区域各自所对应的旋转角度,分别对m个索引区域各自所对应的第二子图像块沿与第一方向相反的方向旋转相同的角度,以得到m个第三子图像块;将该任意一个查找表的索引区域所对应的第一子图像块和m个第三子图像块中相同位置的像素点均相加并求平均,以及,将计算结果作为该任意一个查找表的索引区域所对应的第一子图像块。[0078]在一些实施例中,n个查找表中第i个查找表的输出为第(i+1)个查找表的输入,n个查找表中第1个查找表的输入为第1个查找表的索引区域,n个查找表中第n个查找表的输出为任意一个像素点所对应的图像块。[0079]在一些实施例中,n个查找表由m个查找表集合中所包含的查找表构成,每个查找表集合中均包括多个查找表。其中,第j个查找表集合中各个查找表的输入分别为以第(j-1)个查找表集合的输出为基准确定出的第j个查找表集合中相应的查找表的索引区域。第1个查找表集合中各个查找表的输入分别为以任意一个像素点为基准确定出的第1个查找表集合中相应的查找表的索引区域。第m个查找表集合的输出为任意一个像素点所对应的图像块。[0080]应当理解的是,上述装置用于执行上述实施例中的方法,装置中相应的程序模块,其实现原理和技术效果与上述方法中的描述类似,该装置的工作过程可参考上述方法中的对应过程,此处不再赘述。[0081]在一些实施例中,图13中所示的获取模块1301和处理模块1302均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来以图13中所示的获取模块1301为例,介绍获取模块1301的实现方式。类似的,图13中所示的处理模块1302的实现方式可以参考图13中所示的获取模块1301的实现方式。[0082]模块作为软件功能单元的一种举例,处理模块1302可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,处理模块1302可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availabilityzone,az)中,也可以分布在不同的az中,每个az包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个az。[0083]同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtualprivatecloud,vpc)中,也可以分布在多个vpc中。其中,通常一个vpc设置在一个region内,同一region内两个vpc之间,以及不同region的vpc之间跨区通信需在每个vpc内设置通信网关,经通信网关实现vpc之间的互连。[0084]模块作为硬件功能单元的一种举例,处理模块1302可以包括至少一个计算设备,如服务器等。或者,处理模块1302也可以是利用专用集成电路(application-specificintegratedcircuit,asic)实现、或可编程逻辑器件(programmablelogicdevice,pld)实现的设备等。其中,上述pld可以是复杂程序逻辑器件(complexprogrammablelogicaldevice,cpld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用阵列逻辑(genericarraylogic,gal)或其任意组合实现。[0085]处理模块1302包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。处理模块1302包括的多个计算设备可以分布在相同的az中,也可以分布在不同的az中。同样,处理模块1302包括的多个计算设备可以分布在同一个vpc中,也可以分布在多个vpc中。其中,所述多个计算设备可以是服务器、asic、pld、cpld、fpga和gal等计算设备的任意组合。[0086]需要说明的是,在其他实施例中,处理模块1302可以用于执行图12中所示的方法中的任意步骤,图13中所示的处理模块1302可以用于执行上述图12中提供的方法中的任意步骤。图13中所示的获取模块1301和处理模块1302负责实现的步骤可根据需要指定,通过获取模块1301和处理模块1302分别实现上述图12中提供的方法中不同的步骤来实现图像处理装置1300的全部功能。[0087]本技术还提供一种计算设备1400。如图14所示,计算设备1400包括:总线1402、处理器1404、存储器1406和通信接口1408。处理器1404、存储器1406和通信接口1408之间通过总线1402通信。计算设备1400可以是服务器或终端设备。应理解,本技术不限定计算设备1400中的处理器、存储器的个数。[0088]总线1402可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线1404可包括在计算设备1400各个部件(例如,存储器1406、处理器1404、通信接口1408)之间传送信息的通路。[0089]处理器1404可以包括中央处理器(centralprocessingunit,cpu)、图形处理器(graphicsprocessingunit,gpu)、微处理器(microprocessor,mp)或者数字信号处理器(digitalsignalprocessor,dsp)等处理器中的任意一种或多种。[0090]存储器1406可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram)。处理器144还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom),快闪存储器,机械硬盘(harddiskdrive,hdd)或固态硬盘(solidstatedrive,ssd)。[0091]存储器1406中存储有可执行的程序代码,处理器1404执行该可执行的程序代码以分别实现前述图13中所示的获取模块1301和处理模块1302的功能,从而实现上述实施例中方法的全部或部分步骤。也即,存储器146上存有用于执行上述实施例方法中全部或部分步骤的指令。[0092]或者,存储器1406中存储有可执行的代码,处理器1404执行该可执行的代码以分别实现前述图像处理装置1300的功能,从而实现上述实施例方法中全部或部分步骤。也即,存储器1406上存有用于执行上述实施例方法中全部或部分步骤的指令。[0093]通信接口1403使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备140与其他设备或通信网络之间的通信。[0094]本技术实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。[0095]如图15所示,所述计算设备集群包括至少一个计算设备1400。计算设备集群中的一个或多个计算设备1400中的存储器1406中可以存有相同的用于执行上述实施例方法中全部或部分步骤的指令。[0096]在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备1400的存储器1406中也可以分别存有用于执行上述实施例方法中全部或部分步骤的部分指令。换言之,一个或多个计算设备1400的组合可以共同执行用于执行上述实施例方法中全部或部分步骤的指令。[0097]需要说明的是,计算设备集群中的不同的计算设备1400中的存储器1406可以存储不同的指令,分别用于执行图像处理装置1300的部分功能。也即,不同的计算设备1400中的存储器1406存储的指令可以实现前述图13中所示的获取模块814和处理模块820中的一个或多个模块的功能。[0098]在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。[0099]基于上述实施例中的方法,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。[0100]基于上述实施例中的方法,本技术实施例提供了一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。[0101]可以理解的是,本技术的实施例中的处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。[0102]本技术的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。[0103]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。[0104]可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1