关注公众号,发现CV技术之美

论文题目:Video-based Person Re-identification with Spatial and Temporal Memory Networks

论文链接:https://arxiv.org/abs/2108.09039
项目主页:https://cvlab-yonsei.github.io/projects/STMN
代码链接:https://github.com/cvlab-yonsei/STMN

本文介绍一篇来自韩国延世大学cvlab的论文,该文针对视频行人重识别任务提出了一种双记忆网络,并在多个数据集上达到SOTA性能。

01

动机

基于视频的行人重识别(reID)主要通过多个摄像头的数据来检索与当前查询人员身份一致的行人视频片段。在视频数据中,行人表观在空间和时间上相比图像数据有更多的干扰因素,例如视频背景的杂乱和视频帧出现的部分遮挡,这些因素使得这项任务比基于图像的reID更具挑战性。

上图详细说明了视频数据中存在的各种干扰因素和时序特性,(1)由于视频序列是由一系列的固定摄像头拍摄得到,因此这些序列中可能包含固定的背景噪声,如上图(a)中所示。

从时间角度出发,(2)可以观察到,有些行人可能会消失在序列的末尾,如上图(b)中列所示。而有些行人会在序列的开始阶段受到遮挡,如上图(b)右侧所示,这些现象提供了非常关键时间注意力线索。

基于以上分析,本文提出了一种时空记忆网络STMN(Spatial and Temporal Memory Networks)。网络包含有两个记忆模块,分别用来学习和存储空间记忆和时间记忆。

其中空间模块用来存储那些经常出现的空间干扰项,而时间模块用来存储行人视频数据中常态化的时序模式(temporal patterns)。

在模型的测试阶段,将训练时存储好的记忆模块作为查找表(look-up tables),帮助网络在空间层面对特征干扰项进行抑制,在时间层面通过记忆向量对特征进行增强。

02

本文方法

本文提出的STMN主要由三个部分构成:编码器、空间记忆模块和时间记忆模块。编码器对输入的每个视频帧提取一个行人表征和两个查询向量,分别对应于访问空间记忆模块和时间记忆模块。

其中空间记忆模块主要存储当前场景中经常出现的场景细节。使用空间查询向量可以从空间模块中将这些细节信息提取出来,帮助细化当前的输入的行人特征向量,抑制其中包含的空间噪声。时间记忆向量抽象了当前场景中经常出现的时序注意力,后续也可以对行人特征向量进行增强。

2.1 空间记忆模块

空间记忆模块的主要作用是细化当前输入的行人特征,未经处理的行人特征中可能包含一些当前场景特定的背景外观信息,例如背景中的树,自行车以及道路上的纹理等等,这些外观可能会干扰网络在同一场景区分不同行人的鉴别能力,空间记忆模块的构成如下图所示。

记忆模块采用key-value匹配机制,共包含M个记忆向量,输入的行人特征向量首先作为查询向量输入到模块中进行匹配,需要注意的一点是,在匹配时,需要先将按照空间维度展开与所有的记忆key向量进行对应,并通过余弦相似度计算相似度:

计算得到的匹配概率可以看作是当前输入行人特征中包含有背景干扰项的概率,作者认为背景干扰项存在多种,因此使用M个记忆向量分别进行存储,通过加权求和可以得到聚合记忆特征,随后使用输入的行人特征减去该聚合特征达到抑制背景噪声的作用,具体过程如下:

2.2 时间记忆模块

由于使用空间记忆模块对行人特征进行处理时,是独立的一帧一帧进行操作,作者认为这样处理无法捕捉视频序列中的时序上下文信息,可能导致整体框架会受到帧与帧之间遮挡和错误的影响,因此额外设计了一个时间记忆模块,构成如下图所示:

时间记忆模块同样采用key-value匹配机制,但是模块的输入是一系列查询特征向量构成的序列和经过空间记忆模块细化后的序列特征,随后经过一个全局平均池化(GAP)和LSTM网络捕获每个序列的时序特征:

其中是每个LSTM网络最后时刻的输出,包含了序列的上下文信息,随后使用类似于空间记忆模块计算相似度的方式计算得到当前输入行人特征与模块中存储最接近的记忆向量:

