Attention-Aware Compositional Network for Person Re-identification论文精读

论文地址

Abstract

现在行人重识别(Person ReID)越来越火,一个比较大的挑战是首先跨摄像头目标重识别,其次是每一个行人patch中背景复杂、人体姿态不一和遮挡等情况增加了特征提取并学习的难度。目前有很多工作已经开始引入了额外的监督信息比如行人的关键点,通过一种part-base的方法去强约束模型对于行人特征的学习能力。关键点的引入可以使得行人的一些局部特征提取变得更加准确,过往有很多工作证明了这种工作的有效性。

作者在本篇文章主要提出了一种Person ReID的架构叫做Attention-Aware Compositional Network (AACN),这种结构主要由两个子结构构成。

  • Pose-guided Part Attention (PPA)
  • Attention-aware Feature Composition (AFC)

前者用于学习特征预测人体关键点、刚性结构和非刚性结构的特征图,同时对于不同结构所预测出来的特征图,还引入了一个概念叫做 pose-guided visibility scores,主要是用来对每个人体部件的可视程度进行打分加权。AFC结构用于将PPA得到的attention信息与全局的特征组合在一起,然后通过行人的ID作为标签进行分类训练(reid loss)。作者的这个方法在目前主流的Person ReID数据集比如Market-1501, CUHK03, CUHK01, SenseReID,CUHK03-NP and DukeMTMC-reID上都取得了最好的结果。

Introduction

近几年研究Person ReID的文章很多,这主要得益于其具备广泛而重要的应用,最常见的一个需求就是老人、小孩走丢了之后能快速分析将其找回。但是由于人体姿态、光照、背景和不同摄像机成像之间存在差异。跨摄像头的Person ReID即行人检索有较高的难度。part-base的方法可以使得CNN模型提取特征的过程中更加关心与重要人体区域的特征,但目前仍存在一定的问题。如下图(a),(b),(c)所示,画框类型的人体部件标注引入了额外的背景信息和其他部件的区域,在提取的特征中真正关心的部件特征只占了一部分。

AACN-1.png

同时观察上图的(d),(e),(f),交叉的部件和背包都会让目标人体部件的特征提取出现不准确的情况。所以在这篇文章中,作者引入了姿态也就是关键点来精细化行人部件的特征提取,称之为Pose-guided的方法。在说这部分之前作者对比了过往part-based方法中常用的手段,如下图所示。

AACN-2.png

RoI是我们刚才所说的对不同的部件使用box画框标注的方法,Patch和Strip分别设计了网格和横条去拆分一幅图,然后针对每一个part都提取特征进行学习。从图中可以很直观的看出,作者使用的这种Pose-guided的方法能更准确的学习人体部件区域的Attention Map。对于本文的贡献点总结如下:

  • 提出了一个叫做Attention-Aware Compositional Network (AACN)的结构用来解决行人不对齐和遮挡的问题。
  • Pose-guided的方法能更准确的排除掉背景等区域的干扰信息,并且基于该方法得到的行人刚性和非刚性Attention Map能被用于大部分基于Attention的方法中。
  • 对于不同部件的Attention Map引入了visibility score主要解决了行人中一些部件出现遮挡的问题。
  • 在目前的主流Person ReID数据集上取得了最好的性能结果。

Related Work

这部分感兴趣可以查看论文了解。

Attention-Aware Compositional Network

如同前文提到的一样,作者的AACN框架包含两个结构,分别是Pose-guided Part Attention(PPA)和Attention-aware Feature Composition (AFC)。前者对一张输入图像处理之后输出attention map和visibility scores,然后这部分的输出和AFC的第一个stage输出也就是Global Feature相结合之后作为AFC模块的后端输入。总体结构图如下图所示:

AACN-3.png

PPA结构主要包含了两个stage,每一个stage分别对应三个输出,为关键点的特征图、刚性结构的特征图和非刚性结构的特征图。使用2 stage级联的方式可以使得网络在学习过程中对于特征图的生成更为准确。结构如上图中(a)的上半部分。AFC模块主要是用GoogleNet作为stage1的backbone用于图像全局特征图的生成,然后在stage2和stage3中分别于PPA的attention map和visibility scores相结合计算。如上图中的(b)下半部分所示。

