发明内容
有鉴于此,本说明书一个或多个实施例提供一种基于自注意力机制的图像特征的提取方法、装置及设备。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种基于自注意力机制的图像特征提取方法,包括:
获取目标图像;
将所述目标图像输入至已训练的基于神经网络的编解码模型,以由所述基于神经网络的编解码模型基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量;其中,各种滑动窗口对应不同的图像特征提取维度;
获取所述基于神经网络的编解码模型输出的所述目标图像的特征向量。
可选的,所述基于神经网络的编解码模型包括第一模块;所述第一模块包括:第一卷积层和自注意力计算层;
所述基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量,包括:
所述第一模块中的第一卷积层对所述目标图像进行卷积得到该目标图像的初始特征矩阵,并将初始特征矩阵作为输入矩阵输入至本模块的自注意力计算层;
所述第一模块的自注意力计算层基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵,并依据所述第一模块的输出矩阵,确定所述目标图像的特征向量。
可选的,所述基于神经网络的编解码模型还包括:至少一个级联的第二模块;第二模块包括第二卷积层和自注意力计算层;
所述依据所述第一模块的输出矩阵,确定所述目标图像的特征向量,包括:
所述第一模块的自注意力计算层将该第一模块的输出矩阵输入至位于首位的第二模块;
每个第二模块的第二卷积层对上一个模块输出的输出矩阵进行卷积,并将卷积结果作为输入矩阵输入至本第二模块的自注意力计算层;
第二模块的自注意力计算层基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵;
最后一个第二模块的自注意力计算层将得到的输出矩阵作为所述目标图像的特征向量。
可选的,所述基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵,包括:
针对每一种滑动窗口,基于该种滑动窗口对所述输入矩阵进行自注意力编码,得到编码矩阵;
对所述编码矩阵进行卷积;其中,卷积后的编码矩阵表征所述目标图像的各像素点的位置特征;所述位置特征包括局部位置特征,和/或全局位置特征;
将卷积后的编码矩阵与所述编码矩阵进行拼接得到拼接矩阵;
将每种滑动窗口对应的拼接矩阵进行融合,得到本模块的输出矩阵。
可选的,所述基于该滑动窗口对所述输入矩阵进行注意力编码,得到编码矩阵,包括:
按照预设步长,在所述输入矩阵上滑动该滑动窗口;
针对每一次滑动操作,确定该滑动窗口在该输入矩阵上圈出的目标区域,针对该目标区域中的每个元素,计算该元素分别与本元素、以及该目标区域的其他元素之间的关联程度评分,并依据关联程度评分得到本元素对应的自注意力编码值,并在所述输入矩阵中将该元素的取值更新为该自注意力编码值,得到编码矩阵。
可选的,所述第一模块中的第一卷积层对所述目标图像进行卷积得到该目标图像的初始特征矩阵,包括:
所述第一卷积层对所述目标图像进行至少一次的连续卷积处理得到该目标图像的初始特征矩阵;其中,每次卷积处理所对应的卷积核的尺寸小于或等于预设阈值。
可选的,所述多种滑动窗口包括:用于从图像全局维度提取图像特征的第一滑动窗口、以及用于从图像局部维度提取图像特征的第二滑动窗口。
可选的,每种滑动窗口包括:至少一个有效计算区域;当有效计算区域为多个时,多个有效计算区域在滑动窗口中间隔设置;
所述确定该滑动窗口在该输入矩阵上圈出的目标区域,包括:
将该滑动窗口的有效区域在该输入矩阵上圈出的区域作为目标区域。
可选的,所述基于神经网络的编解码模型为支持自注意力机制的Transformer模型。
根据本说明书一个或多个实施例的第二方面,提出了一种基于自注意力机制的图像特征提取装置,包括:
第一获取模块,用于获取目标图像;
输入模块,用于将所述目标图像输入至已训练的基于神经网络的编解码模型,以由所述基于神经网络的编解码模型基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量;其中,各种滑动窗口对应不同的图像特征提取维度;
第二获取模块,用于获取所述基于神经网络的编解码模型输出的所述目标图像的特征向量。
可选的,所述基于神经网络的编解码模型包括第一模块;所述第一模块包括:第一卷积层和自注意力计算层;
在基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量时,所述第一模块中的第一卷积层,用于所述目标图像进行卷积得到该目标图像的初始特征矩阵,并将初始特征矩阵作为输入矩阵输入至本模块的自注意力计算层;
所述第一模块的自注意力计算层,用于基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵,并依据所述第一模块的输出矩阵,确定所述目标图像的特征向量。
可选的,所述基于神经网络的编解码模型还包括:至少一个级联的第二模块;第二模块包括第二卷积层和自注意力计算层;
在依据所述第一模块的输出矩阵,确定所述目标图像的特征向量时,所述第一模块的自注意力计算层,用于将该第一模块的输出矩阵输入至位于首位的第二模块;
每个第二模块的第二卷积层,用于对上一个模块输出的输出矩阵进行卷积,并将卷积结果作为输入矩阵输入至本第二模块的自注意力计算层;
第二模块的自注意力计算层基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵;
最后一个第二模块的自注意力计算层,用于将得到的输出矩阵作为所述目标图像的特征向量。
可选的,自注意力计算层在基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵时,用于针对每一种滑动窗口,基于该种滑动窗口对所述输入矩阵进行自注意力编码,得到编码矩阵;对所述编码矩阵进行卷积;其中,卷积后的编码矩阵表征所述目标图像的各像素点的位置特征;所述位置特征包括局部位置特征,和/或全局位置特征;将卷积后的编码矩阵与所述编码矩阵进行拼接得到拼接矩阵;将每种滑动窗口对应的拼接矩阵进行融合,得到本模块的输出矩阵。
可选的,所述自注意力计算层在基于该滑动窗口对所述输入矩阵进行注意力编码,得到编码矩阵时,用于按照预设步长,在所述输入矩阵上滑动该滑动窗口;针对每一次滑动操作,确定该滑动窗口在该输入矩阵上圈出的目标区域,针对该目标区域中的每个元素,计算该元素分别与本元素、以及该目标区域的其他元素之间的关联程度评分,并依据关联程度评分得到本元素对应的自注意力编码值,并在所述输入矩阵中将该元素的取值更新为该自注意力编码值,得到编码矩阵。
可选的,第一模块中的第一卷积层,在对所述目标图像进行卷积得到该目标图像的初始特征矩阵时,用于对所述目标图像进行至少一次的连续卷积处理得到该目标图像的初始特征矩阵;其中,每次卷积处理所对应的卷积核的尺寸小于或等于预设阈值。
可选的,所述多种滑动窗口包括:用于从图像全局维度提取图像特征的第一滑动窗口、以及用于从图像局部维度提取图像特征的第二滑动窗口。
可选的,每种滑动窗口包括:至少一个有效计算区域;当有效计算区域为多个时,多个有效计算区域在滑动窗口中间隔设置;
所述自注意力计算层在确定该滑动窗口在该输入矩阵上圈出的目标区域时,用于将该滑动窗口的有效区域在该输入矩阵上圈出的区域作为目标区域。
可选的,所述基于神经网络的编解码模型为支持自注意力机制的Transformer模型。
根据本说明书一个或多个实施例的第三方面,提出一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现上述基于自注意力机制的图像特征提取方法。
根据本说明书一个或多个实施例的第四方面,提出一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现基于自注意力机制的图像特征提取所述方法的步骤。
由上述描述可知,电子设备可获取目标图像;将目标图像输入至已训练的基于神经网络的编解码模型,以由所述基于神经网络的编解码模型基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量;其中,各种滑动窗口对应不同的图像特征提取维度;获取所述基于神经网络的编解码模型输出的所述目标图像的特征向量。
由于多种滑动窗口对应多种不同的图像特征提取维度,所以本说明书中的基于神经网络的编解码模型可从多种维度提取图像特征,使得提取出的图像特征可以从多种维度描述图像,使得图像特征对于图像的描述更为准确。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是本说明书一示例性实施例示出的一种图像特征提取系统的结构示意图。
如图1所示,该系统可包括:电子设备和基于神经网络的编解码模型。
其中,该电子设备是指具有存储计算能力的设备,可以是服务器、服务器集群、虚拟服务器、云服务器、数据中心、计算机等,这里只是对电子设备进行示例性地说明,不对其进行具体地限定。
基于神经网络的编解码模型是在神经网络上搭建的编解码模型,该基于神经网络的编解码模型可以是支持自注意力机制的模型,比如可以是支持自注意力机制的Transformer模型,也可以是其他模型。这里只是对基于神经网络的编解码模型进行示例性地说明,不对其进行具体地限定。
在本说明书中,电子设备可获取目标图像,并将目标图像输入至已训练的基于神经网络的编解码模型,以由所述基于神经网络的编解码模型基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量;其中,各种滑动窗口对应不同的图像特征提取维度;获取所述基于神经网络的编解码模型输出的所述目标图像的特征向量。
由于多种滑动窗口对应多种不同的图像特征提取维度,所以本说明书中的基于神经网络的编解码模型可从多种维度提取图像特征,使得提取出的图像特征可以从多种维度描述图像,使得图像特征对于图像的描述更为准确。
参见图2,图2是本说明书一示例性实施例示出的一种基于自注意力机制的图像特征的提取方法的流程图,该方法可应用在电子设备上,该可包括如下所示步骤。
步骤202:获取目标图像;
在实现时,电子设备可以将外部设备输入的图像作为目标图像。其中,外部设备可以是指用户终端,或者其他电子设备,比如其他服务器等外部设备。这里只是对外部设备进行示例性地说明,不对其进行具体地限定。
可选的,电子设备本地存储有图像,电子设备在接收到用于图像特征提取的任务指令时,获取本地存储的与该任务指令指示的目标图像。比如,任务指令携带的图像标识为1,电子设备将从本地存储的图像中获取标识为1的图像作为目标图像。
可选的,电子设备可以周期性地获取本地存储的未进行特征提取的图像,作为目标图像。
这里只是对获取目标图像进行示例性地说明,不对其进行具体地限定。
步骤204:将目标图像输入至已训练的基于神经网络的编解码模型,以由所述基于神经网络的编解码模型基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量;其中,各种滑动窗口对应不同的图像特征提取维度。
在实现步骤204时,电子设备或者其他设备上设置了已训练的基于神经网络的编解码模型(下面简称为编解码模型)。电子设备可将目标图像输入至已训练的编解码模型,该编解码模型可以基于支持的多种滑动窗口对目标图像进行自注意力编码,得到该目标图像特征向量。
下面通过步骤A1至步骤A2对“所述基于神经网络的编解码模型基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量”进行详细地说明。
如图3a所示,在一种可选的实现方式中,该基于神经网络的编解码模型包括第一模块。该第一模块包括第一卷积层和自注意力计算层。第一卷积层与自注意力计算层级联,第一卷积层的输出结果是自注意力计算层的输入。
步骤A1:第一卷积层对所述目标图像进行卷积得到该目标图像的初始特征矩阵,并将初始特征矩阵作为输入矩阵输入至本模块的自注意力计算层。
在一种可选的方式中,第一卷积层对应多个卷积核,各卷积核的尺寸小于或等于预设阈值。比如预设阈值为3*3,则各卷积核的尺寸小于或等于3*3。
在本说明书实施例中,第一卷积层对目标图像进行至少一次的连续卷积处理得到该目标图像的初始特征矩阵;其中,每次卷积处理使用一个卷积核。
例如,如图3b所示,假设第一卷积层具有两个卷积核。这两个卷积核分别为卷积核1和卷积核2。每个卷积核的尺寸是3*3,假设初始输入的图像的尺寸为224*224。第一卷积层采用卷积核1对目标图像进行卷积处理后得到的矩阵尺寸为112*112,然后第一卷积层采用卷积核2对尺寸为112*112的矩阵进行卷积处理,得到初始特征矩阵,该初始特征矩阵的尺寸为56*56。
采用尺寸小于预设阈值的多个卷积核进行连续卷积的好处在于:
现有的卷积方式通常是通过是一个尺寸较大的卷积核对目标图像进行一次卷积得到初始特征矩阵。而本说明书采用的是级联的尺寸较小的卷积核对目标图像进行连续卷积,由于每次卷积采用的卷积核尺寸较小,并且在一次卷积的基础上还进行后续的多次卷积,所以使得卷积粒度更为精细,从而使得这种卷积方式可以增强模型对于图像特征的提取能力。
当然,在实际应用中,第一卷积层也可以采用一个尺寸大于尺寸阈值的大卷积核对目标图像进行卷积得到初始特征矩阵,这里只是对第一卷积层得到初始特征矩阵的方式进行示例性地说明,不对其进行具体地限定。
在本说明书实施例中,第一卷积层在得到初始特征矩阵后,可以将初始特征矩阵作为输入矩阵输入至第一模块的自注意力计算层。
步骤A2:第一模块的自注意力计算层基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵,并依据所述第一模块的输出矩阵,确定目标图像的特征向量。
在一种可选的方法中,所述基于神经网络的编解码模型还包括:至少一个级联的第二模块;第二模块包括第二卷积层和自注意力计算层;
第一模块的自注意力计算层将该第一模块的输出矩阵输入至位于首位的第二模块;
每个第二模块的第二卷积层对上一个模块输出的输出矩阵进行卷积得到本第二模块的输入矩阵,并将输入矩阵输入至本第二模块的自注意力计算层;
第二模块的自注意力计算层基于支持的多种滑动窗口对该输入矩阵进行自注意力编码得到本模块的输出矩阵;
最后一个第二模块的自注意力计算层将得到的输出矩阵作为所述目标图像的特征向量进行输出。
如图4所示,图4中的基于神经网络的编解码模型包括4个模块,分别为模块1、模块2、模块3和模块4。模块1与模块2连接,模块2与模块3连接,模块3与模块4连接。其中,第一模块为模块1,第二模块为模块2、模块3和模块4。
模块1的第一卷积层对原始图像进行卷积得到初始特征矩阵,并将初始特征矩阵作为输入矩阵输入至模块1的自注意力计算层,自注意力计算层基于多种滑动窗口对输入矩阵进行自注意力编码得到输出矩阵,然后将输出矩阵输入至模块2的第二卷积层。
模块2的第二卷积层对模块1输出的输出矩阵进行卷积,并将卷积结果作为输入矩阵输入至模块2的自注意力计算层,自注意力计算层基于多种滑动窗口对输入矩阵进行自注意力编码得到输出矩阵,然后将输出矩阵输入至模块3的第二卷积层。
模块3的第二卷积层对模块2输出的输出矩阵进行卷积,并将卷积结果作为输入矩阵输入至模块3的自注意力计算层,自注意力计算层基于多种滑动窗口对输入矩阵进行自注意力编码得到输出矩阵,然后将输出矩阵输入至模块4的第二卷积层。
模块4的第一卷积层对模块3输出的输出矩阵进行卷积,并将卷积结果作为输入矩阵输入至模块4的自注意力计算层,自注意力计算层基于多种滑动窗口对输入矩阵进行自注意力编码得到输出矩阵,将得到的输出矩阵作为所述原始图像的特征向量进行输出。
这样设计的编解码模型的优点在于:
在实际应用中,提取出的图像特征会进行多种图像任务,比如图像检测任务,图像分割任务,图像分类任务等。当图像任务为图像检测、图像分割时,往往需要输入较大分辨率(即较大尺寸)的图像进行特征提取,提取出的图像特征才能满足该类图像任务。而输入较大分辨率的图像进行特征提取,会增大自注意力计算层的计算量。
为了减少自注意力编码的计算量,第一模块后级联了至少一个第二模块。每个第二模块的第二卷积层会先对上一个模块输出的矩阵进行卷积,减小矩阵尺寸以及增大通道数,再对卷积后的矩阵进行自注意力计算。也就是说,通过模块级联的方式,依次减少输入各模块自注意力计算层的矩阵尺寸,达到增大感受野以及减少自注意力计算层的计算量的目的,同时通过增大通道来弥补尺寸减少的损失。
仍以图4为例,假设原始图像的尺寸为H*W,其中H为长,W为宽,通道数为C。
经过模块1第一卷积层卷积处理后,输入该模块1的自注意力计算层的矩阵尺寸为H/4*W/4,通道数仍为C。
经过模块2的第二卷积层卷积处理后,输入该模块2的自注意力计算层的矩阵尺寸为H/8*W/8,通道为2C。
经过模块3的第二卷积层卷积处理后,输入该模块3的自注意力计算层的矩阵尺寸为H/16*W/16,通道为4C。
经过模块4的第二卷积层卷积处理后,输入该模块4的自注意力计算层的矩阵尺寸为H/32*W/32,通道为8C。
由此可见,每经过一个模块的卷积层就会将上一个模块输出的矩阵的尺寸减半,通道数加倍。矩阵尺寸减半可以增大感受野,同时可以减少自注意力计算层的计算量,通道数加倍可以弥补尺寸减半的损失,保证模型精度。
当然,在实际应用中,于神经网络的编解码模型也可以只包括第一模块。比如,当原始图像像素的分辨率较低时,基于神经网络的编解码模型也可以只包括第一模块。第一卷积层对所述目标图像进行卷积得到该目标图像的初始特征矩阵,并将初始特征矩阵作为输入矩阵输入至本模块的自注意力计算层。第一模块的自注意力计算层基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵,并从本层输出的输出矩阵中提取出图像的特征向量。这里只是对模型结构进行示例性地说明,不对其进行具体限定。
由于本说明书各模块的自注意力编码涉及多种滑动窗口,因此先对多种滑动窗口进行介绍,再对自注意力层对输入本层的输入矩阵进行多滑窗的进行自注意力编码的方法进行介绍。
1)多种滑动窗口
本说明书提出了多种滑动窗口,不同的滑动窗口代表不同的特征提取方式。比如,本说明书提出了多种滑动窗口包括:用于从图像全局维度提取图像特征的第一滑动窗口、以及用于从图像局部维度提取图像特征的第二滑动窗口。其中,第一滑动窗口可以包括一个或者多个窗口,第二滑动窗口也可以包括一个或多个窗口。
例如,本说明书的滑动窗口由DSSA(Dilation Stripe Self-Attention,扩张条自注意力)窗口和CWSA(Cross Window Self-Attention,跨窗口自注意力)窗口组成。
DSSA窗口是用于从图像全局维度提取图像特征的第一滑动窗口,而CWSA窗口是用于从图像局部维度提取图像特征的第二滑动窗口。
例如,由图5a可以看出,图5a中DSSA窗口是由横轴窗口和纵轴窗口组成的,横轴窗口和纵轴窗口是用于从全局维度提取图像特征的第一滑动窗口。
由图5b可以看出,图5b中的CWSA窗口是由间隔窗口和固定窗口组成,间隔窗口和固定窗口是用于从局部维度提取图像特征的第二滑动窗口。
可选的,在本说明书实施例中,本说明书在滑动窗口中设置了有效计算区域。有效计算区域是指,在每次滑动中,当滑动窗口圈出矩阵区域后,在该矩阵区域中的位于有效计算区域的元素进行自注意力编码。
例如,如图6a所示,假设图6a中的纵轴窗口中的阴影部分表示有效计算区域,白色横条表示无效计算区域。
如图6b所示,图6b表示矩阵,图6b中的每一格表示矩阵中的一个元素。假设在滑动窗口在第一次滑动时,滑动窗口在矩阵中圈出的目标区域为A区域(即图6b中的实线框区域),A区域中位于阴影中的元素之间进行自注意力计算,即图6b实线矩形中的第二列、第四列和第六列位于阴影部分的元素之间进行自注意力计算。
可选的,在本说明书中,当滑动窗口中的有效计算区域包括多个时,多个有效计算区域间隔设置。
例如,图5a中的纵轴窗口中的阴影横条表示有效计算区域,白色横条表示无效计算区域。该纵轴窗口包括3个有效计算区域,3个有效区域间隔设置。比如,按照从左向右的顺序,第一个有效计算区域和第二个有效计算区域之间设置有无效计算区域,第二个有效计算区域和第三个有效计算区域之间设置有无效计算区域,通过这种设置方式,将3个有效计算区域间隔设置。
再例如5b所示的间隔窗口,间隔窗口中的每个黑色矩形表示一个有效计算区域。相邻的两个有效计算区域设置有无效计算区域。
需要说明的是,在滑动窗口中间隔设置有效计算区域的优点在于:
在现有的自注意力机制中,滑动窗口中的所有区域是有效区域,并且在按照预设步长滑动后,滑动窗口在矩阵上每次滑动所圈出的区域并不重合,这就使得无法建立不同区域之间的关联关系。
而本说明书采用的滑动窗口的有效区域间隔设置,所以有利于滑动窗口在矩阵上多次滑动所圈出的多个区域有重合,所以可以建立区域之间的关联关系。
例如,现有的滑动窗口设置如图7a所示。
图7b-图7d表示图7a所示的滑动窗口在矩阵中滑动的过程。假设滑动步长为1,则每次滑动圈出的区域并不重合。
假设,假设滑动窗口滑动三次。第一次滑动,如图7b所述滑动窗口圈出第一列。第二次滑动,如图7c所示滑动窗口圈出第二列。第三次滑动,如图7d所示滑动窗口圈出第三列。由此可以看见,三次滑动圈出的区域并不重合,所以不能建立区域间的关联关系。
而本说明书的滑动窗口假设如图8a所示。
图8b-图8d表示如图8a的滑动窗口在矩阵中滑动。假设滑动步长为1。
假设,假设滑动窗口滑动三次。第一次滑动,如图8b所述滑动窗口圈出第2、4、6列的阴影部分。第二次滑动,如图8c所示滑动窗口圈出第3、5、7列的阴影部分。第三次滑动,如图8d所示滑动窗口圈出第4、6、8列的阴影部分。由此可以看见,第一次滑动和第三次滑动有重合(即第4列的阴影部分),所以可以实现不同区域的元素的关联关系的建立。
2)自注意力层对输入本层的输入矩阵进行多滑窗的进行自注意力编码为例进行说明
在本说明书实施例中,第一模块和第二模块中的自注意力计算层的自注意力编码方式相同,只不过在编码中所使用的参数,以及编码对象不同。
比如,第一模块的自注意力层的编码对象是第一模块的第一卷积层输出的矩阵。而第二模块的自注意力计算层的编码对象是第二模块的第二卷积层输出的矩阵。
在实现时,无论是第一模块的自注意力计算层还是第二模块的自注意力计算层,都进行如下所示的操作。
自注意力计算层针对每一种滑动窗口,基于该种滑动窗口对所述输入矩阵进行自注意力编码,得到编码矩阵。然后,自注意力计算层对所述编码矩阵进行卷积,并将卷积后的编码矩阵与所述编码矩阵进行拼接得到拼接矩阵;其中,卷积后的编码矩阵表征所述目标图像的各像素点的位置特征;所述位置特征包括局部位置特征,或全局位置特征。最后,自注意力计算层可将每种滑动窗口对应的拼接矩阵进行融合,得到本模块的输出矩阵。
下面通过步骤B1至B4对任意自注意力层对输入本层的输入矩阵进行多滑窗的进行自注意力编码为例进行说明。
步骤B1:针对每一种滑动窗口,基于该种滑动窗口对所述输入矩阵进行注意力编码,得到编码矩阵。
在实现时,自注意力计算层按照预设步长,在所述输入矩阵上滑动该滑动窗口;
针对每一次滑动操作,自注意力计算层确定该滑动窗口在该输入矩阵上圈出的目标区域。针对该目标区域中的每个元素,计算该元素分别与本元素、以及该目标区域的其他元素之间的关联程度评分,并依据关联程度评分得到本元素对应的自注意力编码值,并在所述输入矩阵中将该元素更新为该自注意力编码值,得到编码矩阵。
例如,假设滑动窗口如图9a所示,
如图9b所示,假设图9b的虚线矩形表示输入矩阵,虚线矩形中的每一格表示一个元素。假设滑动窗口在第一次滑动后圈出的区域图9b中的实线矩形所示。
由此可见,滑动窗口在第一次滑动后圈出了3*3的区域。由于滑动窗口的第一列和第三列为有效计算区域,所以该3*3区域中的第一列和第三列为目标区域。
为了方便叙述,将图9b中的第一行第一列的元素表示为a11,将第一行第二列的元素表示为a12,…,将第i行第j列的元素表示为aij。
下面以目标区域中的a11为例进行说明。自注意力层可计算a11分别与a11、a21、a31、a13、a23、a33的关联程度评分。然后,自注意力计算层可依据这些关联程度评分,计算出a11的编码值。
假设a11的原取值为0.8,假设计算出的编码值为0.6,则将a11的取值由0.8修改为0.6。
依次类推,在滑动窗口完成所有滑动后,可以得到编码矩阵。
此外,对于“针对该目标区域中的每个元素,计算该元素分别与本元素、以及该目标区域的其他元素之间的关联程度评分,并依据关联程度评分得到本元素对应的自注意力编码值”的具体实现方式可以按照现有的自注意力机制的计算方式得到,这里简单介绍下获取自注意力计算方式。
在实现时,针对目标区域中的每个元素,自注意力计算层可以计算该元素的q向量、k向量和v向量。
然后,针对每一个元素,自注意力计算层可以将该元素的q向量分别与自己的k向量点乘,得到该元素与本元素的关联程度评分。自注意力层将该特征的值的q向量分别与该目标区域中的其他元素的k向量点乘,得到该元素与其他元素之间的关联程度评分。然后,自注意力计算层该元素分别与本元素、以及该目标区域的其他元素之间的关联程度评分除以预设的尺度标量,再进行归一化以及softmax处理,并将处理结果与该元素的v向量相乘,得到该元素的自注意力编码值。
而在实际应用中会通过矩阵运算,得到目标区域的各个元素的自注意力编码值。具体地,自注意力计算层确定该目标区域对应的Q矩阵、K矩阵,V矩阵。然后将Q矩阵与K矩阵点乘,并对点乘结果除以预设的尺度标量,再进行归一化处理和softmax处理,将处理结果与V矩阵相乘,得到目标区域中各个点的自注意力编码值。
步骤B2:自注意力计算层对所述编码矩阵进行卷积。
其中,卷积后的编码矩阵表征所述目标图像的各像素点的位置特征;所述位置特征包括局部位置特征,或全局位置特征。
需要说明的是,对编码矩阵进行卷积,是为了得到表示目标图像的各像素点的局部位置和/或全局位置的特征,让各像素点的位置特征更为充分的表达。
步骤B3:自注意力计算层将卷积后的编码矩阵与所述编码矩阵进行拼接得到拼接矩阵。
步骤B4:自注意力计算层将每种滑动窗口对应的拼接矩阵进行融合,得到本模块的输出矩阵。
由上述描述可知,每一种滑动窗口对应一个拼接矩阵,自注意力计算层可以将各滑动窗口对应的拼接矩阵融合得到本模块的输出矩阵。
需要说明的是,现有的自注意力计算是对矩阵进行自注意力编码得到编码矩阵,然后将编码矩阵作为输出矩阵。
而在本说明书中,是对采用每种滑动窗口得到的编码矩阵进行卷积,得到表示图像中各像素点全局位置和/或局部位置的卷积结果。再对各滑动窗口对应的卷积结果和编码矩阵进行拼接得到各滑动窗口的拼接矩阵,再将各滑动窗口的拼接矩阵进行融合得到输出矩阵。通过多种滑窗的自注意力计算,表示出图像像素的多种关联关系,通过对编码矩阵卷积,表示出图像像素的局部位置和/或全局位置,因此该输出矩阵表示了更为丰富的图像信息,有利于增强整个模型特征提取的准确性。
步骤106:获取所述基于神经网络的编解码模型输出的所述目标图像的特征。
在实现时,在一种可选的实现方式中,当基于神经网络的编解码模型包括第一模块和至少一个第二模块时,最后一个第二模块的自注意力计算层依据从输出矩阵中确定出目标图像的图像特征并输出。电子设备可以获取基于神经网络的编解码模型输出的目标图像的图像特征。
当然,在另一种可选的实现方式中,当基于神经网络的编解码模型只包括第一模块时,第一模块的自注意力计算层依据从输出矩阵中确定出目标图像的特征向量并输出。电子设备可以获取基于神经网络的编解码模型输出的目标图像的特征向量。
此外,在本说明书实施例中,在提取目标图像的图像特征后,电子设备可以基于目标图像的图像特征进行多种图像处理任务。比如,电子设备可以基于目标图像的图像特征进行图像分类。比如图像上有个包,则确定包的颜色类型,款式类型等。
当然,电子设备可基于目标图像的图像特征进行图像分割等。这里只是对图像处理任务进行示例性地说明,不对其进行具体地限定。
由上述描述可知,第一,本说明书的基于神经网络的编解码模型采用多种滑动窗口进行自注意力编码,由于多种滑动窗口对应多种不同的图像特征提取维度,所以本说明书中的基于神经网络的编解码模型可从多种维度提取图像特征,使得图像特征可以从多种维度描述图像,使得图像特征对于图像的描述更为准确。
第二、本说明书的自注意力计算层在计算出编码矩阵后,对编码矩阵进行卷积,并将卷积后的编码矩阵与编码矩阵拼接得到本模块的输出矩阵。一方面,卷积后编码矩阵可以表示出图像各像素点的多种维度的位置特征,使得位置特征的表达更为丰富。另一方面,通过多种滑窗的自注意力计算,表示出图像像素的多种关联关系,通过对编码矩阵卷积,表示出图像像素的局部位置和/或全局位置,因此该输出矩阵表示了更为丰富的图像信息,有利于增强整个模型特征提取的准确性。
第三,第一模块的第一卷积层采用级联的尺寸较小的卷积核对目标图像进行连续卷积,由于每次卷积采用的卷积核尺寸较小,并且在一次卷积的基础上还进行后续的多次卷积,所以使得卷积粒度更为精细,从而使得这种卷积方式可以增强图像提取特征能力。
图10是本说明书实施例提供的一种电子设备的示意结构图。请参考图10,在硬件层面,该设备包括处理器1002、内部总线1004、网络接口1006、内存1008以及非易失性存储器1010,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器1002从非易失性存储器1010中读取对应的计算机程序到内存1008中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图11,基于自注意力机制的图像特征提取装置可以应用于如图10所示的设备中,以实现本说明书的技术方案。其中,该基于自注意力机制的图像特征提取装置可以包括:
第一获取单元1101,用于获取目标图像;
输入单元1102,用于将所述目标图像输入至已训练的基于神经网络的编解码模型,以由所述基于神经网络的编解码模型基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量;其中,各种滑动窗口对应不同的图像特征提取维度;
第二获取单元1103,用于获取所述基于神经网络的编解码模型输出的所述目标图像的特征向量。
可选的,所述基于神经网络的编解码模型包括第一模块;所述第一模块包括:第一卷积层和自注意力计算层;
在基于支持的多种滑动窗口对所述目标图像进行自注意力编码,得到该目标图像的特征向量时,所述第一模块中的第一卷积层,用于所述目标图像进行卷积得到该目标图像的初始特征矩阵,并将初始特征矩阵作为输入矩阵输入至本模块的自注意力计算层;
所述第一模块的自注意力计算层,用于基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵,并依据所述第一模块的输出矩阵,确定所述目标图像的特征向量。
可选的,所述基于神经网络的编解码模型还包括:至少一个级联的第二模块;第二模块包括第二卷积层和自注意力计算层;
在依据所述第一模块的输出矩阵,确定所述目标图像的特征向量时,所述第一模块的自注意力计算层,用于将该第一模块的输出矩阵输入至位于首位的第二模块;
每个第二模块的第二卷积层,用于对上一个模块输出的输出矩阵进行卷积,并将卷积结果作为输入矩阵输入至本第二模块的自注意力计算层;
第二模块的自注意力计算层基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵;
最后一个第二模块的自注意力计算层,用于将得到的输出矩阵作为所述目标图像的特征向量。
可选的,自注意力计算层在基于支持的多种滑动窗口对所述输入矩阵进行自注意力编码得到本模块的输出矩阵时,用于针对每一种滑动窗口,基于该种滑动窗口对所述输入矩阵进行自注意力编码,得到编码矩阵;对所述编码矩阵进行卷积;其中,卷积后的编码矩阵表征所述目标图像的各像素点的位置特征;所述位置特征包括局部位置特征,和/或全局位置特征;将卷积后的编码矩阵与所述编码矩阵进行拼接得到拼接矩阵;将每种滑动窗口对应的拼接矩阵进行融合,得到本模块的输出矩阵。
可选的,所述自注意力计算层在基于该滑动窗口对所述输入矩阵进行注意力编码,得到编码矩阵时,用于按照预设步长,在所述输入矩阵上滑动该滑动窗口;针对每一次滑动操作,确定该滑动窗口在该输入矩阵上圈出的目标区域,针对该目标区域中的每个元素,计算该元素分别与本元素、以及该目标区域的其他元素之间的关联程度评分,并依据关联程度评分得到本元素对应的自注意力编码值,并在所述输入矩阵中将该元素的取值更新为该自注意力编码值,得到编码矩阵。
可选的,第一模块中的第一卷积层,在对所述目标图像进行卷积得到该目标图像的初始特征矩阵时,用于对所述目标图像进行至少一次的连续卷积处理得到该目标图像的初始特征矩阵;其中,每次卷积处理所对应的卷积核的尺寸小于或等于预设阈值。
可选的,所述多种滑动窗口包括:用于从图像全局维度提取图像特征的第一滑动窗口、以及用于从图像局部维度提取图像特征的第二滑动窗口。
可选的,每种滑动窗口包括:至少一个有效计算区域;当有效计算区域为多个时,多个有效计算区域在滑动窗口中间隔设置;
所述自注意力计算层在确定该滑动窗口在该输入矩阵上圈出的目标区域时,用于将该滑动窗口的有效区域在该输入矩阵上圈出的区域作为目标区域。
可选的,所述基于神经网络的编解码模型为支持自注意力机制的Transformer模型。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。