之后使用同样的方式对空间模块细化后的特征向量计算全局平均池化,并与记忆模块匹配得到的结果相乘就得到整个网络的最终输出,作为当前输入行人序列的特征。

2.3 损失函数

整体框架的损失函数有两部分联合构成,分别是记忆传播损失和身份识别损失,整体损失函数的公式如下:

由于在训练过程中,除了行人的身份标签之外,没有使用其他额外的监督信号,因此在初始阶段,记忆模块中的key向量并不清楚应该如何与输入的行人特征进行匹配,在这种情况下,模型可能会单一的选择其中一个记忆向量,而忽略了其他向量的更新,如下图所示:

为了解决这个问题,作者提出了如下的记忆传播损失:

该损失通过在两个记忆模块的匹配概率矩阵中设置一个最大最小值的差距阈值,来强制网络在训练期间访问和更新所有的记忆向量,避免出现上图左侧中只更新中间向量的情况。对于身份识别损失,本文与其他行人重识别方法类似,使用交叉熵和三元组损失相结合的形式。

03

实验效果

本文在三个具有代表性的视频行人重识别数据集上进行了实验,分别是MARS,DukeMTMC-VideoReID和LS-VID。

其中对于MARS数据集,作者首先将训练集分成了两个子集,身份占比为500/125,并使用这些身份对应的7075/1223个帧序列作为训练集和验证集,对于查询帧序列,是从上一步划分出来的验证集中随机选择200个帧序列对记忆模块进行训练和更新。本文方法与其他现有方法的对比如下表所示:

上表中展示了RSS(restricted random sampling)[1]采样设定和全部帧采样的实验效果,其中RSS采样方式会首先将每个序列分成L个块,然后从每个块中随机选择一帧构成序列再送入网络。

在本文的实验中,使用RSS采样训练的STMN网络甚至超过了之前方法在所有帧上训练的效果,这表明STMN可以仅需要采样帧的信息就可以高效的鉴别视频中行人的身份,这一特性对于需要迅速从海量视频中检索出关键人物的视频ReID任务非常重要。

此外,作者还将空间记忆模块和时间记忆模块中存储的记忆特征向量进行了可视化,下图为记忆模块的可视化效果:

左侧为拥有相同匹配key的输入帧,可以看到每个记忆key都对应了一种相近的场景细节,例如第一行背景中的体育场,第二行中的路灯和第三行的道路纹理。

这验证了本文的记忆模块可以根据每个视频帧的场景细节来访问空间记忆向量。右侧为经过记忆模块抑制处理之后的特征向量可视化效果。

对于时间记忆模块,作者也可视化了一部分具有相同匹配key的输入序列,如下图所示,可以观察到每个key检索到的序列具有相似的时序模式,如下图左侧的序列中,行人都是在序列的末尾消失,在右侧的序列中,行人的外观在整个序列中都非常相似。这也验证了时间记忆模块可以存储不同的行人运动模式。

04

总结

本文针对视频行人ReID任务提出了一种双记忆模块增强的方法,称为STMN,该方法分别针对视频中的空间和时间干扰因素进行建模和抑制,并通过两个不同的外部记忆模块进行存储和表示。

随后使用两个模块的记忆向量对行人特征进行细化和增强,使其更加专注于学习行人的身份特征。同时为了提高记忆模块的存储质量,作者还提出了一种记忆传播损失来缓解记忆模块的冗余现象。

参考

[1] Shuang Li, Slawomir Bak, Peter Carr, and Xiaogang Wang. Diversity regularized spatiotemporal attention for video-based person re-identification. In CVPR, 2018.

END

欢迎加入「ReID交流群