Pose-guided Part Attention

类似于下图(a),人的结构可以按照关键点的分布而分为刚性结构和非刚性结构。

AACN-4.png

刚性结构主要是人体的躯干,分别头部、上半身躯干和下半身躯干,非刚性结构的话主要是腿、胳膊等人体部件。PPA结构中使用了一个2stage的CNN模型,最终输出关键点K、刚性结构R和非刚性结构N三种attention map。这一部分对三种attention map分别计算loss,公式如下所示:

AACN-5.png

Loss for Keypoint Confidence Map

对于人体关键点的attention map,作者定义loss表达为L^{k}(K),人体总共在这篇文章中归结为14个关键点,所以最终输出的attention map总共有14个,每一个attention map分别对应一个关键点的回归结果。在真值标签中,对于某个坐标位置上的关键点需要使用Gaussian kernel(高斯核函数)中心展开得到其对应的heatmap真值标签。然后计算损失的时候使用MSE Loss来衡量真值heatmap和预测出来的attention map之间的差异。公式如下:

L^{k}(K)=\frac{1}{C^{k}}\sum_{i=1}^{C^{k}}||K_{i}^{*}-K_{i}||^{2}

Loss for Non-Rigid Part Attention

对于人体的非刚性结构,之前的方法都是使用box作为框定的标签,本文受 Part Affinity Field (PAF)方法的启发,对于某一个非刚性结构,使用两个关键点定位到这个结构的两端,然后连线以后以一定的宽度\sigma外扩得到一个矩形区域R_{p}^{n}表示非刚性结构的attention map真值。最终使用MSE Loss来计算真值和预测值之间的差异:

L^{n}(N)=\frac{1}{C^{n}}\sum_{p=1}^{C^{n}}||N_{p}^{*}-N_{p}||^{2}

Loss for Rigid Part Attention

上文提到的三个人体刚性部件,同样使用了关键点作为引导然后勾勒出几何区域来表示真值的heatmap,对于头肩部分选择关键点的组合为S_{1}=\{0,1,3\},对于上半身选择S_{2}=\{1,3,4,7\},对于下半身选择S_{2}=\{4,5,7,8\}。同样的该部分也使用了MSE Loss,如下所示:

L^{r}(R, N)=\frac{1}{C^{r}}\sum_{p=1}^{C^{r}}||R_{p}^{*}-R_{p}||^{2}

Part Visibility Score

attention map中attention区域的大小能直观的表示出一个部件在一幅图像中的成像大小,受这个思想的启发,作者对于每个attention map做一个累加计算,得到的值定义为visibility scores,如果这个值越大,那么就说明人体该部分的部件遮挡情况不是特别严重。公式如下所示:

v_{p}=\sum_{x,y}|R_{p}(x,y)|, or\quad v_{p}=\sum_{x,y}|N_{p}(x,y)|

分别表示了作者对人体的所有刚性结构和非刚性部件的在PPA结构的输出特征图中做了特征累加。

Attention-aware Feature Composition

如上面的结构图所示,AFC结构包含了三个stage,分别是一个Global Context Network(GCN)用于提取图像的全局特征, Attention-Aware Feature Alignment和 Weighted Feature Composition。后两个结构分别利用了PPA输出的attention map和visibility scores与全局的图像feature map结合计算。

Stage 1: Global Context Network (GCN)

GCN结构使用了GoogleNet作为backbone输出图像的全局特征,与原本的CNN结构不一样的是,作者将inception 5b/output部分后面的模块替换为了一个3x3,卷积核个数为256的卷积层,其中一个作用是降低了网络的性能开销,同时使用了这个结构结合448x192的输入(原版CNN输入为224x224),最终GCN的输出特征图从7x7变为14x6。对于这一部分,作者修改网络结构之后将改过的GCN模型在ImageNet网络上做了预训练。

