CN114463553A - 图像处理方法和装置、电子设备和存储介质 - Google Patents
图像处理方法和装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114463553A CN114463553A CN202210123569.1A CN202210123569A CN114463553A CN 114463553 A CN114463553 A CN 114463553A CN 202210123569 A CN202210123569 A CN 202210123569A CN 114463553 A CN114463553 A CN 114463553A
- Authority
- CN
- China
- Prior art keywords
- tensor
- column
- output
- row
- image
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Processing (AREA)
Abstract
本公开实施例公开了一种图像处理方法和装置、电子设备和存储介质,其中,方法包括:获取待处理图像对应的查询张量、键张量和值张量;基于查询张量和键张量,分别按行和按列进行注意力操作,获得各行分别对应的行输出权重和各列分别对应的列输出权重;基于各行分别对应的行输出权重、各列分别对应的列输出权重及值张量,获得第一输出张量;基于第一输出张量,确定待处理图像对应的图像处理结果。本公开实施例实现了将图像的每个位置的像素形成token,无需对图像进行patch,从而可以有效保留图像的细节信息,且能够有效减小注意力操作的计算量,解决现有技术基于patch方式容易导致图像细节丢失等问题。
Description
技术领域
本公开涉及计算机视觉技术,尤其是一种图像处理方法和装置、电子设备和存储介质。
背景技术
近来,Transformer被引入了计算机视觉领域,形成了新的视觉神经网络模型,即Vision Transformer(简称ViT),由于Transformer神经网络模型源于NLP(NaturalLanguage Processing,自然语言处理)任务,其优势在于使用多头注意力机制(MHA,Multi-HeadAttention)并行化地建模长距离(或者时序)的关联关系,其处理的数据对象是文本,文本是一维数据,每个语句中的词汇有限,输入的token(令牌)数量通常较少,而在计算机视觉领域,处理的数据对象变为图像,图像是二维数据,如果将每个位置的像素作为token,那么MHA所面临的计算量将变得不可处理,针对这一问题,现有技术通常是将图像划分为patch(即图像块),每个图像块形成一个token,从而实现MHA计算上的可行性,但是,将图像划分patch,需要将多个位置的像素进行合并形成一个token,容易丢失图像的很多细节信息。
发明内容
为了解决上述基于patch方式容易丢失图像细节的技术问题,提出了本公开。本公开的实施例提供了一种图像处理方法和装置、电子设备和存储介质。
根据本公开实施例的一个方面,提供了一种图像处理方法,包括:获取待处理图像对应的查询张量、键张量和值张量;基于所述查询张量和所述键张量,分别按行和按列进行注意力操作,获得各所述行分别对应的行输出权重和各所述列分别对应的列输出权重;基于各所述行分别对应的所述行输出权重、各所述列分别对应的所述列输出权重及所述值张量,获得第一输出张量;基于所述第一输出张量,确定所述待处理图像对应的图像处理结果。
根据本公开实施例的另一个方面,提供了一种图像处理装置,包括:第一获取模块,用于获取待处理图像对应的查询张量、键张量和值张量;第一处理模块,用于基于所述查询张量和所述键张量,分别按行和按列进行注意力操作,获得各所述行分别对应的行输出权重和各所述列分别对应的列输出权重;第二处理模块,用于基于各所述行分别对应的所述行输出权重、各所述列分别对应的所述列输出权重及所述值张量,获得第一输出张量;第三处理模块,用于基于所述第一输出张量,确定所述待处理图像对应的图像处理结果。
根据本公开实施例的再一方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开上述任一实施例所述的图像处理方法。
根据本公开实施例的再一方面,提供一种芯片,所述芯片与存储器相连或者包括存储器,用于读取并执行所述存储器中存储的计算机程序,以实现本公开上述任一实施例所述的图像处理方法。
根据本公开实施例的又一方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开上述任一实施例所述的图像处理方法。
基于本公开上述实施例提供的图像处理方法、装置、电子设备和存储介质,通过对MHA进行改进,将待处理图像对应的查询张量和键张量,分别按行和按列进行注意力操作,获得各所述行分别对应的行输出权重和各所述列分别对应的列输出权重,进而基于各所述行分别对应的所述行输出权重、各所述列分别对应的所述列输出权重对值张量进行作用,获得MHA模块的第一输出张量,再基于第一输出张量确定待处理图像对应的图像处理结果,实现了将图像的每个位置的像素形成token,无需对图像进行patch,从而可以有效保留图像的细节信息,并且,在行内和列内进行注意力操作,有效减小注意力操作的计算量,从而在实现MHA的计算可行性的基础上,保证了图像细节信息的有效性,解决了现有技术基于patch方式容易导致图像细节丢失等问题。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开提供的图像处理方法的一个示例性的应用场景的ViT的网络结构示意图;
图2是本公开一示例性实施例提供的图像处理方法的流程示意图;
图3是本公开另一示例性实施例提供的图像处理方法的流程示意图;
图4是本公开一示例性实施例提供的行注意力操作的原理示意图;
图5是本公开一示例性实施例提供的列注意力操作的原理示意图;
图6是本公开再一示例性实施例提供的图像处理方法的流程示意图;
图7是本公开一示例性实施例提供的行输出张量的示意图;
图8是是本公开一示例性实施例提供的按元素相加的原理示意图;
图9是本公开一示例性实施例提供的步骤201的流程示意图;
图10是本公开一示例性实施例提供的步骤204的流程示意图;
图11是本公开一示例性实施例提供的图像处理装置的结构示意图;
图12是本公开一示例性实施例提供的第一处理模块502的结构示意图;
图13是本公开另一示例性实施例提供的第一处理模块502的结构示意图;
图14是本公开一示例性实施例提供的第三处理模块503的结构示意图;
图15是本公开一示例性实施例提供的第一获取模块501的结构示意图;
图16是本公开一示例性实施例提供的第三处理模块504的结构示意图;
图17是本公开电子设备一个应用实施例的结构示意图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本公开概述
在实现本公开的过程中,发明人发现,将Transformer引入计算机视觉领域后,处理的数据对象从文本变为图像,由于图像是二维数据,如果将每个位置的像素作为token,那么MHA所面临的计算量将变得不可处理,针对这一问题,现有技术通常是将图像划分为patch(即图像块),每个图像块形成一个token,从而实现MHA计算上的可行性,但是,将图像划分patch,需要将多个位置的像素进行合并形成一个token,容易丢失图像的很多细节信息。
示例性概述
图1是本公开提供的图像处理方法的一个示例性的应用场景的ViT的网络结构示意图。该网络结构可以应用于图像分类场景,输入图像通过Embedding操作获得一个张量(tensor)A,将位置编码信息(Positional Encodings)与该张量A相加,得到Encoder(编码器)的输入张量B,在该网络结构中共设置有N个Encoder,N为正整数,具体可以根据实际需求设置,每个Encoder的处理流程为(以第一个编码器为例):将输入张量B进行LayerNorm操作,获得张量C,随后输入给MHA,MHA输出的结果为张量D,张量D与LayerNorm前的结果张量B相加,获得张量E,随后再进行一次LayerNorm操作,获得张量F,最后经过一个多层感知机(MLP),获得张量I,将张量I与第二个LayerNorm前的输入张量E相加获得张量J,作为下一个编码器的输入张量,再进行上述的流程,以此类推,最终经过N个编码器输出一个张量L,再经历Average Pooling(AvgPooling,即平均池化)和Softmax操作后,得到最终的类别输出(Output)。利用本公开的方法,通过对MHA进行改进(仍以第一个编码器的MHA为例),可以基于张量C获取待处理图像对应的查询张量Q、键张量K和值张量V,基于查询张量和键张量,分别按行和按列进行注意力操作,获得各行分别对应的行输出权重和各列分别对应的列输出权重,基于各行分别对应的行输出权重、各列分别对应的列输出权重及所述值张量,获得第一输出张量,第一输出张量即为MHA输出的张量D,实现了将图像的每个位置的像素形成token,无需对图像进行patch,从而可以有效保留图像的细节信息,并且,在行内和列内进行注意力操作,有效减小注意力操作的计算量,从而在实现MHA的计算可行性的基础上,保证了图像细节信息的有效性,解决了现有技术基于patch方式容易导致图像细节丢失等问题。
可选地,本公开的图像处理方法不限于上述图像分类的应用场景,对任何图像处理过程中需要MHA的场景均适用。
示例性方法
图2是本公开一示例性实施例提供的图像处理方法的流程示意图。本实施例可应用在电子设备上,比如终端设备、服务器等,具体比如车载计算平台上,如图2所示,包括如下步骤:
步骤201,获取待处理图像对应的查询张量、键张量和值张量。
其中,待处理图像可以是任意需要处理的图像,待处理图像对应的查询张量、键张量和值张量可以是基于待处理图像进行一定的特征提取后,通过一定的映射规则获得,具体特征提取及映射规则可以根据实际需求设置,本实施例不做限定。
步骤202,基于查询张量和键张量,分别按行和按列进行注意力操作,获得各行分别对应的行输出权重和各列分别对应的列输出权重。
其中,按行进行注意力操作是指对查询张量和键张量的相同行在行内进行注意力操作,类似地,按列进行注意力操作是指对查询张量和键张量的相同列在列内进行注意力操作。
示例性的,以查询张量的第一行和键张量对应的第一行为例,将行内每个位置的像素作为token,进行注意力操作。其他行及每个列原理类似。
按行的注意力操作,每行获得对应的行输出权重,相应的每列获得对应的列输出权重,行输出权重和列输出权重分别包括作用于值张量的行权重值和列权重值。
步骤203,基于各行分别对应的行输出权重、各列分别对应的列输出权重及值张量,获得第一输出张量。
具体的,将各行分别对应的行输出权重作用于值张量,获得行输出张量;并将各列分别对应的列输出权重作用于值张量,获得列输出张量,进而基于行输出张量和列输出张量获得第一输出张量。
步骤204,基于第一输出张量,确定待处理图像对应的图像处理结果。
在获得第一输出张量后,则可以基于第一输出张量进行后续的处理过程,来确定最终的图像处理结果。其中,后续的处理过程可以根据实际需求设置,本实施例不做限定。比如,当步骤201-步骤203用于TiV的编码器中时,编码器中除了上述的步骤外,还包括其他相关处理操作,比如LayerNorm操作、MLP等等,以及TiV还可能包括多个编码器,在编码器后还可能有池化操作、Softmax操作,等等,那么相应的后续的处理过程即可以包括这些其他相关操作中的至少一种。
本实施例提供的图像处理方法,通过查询张量和键张量的行内注意力操作和列内注意力操作来获得分别对应的行输出权重和列输出权重,进而分别作用于值张量,获得行输出张量和列输出张量,进而基于行输出张量和列输出张量确定第一输出张量,用于后续图像处理过程,获得图像处理结果,实现了将图像的每个位置的像素形成token,无需对图像进行patch,从而可以有效保留图像的细节信息,并且,在行内和列内进行注意力操作,有效减小注意力操作的计算量,从而在实现MHA的计算可行性的基础上,保证了图像细节信息的有效性,解决了现有技术基于patch方式容易导致图像细节丢失等问题。
图3是本公开另一示例性实施例提供的图像处理方法的流程示意图。
在一个可选示例中,查询张量和键张量的尺寸均为H*W*C;H、W、C分别表示张量的高度、宽度和通道数量;相应的步骤202可以包括:
步骤2021,基于查询张量的第i行和键张量的第i行,进行注意力操作,获得第i行对应的行输出权重;i=1,2,...,H。
示例性的,图4是本公开一示例性实施例提供的行注意力操作的原理示意图。其中,查询张量和键张量的高度H=3,宽度W=4,通道数量C=3,以深灰色的第1行为例,进行注意力操作获得的第1行对应的行输出权重为W*W的矩阵。在行内,将每个位置的像素作为token进行注意力操作。也即将每个位置上C个通道的像素值向量作为token。
步骤2022,基于查询张量的第j列和键张量的第j列,进行注意力操作,获得第j列对应的列输出权重;j=1,2,...,W。
示例性的,图5是本公开一示例性实施例提供的列注意力操作的原理示意图。以深灰色的第4列为例,进行注意力操作获得的第4列对应的列输出权重为H*H的矩阵。在列内,将每个位置的像素作为token进行注意力操作。
需要说明的是,步骤2021和步骤2022不分先后顺序。
图6是本公开再一示例性实施例提供的图像处理方法的流程示意图。
在一个可选示例中,步骤2021的基于查询张量的第i行和键张量的第i行,进行注意力操作,获得第i行对应的行输出权重,包括:
步骤20211,将查询张量的第i行与键张量的第i行的转置相乘,获得第一行结果。
示例性的,以H=W=C=3为例,查询张量的第i行可以表示为W*C的矩阵Q[i,1:W,1:C]:
其中,Q[i,1:W,1:C]即表示查询张量Q的第i行对应的W*C的矩阵,1:W表示宽度方向从1至W的位置下标,1:C则表示通道方向从1至C的位置下标,i=1,2,...,H,表示第i行中第j列位置的第k通道的像素特征值。
获得的第一行结果表示为W*W的矩阵Zi:
…
步骤20212,基于第一行结果及查询张量的通道数量,获得第二行结果。
其中,通道数量表示为C,则第二行结果表示为W*W的矩阵Li:
步骤20213,对第二行结果进行softmax运算,获得第i行对应的行输出权重。
示例性的,第i行对应的行输出权重表示为W*W的矩阵Mi:
Mi=softmax(Li)
其中,softmax()即表示softmax函数,具体原理不再赘述。
可选地,softmax(Li)可以是对Li按行进行归一化,比如第1行有5个原特征值B1-B5,归一化获得的第n(n=1,2,…,5)个特征值Cn是基于5个原特征值获得。比如:
其中,exp()表示指数函数。
本示例仅用于表示行内注意力操作的原理,其具体表示形式可以根据实际需求设置,不限于上述的矩阵表示。
在一个可选示例中,各行的处理可以串行处理也可以并行处理,为了提高数据处理效率,采用并行处理方式。
在一个可选示例中,步骤2022的基于查询张量的第j列和键张量的第j列,进行注意力操作,获得第j列对应的列输出权重,包括:
步骤20221,将查询张量的第j列与键张量的第j列的转置相乘,获得第一列结果。
其中,查询张量的第j列可以表示为H*W的矩阵,键张量的第j列的转置可以表示为W*H的矩阵,相应获得的第j列对应的第一列结果则表示为H*H的矩阵。
该步骤的具体操作原理与上述步骤20211类似,在此不再赘述。
步骤20222,基于第一列结果及查询张量的通道数量,获得第二列结果。
其中,获得的第二列结果则表示为H*H的矩阵。
该步骤的具体操作原理与上述步骤20212类似,在此不再赘述。
步骤20223,对第二列结果进行softmax运算,获得第j列对应的列输出权重。
其中,获得的第j列对应的列输出权重表示为H*H的矩阵。
该步骤的具体操作原理与上述步骤20213类似,在此不再赘述。
在一个可选示例中,各列的处理可以串行处理也可以并行处理,为了提高数据处理效率,采用并行处理方式。
在一个可选示例中,步骤203的基于各行分别对应的行输出权重、各列分别对应的列输出权重及值张量,获得第一输出张量,包括:
步骤2031,基于各行分别对应的行输出权重对值张量的对应行进行加权运算,获得各行分别对应的行输出结果,基于各行分别对应的行输出结果,获得行输出张量。
其中,MiV[i,1:W,1:C]遵循矩阵相乘规则,具体不再赘述。
将各行分别对应的行输出结果组合在一起,获得的行输出张量则表示为H*W*C的张量OR。
示例性的,图7是本公开一示例性实施例提供的行输出张量的示意图。
在一个可选示例中,各行的处理可以串行处理也可以并行处理,为了提高数据处理效率,采用并行处理方式。
步骤2032,基于各列分别对应的列输出权重对值张量的对应列进行加权运算,获得各列分别对应的列输出结果,基于各列分别对应的列输出结果,获得列输出张量。
获得的列输出张量表示为H*W*C的张量OC。
该步骤的具体操作原理与上述步骤2031类似,在此不再赘述。
在一个可选示例中,各行的处理可以串行处理也可以并行处理,为了提高数据处理效率,采用并行处理方式。
步骤2031和步骤2032不分先后顺序。
步骤2033,将行输出张量和列输出张量按元素相加,获得第一输出张量。
其中,按元素相加(element-wise add)是指行输出张量与列输出张量同一位置处的像素特征值相加,即第一输出张量O表示为:
O=OR+OC
示例性的,图8是本公开一示例性实施例提供的按元素相加的原理示意图。本示例仅展示了一个通道的按元素相加,对于多个通道,每个通道均按照本示例的方式相加,具体不再赘述。
在一个可选示例中,图9是本公开一示例性实施例提供的步骤201的流程示意图。在本示例中,步骤201的获取待处理图像对应的查询张量、键张量和值张量,包括:
步骤2011,对待处理图像进行特征嵌入操作,获得对应的第一张量。
其中,特征嵌入操作即指Embedding操作,将待处理图像转换为低维空间的张量,具体操作可以采用相关领域惯用的方式,在此不再赘述。
步骤2012,将第一张量与对应的空间位置编码张量相加,获得第二张量。
其中,空间位置编码张量是用于嵌入token序列的位置,引导注意力对齐,具体空间位置编码的嵌入可以采用相关领域惯用的方式,在此不再赘述。
步骤2013,对第二张量进行归一化,获得第三张量。
其中,归一化方式可以根据实际需求设置,比如采用layernorm归一化方式。
步骤2014,基于第三张量及第一映射规则确定查询张量。
其中,第一映射规则用于将第三张量映射到查询张量,第一映射规则可以根据实际需求设置,比如通过查询张量Q的权值矩阵Wq将第三张量T映射到查询张量Q,其中,Wq∈RC*C(即C*C的矩阵),T∈RH*W*C,H、W、C分别表示张量的高度、宽度和通道数量,具体来说,可以将第三张量T看做H*W个C维的向量,使用Wq乘以第三张量T中的每一个C维向量,获得查询张量Q,表示如下:
Q=Q[1:H,1:W,1:C]
Q[i,j,1:C]=WqT[i,j,1:C]
其中,Q[i,j,1:C]表示Q的第i行第j列位置处的C维向量,T[i,j,1:C]即表示T的第i行第j列位置处的C维向量。
步骤2015,基于第三张量及第二映射规则确定键张量。
其中,第二映射规则与第一映射规则类似,可以是通过键张量的权值矩阵Wk将第三张量T映射到键张量K,具体原理参见上述步骤2014,在此不再赘述。
步骤2016,基于第三张量及第三映射规则确定值张量。
其中,第三映射规则与第一映射规则类似,可以是通过值张量的权值矩阵Wv将第三张量T映射到值张量V,具体原理参见上述步骤2014,在此不再赘述。
需要说明的是,步骤2014-步骤2016三个步骤不分先后顺序。
在一个可选示例中,图10是本公开一示例性实施例提供的步骤204的流程示意图,在本示例中,步骤204的基于第一输出张量,确定待处理图像对应的图像处理结果,包括:
步骤2041,将第一输出张量与第二张量相加获得第四张量。
步骤2042,对第四张量进行归一化,获得第五张量。
其中,归一化的具体方式可以根据实际需求设置,比如采用layernorm归一化方式。
步骤2043,将第五张量输入多层感知机模块,获得第六张量。
其中,多层感知机模块即为ViT中的MLP,具体原理不再赘述。
步骤2044,将第六张量与第四张量相加,获得第七张量。
步骤2045,基于第七张量,确定待处理图像对应的图像处理结果。
上述步骤2041-2045实现了ViT中一个编码器中从MHA输出到编码器输出的过程,在实际应用中,ViT中可以包括多个编码器,比如N个,则第七张量作为下一个编码器的输入继续进行编码,以此类推,直至完成N个编码器流程后,获得的输出张量进行后续处理获得待处理图像对应的图像处理结果,后续处理可以根据实际需求设置,不同用于场景的后续处理可以不同,比如图像分类场景、图像分割等,具体不做限定。
在一个可选示例中,步骤2045的基于第七张量,确定待处理图像对应的图像处理结果,包括:对第七张量进行平均池化操作,获得池化结果;对池化结果进行softmax运算,获得待处理对象对应的图像处理结果。
其中,当ViT有多个编码器时,第七张量可以是最后一个编码器输出的张量。
本示例中对对第七张量进行平均池化操作,获得池化结果,进而对池化结果进行softmax运算,获得的待处理对象对应的图像处理结果为图像分类结果。在实际应用中还可以根据实际需求对第七张量进行其他处理,以达到需要的目的。
采用本公开的图像处理方法,MHA的计算复杂度(以token的总交互次数作为计算复杂度的度量)为:
H×W2+W×H2=HW(H+W)
现有技术的MHA的计算复杂度为:
H×W×(H×W)=H2W2
可见,本公开的MHA计算复杂度将现有技术的一个H×W变成了H+W,乘法变为加法,整体的计算量将大大降低,比如会降低1-2个数量级,因此也会大大降低内存的消耗,从而使得ViT的图像处理以每个位置的像素作为token成为可能,而无需对图像进行patch,充分保留输入二维数据的原本维度,从而可以有效保留图像的细节信息,实现了高分辨率输入的注意力学习。
本公开实施例提供的任一种图像处理方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种图像处理方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种图像处理方法。下文不再赘述。
示例性装置
图11是本公开一示例性实施例提供的图像处理装置的结构示意图。该实施例的装置可用于实现本公开相应的方法实施例,如图11所示的装置包括:第一获取模块501、第一处理模块502、第二处理模块503和第三处理模块504。
第一获取模块501,用于获取待处理图像对应的查询张量、键张量和值张量。
第一处理模块502,用于基于第一获取模块501获取的查询张量和键张量,分别按行和按列进行注意力操作,获得各行分别对应的行输出权重和各列分别对应的列输出权重。
第二处理模块503,用于基于第一处理模块502获得的各行分别对应的行输出权重、各列分别对应的列输出权重及值张量,获得第一输出张量。
第三处理模块504,用于基于第二处理模块503获得的第一输出张量,确定待处理图像对应的图像处理结果。
在一个可选示例中,图12是本公开一示例性实施例提供的第一处理模块502的结构示意图。本示例中,查询张量和键张量的尺寸均为H*W*C;H、W、C分别表示张量的高度、宽度和通道数量;第一处理模块502包括:第一处理单元5021和第二处理单元5022。第一处理单元5021,用于基于第一获取模块501获取的查询张量的第i行和键张量的第i行,进行注意力操作,获得第i行对应的行输出权重;i=1,2,...,H;第二处理单元5022,用于基于第一获取模块501获取的查询张量的第j列和键张量的第j列,进行注意力操作,获得第j列对应的列输出权重;j=1,2,...,W。
图13是本公开另一示例性实施例提供的第一处理模块502的结构示意图,
在一个可选示例中,第一处理单元5021可以包括第一处理子单元50211、第二处理子单元50212和第三处理子单元50213。第一处理子单元50211,用于将查询张量的第i行与键张量的第i行的转置相乘,获得第一行结果;第二处理子单元50212,用于基于第一处理子单元50211获得的第一行结果及查询张量的通道数量,获得第二行结果;第三处理子单元50213,用于对第二行结果进行softmax运算,获得第i行对应的行输出权重。
在一个可选示例中,第二处理单元5022可以包括第四处理子单元50221、第五处理子单元50222和第六处理子单元50223。第四处理子单元50221,用于将查询张量的第j列与键张量的第j列的转置相乘,获得第一列结果;第五处理子单元50222,用于基于第四处理子单元50221获得的第一列结果及查询张量的通道数量,获得第二列结果;第六处理子单元50223,用于对第五处理子单元50222获得的第二列结果进行softmax运算,获得第j列对应的列输出权重。
在一个可选示例中,图14是本公开一示例性实施例提供的第三处理模块503的结构示意图。在本示例中,第三处理模块503包括:第三处理单元5031、第四处理单元5032和第五处理单元5033。第三处理单元5031,用于基于各行分别对应的行输出权重对值张量的对应行进行加权运算,获得各行分别对应的行输出结果,基于各行分别对应的行输出结果,获得行输出张量;第四处理单元5032,用于基于各列分别对应的列输出权重对值张量的对应列进行加权运算,获得各列分别对应的列输出结果,基于各列分别对应的列输出结果,获得列输出张量;第五处理单元5033,用于将第三处理单元5031获得的行输出张量和第四处理单元5032获得的列输出张量按元素相加,获得第一输出张量。
在一个可选示例中,图15是本公开一示例性实施例提供的第一获取模块501的结构示意图。在本示例中,第一获取模块501包括:特征嵌入单元5011、编码嵌入单元5012、第一归一化单元5013、第一映射单元5014、第二映射单元5015和第三映射单元5016。特征嵌入单元5011,用于对待处理图像进行特征嵌入操作,获得对应的第一张量;编码嵌入单元5012,用于将特征嵌入单元5011获得的第一张量与对应的空间位置编码张量相加,获得第二张量;第一归一化单元5013,用于对编码嵌入单元5012获得的第二张量进行归一化,获得第三张量;第一映射单元5014,用于基于第一归一化单元5013获得的第三张量及第一映射规则确定查询张量;第二映射单元5015,用于基于第一归一化单元5013获得的第三张量及第二映射规则确定键张量;第三映射单元5016,用于基于第一归一化单元5013获得的第三张量及第三映射规则确定值张量。
在一个可选示例中,图16是本公开一示例性实施例提供的第三处理模块504的结构示意图。在本示例中,第三处理模块504包括:第六处理单元5041、第二归一化单元5042、第七处理单元5043、第八处理单元5044和第九处理单元5045。第六处理单元5041,用于将第一输出张量与第二张量相加获得第四张量;第二归一化单元5042,用于对第六处理单元5041获得的第四张量进行归一化,获得第五张量;第七处理单元5043,用于将第二归一化单元5042获得的第五张量输入多层感知机模块,获得第六张量;第八处理单元5044,用于将第七处理单元5043获得的第六张量与第六处理单元5041获得的第四张量相加,获得第七张量;第九处理单元5045,用于基于第八处理单元5044获得的第七张量,确定待处理图像对应的图像处理结果。
在一个可选示例中,第九处理单元5045,具体用于:对第七张量进行平均池化操作,获得池化结果;对池化结果进行softmax运算,获得待处理对象对应的图像处理结果。
示例性电子设备
本公开实施例还提供了一种电子设备,包括:存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的图像处理方法。
图17是本公开电子设备一个应用实施例的结构示意图。本实施例中,该电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本公开的各个实施例的图像处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,该输入装置13可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。
此外,该输入装置13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图17中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像处理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种图像处理方法,包括:
获取待处理图像对应的查询张量、键张量和值张量;
基于所述查询张量和所述键张量,分别按行和按列进行注意力操作,获得各所述行分别对应的行输出权重和各所述列分别对应的列输出权重;
基于各所述行分别对应的所述行输出权重、各所述列分别对应的所述列输出权重及所述值张量,获得第一输出张量;
基于所述第一输出张量,确定所述待处理图像对应的图像处理结果。
2.根据权利要求1所述的方法,其中,所述查询张量和所述键张量的尺寸均为H*W*C;H、W、C分别表示张量的高度、宽度和通道数量;
所述基于所述查询张量和所述键张量,分别按行和按列进行注意力操作,获得各所述行分别对应的行输出权重和各所述列分别对应的列输出权重,包括:
基于所述查询张量的第i行和所述键张量的第i行,进行注意力操作,获得所述第i行对应的所述行输出权重;i=1,2,…,H;
基于所述查询张量的第j列和所述键张量的第j列,进行注意力操作,获得所述第j列对应的所述列输出权重;j=1,2,…,W。
3.根据权利要求2所述的方法,其中,所述基于所述查询张量的第i行和所述键张量的第i行,进行注意力操作,获得所述第i行对应的所述行输出权重,包括:
将所述查询张量的第i行与所述键张量的第i行的转置相乘,获得第一行结果;
基于所述第一行结果及所述查询张量的通道数量,获得第二行结果;
对所述第二行结果进行softmax运算,获得所述第i行对应的所述行输出权重;
所述基于所述查询张量的第j列和所述键张量的第j列,进行注意力操作,获得所述第j列对应的所述列输出权重,包括:
将所述查询张量的第j列与所述键张量的第j列的转置相乘,获得第一列结果;
基于所述第一列结果及所述查询张量的通道数量,获得第二列结果;
对所述第二列结果进行softmax运算,获得所述第j列对应的所述列输出权重。
4.根据权利要求1所述的方法,其中,所述基于各所述行分别对应的所述行输出权重、各所述列分别对应的所述列输出权重及所述值张量,获得第一输出张量,包括:
基于各所述行分别对应的所述行输出权重对所述值张量的对应行进行加权运算,获得各所述行分别对应的行输出结果,基于各所述行分别对应的所述行输出结果,获得所述行输出张量;
基于各所述列分别对应的所述列输出权重对所述值张量的对应列进行加权运算,获得各所述列分别对应的列输出结果,基于各所述列分别对应的所述列输出结果,获得所述列输出张量;
将所述行输出张量和所述列输出张量按元素相加,获得所述第一输出张量。
5.根据权利要求1-4任一所述的方法,其中,所述获取待处理图像对应的查询张量、键张量和值张量,包括:
对所述待处理图像进行特征嵌入操作,获得对应的第一张量;
将所述第一张量与对应的空间位置编码张量相加,获得第二张量;
对所述第二张量进行归一化,获得第三张量;
基于所述第三张量及第一映射规则确定所述查询张量;
基于所述第三张量及第二映射规则确定所述键张量;
基于所述第三张量及第三映射规则确定所述值张量。
6.根据权利要求5所述的方法,其中,所述基于所述第一输出张量,确定所述待处理图像对应的图像处理结果,包括:
将所述第一输出张量与所述第二张量相加获得第四张量;
对所述第四张量进行归一化,获得第五张量;
将所述第五张量输入多层感知机模块,获得第六张量;
将所述第六张量与所述第四张量相加,获得第七张量;
基于所述第七张量,确定所述待处理图像对应的图像处理结果。
7.根据权利要求6所述的方法,其中,所述基于所述第七张量,确定所述待处理图像对应的图像处理结果,包括:
对所述第七张量进行平均池化操作,获得池化结果;
对所述池化结果进行softmax运算,获得所述待处理对象对应的图像处理结果。
8.一种图像处理装置,包括:
第一获取模块,用于获取待处理图像对应的查询张量、键张量和值张量;
第一处理模块,用于基于所述查询张量和所述键张量,分别按行和按列进行注意力操作,获得各所述行分别对应的行输出权重和各所述列分别对应的列输出权重;
第二处理模块,用于基于各所述行分别对应的所述行输出权重、各所述列分别对应的所述列输出权重及所述值张量,获得第一输出张量;
第三处理模块,用于基于所述第一输出张量,确定所述待处理图像对应的图像处理结果。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一所述的图像处理方法。
10.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210123569.1A CN114463553A (zh) | 2022-02-09 | 2022-02-09 | 图像处理方法和装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210123569.1A CN114463553A (zh) | 2022-02-09 | 2022-02-09 | 图像处理方法和装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114463553A true CN114463553A (zh) | 2022-05-10 |
Family
ID=81413560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210123569.1A Pending CN114463553A (zh) | 2022-02-09 | 2022-02-09 | 图像处理方法和装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114463553A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024060940A1 (zh) * | 2022-09-19 | 2024-03-28 | 北京地平线信息技术有限公司 | 图像处理方法、装置、电子设备和存储介质 |
-
2022
- 2022-02-09 CN CN202210123569.1A patent/CN114463553A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024060940A1 (zh) * | 2022-09-19 | 2024-03-28 | 北京地平线信息技术有限公司 | 图像处理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113343982B (zh) | 多模态特征融合的实体关系提取方法、装置和设备 | |
CN110163205B (zh) | 图像处理方法、装置、介质和计算设备 | |
CN110647893A (zh) | 目标对象识别方法、装置、存储介质和设备 | |
CN109034206A (zh) | 图像分类识别方法、装置、电子设备及计算机可读介质 | |
CN115482141A (zh) | 图像处理方法、装置、电子设备和存储介质 | |
Xie et al. | Self-attention enhanced deep residual network for spatial image steganalysis | |
CN108229658B (zh) | 基于有限样本的物体检测器的实现方法及装置 | |
CN111428805B (zh) | 显著性物体的检测方法、模型、存储介质及电子设备 | |
CN115066687A (zh) | 放射性数据生成 | |
CN113343981A (zh) | 一种视觉特征增强的字符识别方法、装置和设备 | |
WO2023042045A1 (en) | Convolution attention network for multi-label clinical document classification | |
CN114463553A (zh) | 图像处理方法和装置、电子设备和存储介质 | |
CN111985556A (zh) | 关键点识别模型的生成方法和关键点识别方法 | |
CN114005169B (zh) | 人脸关键点检测方法、装置、电子设备及存储介质 | |
Park et al. | Unified convolutional neural network for direct facial keypoints detection | |
Yuan et al. | Scale attentive network for scene recognition | |
CN115118675A (zh) | 基于智能网卡设备实现的数据流传输加速方法及其系统 | |
CN109344839B (zh) | 图像处理方法和装置、电子设备、存储介质、程序产品 | |
CN115936974A (zh) | 基于单应性变换的图像数据处理方法、装置及介质 | |
CN114092939A (zh) | 文本识别以及文本识别模型的训练方法和存储介质、设备 | |
CN112949841A (zh) | 一种基于Attention的CNN神经网络的训练方法 | |
CN113591840A (zh) | 一种目标检测方法、装置、设备和存储介质 | |
CN111444331A (zh) | 基于内容的分布式特征提取方法、装置、设备及介质 | |
CN112199978A (zh) | 视频物体检测方法和装置、存储介质和电子设备 | |
CN117392379B (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 |