CVPR2017之ActionVLAD(对特征整合方式的改进)
来源:互联网 发布:阿里云服务器代购 编辑:程序博客网 时间:2024/06/05 04:48
背景
关于视频中的行为识别,通常会出现这种识别错误的情况:即一段视频中包含若干动作,譬如打篮球的视频中包含跑、跳、扔东西等多种行为,如何能正确地识别为投篮?
当前行为识别主要有两种CNN结构:(1)第一种:3D spatio-temporal 卷积,这种方法识别准确率有待提升,优势是速度较快。(2)第二种,也就是目前常用的方法:two-stream architectures,将视频分解成图像流和动作流。
目前对长时间结构建模的方法不只是有VLAD,还有LSTM方法,但是不是端到端的训练,需要后处理,ActionVLAD可以实现对视频的端到端的训练。
上述两种方法均有一种缺陷:这些方法主要集中于片断地信息,不能宏观的把握整个video。所以我们需要一种可以表示global feature的方法。因此ActionVLAD应运而生。而该方法起源于NetVLAD,NetVLAD起源于VLAD。这个方法可以聚集aggregate feature,相当于一种新的Pooling策略。
讲述ActionVLAD之前,需要先讲解NetVLAD。
NetVLAD:
VLAD是一种新的池化方法,在事件层面的检索和图像分类方面有着重要的作用。其中,与VLAD可以相提并论的另一种方法BOF法。BOF法具体内容可以看
http://blog.csdn.net/chlele0105/article/details/9633397.
NetVLAD的本质是对特征计算残差,对不同的时刻和帧进行aggregation,得到特征V。
是N个D维局部图像描述器。K个聚类中心(视觉词汇)。输出是VLAD图像的表示:V,V是KxD维,这个矩阵随后将被转换成向量并被归一化。因此NetVLAD公式可以描述为:
是描述和第k个视觉词汇关系的系数。也就是说:如果临近的聚类中心是,那么大,否则小。
其中,是k-means聚类得到。K-means聚类得到多个聚类中心:是K-Means中的均值向量u,具体的K-Means参考周志华的机器学习P202。
变形则可以得到
,因此反向传播的时候,可以看到它调整的权重应该是中心ck.
VLAD公式为:
,与NetVLAD的区别在于有无,由于NetVLAD需要反向传播,故需要该系数。
VLAD和NetVLAD的效果的不同之处在于
即聚类中心点是否可变。VLAD不可变,在中心,而NetVLAD是可变的,聚类中心随着训练的进行不断的调整,因此可以不在中心。
Action VLAD
与NetVLAD极其相似,唯一的区别是加入了时间信息,即公式如下所示:
该方法与普通的Pooling有下图的区别:
可以看到,其将行为进行无监督聚类(KMeans),得到若干行为子类,进而对每个子类进行提取特征并生成特征向量。
网络结构
该论文使用的网络结构是two-stream型的网络,其用VGG进行特征的提取,最终得到如下图所示的结构。
对RGB进行特征的提取之后,在Conv5_3加入AvtionVLAD进行特征的聚合,FlowStream同RGB一样进行提取特征。
最终再进行将两种特征结合起来进行分类判断。
总结
该论文主要涉及到一种新的网络结构,名为ActionVLAD,其借鉴了NetVLAD的策略,将其拓展到三维的空间下,即加入了时域,该网络结构的作用在于可以对不同时间、图片不同位置的特征进行融合,得到一种对视频空间维度和时间维度的获取。进而可以对特征的提取更全面,对复杂行为的分析更全面,而且也是end-to-end的方式。
注:local descriptor表示的是图片的一个局部区域,VLAD及其衍生的网络都是对图片的局部进行特征提取,再求和,从而判断出该图片距离聚类中心ck的大小,
- CVPR2017之ActionVLAD(对特征整合方式的改进)
- 对TinyJson 的改进
- IIS下面支持jsp,整合tomcat6.0,对其他配置方法的改进
- 新手大奖赛之评分只许在0-10(ps:对上篇的改进)
- Android开发小技巧之对android颜色渐变(Gradient )的改进
- Android官方DataBinding(十一):对双向绑定之反向绑定的改进和简化
- 人脑是怎样认知图像的?——注意的特征整合理论(最新模式识别之二)
- 对CTreeCtrl数据加载方式的改进,实现代码的重用
- 对TMemoryStream的一些改进
- 对PCA方法的改进
- struts2对webwork的改进
- 对SashForm的一点改进
- 对TMemoryStream的一些改进
- 对TMemoryStream的一些改进
- 对上一次的改进
- 对PCA方法的改进
- seandroid对selinux的改进
- 对二分查找的改进
- Android 6.0 和 7.0 储存空间适配小结
- linux修改静态ip
- 在腾讯云上部署nginx
- 巧用notepad++ 批量转换ansi 和 utf8
- gcc中预定义的宏__GNUC__
- CVPR2017之ActionVLAD(对特征整合方式的改进)
- Git基础篇
- Sersync启动脚本
- 5,工厂方法模式
- C#程序员经常用到的10个实用代码片段
- DG-11G-CentOS7.2-备库开库报错ORA-10458
- QT安装包的下载
- WKWebView隐藏导航栏后顶部出现空白
- TP5 页面跳转success 和 error