Stage 2: Attention-Aware Feature Alignment

对比上述结构图中(a)的下半部分,AFC的stage2首先第一个输入时GCN的global feature,其次是PPA结构输出来的刚性结构和非刚性结构的attention map(假如有N个)。每一个attention map使用哈达玛乘积依次与global feature进行计算,最终可以得到N个global feature。对于每一个global feature首先使用GAP(global average pooling)计算之后将所有的feature vector拼接起来。基本上可以用以下公式表示这个过程。

f^{a}=Concat(\{f_{p}\}_{p=1}^P),\quad f_{p}=\sigma_{gap}(F_{p}^{a})

F_{p}^{a}=F*M_{p}^{*},\quad M_{p}^{*}=\frac{M_{p}}{max(M_{p})}

M_{p}\in\{N_{p},R_{p}\}表示所有从PPA结构中输出的人体部件attention map,M_{p}^{*}是对M_{p}做了一个减最小值除最大值的归一化操作结果。F是GCN结构输出的256维的global feature,F_{p}^{a}表示的是global feature和PPA的输出attention map做了点积之后的attention feature map,\sigma_{gap}是GAP操作,得到feature vector。最后将所有的feature vector拼接到一起。得到P个1xN大小的vector,P是attention map的个数,N是feature vector的长度。

Stage 3: Weighted Feature Composition

PPA结构中的visibility score总共有P个,等于人体刚性和非刚性部件的总数。对于这个Px1的feature vector,在AFC的第三个stage中,首先将其与stage2中的输出feature vector拼接得到P个1x(N+1)的vector,然后使用1x1的卷积计算得到P个权值,将这个权值向量Px1与stage2中的输出feature vector(大小为P个1xN)做点积计算之后输出feature vector,同样再使用1x1的卷积核进行计算得到最终输出的人体特征,然后使用reid loss(其实就是ID的softmax loss)约束学习。

Experiments

这一部分主要是对主流Person ReID数据集做了测试,对于 CUHK03,CUHK01和SenseReID数据集使用CMC指标, Market-1501,CUHK03-NP和DukeMTMC-reID使用了rank-1和mAP作为检索指标。这里贴几个主要的实验结果,如下所示:

AACN-6.png
AACN-7.png

可以看出论文方法比目前的SOTA方法都有一定程度的提升,是个很有创新性和实用性的工作。

Ablation Analysis

在这一部分中作者阐述了一些能对AACN结构产生性能影响或者改进的方向,比如说base network,比如文中的GCN是GoogleNet,如果调整为其余网络,也是有效的,并且检索性能会因为CNN模型的特征学习能力而发生改变。如下图所示。

AACN-8.png

可以看出换了不同的base network之后AACN方法对比之前采用同样base network的Person ReID方法还是有比较显著的优越性,并且能够在检索性能上做到更少的参数。

Pose-guided Part Attention

下图的结果表示了使用PPA结构的attention map对比其他几种attention map生成方式比如RoI和Parsing方法的结果。同样体现了PPA结构的优越性。

AACN-9.png

Attention-aware Feature Composition

文章也讨论了在结合人体部件attention map和global feature过程中的定量分析,结果如下图所示。使用所有的刚性结构和非刚性结构可以取得最好的结果。

AACN-10.png

Visibility Score

Visibility Score同样能对最终的结果带来一定改进,因为从理论上来讲,这部分对于人体部件是否出现遮挡问题有较高的敏感性。结果如下所示。

AACN-11.png

Conclusion

总的来说,这篇文章提供了一个很好的思路,将attention机制应用于行人重识别任务中,摒除了背景等干扰因素带来的特征学习问题,对解决不同姿态、不同背景下的Person ReID问题提出了新的思路。PPA结构负责学习并输出人体部件的attention map,然后AFC结构负责将attention map和global feature相结合然后进行行人特征学习,最后,attention map强相关的visibility scores能对遮挡的部件进行最大程度的兼容。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容