【CV论文阅读】Rank Pooling for Action Recognition
这是期刊论文的版本,不是会议论文的版本。看了论文之后,只能说,太TM聪明了。膜拜~~
视频的表示方法有很多,一般是把它看作帧的序列。论文提出一种新的方法去表示视频,用ranking function的参数编码视频的帧序列。它使用一个排序函数(ranking function)主要基于这样的假设:帧的appearance的变化与时间相关,如果帧vt+1在vt后面,则定义
;此外,假设同一动作的视频帧序列,学习到的排序函数的参数,应该的大致一致的。但实际上,后面的假设并没有给出严格的证明,只能说实验的结果证明了这样的想法。
参数定义
假设输入的原始帧为x,则一个视频的帧序列为
。把原始帧序列经过smooth操作,得到新的序列
。但实际上,这个新的序列,可以是与原始帧有同样大小的image,也可以是原始帧的特征向量。视频的实际动态信息为D,而使用一个线性排序函数编码视频的动态信息为
,u是函数的参数,也就是需要学习的对象,并用它来表示一个视频。那么,学习的目标就是
Rank pooling
Rank pooling 的方法是使用一个RankSVM的学习排序算法计算的。整个Rank pooling的学习过程可以总结如下:(1)输入的数据为处理过的帧序列V,由于RankSVM实际上是有监督学习,所以序列的顺序是知道的(2)如上定义了序列的先后顺序
,定义正例样本为
,其中时间ti在tj之后,反例样本为它的相反数。(3)可以通过SVM的学习算法,学习如下的凸优化问题

(4)如果学习到的参数为u,则一个vi的score定义为
,并且有
。
Rank pooling方法的优点
(1)与其他的pooling方法对比,如max pooling,average pooling对比,它的鲁棒性更好。
(2)训练的过程是一个最优化问题,所以它的参数可以很好地表达数据的隐含结构。
其他参数化的视频表示方法
论文在这里主要介绍了一种PCA的方法,提取k个特征向量,达到降维的目标,这k个主成分同样反映了视频序列的结构。
Smooth操作
这里使用的smooth的操作是time varying mean vector,定义一个mean为
,则smooth后的image为
。使用time varying mean vector学习RankSVM之后的向量u,计算每一帧的score,如下图

可以看到,它几乎是有序严格上升的,这表明可以很好地区分出帧的先后顺序。从另一个方面而言,这种方法可以看到它刻画了帧与时间的关系。
非线性的rank pooling
通过对输入
应用一个非线性映射
来获得。由于RankSVM其实也是学习SVM,所以可以应用一个非线性的核,论文选用的是Hellinger核:
训练的过程

(1)对输入的每一帧,计算它们的特征向量(HOG、HOF、MBH、TRJ)(2)对特征向量进行smooth,然后通过学习RankSVM得到参数u(3)通过训练数据来类别的SVM。
对于第1、2步的提取特征向量一步,似乎并不是必要的,个人认为。
【CV论文阅读】Rank Pooling for Action Recognition的更多相关文章
- [论文理解] Attentional Pooling for Action Recognition
Attentional Pooling for Action Recognition 简介 这是一篇NIPS的文章,文章亮点是对池化进行矩阵表示,使用二阶池的矩阵表示,并将权重矩阵进行低秩分解,从而使 ...
- 【CV论文阅读】+【搬运工】LocNet: Improving Localization Accuracy for Object Detection + A Theoretical analysis of feature pooling in Visual Recognition
论文的关注点在于如何提高bounding box的定位,使用的是概率的预测形式,模型的基础是region proposal.论文提出一个locNet的深度网络,不在依赖于回归方程.论文中提到locne ...
- 【CV论文阅读】Dynamic image networks for action recognition
论文的重点在于后面approximation部分. 在<Rank Pooling>的论文中提到,可以通过训练RankSVM获得参数向量d,来作为视频帧序列的representation.而 ...
- 论文阅读: End-to-end Learning of Action Detection from Frame Glimpses in Videos
End-to-End Learning of Action Detection from Frame Glimpses in Videos CVPR 2016 Motivation: 本 ...
- 【CV论文阅读】Two stream convolutional Networks for action recognition in Vedios
论文的三个贡献 (1)提出了two-stream结构的CNN,由空间和时间两个维度的网络组成. (2)使用多帧的密集光流场作为训练输入,可以提取动作的信息. (3)利用了多任务训练的方法把两个数据集联 ...
- 【CV论文阅读】action recognition by dense trajectories
密集轨迹的方法是通过在视频帧上密集地采样像素点并且在追踪,从而构造视频的局部描述子,最后对视频进行分类的方法依然是传统的SVM等方法. 生成密集轨迹: (1)从8个不同的空间尺度中采样,它们的尺度差因 ...
- 【CV论文阅读】生成式对抗网络GAN
生成式对抗网络GAN 1. 基本GAN 在论文<Generative Adversarial Nets>提出的GAN是最原始的框架,可以看成极大极小博弈的过程,因此称为“对抗网络”.一般 ...
- 【CV论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
由RCNN到FAST RCNN一个很重要的进步是实现了多任务的训练,但是仍然使用Selective Search算法来获得ROI,而FASTER RCNN就是把获得ROI的步骤使用一个深度网络RPN来 ...
- 【CV论文阅读】 Fast RCNN + SGD笔记
Fast RCNN的结构: 先从这幅图解释FAST RCNN的结构.首先,FAST RCNN的输入是包含两部分,image以及region proposal(在论文中叫做region of inter ...
随机推荐
- bnu 51640 Training Plan DP
https://www.bnuoj.com/bnuoj/problem_show.php?pid=51640 dp[i][j]表示前j个数,分成了i组,最小需要多少精力. 那么,求解订票dp[i][j ...
- [Android]异常3-java.lang.NoClassDefFoundError: javax.activation.DataHandler
背景:JavaMail发送电子邮件 异常原因: 可能一>缺少DataHandler类相关jar包 可能二>有DataHandler类,DataHandler类与使用的mail.jar包不一 ...
- Eclipse 编译java文件后出错 左树无红叉
问题描述: 今天遇见让人郁闷的问题,在项目工程中java文件编译通不过,eclipse在java文件中标示错误,但是却不不能在navigator的视图中像平常一样出现小红叉.通过clean proje ...
- 7z.exe 命令行压缩文件排除文件(exclude filenames) 手记
命令行使用格式:Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] ...
- Gradle打包jar可执行程序
1. 使用springboot插件 apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'spring-boot' buildscri ...
- windows 下完全卸载service
用SC Delete命令的话,如果服务名称中带空格,则请在服务名称前面用半角的双引号括起,如SC delete "Adobe LM Service",另外Services这个子键一 ...
- js删除局部变量
alert('value:'+str+'\ttype:'+typeof(str)) //声明变量前,引用 var str="dd"; alert('value:'+str+'\tt ...
- facade模式-服务-配置----系统生成与配置
facade模式对外提供一组相关服务: 对内整合子系统: facade模式的创建过程需要依赖外部的配置. 配置完成以后才能使用服务. 推广开来,所有系统都需要生成与配置,然后才能对外提供服务.
- CAD梦想看图6.0安卓版详情介绍
下载安装 MxCAD6.0(看图版).2018.10.22更新,扫描下面二维码,安装CAD梦想看图: 下载地址: http://www.mxdraw.com/help_8_20097.html 软 ...
- cgroup代码浅析(1)
前置:这里使用的linux版本是4.8,x86体系. cgroup_init_early(); 聊这个函数就需要先了解cgroup. cgroup概念 这个函数就是初始化cgroup所需要的参数的.c ...