paper:https://arxiv.org/pdf/1612.01925
首先,我们关注训练数据,并表明在训练期间呈现数据的时间表非常重要。
其次,我们开发了一种堆叠结构,该结构包括利用中间光流对第二图像进行翘曲。
第三,我们通过引入专门研究小运动的子网络来阐述小位移。
速度精度:FlowNet 2.0仅略慢于原始FlowNet,但将估计误差降低了50%以上。
?
?
1)解释:FlowNetS 在不同的数据集上(Chairs Things3D mixed...)用不同的调度(S-short\S-long\S-fine)训练的结果。
2) ?解释:数字表示Sintel train clean上的端点错误。
3) ?解释:mixed表示Chairs和Things3D的相等混合。
4)? 结论:首先在Chairs上进行培训,然后在Things3D上进行微调,可以获得最佳结果
5)? 结论:FlowNetC的性能优于FlowNetS。
6)? 现象【Chairs→Things3D 优于 mixed】推测:更简单的Chairs数据集有助于网络学习颜色匹配的一般概念,而不会过早地为3D运动和逼真的照明开发可能令人困惑的先验。
7)? 结论:在使用深度网络学习通用概念时,训练数据调度对于避免捷径的重要性。
观点:所有最先进的光流方法都依赖于迭代方法。
实验:深度网络也能从迭代细化中受益吗?为了回答这个问题,我们尝试堆叠多个FlowNetS和FlowNetC架构。
?
?
?
网络1(FlowNetC) input:? images I1 、images I2
网络1(FlowNetC) output: ?flow 估计 wi (其中 i 表示索引 )
?
?flow wi、双线性插值将 images I2? warp:
这样,堆栈中的下一个网络可以专注于 images I1 和? images ~I2,i 之间的剩余增量。
网络2(FlowNetS) input: 误差 ei ;见图2。
表2显示了堆叠两个网络的效果、扭曲的效果以及端到端训练的效果。
1)堆叠两个FlowNetS网络(Net1和Net2)时的选项评估。
2)第 1 行:Net1使用 Chairs→Things3D 时间表。
3)第 2 行:Net2随机初始化,调度Slong
4)第 3 行:Net1和Net2一起初始化,
5)第 4 行:只有Net2在带有Slong的椅子上训练
我们做出了以下观察:
(1)仅堆叠网络而不warp 可以提高Chairs的结果,但会降低Sintel的性能,即堆叠网络过于拟合。
(2) 包括 warp 在内,堆叠总是能提高效果。
(3) 当训练堆叠的网络端到端时,在Net1之后添加中间损耗是有利的。
(4) 当保持第一网络固定并且在warp 操作之后仅训练第二网络时,获得最佳结果。
显然,由于堆叠网络是单个网络的两倍大,因此过度拟合是一个问题。warp 后的流细化的积极效果可以抵消这个问题,但当堆叠网络一个接一个地训练时,可以获得两者的最佳效果,因为这避免了过拟合,同时具有流细化的好处。
图4显示了单个FlowNetS的不同网络大小的网络精度和运行时间。当以更快的网络为目标时,因子3/8在速度和准确性之间产生了良好的权衡。
堆叠多个不同的网络
注释:
?
?
数据集:创建了一个椅子数据集ChairsSDHom,位移非常小,位移直方图更像UCF101。
网络结构:在亚像素运动的情况下,噪声仍然是一个问题,我们推测FlowNet架构通常可能不适合这种运动。因此,我们稍微修改了最初的FlowNetS架构,并删除了第一层中的跨步2。我们通过用多个3×3内核2交换开头的7×7和5×5内核,使网络的开头更深入。由于噪声往往是小位移的问题,我们在上卷积之间添加卷积,以获得更平滑的估计,如[19]所示。我们用FlowNet2 SD表示得到的体系结构;见图
?
我们在采用2.40GHz Intel Xeon E5和Nvidia GTX 1080的系统上评估了所有方法3。在适用的情况下,使用特定于数据集的参数,以获得最佳性能。表4给出了端点错误和运行时间
1) X-耗时 Y-端点错误
2)DIS-Fast、LDOF
3)?? PCA-Flow、EpicFlow、DeepFlow、FlowFied