【论文阅读】Long-term Temporal Convolutions for Action Recognition

这篇论文之前,几乎所有的3D卷积网络的输入视频长度都很短,例如C3D、Res3D都只有16帧,那么长时输入视频对最终的结果有没有影响呢?所以本文探索了3D卷积网络输入视频的时长对识别效果的影响,发现输入视频时长越长,效果越好,从而提出了LTC 3D网络结构,同时文章评估了LTC 3D网络在不同的输入模式(RGB和光流)下的结果。个人感觉这篇论文的一些探索性实验做的都挺好的,下面也会详细地介绍这些实验。

论文地址:下载地址
LTC代码(pytorch):下载地址

LTC网络结构

文章认为不同种类的行为具有不同的时间和空间pattern,有些行为可能需要长时间的行为动态才能辨别,所以以前的将所有的视频裁剪成很多短时的视频段(16帧)并不是一种很好的方法。从而本文探索了3D卷积网络输入视频的时长对识别效果的影响,提出了 LTC 3D网络结构,如下图所示:

其实网络结构没有什么好介绍的,和C3D很相似,网络含有5个3D卷积层,每个卷积层分别包含64,128,256,256,256个卷积核,最后包含3层全连接层,所有3D卷积核的大小为3x3x3,每一层卷积层都跟着relu激活和最大池化层,池化层的大小除了第一层为2x2x1,其余层大小都为为2x2x2,前两层全连接层后都跟着dropout。

正文实验

不同光流下的实验

文章首先实验了不同种光流输入下LTC网络的效果。文章实验了3种光流:MPEG [1]、Farneback [2]和Brox [3],其中MPEG计算速度比较快,但是这种光流的空间分辨率不高。Farbeback的计算速度也挺块,但是噪声也比较大。Brox光流是目前表现最为准确的一种光流。各种光流如下图所示:

各种光流的实验结果如下表所示,可以看到光流输入中Brox光流的效果最好,准确率最高,所以高质量的光流作为输入,对最终的识别率的提高还是很大的。而且所有光流输入的结果都大于RGB输入。

不同输入时长的实验

长时输入能提高准确率吗?16帧和60帧的对比

文章首先实验了两种不同时间长度的输入(16帧和60帧),需要注意的是 16帧的输入的空间分辨率为 112x112,而60帧输入的空间分辨率为 58x58, 这么做是为了使网络的参数量大致相当(全连接层的输入尺寸保持一致),实验结果如下表所示:

可以看到无论是RGB输入还是光流输入,60帧输入的效果都更好,文章首先验证了自己的猜想:增加输入视频的时长可以有效地提高行为识别的准确率。

更多不同时间和空间分辨率的对比

为了丰富实验结论,文章又做了不同输入时间长度 {20,40,60,80,100}和不同输入空间分辨率 {58x58,71x71} 的实验。其实验结果如下图所示:

其中 H 表示高分辨率,L 表示低分辨率,可以看到,对于不同的空间分辨率,在时间长度较短的输入中,视频帧的空间分辨率越高,收益越大,但是随着输入视频帧长度的增长,这种收益变小了。文章认为是随着输入时间长度的增加,网络的参数量越来越多,所以两种分辨率都过拟合了。
对于不同的时间长度输入,由上图可以看出,不论是RGB输入还是光流输入,不论是clip的准确率还是video的准确率,都是随着输入视频的长度的增加是逐渐提高的。

典型行为的具体分析

从上节可以看到,clip或者video的平均识别率是随着输入时长的增加而增长的,那么具体到每一类行为,其准确率随着输入视频时长的增长是怎么变化的呢?文章同时挑选了几种典型行为的结果,如下图所示:

从上图看出,不存在随着视频帧长度增加而准确率单调降低的行为,但是存在先增加后减少的行为,文章认为是因为该行为的视频长度太短(只有90帧),所以在裁剪输入的时候需要首先将原视频循环到足够的长度,使行为失去了连贯性。所以对于不同类别的行为,有适合它的输入时长。对于长时输入的效果的提升,文章认为 LTC 可以捕获不同长时行为中可分辨的行为,例如体操和标枪,都含有跑步,区分的动作在最后,所以 LTC 可以很轻松地辨别这些行为。体操和标枪的行为示意图如下图所示:

