光流模型概述:从 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


目录
相关文章
|
Web App开发 缓存 JavaScript
ASP.NET MVC 3 概述“.NET研究”
  原文地址:http://www.asp.net/mvc/mvc3   导言   ASP.NET MVC3 在 ASP.NET MVC 1 和 2 的基础上,增加了大量的特性,使得代码更加简化,并且可以深度扩展。
1411 0
|
18天前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
75 0
|
18天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
29 0
|
18天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
35 0
|
18天前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
6 0
|
18天前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
128 5
|
18天前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
35 0
|
18天前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
128 0