论文阅读笔记(十)【CVPR2016】:Recurrent Convolutional Network for Video-based Person Re-Identification
Introduction
该文章首次采用深度学习方法来解决基于视频的行人重识别,创新点:提出了一个新的循环神经网络架构(recurrent DNN architecture),通过使用Siamese网络(孪生神经网络),并结合了递归与外貌数据的时间池,来学习每个行人视频序列的特征表示。
Method
(1)特征提取架构:

第一层:卷积神经网络,提取每个行人的外貌特征向量;
第二层:循环神经网络,让网络更好的提取时空信息;
第三层:时间池,让网络将不同长度的视频序列总结为一个特征向量.
Siamese网络:通过训练,将来自同一个人的视频特征变得更近,将来自不同人的视频特征变的更远.
(2)输入:
包括两部分:光流(optical flow)、颜色通道(colour channel)
光流对行人的步态等动作线索进行编码,而颜色通道对行人的样貌和穿着进行编码.
(3)卷积神经网络:
对每一个步行时刻(time-step,可以理解为组成步态周期的一个单元)进行卷积神经网络处理,把输入的图片记为 x,则输出为向量 f = C(x).
卷积神经网络架构:

激活函数采用tanh,池化层采用最大maxpool,即:

s = s(1), ..., s(T) 表示为一个视频序列,T 为视频序列的长度,s(t) 为在时间 t 时的图片帧.
每个图片都要经过CNN来产生一个特征向量,即 f(t) = C(s(t)),其中 f(t) 是CNN最后层的向量表示.
(4)递归神经网络:基础介绍【传送门】
f(t) 表示 s(t) 在CNN最后层的向量表示,则RNN输出为:

o(t) 规格:e * 1
f(t) 规格:N * 1
r(t-1) 规格:e * 1
Wi 规格:e * N
Ws 规格:e * e
f(t) 包含当前时刻的图像信息,r(t-1) 包含上一时刻的图像信息,对所有时刻的特征使用全连接层. r(t) 初始为零向量.
(5)时间池:
虽然RNNs可以捕获时间信息,但依然存在不足:
① RNN的输出偏向于较后的时刻;
② 时间序列分析通常需要在不同的时间尺度下提取信息(如语音识别中,提取的尺度包括:音节、单词、短语、句子、对话等).
解决方法:增加一个时间池化层(temporal pooling layer),该层从所有时刻收集信息,避免了偏向后面时刻的问题.
在时间池化层中,所有时刻RNN后的输出为{o(1), ..., o(T)},提出两个方法:
① 平均池化层:

② 最大池化层:(即向量的每一个元素都是从 T 个时刻中的对应位置挑选出的最大值)

(6)训练策略:
① 孪生神经网络:基础知识【传送门】
给出一对视频序列 (si, sj),每个序列都通过CNN、RNN提取出特征向量,即 vi = R(si),vj = R(sj),孪生神经网络的训练目标为:(采用的距离为欧式距离)

② 识别验证:
预测特征向量 v 是第 q 个身份的概率为:

一共有 K 个可能身份,Wc 和 Wk 表示权重矩阵 W 的第 c 和 k 列.
③ 损失函数:

Experiments
(1)实验设置:
① 数据集 :iLIDS-VID、PRID-2011,一半用于训练,一半用于测试,运行10次计入平均值.
② 参数设置:孪生神经网络中 m = 2,特征空间维度 e = 128,梯度下降学习率 α = 1e-3,batchsize = 1,epochs = 300.
③ 硬件条件:GTX-980 GPU(运行1天)
④ 数据预处理:采用了裁剪和镜像的形式对数据进行增强. 将图像转为YUV色域,每个颜色通道被标准化为零均值和单位方差,使用Lucas-Kanade算法【传送门】计算每对帧之间的水平和垂直光流通道. 光流通道正规化为[-1,1]. 第一层神经网络的输入有5层通道,其中3层为颜色通道,2层为光流通道.
(2)实验结果:
① 比较了有无循环连接、有无光流特征情况下的实验结果.

② 比较时间池中使用平均池化、最大池化和基准方法(其它参考文献中的方法)的效果.

③ 比较不同视频序列长度的效果.

④ 与其它方法的对比.

