表2显示了我们的网络的endpoint error (EPE) 和公共数据集(Sintel、KITTI、Middlebury)的几个性能良好的方法,以及我们的Flying Chairs据集。另外,我们展示了在Sintel上不同方法的运行时间。
网络在不真实的Flying Chairs,在真实正的光学流数据集上表现得很好,例如打败了著名的LDOF [6]方法。在Sintel进行微调之后,我们的网络可以Sintel Final和KITTI数据集中优于实时的方法,并且速度是它的两倍。
Sintel。从表2中可以看出,FlowNetC比FlowNetS在Sintel Clean上好,而在Sintel Final,情况发生了变化。在这个困难的数据集上,FlowNetS+ft+v甚至与DeepFlow持平。由于平均end-point 错误通常倾向于过于平滑的解决方案,因此我们的方法的定性结果很有趣。图6显示了两个FlowNets(没有微调)所预测的原始光流的例子,与ground truth and EpicFlow对比。该图显示了网络通常如何产生视觉上吸引人的结果,但在endpoint错误方面仍然更差。仔细观察一下就会发现,其中一个原因可能是网络的非平滑输出,尤其是在大的光滑的背景区域。我们可以用不同的改进来部分补偿。
KITTI。KITTI数据集包含强大的映射转换,这与网络在训练Flying Chairs训练时遇到的非常不同。尽管如此,原始的网络输出已经相当不错了,额外的微调和变分的细化会带来进一步的提升。有趣的是,Sintel的微调改善了KITTI的结果,可能是因为Sintel中图像的动作比在 Flying Chairs上更自然。在这个数据集上,flownetS优于FlowNetC
Flying Chairs。我们的网络是在Flying Chairs上训练的,因此人们期望在这些椅子上表现最好。在训练时,我们不考虑由640张图片组成的测试集。表2显示了这个测试集中的各种方法的结果,一些示例预测显示在图7中。我们可以看到,FlowNetC的表现优于FlowNetS和于有最先进的方法。另一个有趣的发现是,这是唯一的数据集,在这种情况下,变分的细化不会提高性能,但会使事情变得更糟。显然,网络可以比各种各样的改进做得更好。这表明,通过更实际的训练集,网络可能在其他数据上表现得更好。
时间。在表2中,我们显示每帧在几秒钟内不同方法的运行时间。不幸的是,许多方法只在单个CPU上提供运行时,而我们的FlowNet只使用GPU来实现。虽然网络的错误率低于先进的水平,但它是实时方法中最好的。对于网络的训练和测试,我们使用的是NVIDIA GTX Titan GPU。DeepFlow和EpicFlow的CPU时间是从 [30]获得的,而LDOF的计时是在一个2.66 GHz的内核上计算的。
Flying Chairs数据集相当大,所以数据扩充仍然是必要的吗?答案是肯定的:在不增加数据的情况下训练一个网络,在Sintel测试中会增加大约2个像素。
比较架构。表2中的结果允许我们对我们测试的两个架构的优势和劣势得出结论。
首先,FlowNetS在Sintel Final优于FlowNetC。另一方面,FlowNetC在Flying chairs and Sintel Clean上表现优于FlowNetS。请注意,Flying chairs不包括运动模糊或雾,就像在Sintel Final中一样。这些结果共同表明,尽管两个网络的参数数量几乎相同,但FlowNetC的参数略高于训练数据。这并不意味着网络会记住训练样本,但它会适应训练过程中所呈现的数据类型。尽管在我们目前的设置中,这可能被视为一个弱点,如果有更好的培训数据可用,它将成为一个优势。
其次,FlowNetC在大位移问题上似乎有更多的问题。这可以从上面讨论的KITTI的结果中看到,也可以从Sintel Final的详细性能分析中看到(表中没有显示)。flownetS+ft实现了s40+错误(在像素上以至少40像素的位移)为43.3 px,而对于FlowNetC+ft来说,这个值是48 px。一种解释是,这种相关性的最大位移不允许预测非常大的运动。这个范围可以增加,但是以计算效率为代价。
6. 结论 基于最近在卷积网络架构设计方面的进展,我们已经证明了可以训练一个网络来直接预测来自两个输入图像的光流。有趣的是,训练数据不一定是现实的。人工Flying Chairs数据集,包括合成刚性物体的仿射运动,足以预测自然场景中的光流,具有较强的准确性。这证明了所提供的网络的泛化能力。在Flying Chairs的测试中,CNNs甚至比DeepFlow和EpicFlow等最先进的方法更有优势。随着更加现实的培训数据的出现,我们将会看到未来的网络是如何运作的。