Learning temporal regularity in video sequences

论文地址链接

Abstract

  由于视频中有意义活动(指异常)具有模糊的定义以及视频中场景混乱,因此作者通过学习规则运动模式(称为regularity)的生成模型来解决这个问题。
  作者主要构建了两个模型①首先利用传统手工制作的时空局部特征,并在其上学习一个完全连接的自动编码器。②建立了一个完整的卷积前馈自动编码器来学习局部特征和分类器作为一个端到端学习框架。
  作者从多个数据集训练捕获regularity。通过实验证明了作者的方法取得了竞争性的性能。

Conlusion

与abstract内容类似

Introduction

  学习有意义或显著时刻的时间视觉特征(异常)是非常具有挑战性的,因为这些时刻的定义是不明确的,即视觉上没有边界。学习普通时刻的时间视觉特征相对容易,因为它们经常表现出时间规律的动态,如周期性的人群运动。所以仅使用只包含普通时刻即正常帧的数据集进行训练以学习规则时间模式。作者使用多个不同数据集训练一个模型然后用于多个视频数据集的测试。
  之前通过利用仅包含正常样本视频进行训练的方法涉及到稀疏编码和词袋的组合,但是单词袋不保留单词的时空结构,需要关于单词数量的先验信息,而且用于训练和测试的稀疏编码优化计算成本很高,特别是对于视频等大数据。
  作者提出了一种基于自动编码器的方法。它的目标函数比稀疏编码具有更高的计算效率,并且在动态编码的同时保留了时空信息,通过只包含正常样本的训练集以获取小的重构误差为目的训练自编码器,在测试阶段自编码器对正常样本会产生较小的重构误差而对于异常样本会产生较大的重构误差。
  作者基于两种类型特征学习两个自编码器,一个是之前SOTA方法使用的手工特征,但是这种特征不是为该任务专门设定的所以可能是次优的,所以作者设定了端到端的模型。作者在Avenue、Subway、ped1和ped2数据集上进行了训练。作者通过从视频中合成最规则的帧,描绘涉及不规则运动的对象,从单个帧中预测过去和未来的规则运动展示了他们的方法在各种应用中发现视频的时间规则的外观变化模式。
  作者的贡献概述如下:①展示了自编码器能有效学习长持续视频中的动态规律并用于鉴别视频中的异常。②使用全卷积自编码器学习低层次的运动特征③将该模型应用于各种应用,包括学习时间规律性,检测与不规则运动相关的对象,过去和未来帧预测,以及异常事件检测。
  PS:主要亮点在于使用卷积自编码器端到端训练模型,在此之前应该无人尝试过,自编码器最初是用来提取特征的,15年BMVC那篇就是仅使用它提取特征,但这个朴素的想法16年才有人尝试或许是因为视频异常检测当时过于小众。此外本文的实验很丰富。

Method

基于手工特征

  首先从视频帧中提取手工制作的外观和运动特征。然后,使用提取的特征作为输入到一个全连接神经网络的自动编码器,以学习视频中的时间规律性。手工特征包括HOG、HOF,涉及到了时间和空间的特征,因手工特征目前基本已不再使用,具体细节可见论文。输入最后为204维,编码器结构如下图:

较小的中间层用于学习紧凑的语义和减少噪声信息,输入和重构的均为HOG和HOF所以值的范围为0到1因此使用tanh或者sigmoid激活函数,Relu对于连接很多神经元的话值加起来可能会变得非常大,因为是全连接的网络。此外针对大的接受野,使用了稀疏权重初始化技术,在初始化步骤中,每个神经元连接到前一层随机选择的k个单位,其权值由一个零偏置高斯单位得到。因此,每个神经元的输入总数是一个常数,这就避免了大的输入问题。
  训练目标函数如下:

XiX_iXi​表示输入的特征,通过自编码器fWf_WfW​产生重构计算均方误差,N为batch大小。

端到端学习

模型结构

  作者使用全卷积的自编码器学习,输入为视频片段,网络不包含全连接层因为其会损失空间信息。

结构如上图编码器三个卷积层两个池化层解码器对称有三个反卷积层和两个上池化层,作者使用滑动窗口构建输入,将T帧堆叠在一起,并将它们用作自动编码器的输入,其中T是滑动窗口的长度,作者的实验表明,随着T的增加,由于它包含了较长的运动或时间信息,其结果具有更强的识别力如下图所示。

随着T的增加,训练损失需要更多的迭代才能收敛,因为更多通道的输入更有可能具有更多的不规则性,从而阻碍学习的规律性。另一方面,一旦学习了模型,规则区域和不规则区域之间的规则性评分更容易区分。

