光流模型概述:从 PWC-Net 到 RAFT

简介: PWC-Net 的设计遵循了三个简单而成熟的原则:金字塔处理,warping 操作和代价计算 ( cost volume )。在传统算法中,如图1左部分所示,通过代价计算得到图像之间的相似度,构建图像金字塔,以处理对不同尺度的光流,再利用 warp 操作按 coarse-to-fine 的顺序,将上一层估计出的光流应用到当前层,以达到逐步优化的目的。


1. 背景



从 2015 年的 FlowNet 到现在 Sintel 榜单第一(更新日期:2021.11.29 )GMA,已有数十篇基于深度学习的光流估计的论文。仔细读下来,会发现PWC-Net 应该是经典中的经典,很多光流算法是基于 PWC-Net 的框架来是实现的;而 2020 的 RAFT 则是另一个划时代意义的算法,也已经有若干篇论文基于它的结构来拓展。本文主要介绍这两种算法的结构,希望能帮助大家能快速了解光流领域的经典算法。


2. PWC-Net:传统算法与深度学习的结合



640.png

图 1:传统算法 v.s. PWC-Net


PWC-Net 的设计遵循了三个简单而成熟的原则:金字塔处理,warping 操作和代价计算 ( cost volume )。在传统算法中,如图1左部分所示,通过代价计算得到图像之间的相似度,构建图像金字塔,以处理对不同尺度的光流,再利用 warp 操作按 coarse-to-fine 的顺序,将上一层估计出的光流应用到当前层,以达到逐步优化的目的。


基于传统算法框架设计的 PWC-Net 的模型结构如图 1 右部分所示,一共包括 5 个部分,分别是:


Feature pyramid


Warping layer


cost volume layer


Optical flow estimator


Context network



借鉴传统光流算法的框架设计出来的 PWC-Net 模型是非常简洁且高效的,因此后续的算法大多是在此基础上实现的,直到 2020 年的 RAFT,跳出了这个框架,也大幅度刷新了 SOTA 的记录

3. RAFT: All pairs correlation + recurrent refinement



RAFT 是 ECCV2020 的 best paper,将一种全新的模型结构引入到光流领域。它的模型由三个部分组成:


特征提取


相关性计算


循环迭代更新

640.png

图 2:RAFT 算法



4. 总结



本文主要介绍了光流估计中两个经典算法的模型结构,PWC-Net RAFT,初看时觉得它俩相差还挺大的,但实际上,虽然 RAFT 没有特征金字塔,但为了对不同尺度的光流估计提供更好的相关性特征,也构建了相关性金字塔(correlation pyramid);虽然 RAFT计算的是 all-pairs correlation,但是查找表操作在每个iteration 查找的 correlation 也还是局部的。最后也建议大家去读一下 PWC-Net 和 RAFT 的原文以及代码,也可以参考这两个算法在 MMFlow 里的实现


除了模型结构,还有很多模型实现细节和训练技巧本文没有展开讲解,另外也有其他很精彩的光流模型也很值得解读分享。如果有想了解的内容,可以评论告诉我们。


文章来源:公众号【OpenMMLab】

2021-12-20 21:24


目录
相关文章
|
4月前
|
开发框架 前端开发 JavaScript
ASP.NET AJAX使用方法概述(三)
ASP.NET AJAX使用方法概述(三)
36 1
|
开发框架 .NET 应用服务中间件
ASP.NET Core : 一. 概述
ASP.NET Core : 一. 概述
156 0
ASP.NET Core : 一. 概述
|
开发框架 .NET 应用服务中间件
ASP.NET Core : 一. 概述
.NET Core 刚发布的时候根据介绍就有点心里痒痒, 大概看了一下没敢付诸于行动, 现在2.0发布了一段时间了, 之前对其"不稳定"的顾虑也打消的差不多了,
139 0
ASP.NET Core : 一. 概述
|
开发框架 JSON .NET
ASP.NET Core DI概述
众所周知,ASP.NET Core有一个DI框架,应用程序启动时初始化。
137 0
|
机器学习/深度学习 物联网 编译器
|
Web App开发 JavaScript 前端开发