Human Semantic Parsing for Person Re-identification

Human Semantic Parsing for Person Re-identification

论文:Human Semantic Parsing for Person Re-identification,cvpr,2018

链接:paper

代码:github

摘要

背景:现有方法都是利用检测框来对局部特征进行提取,这样的框精度较低,并且现有的方法涉及很多模块,相对比较复杂,通过大量实验证明使用简单且有效的训练方法效果是非常好的;

贡献:文中提出了SPReID,利用human semantic parsing来处理局部视觉线索;训练了自己的分割模型,并在human分割任务上超过了SOTA方法;本文的方法大幅度提升了在Market-1501、CUHK03、DukeMTMC-reID上的性能。

引言

近年来,行人重识别的研究主题从image-level的全局特征转向part-level 的局部特征,但是低分辨率往往会造成Part detection 的不准确,同时现有的part-level 方法都过于复杂。

针对上述两个问题,本文表明简单的基于Inception-V3使用一个简单的训练策略仅在全图上进行处理性能能够超过SOTA;利用具有像素级精度的语义分割来从身体部分提取局部特征。

网络结构

作者提出的SPReID如同下图所示,总共包含了一个卷积backbone和一个人体分割的branch,然后将两者的结果结合在一起。使用Inception-V3 作为行人语义分析和行人重识别模型的主干模型。Inception-V3有48层,和Resnet152有相当的精度,却有很小的计算量。特征图输出位32步长。

img

1、Human Semantic Parsing Model

人体语义解析模型可以更好的利用局部线索,像素级的semantic 具有更高的精度,相比bbox 对姿势的变化更加鲁棒。

Inception-V3 作为分割的backbone(两处修改):

  • 将Inception-V3最后一层卷积stage中的stride由2改为了1,也就意味着经过一次网络前向以后这个降采样的倍率由32降到了16,最终的输出feature map分辨率提升了一倍;
  • 同时为了使得计算量不增加,对于输出的feature map,论文移除了GAP并增加了ASPP(atrous spatial pyramid pooling)(rates=3,6,9,12),之后接入1x1的卷积层,最后对人体部件的类型进行分类输出。

2、Person Re-identification Model

  • 在SPPReID中的Inception-V3移除了GAP,这样输出为2048通道的32 output stride.
  • 文中的baseline person re-identification model 使用了GAP 汇聚了卷积输出的特征,产生了2048-dim的全局表示,softmax cross-entropy loss 训练。
  • 局部视觉线索的使用:使用human semantic parsing model 产生的五个身体不同区域的概率图
  • 在SPPReID 中,利用每个概率图对卷积backbone的输出进行了汇总得到了5x2048 的 特征图,每一行对应通过一个概率图汇总得到的特征向量,相比GAP,这样的方法对空间位置有一定可知性,也可以将概率图看成身体各部分的权重
  • 实现细节:
    • 将两个分支的输出特征图flatten 进行矩阵乘法。eg.对于一个身体部位概率图:30x30x2048 –> 900x2048;30x30x1 –> 900x1; 1x900 x 900x2048 –> 1x2048
    • 将head、upper-body、lower-body、shoes的结果进行了元素间的max操作最终得到一个2048-D 矢量,并与前景矢量2048-dim以及global representation拼接起来,总共3x2048的特征被用于分类和特征检索。
  • 语义分割模型通常需要较高分辨率的图片,对于送入re-identification backbone的图片先通过双线性插值缩小,再在最后的激活值处通过双线性插值放大来匹配human semantic parsing branch的分支
实验

1、本文方法主要在Market1501、CUHK03、DukeMTMC-reID上进行了评估,

2、实验结果:

img

总结
  • 本文提出的两个问题:
    • 实现SOTA的model需要这么复杂吗?
    • bbox是处理局部视觉线索最好的方法吗?
  • 通过大量的实验解决上述问题:
    • 仅使用简单的model在大量高分辨率的图片上训练即可超越SOTA
    • 使用human sematic parsing来处理局部视觉线索可以进一步提高性能

本文实验丰富,但是应该再做一个和bbox 对比的实验呢?

由于没有关于 “DIFFER: Disentangling Identity Features via Semantic Cues for Clothes-Changing Person Re-ID” 的具体参考引用内容,下面基于常见的学术论文理解为你介绍。 “DIFFER: Disentangling Identity Features via Semantic Cues for Clothes-Changing Person Re-ID” 可能是一篇关于行人重识别(Person Re-ID)领域的研究论文。 ### 研究背景 行人重识别旨在跨不同摄像头视角下准确识别特定行人。而在实际场景中,行人可能会更换衣服,这给传统的行人重识别方法带来了挑战,因为传统方法往往依赖于外观特征,衣服的变化会导致外观特征的显著改变,使得识别准确率下降。 ### 研究目的 该研究的目的可能是通过利用语义线索来分离出与行人身份相关的特征,从而解决行人更换衣服时的重识别问题。通过这种方式,即使行人的衣服发生变化,也能够准确地识别出其身份。 ### 研究方法 可能提出了一种基于语义线索的特征分离方法(DIFFER),具体可能涉及以下方面: - **语义线索的利用**:从图像或视频中提取语义信息,例如行人的身体部位、姿态等,这些语义信息相对衣服外观来说更加稳定,更能反映行人的身份特征。 - **特征分离**:通过特定的算法或模型,将与身份相关的特征从其他干扰特征(如衣服特征)中分离出来,以提高在衣服变化情况下的重识别性能。 ### 研究意义 该研究对于实际的安防监控、智能视频分析等领域具有重要意义。在这些领域中,行人更换衣服是常见的情况,该研究成果能够提高行人重识别系统在复杂场景下的准确性和可靠性。 ### 代码示例 由于没有具体代码信息,下面给出一个简单的行人重识别模型的伪代码示例: ```python import torch import torch.nn as nn # 定义一个简单的行人重识别模型 class SimplePersonReIDModel(nn.Module): def __init__(self): super(SimplePersonReIDModel, self).__init__() self.conv1 = nn.Conv2d(3, 64, kernel_size=3, padding=1) self.relu = nn.ReLU() self.fc = nn.Linear(64 * 16 * 16, 128) def forward(self, x): x = self.conv1(x) x = self.relu(x) x = x.view(-1, 64 * 16 * 16) x = self.fc(x) return x # 创建模型实例 model = SimplePersonReIDModel() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值