raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型

计算机视觉三大国际顶级会议之一的 ECCV 2020 已经召开。今年 ECCV 共收到有效投稿 5025 篇,是 ECCV 2018 论文投稿数量的二倍还要多,接收论文1361 篇,接收率为 27%,相比上届会议下降了约 5%。在接收论文中,oral论文数为 104 篇,占有效投稿总数的 2%,spotlight 论文数目为 161 篇,占比约 3%。其中,最佳论文奖由普林斯顿大学 Zachary Teed 和 Jia Deng 摘得,论文题名为RAFT: Recurre-nt All-Pairs Field Transforms for Optical Flow。论文提出的RAFT模型由于其卓越的泛化能力,成为最新的光流baseline模型:该模型在KITTI在线评价指标中获得5.10%的异常值比率,相比于当前公布的最佳模型提升了16%,且在MPI-Sintel在线评价指标中获得2.855px的端点误差,相比于当前公布的最佳模型提升了30%。本文首先将对光流的基本概念进行阐述,接着对RAFT光流计算模型的具体实施步骤以及对应的思路进行介绍与分析。

1 光流的基本概念

光流是运动物体或场景表面像素点在投影平面的二维瞬时速度,因此图像序列对应的光流不仅携带其中运动目标与场景的运动信息,更包含了其结构信息。

图1-1 光流可视化效果展示

图1-1分别展示了光流计算技术在运动目标检测中的应用,可以看到:精确的光流不仅可以给出连续图像帧中每一像素点的运动信息,还可清晰地分割出运动目标轮廓,其中,通过不同的颜色区分运动方向,颜色的深浅定义运动矢量大小。

图1-2光流计算技术应用

21世纪以来,随着计算机计算的不断提升,光流计算技术广泛的应用于各种更高级的计算机视觉任务中。例如,图1-2(a) 在针对视频的人体行为识别的研究中,可利用人体行为的光流特征,增强在时空域中人体行为特征的表述能力,显著降低异常值点对行为识别产生的不良影响。图1-2(b) 在运动目标检测与目标跟踪的研究中:可根据光流检测运动目标的结构、位移特性,减少运动目标之间的匹配时间消耗,提升在摄像机运动情况下,目标检测、跟踪的鲁棒性。图1-2(c) 在机器人导航避障的研究中,可利用光流针对图像区域的矢量信息,获得机器人前方区域的避障信息,提升机器人行动决策的精度。

2 RAFT光流计算模型

RAFT光流计算模型由特征提取模块、context提取模块、视觉相似性(Visual Similarity)计算模块以及更新迭代模块共同组成。下文将分别对RAFT光流计算模型中各模块的计算流程以及原理进行分析介绍。

2.1 特征提取模块与context提取模块

特征提取模块的作用为提取输入第一帧、第二帧图像中的特征,其中特征的分辨率为输入图像的1/8。Context提取模块的作用同样为提取特征,只不过只提取第一帧图像的上下文信息特征,分辨率同样为输入图像的1/8。在结构上,特征提取模块context提取模块的结构基本类似,区别有两点:首先模块中选择的规范化层不同,特征提取模块采用的为instance规划化技术,而context提取模块采用的为batch规划化技术。其次特征提取模块输出单一的输入图像特征,而context提取模块输出两份输入的图像特征。

2.2 视觉相似性(Visual Similarity)计算模块

视觉相似性计算模块的作用和2018cvpr光流领域经典论文PWC-Net的思想类似,区别便是,PWC-Net是在每一层特征金字塔中利用上层金字塔预测光流对当前层的第二帧图像特征向第一帧图像特征进行warp,然后对warp的第二帧图像特征与原始第一帧图像特征进行匹配获得对应的cost volume,PWC-Net中cost volume的尺寸为[batch, d, h, w],例如[2,81,24,80],代表第一帧图像特征中的每一个像素点,与warp后第二帧图像中以这个像素点为中心的9x9邻域范围内的点做匹配(点乘操作),如上式所示,其中k=4,代表匹配的半径长度为4,与分别代表第一帧图像特征中的像素点与第二帧图像特征中的像素点,总共对2个batch进行上述操作。

而RAFT中的视觉相似性计算模块的计算流程是首先对第一帧图像特征与第二帧图像特征匹配获得一个[batch, h, w, h, w]的cost volume,代表第一帧图像中的每一个像素点,都与第二帧图像特征中所有像素点进行匹

配,总共进行batch次上述操作。匹配过程如下式所示,其中与分别为第一帧图像特征与第二帧图像特征,i,j,k,l分别为第一帧与第二帧图像特征的高、宽索引, h为图像特征的通道维度索引。RAFT在原始图像分辨率1/8的图像特征上通过迭代优化光流,光流的初始值设定为0,也就是说不产生移动,然后通过该光流索引上述尺寸为[batch, h, w, h, w]的cost volume(方便表示记作CT1),具体来说便是:在第一次迭代中,因为光流初始值为0,那么便利用上述CT1索引第二帧图像中以当前像素点为中心的9x9邻域范围内点的匹配结果,后续迭代中,因光流迭代之后不为0,同样进行上述索引,只不过需要在当前点上施加一个光流的位移,通过此操作获得的cost volume记作CT2,尺寸为[batch, d, h, w],d与PWC-Net论文中的参数一样,一般为81。通过上述操作便可使匹配范围进一步扩大,进而在下文中将要提到的更新迭代模块中求得残差光流,用来补偿初始光流。可通过Pooling操作获得不同分辨率下的CT2,用来获得局部以及整体的特征。

2.3 更新迭代模块

更新迭代模块的输入由四部分组成:两份context提取模块输出,CT2,以及上层迭代过程输出的光流。该模块利用GRU模块以及卷积操作,计算出相对于上次迭代过程输出光流的残差光流,然后与上次迭代过程输出光流进行相加用作补偿。需要注意的是,该模块中利用卷积操作学习上采样权值,使当前1/8分辨率下的光流上采样到与输入图像同尺寸,具体形式如下图所示,其中w1-w9为利用卷积操作学习到的权重,也就是说,上采样之后的光流结果中每一像素点的值都与其周围的9个像素点有关。最后,输出每一次迭代过程生成的全分辨率光流结果,用于损失函数计算,更新模型中的参数。

3 RAFT模型中的损失函数

RAFT模型中总共进行12次优化迭代,也就是说会产生12个全分辨率下的光流结果。迭代次数越多,光流计算精度越精确。RAFT模型采用的是监督算法,具体步骤可以表示为:通过求取12次光流迭代过程中的光流计算结果与光流真实值的L1范数,并且迭代的次数越多,对应L1范数结果的权值也就越大(说明该结果对整个损失函数的影响越大),如下式所示,其中,N=12。

4 总结

本文叙述了ECCV最佳论文RAFT的一般计算步骤,如有不足,请多多指教。

本文仅做学术分享,如有侵权,请联系删文。

你可能感兴趣的:(raft2020年更新)