Inflated 3D ConvNet 【I3D】
Two-Stream Inflated 3D ConvNet (I3D)
HMDB-51: 80.9% and UCF-101: 98.0% 在Inception-v1 Kinetics上预训练
ConvNet+LSTM:每一帧都提feature后整视频pooling,或者每一帧提feature+LSTM。缺点,忽略了时间信息,open和close door会分错。
改进C3D:比二维卷积网络有更多的参数,缺点参数量大,不能imagenet pretrain,从头训难训。input 16帧 输入112*112,本文实现了C3D的一个变种,在最顶层有8个卷积层,5个pooling层和2个全联接层。模型的输入是16帧每帧112x112的片段。不同于论文中的实现是,作者在所有的卷积层和全联接层后面加入了BN层,同时将第一个pooling层的temporal stride由1变为2,来减小内存使用,增加batch的大小,这对batch normalization很重要。
双流网络:LSTM只抓住高层的卷积后的信息,底层的信息在某些例子上也非常重要,LSTM train 消耗很大。RGB帧和10个堆叠的光流帧,光流输入是2倍的光流帧(x,y水平垂直的channel),可以有效train
新双流:后面的融合部分改为3D卷积,3D pooling
双流 inflated 3D卷积:扩展2D卷积basemodel为3D basemodel卷积,卷积核和pooling增加时间维,尽管3D卷积可以直接学习时间特征,但是将光流加进来后会提高性能。
如果2D的滤波器为N*N的,那么3D的则为N*N*N的。具体做法是沿着时间维度重复2D滤波器权重N次,并且通过除以N进行归一化。可以类比TSN光流网络的第一个卷积层的初始化方式。
对于3D来说,时间维度不能缩减地过快或过慢。如果时间维度的感受野尺寸比空间维度的大,将会合并不同物体的边缘信息。反之,将捕捉不到动态场景。因此改进了BN-Inception的网络结构。在前两个池化层上将时间维度的步长设为了1,空间还是2*2。最后的池化层是2*7*7。训练的时候将每一条视频采样64帧作为一个样本,测试时将全部的视频帧放进去最后average_score。除最后一个卷积层之外,在每一个卷积后面都加上BN和relu。一块K40 GPU上,一个batch内跑15个视频片段
I3D双流网络:rgb和光流是分开训练的,测试时将它们预测的结果进行平均
在训练期间,spatial上是先将原始帧resize成256*256的,然后随机剪裁成224*224的。在temporal上,尽量选择前面的帧以保证足够光流帧的数目足够多。短的视频循环输入以保证符合网络的input_size。在训练中还用到了随机的左右翻转。
测试的时候选用中心剪裁224*224,将整条视频的所有帧输入进去,之后average_score
实验测试256x256的视频并没有提高,测试时左右翻转video,训练时增加额外的augmentation,如phonemetric,可能有更好的效果。
Kinectics:人类动作
1. Person Actions(singular): (画画,喝东西,笑,击打)
2. Person-Person Actions: (拥抱,亲吻,握手)
3. Persion-Object Actions: (打开礼物,修剪草坪,洗碟子)
4. 细粒度需要时间推理来区分: 游泳的不同泳姿。有的需要着重于物体来区分,玩不同的乐器。
400类共计24万个视频,视频时长约为10s,trimmed 视频,测试集每类100个clip
Kinetics 数据集介绍
分类结果:
参考自:知乎
Inflated 3D ConvNet 【I3D】的更多相关文章
- NYOJ353 3D dungeon 【BFS】
3D dungeon 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 You are trapped in a 3D dungeon and need to find ...
- 自制裸眼3D图【推荐】
Welcome to the World of Hidden 3D Stereograms.欢迎进入隐身3D图的世界! 网址:http://hidden-3d.com 裸眼立体图是什么? 立体图是立体 ...
- 在程序中使用NV 3D Vision 【转】
http://www.cnblogs.com/gongminmin/archive/2010/11/21/1883392.html 多年前NVIDIA就发布了3D Vision技术,能提供多种立体渲染 ...
- 立体3D方式 【转】
目前为止,至少有四种普遍使用的立体3D传输格式,分别称为frame sequential(帧连续),frame packing(帧封装),side-by-side(并排),以及checkerboard ...
- 那些一目了然的3D地质模型 【转】
http://www.360doc.com/content/16/0830/09/14719766_586950902.shtml
- NYOJ 353 3D dungeon 【bfs】
题意:给你一个高L长R宽C的图形.每个坐标都能够视为一个方格.你一次能够向上.下.左,右,前,后任一方向移动一个方格, 可是不能向有#标记的方格移动. 问:从S出发能不能到达E,假设能请输出最少的移动 ...
- Three.js制作一个基本的飞行3D场景【源代码】
原文链接:https://tympanus.net/codrops/2016/04/26/the-aviator-animating-basic-3d-scene-threejs/ 源代码下载链接:h ...
- 【LeetCode】数学(共106题)
[2]Add Two Numbers (2018年12月23日,review) 链表的高精度加法. 题解:链表专题:https://www.cnblogs.com/zhangwanying/p/979 ...
- 【图说】Eclipse与Unity 3D协同工作
原地址:http://blog.csdn.net/h570768995/article/details/9355313 Eclipse开发过程中总会碰到很多的难题,如何利用好工具帮助我们更快捷的开发也 ...
随机推荐
- ADO读写DateTime方式
// 读取日期 var = m_pResultSet->GetCollect(_variant_t("Birth_Time")); DATE dt = var.date; C ...
- bzoj 1175: The stairways of Saharna
一道杨氏矩阵的题,萌新初入门,还不是很懂,这篇 blog 讲的超级好(就是看图有点麻烦) 据说这玩意儿可以代替堆和平衡树用,支持插入.删除.查询,跑得还挺快的(慢着,复杂度好像是 n^2 ? 而且空间 ...
- 在 mingw32 上编译 libvpx 1.7.0 时的注意事项
in the vp8/common/theading.h Just need to add 1 line:#include <sys/types.h>before the last occ ...
- selenium——获取元素的尺寸、文本信息、元素的属性、元素是否可见
[is_disabled 可以用来检查元素是否存在]
- $Django 多对多-自定义第三张表 基于双下划线的跨表查询(补充)
自定义第三张表的好处:可以定义多个字段, 缺点:查询不方便(有方法解决) 1.第三张表设置外键,联合唯一(查询不方便) class Books(models.Model): name=models.C ...
- [转]MySQL常用Json函数和MySQL常用字符串函数
MySQL常用Json函数:https://www.cnblogs.com/waterystone/p/5626098.html MySQL常用字符串函数:https://www.cnblogs.co ...
- PHP针对数字的加密解密类,可直接使用
<?phpnamespace app;/** * 加密解密类 * 该算法仅支持加密数字.比较适用于数据库中id字段的加密解密,以及根据数字显示url的加密. * @author 深秋的竹子 * ...
- 计算机中K到底是1000还是1024?
1000和1024的争论,其实是传输领域和存储领域概念不清引起的;在传输领域,1秒钟传输多少字位(即b,bit),肯定是用10进制表示,所以是1kb=1000b,即1秒钟传输1000个比特位;就好像: ...
- C3盒子弹性布局
有效的对一个容器中的子元素进行排列.对齐和分配空白空间. 对浏览器版本要求较高,多用于移动端的响应式设计 flex-direction 顺序指定了弹性子元素在父容器中的位置. flex-directi ...
- ES6 必须要用的数组Filter() 方法,不要再自己循环遍历了!!!
1,来一个最简单最常用的栗子: 获得年龄为9岁的孩子 1 let arr = [ 2 { 3 name:'小明', 4 sex:0, 5 age:9 6 }, 7 { 8 name:'小红', 9 s ...