可以看到在前16帧中,两种行为都是助跑,不容易区分,而到第60帧时,我们就很容易区分两种行为了。

不同行为最优时长输入的统计

从上节可以知道大多数类别的行为都是会受益于输入时长的增加,但是不同的行为类别具有不同的最优输入时长,我们从而产生疑问,各种行为的最优时长的分布是怎样的呢?以UCF101数据集为例,作者统计了不同种行为的最优时长,如下图所示:

从上图可以看出,大多数行为的最优时长为100帧。

最理想的输入时长?

文章画出了各种不同时长输入的准确率的提升,如下图所示:

(说实话这一段没怎么看懂,不知道他想要表达什么)。

不同输入时长结果的融合?

文章最后对不同输入时长下的结果进行了融合,可以看到融合不同时间分辨率和不同输入模式的网络会提高识别准确率。

探索性实验

文章做了很多探索性的实验,看一看这些实验感觉还是蛮有意思的。

3D卷积核的可视化

文章首先可视化了LTC网络的第一层卷积层中的卷积核,如下图所示:

我们知道对于光流输入,其卷积核的尺寸为 2x3x3x3,那么如何才能将其可视化呢?很简单,首先不考虑时间维度,将 2x3x3尺寸的卷积核进行可视化,相当于在 3x3尺寸的图像上,以channel值为x,y维度画出向量(这个应该很好理解),然后再考虑时间维度,不同时间的向量依次衔接。上图一共可视化了18个卷积核,每一个小方框里为一个2x3x3x3尺寸的3D卷积核,空间尺寸为3x3,时间维度使用不同颜色的箭头来表示,可以看到第一层卷积核就能学习到非常复杂的运动行为。

网络顶层激活值的可视化

文章又对 LTC 网络顶层卷积核的激活值进行了可视化。给定一个卷积层和该层中的一个卷积核,计算所有测试视频在这个卷积核上的激活值,对激活值排序,选择激活值最大的前7个视频,观察这些视频分别属于哪一类。实验结果如下图所示:

上图中左侧为100帧输入的结果,右侧为16帧输入的结果,分别对3-5层卷积层的激活值可视化,一共选择了30个卷积核中的前7个激活值。从上图可以很明显地看到,100帧输入的激活值最高的视频的类别的纯度最高(额。。100f的准确率高,纯度高很正常吧。。)

网络激活值的反卷积


文章同时对卷积核对应的最大激活值映射回输入帧中并进行了可视化,可以看到对于100帧的输入,最大激活值一般都对应着同一类的视频(因为准确率高嘛)。而且你可以发现大都是salient区域的激活值最大。

训练细节

训练阶段:文章使用SGD+动量的优化方法,batchsize16帧的输入为30,60帧的输入为15,100帧的输入为10,学习率初始化为0.003(重新训练)和0.0003(微调),dropout为0.9,动量设为0.9,权值衰减为0.005,并且随着学习率的减少,乘以0.1。
测试阶段:使用t帧的窗口以步长为4进行滑动来裁剪视频段,每个视频段同时数据扩充为10个输入(4个角和中心的裁剪以及他们的水平翻转),最后的结果为所有视频段的平均。

[1] Kantorov, Vadim, and Ivan Laptev. “Efficient feature extraction, encoding and classification for action recognition.” In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pp. 2593-2600. 2014.
[2] Farnebäck, Gunnar. “Two-frame motion estimation based on polynomial expansion.” In Scandinavian conference on Image analysis, pp. 363-370. Springer, Berlin, Heidelberg, 2003.
[3] Brox, Thomas, Andrés Bruhn, Nils Papenberg, and Joachim Weickert. “High accuracy optical flow estimation based on a theory for warping.” In European conference on computer vision, pp. 25-36. Springer, Berlin, Heidelberg, 2004.

