RAFT 光流估计方法

算法介绍

光流是用于估计两帧之间每个像素运动的方法。在计算机视觉领域中,这是一个至今仍未解决的难题。即使最好的方法也会受到物体的快速移动、遮挡、模糊等等问题的限制而无法作出准确的推算,但我们仍有方法不断改进。RAFT 是 ECCV2020 的 best paper,它将一种全新的模型结构引入到光流领域,是一个划时代意义的光流算法,也已经有若干篇论文基于它的结构来拓展。它的模型由三个部分组成:特征提取层、相关性分析层和一个迭代更新结构。

RAFT StructureRAFT Structure

一些细节

特征提取

通过卷积神经网络从输入图片中提取特征向量,特征矩阵分辨率较低(解码器): 我们在这里将设为256.

于此同时使用一个上下文网络用于从第一张输入图片中提取特征,这个上下文网络的结构和特征提取网络一样

相关性计算

得到两个图片的特征矩阵,相关矩阵 则是两个特征矩阵间每个像素对 (Pair) 特征向量的内积:

相关性金字塔

通过对相关矩阵后两个维度进行卷积核尺寸为1、2、4、8的卷积池化,构建一个四层的金字塔 ,每一层的维度大小为 。张量 同时具有大小位移的信息而且通过保留前两个维度保留了高分辨率的信息。

相关性查找

引入一个 操作,它根据光流估计从相关性金字塔中生成特征图。
假设当前光流估计 ,对于图像中的每个像素 ,将其映射到 中的 。接着围绕 定义一个局部网格:

具体来说, 表示以 为中心,半径为的二维空间中网格点的集合。
之后根据这个局部邻域从相关性张量中进行索引,对于金字塔的每一层使用 来进行索引:

  • 是以 为中心,半径为的整数偏移集合。
  • 由于 是实数集合,所以索引过程使用双线性插值来处理非整数坐标
  • 我们想要在金字塔的每一层都进行查找,例如在第层的网格点集合为 。通过保持一个固定半径,实现了在较低层级获得更大的上下文范围——在最低的层级4上,使用半径4相当于在原始分辨率上范围为256的像素。
  • 从每一层获得数值被拼接为一个单一的特征图

通过这种方式,使用不同金字塔层级上的局部邻域进行相关性体积的索引,可以获得更丰富的上下文信息,这在处理计算机视觉任务时可能是有益的。这样的操作通常在光流估计和其他涉及局部特征的任务中使用。