⑤ 跨数据集测试,在数据集A训练,但在数据集B测试.

论文阅读笔记(十)【CVPR2016】:Recurrent Convolutional Network for Video-based Person Re-Identification的更多相关文章
- 论文阅读笔记十八: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 ...
- 论文阅读笔记十五: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)使用空洞卷积来进行上采样来进行密集的预测任务.空洞卷积可以 ...
- 论文阅读笔记十六:DeconvNet:Learning Deconvolution Network for Semantic Segmentation(ICCV2015)
论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-Decon ...
- 论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)
论文链接:https://arxiv.org/abs/1506.04924 摘要 该文提出了基于混合标签的半监督分割网络.与当前基于区域分类的单任务的分割方法不同,Decoupled 网络将分割与分类 ...
- 论文阅读笔记十九:PIXEL DECONVOLUTIONAL NETWORKS(CVPR2017)
论文源址:https://arxiv.org/abs/1705.06820 tensorflow(github): https://github.com/HongyangGao/PixelDCN 基于 ...
- 论文阅读笔记十二: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 ...
- 论文阅读笔记五:U-Net: Convolutional Networks for Biomedical Image Segmentation(CVPR2015)
前面介绍了两个文本检测的网络,分别为RRCNN和CTPN,接下来鄙人会介绍语义分割的一些经典网络,同样也是论文+代码实现的过程,这里记录一下自己学到的东西,首先从论文下手吧. 英文论文原文地址:htt ...
- 论文阅读笔记七:Structure Inference Network:Object Detection Using Scene-Level Context and Instance-Level Relationships(CVPR2018)
结构推理网络:基于场景级与实例级目标检测 原文链接:https://arxiv.org/abs/1807.00119 代码链接:https://github.com/choasup/SIN Yong ...
- 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification
Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...
随机推荐
- 自定义内建模块 - Python Build Your Own Built-In Module
在 python 中, 用户可以通过 py 文件创建自定义的 module, 也可以通过 C 创建 dll, 扩展 python module. 当用户在一个正在编辑的模块 module 中, 引入( ...
- qt creator源码全方面分析(2-0)
目录 Extending Qt Creator Manual 生成领域特定的代码和模板 代码片段 文件和项目模板 自定义向导 支持其他文件类型 MIME类型 高亮和缩进 自定义文本编辑器 其他自定义编 ...
- Day1前端学习之路——概述
终于下定决心要好好学习前端知识了,以后会把学习过程中的一些随笔记录在这里.HTML.CSS.JavaScript这三大前端语言在大三的时候就有所接触,但是学习的不够深入,这一次希望能够坚持下去. 学习 ...
- java.net.SocketTimeoutException: Read timed out 异常排查
问题描述:使用RestTemplate调用接口出现该异常,相关调用代码: ResponseEntity<ResultVO> responseEntity; try { responseEn ...
- 一招教你用数据可视化BI软件创建网店运营监控大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以网店运营监控大屏为例为大家演 ...
- C#使用Environment.TickCount 自定义的定时器类
Environment.TickCount, 官网介绍:一个 32 位带符号整数,它包含自上次启动计算机以来所经过的时间(以毫秒为单位). *由于 TickCount 属性值的值是32位有符号整数,因 ...
- C++中的public、protected和private
访问权限控制 一个类的public的成员变量.成员函数,可以通过类的实例变量进行访问. 一个类的protected的成员变量.成员函数,无法通过类的实例变量进行访问,但是可以通过类的友元函数.友元类进 ...
- 【转载】sql-builder介绍
原文链接:sql-builder介绍 关于sql-builder sql-builder尝试使用java对象,通过类SQL的拼接方式,动态快速的生成SQL.它可作为稍后的开源项目ibit-mybati ...
- [Python之路] bisect模块
bisect模块 bisect是Python提供的二分查找模块 源码如下: """Bisection algorithms.""" def ...
- C#方法中的各类参数
居家隔离的第26天,还在持续的疫情着实让人担忧,看着每天新增的确认人数数字,也在为那些家庭祝福,每当想想那不是一个数字是一条条鲜活的生命时就格外沉重.利用闲在家里的时间巩固C#语言的一个难点.最近在温 ...