论文阅读笔记(十四)【AAAI2020】:Appearance and Motion Enhancement for Video-based Person Re-identification
Introduction
本文的贡献:提出了基于视频的行人重识别模型:Appearance and Motion Enhancement Model(AMEM)。该模型对两类信息进行提取:提出了Appearance Enhancement Module(AME),采用行人属性学习提取行人的样貌特征;提出了Motion Enhancement Module(MEM),提取行人的步态特征,并对其行走进行预测。
在预测阶段仅使用提出模型的主干网络和两个特征提取模块。
Approach
(1)整体框架:
输入视频序列,通过backbone网络提取出特征,然后通过AEM和MEM模块加强了特征中的外貌和动作信息,最终只使用主干网络和两个模块进行特征距离评估。

一些关键的参数定义:
S = {I1, I2, ..., IT} 表示输入的视频序列,每个视频序列含有 T 帧;
y 表示行人的身份标签;
BF = Ø(S, θB) 表示通过backbone网络的特征提取函数(BF为 T' * C * H * W 维),其中 θB 表示网络中的参数;
(2)Appearance Enhancement Module(AME)模块:
① 生成伪属性标签(pseudo attribute labels):
在ResNet-50上对PETA数据集进行训练。使用ResNet-50的Conv5_x模块的输出作为最后的特征映射 fA^(规格:2048*16*8)。由于属性识别模型的预定义属性数量 N = 105,过于庞大,对属性进行分组。在属性分组前,加上全局平均池化层和全连接层。分组的数量为 M,每组有一个属性特征量 am(规格:256),每组含有 Nm 个属性,各组的属性如下表。


第 m 组的属性损失函数为(采用了Binary Cross-Entropy loss):

其中 pi^ 表示第 i 属性通过全连接层和Sigmoid层后在第 m 组为真的概率值,lim 表示第 i 个属性在第 m 组是否为真。
Attribute Recognition Model(ARM)的总损失函数为:

将视频的每一帧都输入ARM中,获取图像的属性特征,对于每个特征,采用时间平均池化,对最终的平均预测进行判断,超过0.5设置为true,即 li^ = 1,最终得到 l1^, l2^, ..., lN^.
② 外貌增强(appearance enhancement):
将第 ① 步得到的标签作为 AEM 模块的监督。
将获得的 BF 输入到 appearance branch,生成特征map为 fA(规格:C * H * W),appearance branch采用2017年提出的 I3D inception block,具体如下:

每一个卷积层都跟着batch正则化层和ReLU激活层。之后采用第 ① 步的标签作为监督,采用类似第 ① 步的做法提取出 M 个属性特征量和 N 个属性预测值,损失函数为:

【个人理解:先用别人的数据集,训练一个行人属性模型,再把作者所用的数据集输入该模型,得到属性label,把属性label作为监督,应用在appearance branch module的训练上。】
(3)Motion Enhancement Module(MEM)模块:
MEM模块预测出未来帧,再跟实际的帧比较,若成功预测,则说明该模型捕获了行人的步行模式。
① 图像自动编码器(Texture AutoEncoder):
TAE是由2006年被提出,用于编码行人图片,输出的结果 ftex 规格为 C * H * W。Encoder采用了ResNet-18模型,Decoder采用了4个反卷积模块,每一个模块都有一个带有3*3规格kernel的反卷积层和batch正则化层组成,除了最后的反卷积模块,其它再添加ReLU层,最后通过sigmoid层输出。

TAE采用Market-1501训练,损失函数采用Mean Squared Error(MSE)loss,并添加一项DTAE用于判断生成的图片是否为真,总损失函数为:

其中 I^ 为输入的图片,I~ 为输出的重构结果;G、D、f 分别为表示TAE的反编码、DTAE和ftex;pI^ 和 pf 分别表示在图片和特征空间的样本分布。DTAE 在最大化 Ladv 时,TAE在最小化。
【注:该损失函数还没有看懂,参考文献待阅读 2017:Unsupervised representation learning with deep convolutional neural network for remote sensing images】
② 动作提取:
选取输入序列的一帧 It(0 < t < T - c),预测下一帧 It+1。将 It+1 视为通过 ftext+1 反编码得到。 ftext+1 被分为两个部分:当前帧的texture特征 ftext 和动作特征 fM(表示两个连续帧的运动)。通过TAE提取出了 ftext,通过主干网络 Ø(S, θB) 获得动作特征 fM。motion branch采用了和appearance branch相同的结构,仅仅参数不同。然后将这两个特征concat,并输入texture嵌入模块获得 ftext+1,该模块由两个分别带有3*3和1*1kernel的卷积层、两个batch正则化层和一个ReLU层构成。 ftext+1 通过反编码获得预测的下一阵 It+1~。
将上述获得的 It+1~ 作为新的当前帧,同理获得 It+2~ ,依次获得到 It+c~。MEM损失函数如下:

(4)优化:
对 fA、fM、fB进行concat,生成最终的特征map F,通过全局平均池化和全连接层,最终的特征表示为 fs。最终的总损失函数为(Lid为softmax损失,Ltri为三元组损失):

其中L表示batch中样本的数量,K表示batch中三元组的数量,[*]+ = max(*, 0),dip 和 din 表示正负样本对的特征距离。
Experiment
(1)实验设置:
主干模型在Kinetics上预训练;
采用Adam优化;
采用MARS、iLIDS-VID、PRID-2011作为评测数据集;
learning rate = 1e-3,每60epoch,下降0.2倍;
weight decay = 5e-4;
输入序列长度 T = 8;
输入帧的规格:256 * 128;
特征map规格:H = 16,W = 8,C = 1024,T’ = 3;
最终特征 fs 的维度:512;
其它参数:k = 0.2,λA = 0.1,λM = 10;
(2)实验结果:


(Table 4中的R3D[3D-ResNet]、P3D[Pseudo 3D]、I3D分别是3D卷积模型的变形)

论文阅读笔记(十四)【AAAI2020】:Appearance and Motion Enhancement for Video-based Person Re-identification的更多相关文章
- 论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)
论文链接:https://arxiv.org/abs/1506.04924 摘要 该文提出了基于混合标签的半监督分割网络.与当前基于区域分类的单任务的分割方法不同,Decoupled 网络将分割与分类 ...
- 论文阅读笔记(四)【TIP2017】:Video-Based Pedestrian Re-Identification by Adaptive Spatio-Temporal Appearance Model
Introduction (1)背景知识: ① 人脸识别是具有高可靠性的生物识别技术,但在低解析度(resolution)和姿态变化下效果很差. ② 步态(gait)是全身行为的生物识别特征,大部分步 ...
- 论文阅读笔记十五:Pyramid Scene Parsing Network(CVPR2016)
论文源址:https://arxiv.org/pdf/1612.01105.pdf tensorflow代码:https://github.com/hellochick/PSPNet-tensorfl ...
- 论文阅读笔记十:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs (DeepLabv2)(CVPR2016)
论文链接:https://arxiv.org/pdf/1606.00915.pdf 摘要 该文主要对基于深度学习的分割任务做了三个贡献,(1)使用空洞卷积来进行上采样来进行密集的预测任务.空洞卷积可以 ...
- 论文阅读笔记十九:PIXEL DECONVOLUTIONAL NETWORKS(CVPR2017)
论文源址:https://arxiv.org/abs/1705.06820 tensorflow(github): https://github.com/HongyangGao/PixelDCN 基于 ...
- 论文阅读笔记十八:ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation(CVPR2016)
论文源址:https://arxiv.org/abs/1606.02147 tensorflow github: https://github.com/kwotsin/TensorFlow-ENet ...
- 论文阅读笔记十六:DeconvNet:Learning Deconvolution Network for Semantic Segmentation(ICCV2015)
论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-Decon ...
- 论文阅读笔记十二:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation(DeepLabv3+)(CVPR2018)
论文链接:https://arxiv.org/abs/1802.02611 tensorflow 官方实现: https: //github.com/tensorflow/models/tree/ma ...
- 云时代架构阅读笔记十四——我对Hash算法的理解
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是 ...
随机推荐
- 自学Java第三章——《流程控制语句结构》
流程控制语句结构分为: 1.顺序结构:从上到下依次执行 2.分支结构:多个分支选择其中一个分支执行 3.循环结构:重复执行某些代码 3.1 顺序结构 执行过程:从上到下顺序执行 3.1.1 输出语句 ...
- 了解EBP指针
在寄存器里面有很多寄存器虽然他们的功能和使用没有任何的区别,但是在长期的编程和使用中,在程序员习惯中已经默认的给每个寄存器赋上了特殊的含义,比如:EAX一般用来做返回值,ECX用于记数等等.在win3 ...
- 视觉slam十四讲ch5 joinMap.cpp 代码注释(笔记版)
#include <iostream> #include <fstream> using namespace std; #include <opencv2/core/co ...
- Codeforces_714
A.相遇时间段l = max(l1,l2),r = min(r1,r2),再判断k是否在里面. #include <iostream> using namespace std; long ...
- 牛客练习赛52 C 烹饪(容斥+扩展欧几里得)
来源:https://ac.nowcoder.com/acm/contest/1084/D 思路来源:https://www.cnblogs.com/Morning-Glory/p/11521114. ...
- POJ 1789 Truck History (Kruskal最小生成树) 模板题
Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for v ...
- 【redis】-- redis的持久化(作为数据库)
目录 1.RDB rdb持久化的方式 rdb方式的优点: aof的优点 3.持久化的其他特性 日志重写 工作原理 rdb和aof混合使用 redis是一个基于内存的数据库,故在redis正在运行的数据 ...
- Python3(十) 函数式编程: 匿名函数、高阶函数、装饰器
一.匿名函数 1.定义:定义函数的时候不需要定义函数名 2.具体例子: #普通函数 def add(x,y): return x + y #匿名函数 lambda x,y: x + y 调用匿名函数: ...
- 《自拍教程16》cmd的常用技巧
cmd.exe是Windows 自带的命令行操作交互界面软件. 虽然功能有限,但是毕竟是默认的命令行操作交互界面软件. 肯定所有的电脑都是自带的. 当然现在已经有很多改良版的,交互体验更好的cmd类似 ...
- ASP.NET Core 借助 Helm 部署应用至K8S
前言 玩K8S也有一段时间了,借助云服务提供商的K8S控制台,已经可以很方便的快速部署应用至K8S.通过简单的点击,可以一次性帮忙创建K8S 对象:Deployment.Service.Ingress ...