Video Prediction Recalling Long-term Motion Context via Memory Alignment Learning

论文:https://arxiv.org/abs/2104.00924

1. 动机

计算机视觉领域中的视频预测技术目前已经应用到天气预测、交通情况预测和自动驾驶等领域中,但其面临的主要技术瓶颈来自于捕获长距离的高维的运动动态信息。

先前的工作大多使用RNN网络来捕获长距离信息,但由于RNN中的隐层状态是通过提取当前序列内部的关系信息来得到,所以其很难预测未来帧的走向。

本文专门对长距离动态上下文进行建模来进行视频预测,解决了RNN方法捕获动作上下文的固有问题,并提出了一个LMC-Memory记忆对齐模块建立起当前输入序列与历史动作上下文的映射关系,方便后续的上下文重建。

此外,为了解决运动特征的高维表征问题(由动作的复杂性和外观的多样性造成),作者对记忆特征进行解藕将全局运动和局部运动区分开来,可以提升对局部运动预测的准确性。

2. 方法

本文方法主要由动作上下文驱动的视频预测模块和长距离动作上下文记忆模块构成。

2.1 总体流程

下图为LMC-memory进行视频预测的总体流程,模型的输入为一系列连续的视频帧以及它们的差分序列,分别输入到上侧的未来帧预测支路和下侧的动作上下文记忆支路。

差分序列反映了当前动作的连续信息,通过运动匹配编码器得到匹配向量,从LMC-memory模块中查询得到全局动作上下文记忆向量,LMC-memory由全部的训练数据训练得到,包括了多样的运动上下文模式,所以查询得到的记忆向量可以看作为当前输入序列所对应的长距离信息,随后再其拼接到上侧支路参与未来帧的预测。

上侧支路首先对输入序列进行编码表示,提取视频外观特征,随后通过ConvLSTM进行循环处理得到输入序列的历史依赖。

但是当前得到的特征向量只含有输入序列本身的内部信息,不足以预测动作未来的走向,所以将该特征与下侧支路得到的匹配记忆向量进行注意力拼接得到长距离动作上下文表示,再输入到图像解码器中得到最后的帧预测结果。

2.2 LMC-Memory记忆模块

LMC-Memory模块主要用来保存和提供长距离依赖的动作上下文信息,LMC的优化分为两个阶段,分别为运动上下文存储阶段和输入序列上下文匹配阶段,如下图所示:

由于短暂的输入序列包含的动作信息很有限,如何有效的提取其中的信息并与记忆模块中存储的长距离信息进行匹配,是该模块的关键所在。

作者提出了一种新颖的记忆对齐学习算法,在存储阶段,需要输入较长的序列帧来提取长距离动作上下文信息,使用C3D提取得到编码向量作为初始记忆向量进行存储得到记忆池,随后输入的的编码向量作为查询向量与当前记忆池中存储的内容计算相似度得到相似度权重,计算公式如下:

作者将该权重看作当前输入运动特征在记忆池中的寻址向量(权重越大表明当前输入序列所包含的运动上下文已经存在于记忆池中),可以根据该权重将当前输入特征通过加权求和的方式不断更新记忆池中对应的长距离运动记忆向量:

记忆池更新结束后进入上下文匹配阶段,这一阶段的操作流程基本与上一阶段保持一致,不同的是,在匹配阶段,模型的输入是短暂的序列,而且需要固定记忆池中的参数,编码器同样使用C3D,对短序列提取特征后,从记忆池中提取与其最为相似的长距离运动上下文,然后拼接到视频预测模块进行未来帧的预测,模型的损失函数为常规的像素级预测损失:

3. 实验效果

本文在三个数据集上进行了实验,分别是虚拟合成的Moving-MNIST,和真实场景中收集的动作数据集KTN Action和Human 3.6M,使用MSE、PSNR、SSIM和LPIPS作为评价指标。

在Moving-MNIST上的实验结果如下表所示:

可以看到,本文的方法在预测结构一致性方面都超过了其他SOTA方法,同时由于加入了记忆模块,本文方法在计算资源方面相比其他方法也有很大的优势。

下图为KTH Action的可视化效果,输入序列为9帧,且画面中的走路动作刚刚出现,其所包含的运动上下文信息非常有限,本文的方法可以在较长范围内精确的预测到画面中人物走动的位置,其他方法预测的结果逐渐退化,并且没有捕捉到核心的运动信息。

论文:

https://arxiv.org/abs/2104.00924

代码:

https://github.com/sangmin-git/LMC-Memory

备注:视频

视频理解交流群

扫码备注拉你入群。

