文章目录
EMAVFI:extracting motion and appearance via inter-frame attention for efficient video frame interpolation
1.核心概述
在视频帧插值任务中,捕获输入帧之间的运动信息和外观特征非常重要。之前的方法有的是通过直接将多帧拼接后输入特征主干网络来提取这两种信息,有的是分别设计复杂的模块来处理,比如用ContextNet处理外观信息,用成本卷积处理运动信息。
本文提出的是利用帧间注意力机制来统一提取具有区分度的运动和外观信息,因为帧间自注意力机制可以对帧间运动进行建模,同时还能传递外观信息。
2.帧间注意力机制为什么可以表示运动信息
如下图,左图是光流模型估计的结果,右图是帧间注意力机制得到的motion vector.可以看出具有一定的相似度。
很好理解且是理所应当的。本文帧间注意力机制得到的 是两个图的同一个位置的patch内像素之间的相似度,那么运动区域相似度低,静止区域相似度高,可以区分运动。
一般的注意力机制是计算patch间的相似度,而本文计算的是patch内像素的相似度。
3.网络架构
首先特征提取利用5个block得到五种scale的appearence features,和两种尺度的motion features。
然后 head block进行flow estimation
最后 unet refine flow
4.dataset类
源码VimeoDataset其实很清晰
读取三个图像,然后
crop
水平翻转,竖直翻转,通道翻转,前后顺序交换
旋转90,180,270
5.demo推理和训练代码
推理代码:
一种是默认t=0.5,一种是t=间隔很多帧。
作者提供了两种预训练模型,后缀是t的表示可以得到4,8,12等多个中间帧,具体是多少,要根据训练的时候的制作的数据集而定,如果你的模型训练的时候只有中间帧,那么想预测1/4或者3/4帧应该也是不准的吧。
训练代码:也写的非常清晰易懂了。
6.总结
本文提出了 inter frame attention模块,计算patch内其实就是邻域的像素的attention。这一定程度上可以反映像素的匹配关系也就是光流,只是计算挺复杂的。
因为本文参考rife那篇论文,后续应该可以简化设计。在实际应用的时候应该取舍和替换某些模块。