一种基于注意力重定位的弱监督定位方法和装置转让专利

申请号 : CN202211236327.X

文献号 : CN115311504B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏慧卢修生叶越王瑾

申请人 : 之江实验室

摘要 :

本发明公开了一种基于注意力重定位的弱监督定位方法和装置,将图像切分成图像块并线性投影映射成局部表征,利用网络中第一层至倒数第二层的transformer层的自注意力机制构建类别关联向量;对类别关联向量进行排序和积分图操作,构建重定位二值矩阵;构建掩码transformer层,局部表征输入掩码transformer层中获得分类权重向量;基于分类权重向量对局部表征实现加权和操作,将类别表征和加权和结果一并送入最后一层transformer层;训练过程中,对最后一层transformer层的输出类别表征和图像类别标签构建交叉熵损失函数,进行训练。测试过程中融合类别关联向量和分类权重向量,获得目标检测框信息,实现目标定位。相较于现有技术,本发明充分发挥transformer长程依赖能力,目标定位能力更优。

权利要求 :

1.一种基于注意力重定位的弱监督定位方法,其特征在于,包括以下步骤:S1、构建图像分类数据集;所述图像分类数据集中包括训练集和测试集;所述训练集由图像和分类标签组成;

S2、调整图像分类数据集中的图像的宽和高,将图像不交叠地切分成若干个图像块;将图像块进行线性投影映射成局部表征;构建类别表征,将局部表征和类别表征共同送入Deit网络;所述Deit网络中共有L层transformer层;

S3、通过Deit网络中第一层至第L‑1层transformer层逐层利用自注意力机制构建类别表征与局部表征之间的关联信息,生成类别关联向量;

S4、对所有类别关联向量进行累加融合,并对融合结果进行从大到小排序,基于排序结果构建积分图;

S5、基于积分图构建重定位二值矩阵,对第L‑1层transformer层输出的局部表征是否需要重定位进行判断;

S6、基于重定位二值矩阵,构建掩码transformer层;

S7、将L‑1层transformer层输出的局部表征送入掩码transformer层中,再进行线性投影映射和指数归一化操作,生成分类权重向量;

S8、对于训练集的图像,利用分类权重向量,对第L‑1层transformer层输出的局部表征进行加权和操作,将加权和结果与第L‑1层transformer层输出的分类表征一同送入第L层transformer层中;

S9、对第L层transformer层输出的分类表征进行线性投影映射,生成图像分类结果,基于图像分类结果和图像分类标签构建交叉熵损失,训练Deit网络;

S10、对于测试集的图像,融合S3中的类别关联向量和S7中的分类权重向量,生成激活矩阵,设置阈值,根据激活矩阵中值与阈值之间的关系,生成二值图,基于二值图,建立等级树结构,获取矩形框信息,实现目标定位功能。

2.如权利要求1所述的一种基于注意力重定位的弱监督定位方法,其特征在于,步骤S2具体包括如下子步骤:S21、调整图像分类数据集中的图像的宽和高均为224;

S22、将调整好的图像不交叠地切分成196个16*16的图像块;

S23、对图像块进行线性投影映射成局部表征;

S24、构建分类表征,将分类表征和所有局部表征拼接在一起,生成全局表征;

S25、构建可学习位置编码,对全局表征和可学习位置编码求和,将求和结果送入Deit网络。

3.如权利要求1所述的一种基于注意力重定位的弱监督定位方法,其特征在于,步骤S2中的Deit网络采用Deit‑B_16,共有12层transformer层。

4.如权利要求1所述的一种基于注意力重定位的弱监督定位方法,其特征在于,步骤S1中的图像分类数据集采用包含若干个类别的自然图像。

5.如权利要求1所述的一种基于注意力重定位的弱监督定位方法,其特征在于,步骤S10中阈值为0.1,令激活矩阵中值大于阈值的置255,小于阈值的置0,由此生成二值图。

6.一种基于注意力重定位的弱监督定位装置,其特征在于:包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1‑5任一项所述的一种基于注意力重定位的弱监督定位方法。

7.一种计算机可读存储介质,其特征在于:其上存储有程序,该程序被处理器执行时,实现权利要求1‑5任一项所述的一种基于注意力重定位的弱监督定位方法。

说明书 :

一种基于注意力重定位的弱监督定位方法和装置

技术领域

[0001] 本发明涉及图像目标检测技术领域,特别涉及一种基于注意力重定位的弱监督定位方法和装置。

背景技术

