精读视频:双流网络论文逐段精读【论文精读】_哔哩哔哩_bilibili
Two-Stream Convolutional Networks for Action Recognition in Videos
传统的神经网络难以学习到物体的运动信息,双流网络则通过光流将物体运动信息抽取出来再传递给神经网络 给模型提供先验信息,再让网络学习动作和输出的映射关系
其他论文:deep video
- Spatial stream ConvNet:空间流神经网络,关注 appearance 信息,输入是单帧图片 输出分类概率,从静止图像中做动作识别 是图像分类任务,可以预训练
- Temporal stream ConvNet:时间流神经网络,关注 motion information,输入一系列光流(optical flow)图片 输出也是分类概率
- 两者分类概率取加权平均 得到最终预测
光流网络
光流
每两张图片得到一张光流 四张连续帧得到三个光流,分为水平运动和垂直运动的两维光流,每个像素点都有对应光流值
两种叠加光流图片输入到神经网络的方法
方法一:左边的图,直接堆叠,在每张图同样位置的像素点处询问该点的运动轨迹
方法二:根据像素点的轨迹,下一帧运动到另一点 再从那一点继续
Bi-directional optical flow 双向光流
上述两种方法都是前向的光流计算,而光流反过来计算也是可以的
作者把一个视频的前半段用于计算前向光流,后半段计算反向光流
光流网络的输入
空间流网络:输入 channel = 3,RGB三通道
时间流网络:L+1 张连续单帧图像得到 L 张光流图,输入的 channel 数是 2L,光流图的叠加是先叠加水平、后叠加竖直方向的光流位移
实现细节
测试部分
- 不论视频多长,等间隔抽取 25 帧
- 空间流:对每一帧,取四角和中心得到5张图,将该帧翻转过来后同样操作,共计得到10张;25帧则共250张图,都经过空间流神经网络得到结果
- 时间流:对每一帧都往后取11帧图 抽取得到10张光流图
如何预处理和计算光流
每一帧、每个像素点都有光流值,处理需要的时间空间都太大,所以进行压缩:把光流值压缩到0~255且变成整数,并把光流存成JPEG图片形式 光流图变小了