Mask-guided Contrastive Attention Model for Person Re-Identification 论文学习

提出一种掩模引导的对比注意模型(MGCAM),用于人员重新识别(ReID)任务,通过二进制分割掩模减少背景杂乱,学习判别特征。MGCAM结合区域级三联体损失,提升ReID模型鲁棒性。

论文地址: 

http://openaccess.thecvf.com/content_cvpr_2018/papers/Song_Mask-Guided_Contrastive_Attention_CVPR_2018_paper.pdf

这篇CVPR2018的佳作引人注目之处莫过于通过mask 提取出人体图像而去除背景在ReID过程中的影响。理论上讲这才是最接近人类进行物体识别时的步骤:我们不会把行人进行BBox,而是通过轮廓对人物进行辨识。

废话不多说了,下面正式对这篇论文进行讲解(翻译)。

摘要:

人员重新识别(ReID)是计算机视觉中一项重要且具有挑战性的任务。由于各种背景杂乱,观点和身体姿势的变化,它远未解决。如何提取对背景杂乱不变的判别和鲁棒特征是核心问题。在本文中,我们首先介绍二进制分割掩模来构造合成的RGB-Mask对作为输入,然后我们设计一个掩模引导的对比注意模型(MGCAM)来学习与身体和背景区域分开的特征。此外,我们提出了一种新颖的区域级三联体损失,以限制从不同区域学习的特征,即,从完整图像和身体区域拉近特征,而从背景推动特征。我们可能是第一个成功将二元掩模引入人ReID任务的人,也是第一个提出区域级对比学习的人。我们在三个公共数据集上评估所提出的方法,包括MARS,Market-1501和CUHK03。大量实验结果表明,该方法是有效的,并达到了最先进的结果。掩码和代码将根据要求发布。

1.  Introduction:

二元体掩码可以在两个方面为ReID做出贡献。首先,掩模可以帮助消除像素级的背景杂波。这可以极大地提高ReID模型在各种背景条件下的鲁棒性。其次,面具包含可被视为重要步态特征的体形信息。已经证明,身体面罩对于照明,布料颜色是坚固的,因此对于识别人来说是有用的[35]。

利用二元体掩模的最直接的方法是直接掩盖图像中的背景。对于二元掩模,掩模图像仅包含预期比使用整个图像表现更好的体区。然而,在我们的实验中,我们发现与使用原始图像的图像相比,屏蔽图像的性能甚至更差(更多细节参见第4.3节)。这个结果意味着以“硬”方式直接用二元掩模去除背景不是一个好的选择,这可能会影响结构化信息和图像的平滑度。此外,错误分割的面具可能包含大量背景或丢失一些重要的身体部位,这将极大地影响性能。在这种情况下,删除特征级别中的背景可能是更好的解决方案。

为了解决这个问题,我们探索利用二元掩码来减少特征级别中的背景杂乱。我们提出了一种面罩引导的对比注意模型(MGCAM)来从身体和背景区域对比学习特征。如图1(b)所示,在特征空间中,从身体区域和完整图像学习的特征应该是相似的,而从背景和完整图像学习的特征应该是不同的。为此,提出的MGCAM首先在二元体掩模的指导下产生一对对比注意力图。然后将对比注意力图添加到CNN特征中以分别生成身体感知和背景感知特征。请注意,我们的区域级三重态损失应用于来自同一图像的区域特征,而不是来自不同图像的特征的其他三元组损失[12]。

为了从二元体掩模中学习与体形相关的特征,我们建议将其作为附加输入与原始RGB图像一起构建4通道图像。通过这种方式,CNN模型可以从RGB通道学习外观特征,并从掩模通道中学习体形特征。所以这种方法以相对“软”的方式工作。即使在最坏的情况下,即掩模完全错误,CNN模型仍然可以从RGB通道学习特征。我们的实验证明这种方法可以提高性能。

本文的贡献可归纳如下:

•为了减少带有蒙版的人物图像背景杂乱,我们设计了一个由二元蒙版引导的对比注意模型。它可以生成一对身体感知和背景感知的注意力图,可用于生成身体和背景的特征。

•我们进一步提出从完整图像,身体和背景的特征区域级三联体损失。它可以强制模型学习的特征对背景杂乱不变。

•我们探索将身体蒙版作为附加输入并伴随RGB图像来增强ReID特征学习。二元掩模有两个主要优点:1)它可以帮助减少背景杂乱,2)它包含身份相关的功能,如身体形状信息。

2.Related Works

 

 

基于门控融合的部分引导注意力机制在车辆重识别(Part - Guided Attention with Gated Fusion in Vehicle Re - Identification)是车辆重识别领域的一种技术。 在车辆重识别任务中,需要准确地判断不同图像中的车辆是否为同一辆车。部分引导注意力机制可以聚焦于车辆的不同关键部分,例如车头、车身、车尾等。通过这种方式,模型能够更好地捕捉车辆各个部分的特征,避免被一些无关信息干扰。 而门控融合则是一种将不同特征或信息进行有效整合的技术。在车辆重识别中,可能会有来自不同部分的特征,门控融合机制可以根据不同部分特征的重要性,动态地决定如何将这些特征融合在一起,从而提高最终特征表示的质量和区分度。 以下是一个简单的伪代码示例,展示这种机制的大致实现思路: ```python import torch import torch.nn as nn # 定义部分引导注意力模块 class PartGuidedAttention(nn.Module): def __init__(self, in_channels): super(PartGuidedAttention, self).__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.fc = nn.Sequential( nn.Linear(in_channels, in_channels // 16, bias=False), nn.ReLU(inplace=True), nn.Linear(in_channels // 16, in_channels, bias=False), nn.Sigmoid() ) def forward(self, x): b, c, _, _ = x.size() y = self.avg_pool(x).view(b, c) y = self.fc(y).view(b, c, 1, 1) return x * y.expand_as(x) # 定义门控融合模块 class GatedFusion(nn.Module): def __init__(self, in_channels): super(GatedFusion, self).__init__() self.gate = nn.Sigmoid() def forward(self, part_features): # 假设 part_features 是一个包含多个部分特征的列表 num_parts = len(part_features) gates = [] for i in range(num_parts): gate = self.gate(part_features[i]) gates.append(gate) fused_feature = sum([gate * part_features[i] for i, gate in enumerate(gates)]) return fused_feature # 示例使用 in_channels = 256 part_guided_attention = PartGuidedAttention(in_channels) gated_fusion = GatedFusion(in_channels) # 模拟输入 x = torch.randn(16, in_channels, 32, 32) part_features = [part_guided_attention(x) for _ in range(3)] # 假设有3个部分 fused_feature = gated_fusion(part_features) print(fused_feature.shape) ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值