ICCV2021|STMN:双记忆网络提升视频行人ReID性能相关推荐

  1. ICCV 2021 oral 重构+预测,双管齐下提升视频异常检测性能

    关注公众号,发现CV技术之美 本文分享 ICCV 2021 oral 论文『A Hybrid Video Anomaly Detection Framework via Memory-Augmente ...

  2. 基于深度前馈序列记忆网络,如何将语音合成速度提升四倍?

    研究背景 语音合成系统主要分为两类,拼接合成系统和参数合成系统.其中参数合成系统在引入了神经网络作为模型之后,合成质量和自然度都获得了长足的进步.另一方面,物联网设备(例如智能音箱和智能电视)的大量普 ...

  3. iOS培训-网络提升篇-李珊-专题视频课程

    iOS培训-网络提升篇-9883人已学习 课程介绍         适合人群:网络提升篇.iOS提升阶段 <iOS网络提升篇>是长沙戴维营教育(http://www.diveinedu.c ...

  4. vivo信号无服务器,vivo创新推出双WiFi网络加速功能,是否实用,聊胜于无!

    原标题:vivo创新推出双WiFi网络加速功能,是否实用,聊胜于无! "极客谈科技",全新视角.全新思路,伴你遨游神奇的科技世界. 近期,vivo公布了一项较为特殊的技术,双WiF ...

  5. 显著改善分割预测,ETH开源基于情景图储存网络的视频目标分割|ECCV2020

    原文链接:https://bbs.cvmart.net/articles/3119 专注计算机视觉前沿资讯和技术干货 微信公众号:极市平台 官网:https://www.cvmart.net/ 本文主 ...

  6. 12种提升视频质量的方法

     点击上方"LiveVideoStack"关注我们 翻译.编辑 | Alex 技术审校 | 章琦 本文来自OTTVerse,作者为Krishna Rao Vijayanagar. ...

  7. 长短期记忆网络_科研成果快报第181期:改进的长短期记忆网络用于长江上游干支流径流预测...

    改进的长短期记忆网络用于长江上游干支流径流预测 An improved Long Short-Term Memory Network for Streamflow Forecasting in the ...

  8. 57 长短期记忆网络(LSTM)【动手学深度学习v2】

    57 长短期记忆网络(LSTM)[动手学深度学习v2] 深度学习学习笔记 学习视频:https://www.bilibili.com/video/BV1JU4y1H7PC/?spm_id_from=a ...

  9. 视频行人重识别系统(UI界面,Python源码,可下载)

    下载链接:https://mbd.pub/o/bread/mbd-Y5WVmJpt 演示视频链接:https://live.csdn.net/v/236533 目录: 前言 1.功能及操作说明 2.目 ...

最新文章

  1. 使用PyTorch从零开始实现YOLO-V3目标检测算法 (四)
  2. (转载)Linux 信号signal处理机制
  3. xp系统蓝屏代码7b_遇到系统问题,三种常见处理方法你更pick谁
  4. slidingmenu阻碍沉浸式实现的原理讲解,demo下载地址在github
  5. oracle查询100到200数据,100分数据库查询语句(ORACLE 11g)
  6. (C语言版)栈和队列(二)——实现顺序存储栈和顺序存储队列的相关操作
  7. Linux 下安装JDK1.8-解压版
  8. 【EMV L2】终端风险管理(Terminal Risk Management)
  9. CTP2交易所成交回报
  10. t-sql中引号的使用规则 转
  11. 标准库Allocator的简易实现(二)
  12. arduino人体红外传感器_Arduino 使用人体红外感应模块 HC-SR501
  13. 2021-10-12 CHIP类PCB封装的创建
  14. 你不知道的Linux的发展史
  15. 利用Spring扩展点模拟Feign实现远程调用(干货满满)「扩展点实战系列」- 第445篇
  16. 太极拳什么时间练习最适宜
  17. 43款设计师必备英文设计字体【书法类字体】
  18. 你的小程序|公众号 还未设置管理员信息,无法被绑定
  19. 数据挖掘面试 150 道题(附答案)
  20. 电大专科《计算机网络》机考题库,电大专科计算机网络机考网考纸考题库及答案.doc...

热门文章

  1. Procrustes Analysis(普氏分析)
  2. 安装nginx时关系依赖库openssl.lib时,出现:error: 'NR_syscalls' undeclared (first use in this function)
  3. Spring框架 IOC
  4. SSH框架整合——基于注解
  5. python不用模块调用麦克风_python调用pyaudio使用麦克风录制wav声音文件的教程
  6. linux中向空文件写入内容,linux – 为什么写入现有文件比写一个新的空文件更快?...
  7. 如何在计算机桌面上增添word,怎么在桌面添加Word文档
  8. 遍历数组长度_Java基础之数组
  9. 阿尔伯塔大学计算机科学本科几年,本科——21阿尔伯塔大学CS专业早录取
  10. fiddler使用_fiddler使用教程