数据增强

  模型参数多需要大量数据进行训练,所以作者尝试了数据增强。主要方法是用各种跳跃的步长拼接帧来构造T帧大小的的输入长方体。作者从视频序列中采样三种类型的长方体stride-1、stride-2、stride-3。对1,2,3,4,5 stride-1采样为1,2,3,4,5. stride-2采样为1,3,5。作者还用预先计算的光流进行了实验。给定两帧之间光流的梯度和大小,通过线性组合梯度和大小来计算一个灰度帧。它将输入长方体的时间维度从T增加到2T。通道1… T包含灰度视频帧,而通道T + 1,…, 2T包含灰度光流信息。作者的实验表明,上述操作对效果影响不显著。

卷积和反卷积

池化和上池化

  池化采用最大池化,上池化采用最大上池化

目标函数


与上述利用手工特征方法类似,只是输入与输出变为了图片

异常分数

  训练好模型后,计算视频帧中每个空间位置(x,y)(x,y)(x,y)的像素的重构误差:

然后将一帧中所有位置重构误差加起来作为该帧的重构误差e(t)=∑(x,y)e(x,y,t)e(t)=\sum_{(x,y)}e(x,y,t)e(t)=∑(x,y)​e(x,y,t),然后通过以下公式计算规律分数:

上式max和min表示针对一个视频片段中的所有帧取最大和最小。对于改进轨迹特征上的自编码器,我们只需将I(x,y)I(x, y)I(x,y)替换为p(x,y)p(x, y)p(x,y),其中p(⋅)p(·)p(⋅)是覆盖了(x,y)(x, y)(x,y)位置的patch的改进轨迹特征描述符。

实验

  实验AdaGrad优化器,同时使用多个数据集训练模型,下图展示了使用不同数据集训练的损失曲线。对于基于轨迹特征的学习率从0.001开始,batch为1024,weight decay为0.0005.对于全卷积自编码器。batch为32,初始学习率为0.01.当损失停止下降将会减少学习率。使用Xavier初始化模型参数。本文使用的数据集包括Avenue、UCSD pedestrian、Subway。

使用不同数据集训练

  作者探究了使用特定目标的数据集、使用全部数据集和使用除了测试目标之外的数据集进行训练如下图,比较前两个结果表示效果并没有因为加入其他数据集而降低,通过比较最后一个与前两个发现该模型对给定数据集没有太过拟合可以推广到未见过的视频。作者认为所提出的网络结构在过拟合和欠拟合之间有很好的平衡。

可视化时间规律性

  学习的模型从像素精度衡量外观规律性。我们通过卷积自动编码器和改进轨迹的自动编码器收集规律性分数最高的像素,从测试视频中合成最规则的帧。下图的第一列显示了包含不规则运动的样本图像。第二列显示合成的规则帧。合成图像的每个像素沿时间维对应于重建代价最小的像素。最右边的一列显示相应的规律性得分。蓝色代表高分,红色代表低分。

  下图显示了使用提高轨迹自动编码器的结果。左列显示视频序列的不规则帧样本,右列显示像素级的规律性分数。它捕捉不规则到补丁精度,因为提取轨迹特征是利用patch的;因此,空间位置不像卷积自编码器那样精确。

预测正常的过去帧和未来帧

  使用除中心帧外空白的clip,我们可以预测给定中心帧附近的规律视频clip的过去和未来的帧。给定一幅图像,构造一个时间立方体作为网络的输入,方法是用零值填充其他帧。然后输出产生预测。

异常事件检测

  实验结果:

  在规律性分数的时间序列中找到局部极小值来检测异常事件。然而,这些局部极小值噪声很大,并不是所有的都是有意义的局部极小值。使用persistence1D算法来识别有意义的局部极小值,并使用固定的时间窗(50帧)跨越该区域,当它们重叠时对附近的扩展局部极小值区域进行分组,以获得最终的异常时间区域。具体地说,如果两个局部极小值彼此在50帧内,它们被认为是同一异常事件的一部分。如果检测到的异常区域与地面真实值至少有50%的重叠,认为它是正确的检测。
作者的模型比最先进的异常事件检测方法性能更好,但有一些误报因为作者的方法能够识别出任何偏离规则的情况,其中许多情况并没有在这些数据集中被标注为异常事件,而其他方法则专注于识别异常事件。

可视化卷积核结果

  作者在下图中可视化了模型在Avenue数据集上学习的一些过滤器响应。第一行显示输入数据的一个通道和conv1层的两个滤波器响应。这两个过滤器对不规则物体——框架顶部的袋子的反应完全相反。第一个过滤器提供非常低的响应(蓝色),而第二个过滤器提供非常高的响应(红色)。第一个过滤器可以被描述为检测规律性的过滤器,而第二个过滤器检测。不规则性。所有其他过滤器显示类似。第二行分别显示了conv2层和conv3层滤波器的响应。早期的层(conv1)捕获细粒度的规则运动模式,而较深的层(conv3)捕获更高级别的信息。

最终帧级别 AUC:
  ped1(81%)
  ped2(90%)
  Avenue(70.2%)

