论文阅读笔记(十一)【ICCV2017】:Jointly Attentive Spatial-Temporal Pooling Networks for Video-based Person Re-Identification
Introduction
(1)Motivation:
当前采用CNN-RNN模型解决行人重识别问题仅仅提取单一视频序列的特征表示,而没有把视频序列匹配间的影响考虑在内,即在比较不同人的时候,根据不同的行人关注不同的部位,如下图:
(2)Contribution:
将注意力模型考虑进行人重识别中,提出了时空联合注意力池化网络(jointly Attentive Spatial-Temporal Pooling Networks,ASTPN).
The Proposed Model Architecture
(1)简述:
建立了时空注意力网络(a recurrent-convolutional network with jointly attentive spatial-temporal pooling,ASTPN),其工作原理是:将一对视频序列传入孪生神经网络,获得两者的特征表示,并生成它们的欧几里德距离。如图所示,每个输入(包含光流的视频帧)通过CNN网络,并从最后一个卷积层中提取出特征映射。然后将这些特征映射输入到空间池层中,每一个时间步获得一个图像表示。然后,我们把时间信息考虑在内,利用循环神经网络生成视频序列的特征集。最后,由循环神经网络产生的所有时间步被注意力时间池结合起来,形成序列特征表示。
(2)卷积层:
输入:网络的输入由三个彩色通道和两个光流组成。颜色通道提供服装和背景等空间信息,而光流通道提供时间运动信息。给定输入序列 v = {v1, …, vT},我们利用下表所示的卷积网络获得特征映射集 C = {C1,…,CT}。然后将每个 Ci∈Rc×w×h 输入空间池化层,得到图像级表示 ri。
(3)空间池化层(Spatial Pooling Layer):
使用空间金字塔池化(SPP)层来组成空间注意力池,具体如下:
假设池化核大小集为{(mwj, mhj)| j = 1, …, n},则确定第 j 个池化核窗口大小:
第 j 个池化步长为:
然后通过公式得到结果向量 ri:
其中 fp 表示采用窗口大小 win 和步长 str 的最大池化函数。fR 表示重构函数,将矩阵重构成一个向量。除此之外,⊕ 表示向量连接操作。
令一个序列表示为r = {ri∈RL | i = 1, …, T},其中:。
(4)注意力时间池化层(Attentive Temporal Pooling Layer)
将上一层得到的 r 输入到循环神经网络提取时间步信息,循环层可以计算表示为:
其中 st-1∈RN 是包含上一时间步信息的隐藏层结点,ot 是时间t的输出。全连接权重 U∈RL*N 将循环层输入 rt 从 RL 映射到 RN,全连接权重 W∈RN*N 将隐藏层结点 st-1 从 RN 映射到 RN 。注意到循环层通过矩阵U将特征向量嵌入到低维特征中。在第一个时间步中,隐藏层结点被初始化为0,隐藏层通过tanh函数激活传递。
定义矩阵 P∈RT*N 和 G∈RT*N,其第 i 行分别表示检测数据和对照数据在循环网络的第 i 个时间步的输出,我们计算注意力矩阵 A∈RT*T:
其中 U∈RN*N 是网络学习的信息分享感知矩阵。
之后,对 A 分别应用列最大池化和行最大池化来获得时间权重向量 tp∈RT 和 tg∈RT。tp 的第 i 个元素表示探测序列中第 i 帧的重要得分,tg 同理。再对时间权重向量 tp 和 tg 应用softmax函数,来生成注意力向量 ap∈RT 和 ag∈RT。ag 的第 i 个元素可以计算为:
最后,应用 P、G 和 ap、ag 之间的点乘来获得序列级表示 vp∈RN 和 vg∈RN,分别计算为:
(5)损失函数:思想与上篇论文类似【传送门】
孪生神经网络的铰链损失:
将识别身份的损失考虑在内,训练目标为:
Experimental Results
(1)实验设置:
① 数据集:iLIDS-VID、PRID-2011、MARS
② 参数设置:截取的帧数 k = 18,孪生代价函数的边距 m = 3,特征空间维数为128,初始学习率0.001,批量设置为1.
③ 对比方法:RNN-CNN、RFA、VR、AFDA
(2)预处理:
① 裁剪、镜像来增强数据,裁剪后的子图像的宽度和长度都比原图像小8个像素,在整个序列随机使用镜像操作,概率 p=0.5。
② 将图像精确地转换为YUV颜色空间,并将每个颜色通道归一化为零均值和单位方差;使用Lucas-Kanade方法在每对相邻图像之间提取垂直和水平的光流,然后提取光流通道正规化为[-1, 1]
(3)实验结果:
① 与对比方法比较:
② 在MARS数据集上结果:
③ 不同池化策略的比较:
④ 交叉数据集上测试结果:
在ILIDS-VID数据集上进行训练,然后在PRID-2011数据集上进行测试。
论文阅读笔记(十一)【ICCV2017】:Jointly Attentive Spatial-Temporal Pooling Networks for Video-based Person Re-Identification的更多相关文章
- 论文阅读笔记二十五:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPPNet CVPR2014)
论文源址:https://arxiv.org/abs/1406.4729 tensorflow相关代码:https://github.com/peace195/sppnet 摘要 深度卷积网络需要输入 ...
- 论文阅读笔记十一:Rethinking Atrous Convolution for Semantic Image Segmentation(DeepLabv3)(CVPR2017)
论文链接:https://blog.csdn.net/qq_34889607/article/details/8053642 摘要 该文重新窥探空洞卷积的神秘,在语义分割领域,空洞卷积是调整卷积核感受 ...
- 论文阅读 A Data-Driven Graph Generative Model for Temporal Interaction Networks
13 A Data-Driven Graph Generative Model for Temporal Interaction Networks link:https://scholar.googl ...
- 论文阅读笔记十七:RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation(CVPR2017)
论文源址:https://arxiv.org/abs/1611.06612 tensorflow代码:https://github.com/eragonruan/refinenet-image-seg ...
- 论文阅读笔记: Multi-Perspective Sentence Similarity Modeling with Convolution Neural Networks
论文概况 Multi-Perspective Sentence Similarity Modeling with Convolution Neural Networks是处理比较两个句子相似度的问题, ...
- 论文阅读笔记二-ImageNet Classification with Deep Convolutional Neural Networks
分类的数据大小:1.2million 张,包括1000个类别. 网络结构:60million个参数,650,000个神经元.网络由5层卷积层,其中由最大值池化层和三个1000输出的(与图片的类别数相同 ...
- 论文阅读笔记(十)【CVPR2016】:Recurrent Convolutional Network for Video-based Person Re-Identification
Introduction 该文章首次采用深度学习方法来解决基于视频的行人重识别,创新点:提出了一个新的循环神经网络架构(recurrent DNN architecture),通过使用Siamese网 ...
- 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification
Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...
- 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification
论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
随机推荐
- NR / 5G - F-OFDM
- [Effective Java 读书笔记] 第二章 创建和销毁对象 第二条
第二条 遇到多个构造器参数时,可以考虑用构建器 当遇到有多个构造器参数时,常见的是用重叠构造器,即: public class TestClass{ public TestClass(int para ...
- 大数相加-----杭电acm1002
#include<stdio.h> #include<string.h> int main() { ], ch2[]; ], num2[]; ; scanf("%d& ...
- 智和网管平台SugarNMS网络综合监控等级保护安全解决方案
IT运维是一个很大的范畴,涉及到的部门.架构.技术.产品十分广泛.北京智和信通以等保标准为依据,依托丰富的网络安全行业经验,配套自主研发的智和网管平台SugarNMS,提升用户网络关键基础设施综合管理 ...
- StarUML之六、StarUML规则与快捷键
本章内容参考官网即可,不做详细说明,实践出真知! starUMl规则主要是在模型设计的约束条件 https://docs.staruml.io/user-guide/validation-rules ...
- View Binding初探
参考翻译:https://developer.android.google.cn/topic/libraries/view-binding View Binding是一项功能,使您可以更轻松地编写与视 ...
- 面向对象+闭包+三种对象的声明方式(字面式、new Object、构造函数、工厂模式、原型模式、混合模式)
面向对象: 对代码的一种抽象,对外统一提供调用接口的编程思想 对象的属性:事物自身拥有的东西 对象的方法:事物的功能 对象:事物的一个实例 对象的原型:.prototype -> 内存地址 -& ...
- Bash脚本编程学习笔记07:循环结构体
本篇中涉及到算术运算,使用了$[]这种我未在官方手册中见到的用法,但是确实可用的,在此前的博文<Bash脚本编程学习笔记03:算术运算>中我有说明不要使用,不过自己忘记了.大家还是尽量使用 ...
- OpenCL中读取image时的坐标
本文测试OpenCL中读取image数据时关于坐标的两个问题: 使用float2坐标读取 使用int2坐标读取 首先完整的测试代码如下,测试平台为SDM855: #include <CL/cl. ...
- 剑指offer-面试题59_2-队列的最大值-队列
/* 题目: 定义一个含max函数的队列类,并实现pop_front().push_back().max()函数. */ #include<iostream> #include<cs ...