视频理解难点在于两处,一种是图像的appearance信息(外表信息),另一种是运动信息(时序信息)
该文贡献有三点:1.双流 2.已证实,在少量数据下,只学习光流信息也能取得较好效果 3.为弥补数据的不足,在两个数据集上训练骨干网络,在两个数据集上都有效果提升
导言:与图像识别相比,视频中的动作信息能提供一个额外的重要线索,很多动作仅凭运动信息即可识别。此外,视频天生就能提供很好的数据增强,即同一个物体在视频中会出现各种变化(形变、遮挡、光照改变),这种改变多样且自然,比生硬的手动数据增强好很多。
注意这个故事的头是怎么起的,首先是讲作为分类来讲,视频可以多提供一个动作信息,其次是视频中天生的数据增强使得网络更健壮
实验证明,如果无脑的把神经网络当作能力强大的黑盒,将连续帧直接输入网络效果极差
双流网络即一个抓取空间特征,另一个用光流抓取动作特征,在网络末端进行late fusion
对于空间特征的网络,它的输入就是单张图片,所以直接使用在imagenet上预训练好的模型来初始化
时间特征网络直接用光流做输入预测动作,所以网络本身已经不需要提取motion information了
因为人的视觉中枢也有两条路,一条空间特征一条运动特征,所以受到启发设计此网络(仅仅作为一个故事出现,不是很严谨)
relate work:一种是基于局部时空特征的方法,后来演变为了3D网络。一种是基于点对点光流轨迹,后来演变为本篇双流网络
再次强调,将原始的连续帧直接给网络学习是很难的,无论是将一帧一帧的图片给2D网络,还是一股脑给3D网络,效果都差不多,都学不到运动特征。在超大数据集上的训练结果比手工特征还要差20个点
方法:双流,一流空间,一流时间,这里时间就等同于运动
具体空间就是一张图片分类,运动就是光流,导言中都讲过
这里强调空间信息本身就很重要,因为运动对象和运动信息本身就是强耦合的,能识别出对象也是很重要的线索
从图中可见,双流网络用的是卷积,而且两条路用的网络结构一模一样,当然输入维度的channel是不一样的,该图为展示出来这一点不同
图2中ab就是连连续两针,光流可视化出来就是图c,d是水平方向位移,e是竖直方向位移,可见主要是手部动作的位移
光流这张图的维度是HWC,这个C是2,分别表示水平和竖直方向变化量,也就是说总共L帧的视频,得到的光流就是L-1帧
使用光流最简单的方法就是直接识别这个光流图,但是这其实还是图像分类,意义不大
注意,在模型实现层面,叠加光流的时候是先叠加水平光流图,然后接上竖直光流图
应用光流信息一种方法是将所有光流图从channel上叠起来,每一张光流图表示的是两帧之差,那对于一个特定点来讲,每次研究的其实是这个点和上一帧有什么区别。类似于研究流体力学的欧拉视角,即固定坐标点看流体
第二种方式是从第一张图片已知一个点运动到另一个点之后,第二张光流图找到移动后的位置再找到下一步的运动位置,类似于流体力学的拉格朗日视角,即固定流体质点,跟踪记录
乍一看第二种方式更为合理,但实验证明第一种方式结果更好
小技巧
双线光流:双向的方法应用广泛,是很保守的方法,一般都会涨几个点,再不济也不会掉点。双向也就是说既计算前向光流,业绩算后向光流。
存储:光流图占用了非常大的空间,即便存储空间足够,io速度也提不起来。这里作者提出将光流图缩放到[0,255],当然要把所有取值变成整数,然后存成JPEG,这相当于直接使用了JPEG对于图片的压缩和解压方法,将之前1.5TB的数据直接压缩为了27GB。这和之前有个工作提出用队列数据结构一样,很多时候其实要巧妙的使用计算机的许多技巧
这里注意,光流计算速度慢,占用空间大是一个很大的被诟病的地方,所以后续出现很多优化光流算法,甚至许多研究弃用光流,直接对原始数据上3D网络
标签:视频,双流,网络,信息,光流图,光流 From: https://www.cnblogs.com/andoblog/p/17344312.html