[0002] 弱监督目标定位是指利用图像级别的标签(如图像类别)对网络模型进行分类训练,实现模型目标定位功能的一类方法。虽然目前最优的目标定位方法依旧是采用全监督训练方法,但是全监督方法的训练数据需要大量的物体目标框标注信息,密集标注图像中所有目标位置信息势必大大增加人力和时间成本。而弱监督定位方法仅仅只需要标注图像整体类别的训练数据,人力和时间成本上的优势导致近年来弱监督定位方法获得了广泛的关注。
[0003] 弱监督定位方法大多是基于类激活热力图(class activation map)方法展开。类激活热力图仅强调了图像目标中最具有判别性的区域,难以包含目标全貌,由此引出了需要改进方法,如对抗性擦除方法(adversarial erasing)、发散激活(divergent activation)、多任务关联训练等等,然而这类方法虽然引导网络关注判别性次优的区域,但是大多只是缓解类激活热力图仅检测目标局部的问题,因为卷积神经网络特征局部关联难以捕捉全局的固有特点,类激活热力图方法的缺陷依旧存在。近年来随着transformer网络结构在计算机视觉领域的广泛应用,如何利用transformer结构中的长程依赖能力实现更好的弱监督定位,也有了初步研究,如TS‑CAM(《TS‑CAM: Token Semantic Coupled Attention Map forWeakly Supervised Object Localization》)融合transformer和类激活热力图结构,但是该方法虽然能定位到更完整的目标,依旧未充分发挥transformer的长程能力。

发明内容

[0004] 本发明的目的在于提供一种基于注意力重定位的弱监督定位方法和装置,以克服现有技术中的不足。
[0005] 为实现上述目的,本发明提供如下技术方案:
[0006] 本申请公开了一种基于注意力重定位的弱监督定位方法,包括以下步骤:
[0007] S1、构建图像分类数据集;所述图像分类数据集中包括训练集和测试集;所述训练集由图像和分类标签组成;
[0008] S2、调整图像分类数据集中的图像的宽和高,将图像不交叠地切分成若干个图像块;将图像块进行线性投影映射成局部表征;构建类别表征,将局部表征和类别表征共同送入Deit网络;所述Deit网络中共有L层transformer层;
[0009] S3、通过Deit网络中第一层至第L‑1层transformer层逐层利用自注意力机制构建类别表征与局部表征之间的关联信息,生成类别关联向量;
[0010] S4、对所有类别关联向量进行累加融合,并对融合结果进行从大到小排序,基于排序结果构建积分图;
[0011] S5、基于积分图构建重定位二值矩阵,对第L‑1层transformer层输出的局部表征是否需要重定位进行判断;
[0012] S6、基于重定位二值矩阵,构建掩码transformer层;
[0013] S7、将L‑1层transformer层输出的局部表征送入掩码transformer层中,再进行线性投影映射和指数归一化操作,生成分类权重向量;
[0014] S8、对于训练集的图像,利用分类权重向量,对第L‑1层transformer层输出的局部表征进行加权和操作,将加权和结果与第L‑1层transformer层输出的分类表征一同送入第L层transformer层中;
[0015] S9、对第L层transformer层输出的分类表征进行线性投影映射,生成图像分类结果,基于图像分类结果和图像分类标签构建交叉熵损失,训练Deit网络;
[0016] S10、对于测试集的图像,融合S3中的类别关联向量和S7中的分类权重向量,生成激活矩阵,设置阈值,令激活矩阵中值大于阈值的置255,小于阈值的置0,生成二值图,基于二值图,建立等级树结构,获取矩形框信息,实现目标定位功能。
[0017] 作为优选,步骤S2具体包括如下子步骤:
[0018] S21、调整图像分类数据集中的图像的宽和高均为224;
[0019] S22、将调整好的图像不交叠地切分成196个16*16的图像块;
[0020] S23、对图像块进行线性投影映射成局部表征;
[0021] S24、构建分类表征,将分类表征和所有局部表征拼接在一起,生成全局表征;
[0022] S25、构建可学习位置编码,对全局表征和可学习位置编码求和,将求和结果送入Deit网络。
[0023] 作为优选,步骤S2中的Deit网络采用Deit‑B_16,共有12层transformer层。
[0024] 作为优选,步骤S1中的图像分类数据集采用包含若干个类别的自然图像。
[0025] 作为优选,步骤S10中阈值为0.1,令激活矩阵中值大于阈值的置255,小于阈值的置0,由此生成二值图
[0026] 一种基于注意力重定位的弱监督定位装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于上述的一种基于注意力重定位的弱监督定位方法。
[0027] 一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述的一种基于注意力重定位的弱监督定位方法。
[0028] 本发明的有益效果:
[0029] 本发明公开了一种基于注意力重定位的弱监督定位方法和装置,将图像切分成图像块并线性投影映射成局部表征,送入Deit网络结构中。利用Deit网络中第一层至倒数第二层的transformer层的自注意力机制构建类别表征和局部表征之间的关联关系,生成类别关联向量。对类别关联向量进行排序和积分图操作,基于关联阈值构建重定位二值矩阵。利用重定位二值矩阵构建掩码transformer层,局部表征输入掩码transformer层中获得分类权重向量。基于分类权重向量对局部表征实现加权和操作,将类别表征和加权和结果一并送入最后一层transformer层。训练过程中,对最后一层transformer层的输出类别表征和图像类别标签构建交叉熵损失函数,进行分类训练。测试过程中融合类别关联向量和分类权重向量,获得目标检测框信息,实现目标定位。相较于以往的弱监督定位方法,本发明方法充分发挥transformer长程依赖能力,目标定位能力更优。
[0030] 本发明的特征及优点将通过实施例结合附图进行详细说明。