Discussion:
1.通过输入连续多帧然后利用二维卷积学习时空特征,是否能学习到时间特征?时序特征非常重要,多帧堆到一起通过卷积核卷积后多帧相加得到最后卷积结果,应该可以学到一定的时序特征。此外时序特征到底是什么?
2.本文的异常分数计算,如何确定一帧的异常分数文中没有详细介绍,目前该文章代码也没有找到。

以上个人理解,希望与大家一起交流~

【论文精读】2016-CVPR-Learning temporal regularity in video sequences相关推荐

  1. Learning Temporal Regularity in Video Sequences——视频序列的时间规则性学习

    Learning Temporal Regularity in Video Sequences CVPR2016 无监督视频异常事件检测早期工作 摘要 由于对"有意义"的定义不明确 ...

  2. 【论文精读】Pairwise learning for medical image segmentation

    Published in: Medical Image Analysis 2020 论文:https://www.sciencedirect.com/science/article/abs/pii/S ...

  3. 【论文精读】Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting

    [论文精读]Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting 针对未来的一个多步 ...

  4. 繁凡的对抗攻击论文精读(二)CVPR 2021 元学习训练模拟器进行超高效黑盒攻击(清华)

    点我轻松弄懂深度学习所有基础和各大主流研究方向入门综述! <繁凡的深度学习笔记>,包含深度学习基础和 TensorFlow2.0,PyTorch 详解,以及 CNN,RNN,GNN,AE, ...

  5. 论文解读:《Learning Linear Transformations for Fast Image and Video Style Transfer》,CVPR 2019

    论文解读:<Learning Linear Transformations for Fast Image and Video Style Transfer>,CVPR 2019 0. 论文 ...

  6. 李沐论文精读: ResNet 《Deep Residual Learning for Image Recognition》 by Kaiming He

    目录 1 摘要 主要内容 主要图表 2 导论 2.1为什么提出残差结构 2.2 实验验证 3 实验部分 3.1 不同配置的ResNet结构 3.2 残差结构效果对比 3.3 残差结构中,输入输出维度不 ...

  7. 论文精读:Generative Adversarial Imitation Learning(生成对抗模仿学习)

    生成对抗模仿学习论文分享(Generative Adversarial Imitation Learning) 1.背景介绍 1.1.论文背景 这篇论文是2016年由斯坦福大学研究团队提出的,两位作者 ...

  8. 【VQ-VAE论文精读+代码实战】Neural Discrete Representation Learning

    [VQ-VAE论文精读+代码实战]Neural Discrete Representation Learning 0.前言 Abstract 1.Introduction(提出现有方法的问题并说明有哪 ...

  9. 【推荐系统论文精读系列】(五)--Neural Collaborative Filtering

    文章目录 一.摘要 二.介绍 三.准备知识 3.1 从隐式数据中进行学习 3.2 矩阵分解 四.神经协同过滤 4.1 总体框架 4.1.1 学习NCF 4.2 广义矩阵分解(GMF) 4.3 多层感知 ...

最新文章

  1. TVM 各个模块总体架构
  2. 3.1、final、finally、 finalize
  3. javascript去除首尾空白字符
  4. OS X 下在代码中枚举所有进程的方法
  5. js操作节点对象-getElementById
  6. 在JUnit中测试预期的异常
  7. 怎么在mysql查询自己建的表格_oracle数据库中怎么查询自己建的表
  8. 思科精睿系列交换机被曝高危漏洞,仅修复部分产品
  9. saveToken介绍二
  10. 黑苹果电池电量补丁_修改DSDT实现电量显示方法【转载】
  11. python +appium实现原理_Appium工作原理
  12. 微信小程序开发日记1
  13. 关于解决Android studio:The emulator process for AVD Pixel_4_XL_API_30 has terminated 以及改变AVD存放位置
  14. PC端 宽高自适应问题
  15. Java8新特性-Optional类
  16. mac 批量文件编码格式转换
  17. sqlserver官方网站地址
  18. 群晖 Sonology NAS DS920+ 拆机装机方法
  19. ur3手眼标定+realsenseL515
  20. java常用文件工具类

热门文章

  1. python爬取携程景点_python爬取携程景点评论信息
  2. php yield 携程,爬取携程国内地区攻略评论
  3. 20051114: 未麻的小屋
  4. c盘太小想扩容,合并硬盘分区的方法,硬盘合并分区的步骤
  5. 诛仙mysql怎么开战场_战场介绍:诛仙2普通战场开启条件及介绍
  6. 数据分析·零散知识点
  7. python城市经纬度网格_Python3爬虫 利用百度地图api得到城市经纬度
  8. 图的深度(DFS)/广度优先搜索算法(BFS)/Dijkstra
  9. XDOJ 中心对称字符串
  10. 概率论考点之相关系数