CVPR2021|引入记忆模块,突破长距离依赖视频预测的性能瓶颈相关推荐

  1. Non-local:用于捕获长距离依赖关系

    论文地址:https://arxiv.org/pdf/1711.07971v1 目录 0.摘要 1.引言 2.相关工作 3.Non-local网络 3.1.基本公式 3.2.一个non-local的实 ...

  2. CVPR 2022 | 未知目标检测模块STUD:学习视频中的未知目标

    前言 构建能够检测分布外(OOD)目标的可靠目标检测器是至关重要的,但尚未得到充分探索.关键挑战之一是,模型缺乏来自未知数据的监督信号,从而对OOD对象产生过于自信的预测. 文章提出了一种基于时空未知 ...

  3. 科学释梦——意识窗口在记忆模块间的穿越

     作者:谢平 中国科学院大学教授 唐代诗人李白曾说,"浮生若梦,为欢几何",将人生喻为短暂的梦幻.有些人生如梦,有些梦若人生,还有梦想人生......梦--五彩缤纷,诡异神奇,我们 ...

  4. 02-Maven高级-分模块开发、依赖传递、聚合、继承(SpringBoot的部分底层原理)、多模块开发(环境切换)、Nexus私服搭建与使用

    文章目录 学习目标 一.分模块开发与设计 1. 分模块开发的意义 问题导入 模块拆分原则 2. 分模块开发(模块拆分) 问题导入 2.1 创建Maven模块 2.2 书写模块代码 2.3 通过mave ...

  5. vue-cli cdn方式引入Vue模块

    文章目录 vue-cli cdn 方式引入 Vue 模块 前言 选择 Vue 的 cdn 如何引入 cdn ? 一手插入 一手准备 小结 + 打包测试 快速配置篇 FAQ 是否需要删除 import ...

  6. Maven模块间循环依赖的解决方案以及分析

    Maven模块间循环依赖的解决方案以及分析 问题重现 在coding中Maven各个模块之间经常会有互相引用的问题,当A模块中需要用B模块的功能,而B模块很有可能也需要用到A模块中的功能,这样就会存在 ...

  7. go语言-引入本地模块的方法

    若有两个模块A和B,两个模块均在本地,且A和B在同一个目录下,在B调用A时,直接在B中如下引入A模块,会报找不到A模块的错误: import "A" 如何解决呢?可以使用go mo ...

  8. Spring5各模块之间的依赖关系

    Spring 官网对Spring5 各模块之间的关系也做了详细说明: 我本人也对Spring5 各模块做了一次系统的总结,描述模块之间的依赖关系,希望能对小伙伴们有所帮助. 深入了解Spring 的核 ...

  9. 【专题介绍】跨越 X 突破,音视频聚力新机遇

    " "音视频+无限可能"是一扇 LiveVideoStackCon面向新兴领域开启的大门,在移动互联网红利消失.内卷的局面下,智能车.制造.金融.医疗.出海等新兴领域还在 ...

最新文章

  1. KV结构的集合,在处理null值的存储上有细微的区别,下列哪些说法是正确的
  2. 170728、单例模式的三种水平代码
  3. 腾讯GaiaStack容器平台负责人罗韩梅:All on GaiaStack
  4. OkHttp源码深度解析
  5. P3389 【模板】高斯消元法
  6. C#调用Couchbase中的Memcached缓存
  7. linux-U盘的识别-卸载-挂载操作
  8. adalm pluto_Apache Pluto Portlet&Struts 2集成示例教程
  9. mysql 查询 一天的时间_MySQL怎么查询每天打卡的最早时间和最晚时间?
  10. Python笔记--Numpy的shape
  11. Floyd算法实现实际问题——18个城市间最优路线规划
  12. AiBote 2022 新研发的自动化框架,支持 Android 和 Windows 系统。速度非常快
  13. c语言数字的写法田字格,正确书写数字1-10的方法,实用!
  14. 初夏小谈:结构体内存对齐详解
  15. 互联网创业必须知道的几个名词:蝴蝶效应、青蛙现象、鳄鱼法则……
  16. mysql 密码插件 validate_password
  17. arduino控制红外避障传感器
  18. 浙江应用计算机考试考什么条件,浙江软考都考什么?
  19. 【读期刊】基于卷积神经网络的方法对感应电动机进行故障诊断
  20. 一级b类计算机试题的体型,计算机二级VB习题

热门文章

  1. tensorflow第十一步CNN表情识别
  2. 机器学习之PCA原理
  3. Canny边缘检测及C++实现(转载)
  4. android studio抛出,Android Studio中新的项目不能运行,抛出错误(Android Studio new pr
  5. 波兰表达式(前序表达式)的计算(栈)
  6. 离线排序——LR模型
  7. 矩阵问题入门(矩阵乘法and矩阵快速幂)acm寒假集训日记22/1/15
  8. 格雷码基础和生成的几种方法
  9. [TIPS]数据库 应用软件 MSSMS
  10. 数据太多加滚动标题不动_音乐数据挖掘导引(四)