SPReID:Human Semantic Parsing for Person Re-identification阅读笔记

SPReID是一种创新的行人再识别方法,它结合了全局和局部特征,通过语义分割提高精度。利用Inception_V3网络,SPReID在reid和human semantic parsing领域达到了最先进的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Human Semantic Parsing for Person Re-identification

作者:Mahdi M. Kalayeh, Emrah Basaran等人 2018CVPR

1. 摘要

global和local特征的结合很有效,但当前reid存在两个弊端:首先,为了结合global和多个locla特征,常像ZZD的属性reid(APR)那样构建多支路的模型,有必要吗?其次,当前locla特征依赖于boungding box,不够精细。而作者根据这两个问题分别切入,为应付第一个问题,作者指出用两个支路的Inception_V3或ResNet(计算更复杂而效果和Inception_V3参不多)就可以完成结合global和local特征的任务;而对于问题2使用语义分割(更具体点是human semantic parsing),能在像素级避免bounding box的误差。作者的模型能解决reid中的pose,背景,不对齐现象,性能在当前确实很高(比”人类水平“的AlignedReID还要高出几个点),但其实其计算量很大。

2. 贡献

  • 网络很简洁,用上了global+local特征(语义分割进行部件检测)、大分辨率的输出等提点的tricks
  • SPReID在reid和human semantic parsing上的both SOTA

3. 方法

3.1. Inception_V3回顾

  • 48层,比ResNet浅但计算更快,效果差不多甚至更好
  • 用GAP代替FC,任意size的输入都可以(作者要用到)
  • 网络结构:前几层(两个卷积和一个max pool,stride都是2)得到为输入size的1/8的特征图,然后给3个Inception Block和2个grid reduction(夹在3个Inception Bolck之间)网络,Inception Block不改变空间size(h,w)而grid reduction将空间size减半而channel增倍。最后一个Inception Block输出结果给GAP去展示2048d的特向。

3.2. Human Semantic Parsing Model

图1下支路,用的是修改的Inception_V3*。为了保证最终概率图的分辨率足够(3030),将最后一个grid reduction的stride从2改成了1,在这里输出的特征图size比直接Inception_V3这里的输出加倍了;这导致最后一个Inception Block计算增加,于是用空洞卷积代替其中的卷积;移去GAP,代之以一个atrous spatial pyramid pooling (rates=3,6,9,12)【DG-Net表6中也有使用】+11卷积作为像素分类器(语义分割)。

DG-Net传送门:DG-Net

3.3. Person Re-identification Model

在这里插入图片描述
上支路由于下支路的语义分割需要大的size,因此有两个双线性插值,第一个是为了缩小size使得Inception_V3获得的感受野增大,从而提取像素周围的信息(像素周围的像素和改像素属于同一类别的可能性很大),而第二个是为了和下支路最终输出size一致,类似于U-Net等分割网络的的先下采样后上采样结构。上支路先走GAP支路,能用reid数据预训练Inception_V3网络,而下支路应该也是先预训练让下支路具有一定的分割能力,然后就是reid数据进行fine-tune,图像输入后分别走上支路和下支路(L1 norm之后)得到30302048和30305的feature map,其中5是前景(global)和4和local(头,上肢,下肢,鞋子—鞋子在reid中是很重要的一个线索,如ARP中就说明了这一点)。然后:

for   30*30*1的i   in   下支路的概率图(30*30*5):
	Step1: i = i的空间size展平为900*1,X = 上支路的输出响应展平为900*2048
	Step2: X =  X.T * i ,即图1中的weighted sum,下支路概率图就是所谓的weight,能
	                       让关注的区域在上支路的输出响应中更大而其他区域更小(这里是矩阵乘法)
	Step3:if  i  不是前景:
			这里作者说的是元素级max,但没有理解其到底怎么做的,代码是chainer写的也没看懂
			因此以下操作仅代表个人猜想:i_头,i_上肢,i_下肢,i_鞋这四个2048*1的向量并排,
			逐元素取max,得到2048*1的结果(不熟悉chainer,从代码看可能是这样)
最后就是X_前景,GAP的输出,Step3的输出进行concat,得到2048*3的结果(图1中是2048*5,这里不理解,
我觉得图1的2048*5结果可能是表示仅weighted sum而不经过Step3的结果,对这个结果的后四行执行max
得到2018*2,和GAP结合得到2018*3的结果)即为行人描述符,而max的目的据说是为了减少计算量(2048*5
-->2048*3)
	

4. 实验

在这里插入图片描述
在这里插入图片描述
训练细节:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
不同backbone对性能的影响:
在这里插入图片描述
在这里插入图片描述
Icneption_V3是baseline,即上支路;w/fg表示用前景的效果(其他部件也有),而wo/fg表示没有前景(其他部件照旧)的效果,combined指全有且使用L1-norm和concat的结果(max等操作)。
右表表示不共享权重效果更好,但其实该网络本身计算量就很大,不共享权重更大。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值