附图说明

[0031] 图1为本发明一种基于注意力重定位的弱监督定位方法的流程图
[0032] 图2为本发明的检测定位结果图;
[0033] 图3是本发明一种基于注意力重定位的弱监督定位装置的结构示意图。

具体实施方式

[0034] 为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0035] 参阅图1,本发明一种基于注意力重定位的弱监督定位方法,具体过程如下:
[0036] 步骤S1:构建包含鸟类、动物、植物、人等1000个类别的自然图像分类数据集共120多万张,其中训练集120万张,测试集5万张。(ImageNet‑1k公开数据集);
[0037] 步骤S2:给定宽、高都为224的RGB图像,将图像不交叠地切分成196(14*14)个宽、高都为16的图像块,这些图像块进行线性投影映射成局部表征(part token)。 构建类别表征(class token),将局部表征和类别表征共同送入Deit网络(本发明中选择Deit‑B_16,共L=12层transformer层);
[0038] 步骤S3:第1层至第L‑1层transformer层逐层利用自注意力机制构建类别表征和局部表征之间的关联信息,生成类别关联向量;
[0039] 步骤S4:对所有类别关联向量进行累加融合,并对融合结果进行从大到小排序,基于排序结果构建积分图;
[0040] 步骤S5:设置关联阈值,基于积分图构建重定位二值矩阵,对第L‑1层transformer层输出的局部表征是否需要重定位进行判断:
[0041] 步骤S6:基于重定位二值矩阵,构建掩码transformer层;
[0042] 步骤S7:第L‑1层transformer输出的局部表征送入掩码transformer层中,输出结果进行线性投影映射和指数归一化操作,生成分类权重向量;
[0043] 步骤S8:利用分类权重向量,对第L‑1层transformer输出的局部表征进行加权和操作,将第L‑1层transformer层输出的分类表征和加权和结果一同送入第L层transformer层中。
[0044] 步骤S9:对第L层transformer层输出的分类表征进行线性投影映射(linear projection mapping)操作,生成图像分类结果。基于分类结果和图像分类标签构建交叉熵损失,训练网络。
[0045] 步骤S10:测试过程中,融合类别关联向量和分类权重向量,生成激活矩阵。构建阈值,激活矩阵中值大于阈值的置255,小于阈值的置0,由此生成二值图。基于二值图,建立等级树结构,获取矩形框信息,从而实现目标定位功能。
[0046] 在一种可行的实施例中,所述步骤S1中,给定  个样本和  个类别的自然图像分类数据  ,  为样本,  为属性分类标签。
[0047] 在一种可行的实施例中,所述步骤S2中,给定宽、高都为224的RGB图像,将图像等分切成196(14*14)个相同尺寸(16*16)的不重叠图像块,并对图像块做线性投影映射,生成维度 为局部表征。构建可学习分类表征,将分类表征(class token)和所有局部表征(patch token)拼接一起,生成全局表征。构建可学习位置编码(learnable position embedding),对全局表征和可学习位置编码求和,将求和结果送入Deit‑B‑16网络中:
[0048]   (1)
[0049] 其中,  表示输入Deit‑B‑16网络的全局表征,  共有  个序列,每个序列特征维度为  (1个分类表征和M个局部表征)。  表示分类表征,  表示线性投影映射操作,  表示第 i个图像块, M表示图像块数目, P表示可学习位置编码。
[0050] 在一种可行的实施例中,所述步骤S3中,对Deit‑B‑16网络进行从第1层到第L‑1层逐transformer层做多头自注意力机制(multi‑head self‑attention MHSA), 构建每一层类别表征和局部表征之间的关联信息,生成类别关联向量。
[0051] 一个完整的transformer层公式如下:
[0052]    (2)
[0053]  (3)
[0054]  (4)
[0055]
[0056]
[0057]     (7)
[0058]     (8)
[0059] 其中  、  、  、  、  、  分别表示宽、高都为D的可学习编码矩阵,  、 、 、  、  、  分别表示长度为D的可学习编码向量。  表示矩阵外积运算。  表示第  层transformer层的输出全局表征结果,   表示第   层transformer层的输出全局表征结果。  和  分别有M+1个序列,每个序列特征D 维。   表示全局表征  的自注意关联矩阵,   表示自注意关联矩阵的指数归一化结果,即归一化自注意关联矩阵,宽、高都为 M+1。
[0060] 第   层transformer层的类别关联向量公式如下:
[0061]   (9)
[0062] 其中 表示第 层transformer层的类别关联向量,长度为 M。
[0063] 在一种可行的实施例中,所述步骤S4中,对所有类别关联向量进行累加融合,并对融合结果进行从大到小排序,基于排序结果构建积分图;
[0064]     (10)
[0065]     (11)
[0066] 其中 表示向量中第  大的值;   表示一行   列的积分图,  表示   的第 列的值。
[0067] 在一种可行的实施例中,所述步骤S5中,设置关联阈值,基于积分图构建重定位二值矩阵,对L‑1层transformer层输出的局部表征是否需要重定位进行判断:
[0068]
[0069]
[0070] 其中 i表示类别关联向量   中第  大的值在   中的列系数值;   表示关联阈值;   长度为  ,表示局部表征是否需要进行重定位的二值向量,  表示   的第 i个局部表征需要进行重定位操作,   表示  的第 i个局部表征不进行重定位操作。 表示点乘操作, I表示M行M列的单位矩阵, B表示重定位二值矩阵。
[0071] 在一种可行的实施例中,所述步骤S6中,基于重定位二值矩阵,将步骤S3中完整transformer结构中的公式(6)用下式(14)替换,其他保留不变,构建掩码transformer层。
[0072]
[0073] 其中  表示掩码transformer层的自注意关联矩阵,  表示掩码transformer层的归一化自注意关联矩阵。
[0074] 在一种可行的实施例中,所述步骤S7中,将第L‑1层transformer层的输出  的局部表征送入掩码transformer层中,输出结果进行线性投影映射和指数归一化操作,生成分类权重向量:
[0075]
[0076]
[0077] 其中  表示掩码transformer的输出局部表征,M行 D列。 表示 D行1列的可学习编码矩阵,  表示1行1列的可学习编码向量,  表示M行1列的线性投影映射结果。 表示 M行1列的分类权重向量。
[0078] 在一种可行的实施例中,所述步骤S8中,利用类权重向量  ,对  的局部表征进行加权和操作,将第L‑1层transformer层输出的分类表征  和加权和结果一同送入第L层transformer层中。
[0079]
[0080] 其中  表示  的第 K个局部表征序列,  表示局部表征的加权和结果。
[0081] 在一种可行的实施例中,所述步骤S9中,对第L层transformer层输出的分类表征进行线性投影映射(linear projection mapping)操作,生成图像分类结果。基于分类结果和图像分类标签构建交叉熵损失,训练网络。
[0082]
[0083]
[0084] 其中  表示第L层transformer层输出的分类表征 表征外积操作,   表示 D 行 C 列的可学习编码矩阵,  表示1行C 列的可学习矩编码向量, P表示长度为 C 的分类向量。  表示交叉熵损失函数, y表示图像分类标签, y表示 y的独热编码形式。
[0085] 在一种可行的实施例中,所述步骤10中,测试过程中,融合步骤S4的类别关联向量和步骤S5的分类权重向量,生成激活矩阵。调整激活矩阵至与原图一样大小后,构建阈值 ,激活矩阵中值大于阈值的置255,小于阈值的置0,由此生成二值图。基于二值图,建立等级树结构,获取矩形轮廓信息(python中的cv2.findContours函数),从而实现目标定位功能。
[0086]
[0087]
[0088] 其中  表示长度为 M的类别关联向量, b表示长度为 M的重定位二值向量,  表示b的转置,  表示分类权重向量。  表示矩阵形状改变操作,将长度为M的向量m,变化为  行  列的激活矩阵 。
[0089] 本发明的方法使用Pytorch框架进行实验,在自然图像数据上使用初始学习率为0.0005的AdamW优化器,训练过程中,图像尺寸调整至256*256,在随机裁剪至224*224大小,训练过程使用4个gpu,每个gpu的batch size设置为512,训练12个epoch。本发明所有实验加载Deit‑B_16预训练模型训练。
[0090] 图2是本发明检测定位结果图,图中灰色框为标注检测框,白色框为本发明模型得到的测试检测框,右上角的数字标注标注检测框和测试检测框之间的矩形框交并比(IOU)信息,值越大说明定位效果越好。
[0091] 本发明一种基于注意力重定位的弱监督定位装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明一种基于注意力重定位的弱监督定位装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0092] 对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0093] 本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于注意力重定位的弱监督定位装置。
[0094] 所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0095] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。