光流
光流( Optical Flow)是一个有关物体运动的概念。运动在时序上,必然是会产生一些列连续的图像帧,而且这些帧之间的像素有有一定的对应关系。比方说,视频的第t帧在左上角有一只鸟,经过10帧后(即第t +10帧时),这只鸟成像在了图片的右上角,并且这个“飞”的过程是连续,从而形成一系列连续变化的图像(也就是连续的10帧),产生类似光“流动”的效果,故被简称为光流。
光流是一个 有方向、有长度的矢量。
一、FlowNet
1.网络结构
如图1输入端为待求光流的图像对,输出端为预测的光流W。
2.网络整体设计
网络整体上为编码模块接解码模块结构,编码模块均为9层卷积加ReLU激活函数层,解码模块均为4层反卷积加ReLU激活函数层,在文中解码模块又被称为细化模块。整个网络结构类似于FCN(全卷积网络),由卷积和反卷积层构成,没有全连接层,因此理论上对输入图像的大小没有要求。
根据输入方式的不同,FlowNet又分为FlowNetSimple和FlowNetCorr。
编码模块(如图2):
2.1 Correlation Layer
设计了3个卷积和池化操作,得到了比较粗粒度的feature maps,这个部分,对于两帧都是共享的,也就是说两张图片都会过一遍这个部分。
卷积?相关?
3.Refine部分
4、Demo
二、FlowNet2.0
FlowNet提出了第一个基于CNN的光流预测算法,FlowNet2.0是FlowNet的增强版,在FlowNet的基础上进行提升,在速度上只付出了很小的代价,使性能大幅度提升,追平了目前领先的传统方法。
FlyingThings3D
相比于FlyingChair中的图像只具有平面变换,FlyingThings3D中的图像具有真实的3D运动和亮度变化,按理说应该包含着更丰富的运动变换信息,利用它训练出的网络模型应该更具鲁棒性。然而实验发现,训练结果不仅与数据种类有关,还与数据训练的顺序有关。