【论文阅读】Long-term Temporal Convolutions for Action Recognition相关推荐

  1. 《Long-Term Temporal Convolutions for Action Recognition》 论文翻译

    翻译,论文原文来自PAMI官方网站,原文链接 翻译人: 翻译时间:2018年6月10日14:39:18 并标记了一些重点. 目录 作者 摘要 关键词 介绍 相关工作 长时期卷积 网络架构 网络输入 学 ...

  2. 论文阅读 - Large-scale weakly-supervised pre-training for video action recognition

    文章目录 1 概述 2 数据的收集方式 3 使用的模型 4 预训练时的一系列问题 4.1 预训练的数据是不是越多越好? 4.2 用于预训练的模型是不是越大越好? 4.3 预训练数据的标签种类和数量是不 ...

  3. 【论文阅读】UntrimmedNets for Weakly Supervised Action Recognition and Detection

    Abstract 提出 UntrimmedNet ,从Untrimmed视频的视频级标签中直接学习动作识别和检测模型,分为 classification 和 selection 两个模块,可端到端训练 ...

  4. [论文阅读]Spatio-Temporal Graph Routing for Skeleton-Based Action Recognition

    Spatio-Temporal Graph Routing for Skeleton-Based Action Recognition paper: https://www.aaai.org/ojs/ ...

  5. [论文阅读笔记]Two-Stream Convolutional Networks for Action Recognition in Videos

    Karen Simonyan Andrew Zisserman  Visual Geometry Group, University of Oxford  fkaren,azg@robots.ox.a ...

  6. 【视频分类论文阅读】Two-Stream Convolutional Networks for Action Recognition in Videos

    论文是视频分类的开山之作,采用了一个双流网络,是空间流和事件流共同组成的,网络的具体实现都是CNN,空间流的输入是静止的图片,来获取物体形状大小等appearance信息,时间流的输入是多个从两帧之间 ...

  7. PaddlePaddle飞桨论文复现营——3D Residual Networks for Action Recognition学习笔记

    PaddlePaddle飞桨论文复现营--3D Residual Networks for Action Recognition学习笔记 1 背景知识 1.1 C3D C3D是一种3D卷积提取视频特征 ...

  8. 【论文学习】Two-Stream Convolutional Networks for Action Recognition in Videos

    Two-Stream Convolutional Networks for Action Recognition in Videos 原文地址 粗略翻译 摘要: 我们研究了视频中用于训练动作识别的深度 ...

  9. 论文阅读和分析:Hybrid Mathematical Symbol Recognition using Support Vector Machines

    HMER论文系列 1.论文阅读和分析:When Counting Meets HMER Counting-Aware Network for HMER_KPer_Yang的博客-CSDN博客 2.论文 ...

最新文章

  1. url 自动加入链接
  2. getallheaders函数在服务器报500错误_C语言服务器编程必备常识
  3. IAR环境中实现数据或函数的定位
  4. 在Vrep中如何创建基于QT的GUI
  5. 分布式文件系统FastDFS架构辨析,分布式文件系统FastDFS_V4.06安装部署
  6. Asp.net 基础(二)
  7. fpga开发教程 labview_NILabVIEW高性能FPGA开发者指南.pdf
  8. 马哥Linux 高端运维云计算就业班
  9. 【AI撬动地球】超级大国政治将让位于跨国AI巨头
  10. Autojs抖音小助手抢红包福袋脚本实战分享
  11. npm安装依赖包 版本冲突怎么办 --legacy-peer-deps的正确使用方法
  12. C#简单游戏外挂制作(以Warcraft Ⅲ为例)
  13. 图片识别出处_搜图神器!你还在问图片的出处吗?
  14. 《老鹰抓小鸡》将代表中国动画电影走出国门,走向世界,yyds❤
  15. 为双系统 Ubuntu grub启动项中添加Windows启动项
  16. CC3200 Debug时报错:Unable to launch CCS debug-session based on current selection.的解决方法
  17. oracle创建序列号
  18. 腾讯大讲堂之每年3万行代码,你达标了吗?
  19. 用Java实现图书管理系统
  20. 华为LOGO是什么意思?看完任正非的解释,再看网友的解释,笑出声

热门文章

  1. 吞吐量、QPS、并发数等概念
  2. CBR的产生和Roger Schank
  3. F - 郭鑫的难题(三)
  4. STM32单片机(1) 总记 学习资料+参考手册+LED灯
  5. android 机器人绘制,画个android机器人
  6. caret包处理流程
  7. 使用Python对Dicom文件进行读取与写入的实现(pydicom 和 SimpleITK)
  8. 最新『资源分享』IT视频教程
  9. 关于74LS04反相器振荡电路调试的一些问题
  10. matlab---矩阵运算函数