提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Abstract
  • 1 Introduction
  • 2 Related Work
    • Optical Flow as Energy Minimization
  • 3 Approach
    • 3.1 Feature Extraction
    • 3.2 Computing Visual Similarity

Abstract

光流学习


我们介绍了递归全对场变换(RAFT),一种新的光流深度网络结构。RAFT提取过像素特征,为所有像素对构建多尺度的四维相关卷,并通过一个对相关卷进行查找的循环单元迭代地更新流场。RAFT实现了最先进的性能。在KITTI上,RAFT的F1-all误差为5.10%,比最佳发布的结果(6.10%)减少了16%。在Sintel(最后通过)上,RAFT得到了2.855像素的终点误差,比已发布的最佳结果(4.098像素)减少了30%。此外,RAFT具有较强的跨数据集泛化性,在推理时间、训练速度和参数计数方面都具有较高的效率。

1 Introduction

光流是估计视频帧之间每像素运动的任务。这是一个长期存在的尚未解决的愿景问题。最好的系统受到困难的限制,包括快速移动的物体、遮挡、运动模糊和无纹理的表面。

光流传统上被认为是在一对图像[21,51,13]之间的密集位移场空间上的一个手工制作的优化问题。一般来说,优化目标定义了鼓励视觉相似图像区域对齐的数据项和先加于运动合理性的正则化项之间的权衡。这种方法已经取得了相当大的成功,但由于难以手工设计一个对各种角落情况具有稳健性的优化目标,进一步的进展似乎具有挑战性。

最近,深度学习已被证明是一种很有前途的替代传统方法。深度学习可以逐步制定优化问题,训练网络直接预测流程。目前的深度学习方法[25,42,22,49,20]已经取得了可与最佳传统方法相媲美的性能,同时在推理时速度明显更快。进一步研究的一个关键问题是设计有效的性能更好、更容易训练和很好地推广到新场景的架构。

我们介绍了递归全对场变换(RAFT),一种新的光流深度网络结构。RAFT具有以下优点:

  • 最先进的准确性
  • 强大的泛化性
  • 高效性

RAFT由三个主要组件组成:(1)特征编码器,提取每个像素的特征向量;(2)相关层,为所有像素对产生四维相关卷,随后池产生低分辨率卷;(3)一个基于GPU的循环更新操作运算,从相关卷中检索值,并迭代更新初始化的流场。图1说明了RAFT的设计。

RAFT架构采用了传统的基于优化的方法。该特征编码器提取每个像素的特征。相关层计算像素之间的视觉相似性。该更新操作符模拟了一个迭代优化算法的步骤。但与传统方法不同的是,特征和运动先验不是手工制作的,而是分别由特征编码器和更新运算符学习的。

RAFT的设计从许多现有的作品中汲取灵感,但在本质上是新颖的。首先,RAFT以高分辨率维护和更新单个固定流场。这与之前的工作[42,49,22,23,50]中流行的从粗到细的设计不同,后者首先以低分辨率估计流量,并在高分辨率下进行上采样和细化。通过在单个高分辨率流场上运行,RAFT克服了粗到细级联的几个限制:从粗分辨率的错误中恢复的差异,错过小型快速移动对象的倾向,以及训练多层级联通常需要的许多训练迭代(通常超过1M)。

其次,RAFT的更新操作符是周期性的和轻量级的。[24,42,49,22,25]最近的许多工作都包括了某种形式的迭代细化,但没有绑定跨迭代[42,49,22]的权重,因此被限制在固定数量的迭代中。据我们所知,IRR[24]是唯一一种反复出现的深度学习方法[24]。它使用FlowNetS[15]或PWC-Net[42]作为其循环单元。当使用FlowNetS时,它受到网络大小(38M参数)的限制,并且只应用5次迭代。当使用PWC-Net时,迭代受到金字塔级别数量的限制。相比之下,我们的更新操作算子只有2.7M的参数,在推理过程中可以应用100+次而不发散。

第三,更新操作符有一个新颖的设计,它由一个卷积GRU组成,可以在4D多尺度相关卷上进行查找;相比之下,之前工作中的细化模块通常只使用普通卷积或相关层。

我们对Sintel[11]和KITTI[18]进行了实验。结果表明,RAFT在两个数据集上都取得了最先进的性能。此外,我们通过广泛的消融研究验证了RAFT的各种设计选择。


2 Related Work

Optical Flow as Energy Minimization

光流传统上被视为一个能量最小化问题,它在数据项和正则化项之间进行权衡。Horn和Schnuck[21]将光流作为一个使用变分框架的连续优化问题,并能够通过执行梯度步骤来估计一个密集的流场。Black和Anandan[9]通过引入一个鲁棒估计框架来解决过平滑和噪声灵敏度的问题。TV-L1[51]用L1数据项和全变化正则化取代了二次惩罚,这允许运动不连续,并能更好地处理异常值。通过定义更好的匹配成本[45,10]和正则化项[38],已经进行了改进。

这种连续公式保持了光流的单一估计,每次迭代都经过改进。为了保证目标函数的光滑,采用一阶泰勒近似法对数据项进行建模。因此,它们只适用于较小的位移,为了处理大的位移,使用了从粗到细的策略,其中使用图像金字塔来估计低分辨率的大位移,然后细化高分辨率的小位移。但是这种从粗到细的策略可能会错过快速移动的小物体,并且很难从早期的错误中恢复过来。与连续方法一样,我们保持光流的单一估计,每次迭代进行改进。然而,由于我们在高分辨率和低分辨率下为所有对构建相关量,每个局部更新都使用关于小位移和大位移的信息。此外,我们的更新算符没有使用数据项的亚像素泰勒近似,而是学习提出下降方向。

最近,光流也被认为为一个使用全局目标的离散优化问题[35,13,47]。这种方法的一个挑战是搜索空间的巨大大小,因为每个像素都可以合理地与另一帧中的数千个点配对。Menez等人使用特征描述符来修剪搜索空间,并使用消息传递来逼近全局MAP估计。陈等人。[13]表明,利用距离变换,求解整个流场空间上的全局优化问题是易于处理的。DCFlow[47]通过使用神经网络作为特征描述符进行了进一步的改进,并构建了所有特征对的四维代价体积。然后使用半全局匹配(SGM)算法[19]对四维成本量进行处理。与DCFlow一样,我们也在学习到的特性上构建了4D成本卷。然而,我们没有使用SGM来处理成本量,而是使用一个神经网络来估计流量。我们的方法是端到端可微的,这意味着特征编码器可以与网络的其余部分一起进行训练,以直接最小化最终流量估计的误差。相比之下,DCFlow要求使用像素之间的嵌入损失进行训练;它不能直接对光流进行训练,因为它们的损失量处理是不可区分的。

3 Approach

3.1 Feature Extraction

RAFT提取的特征分为两种:第一种是匹配特征,左右影像共享同样的权重,提取的特征主要用于匹配;因此,这个网络最后会更倾向于提取保证稳健匹配的特征。第二种是内容特征,仅仅在左影像上提取,主要用于对光流结果进行优化,其实就是一个导向滤波,最后这个网络会更倾向于判断那些区域的光流更可能是一致的。
针对第二个网路,RAFT也表明,其实也可以用匹配特征来进行优化;但是用两个网络的效果更好。

3.2 Computing Visual Similarity

RAFT直接算所有像素之间的cost,计算公式如下,其中 g θ g_{\theta} gθ​ 是匹配特征, I 1 I_1 I1​ 和 I 2 I_2 I2​ 分别是左右影像。右侧的计算公式中,h是匹配特征的维度, i , j , k , l i , j , k , l i,j,k,l是遍历的索引。

通过以上方式即可获取cost,为了保证有足够的视野,还给cost加上了池化,获取不同分辨率下的cost。

流程步骤:
首先初始化光流结果为 0,然后对第一帧用 Context Encoder 提取 Context 信息,用 Feature Encoder 提取第一帧和第二帧的信息,做矩阵乘法得到 4D Correlation Volumes。有了 Context Encoder 的特征结果,其实就可以估计光流结果了,GRU 直接利用进行光流估计,得到估计结果 Δ f 1 \Delta f_1 Δf1​,注意,第 k+1 次迭代估计的结果为 f k + 1 = f k + Δ f k f_{k+1}=f_k+\Delta f_k fk+1​=fk​+Δfk​ ,那么第一次估计的结果即 f 1 = Δ f 1 + 0 = Δ f 1 f_{1}=\Delta f_1+0=\Delta f_1 f1​=Δf1​+0=Δf1​ ,这就算完成了光流估计。

RAFT:Recurrent All-Pairs Field Transforms for Optical Flow相关推荐

  1. 论文阅读:RAFT: Recurrent All-Pairs Field Transforms for Optical Flow

    文章目录 1. 论文总述 2. RAFT结构被传统算法所启发 3. RAFT的三个重大创新点 4. 光流算法需要解决的难点 5. 传统光流算法简介及缺点 6. Fast DIS 有可能存在的问题 7. ...

  2. (论文解读)RAFT: Recurrent All-Pairs Field Transforms for Optical Flow

    目录 论文解读之: RAFT: Recurrent All-Pairs Field Transforms for Optical Flow 写在前面 回顾光流领域 RAFT Feature Encod ...

  3. RAFT: Recurrent All-Pairs Field Transforms for Optical Flow

    Abstract 递归全对场变换:一种新的光流深度神经架构.RAFT提取像素特征,对所有像素对建立多尺度4D关联体积,并且使用一个循环单元在关联体积上执行查找来迭代地更新光流场. Motivation ...

  4. 《RAFT:Recurrent All-Pairs Field Transforms for Optical Flow》论文笔记

    参考代码:RAFT 作者主页:Zachary Teed 1. 概述 导读:这篇文章提出了一种新的光流估计pipline,与之前介绍的PWC-Net类似其也包含特征抽取/correlation volu ...

  5. RAFT: Recurrent All-Pairs Field Transforms for Optical Flow论文阅读

    RAFT由三个主要组件组成: 特征编码器,该编码器为每个像素提取特征向量; 相关层,对所有像素对产生4D相关卷,后续池化产生较低分辨率卷 基于gru的循环更新操作符,从相关卷中检索值,迭代更新初始化为 ...

  6. 【入门向】光流法(optical flow)基本原理+深度学习中的应用【FlowNet】【RAFT】

    目录 1. 理论背景 1.1 光流 1.2 光流场 2. 基本原理 2.1 假设条件 2.2 约束方程 3. 光流估计方法 3.1 思路概述 3.2 优缺点对比 4. 稠密光流和稀疏光流 4.1 稠密 ...

  7. 【论文简述及翻译】RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching(3DV 2021)

    一.论文简述 1. 第一作者:Lahav Lipson 2. 发表年份:2021 3. 发表期刊:3DV,Best paper 4. 关键词:立体匹配.端到端训练.迭代优化.GRU 5. 探索动机:立 ...

  8. 论文笔记 - RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching

    这篇博客是对论文RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching的阅读笔记. 论文地址位于paper,代码已 ...

  9. 光流(optical flow) 光流法(optical flow method) 光流场(optical flow field)

    光流是空间运动物体在观测成像面上的像素运动的瞬时速度.光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的"运动",即研究图像灰度在时间上的变化与景象中物 ...

最新文章

  1. RDKit | 天然产物的相似度评分(NP-likeness)
  2. 写的书太受欢迎怎么办?北大《深度强化学习》重磅开放下载
  3. key 和secret_Java Secret:加载和卸载静态字段
  4. 快速上手Tomcat
  5. 【Guava】对Guava类库的注释类型 VisibleForTesting的理解
  6. python def和lambda的应用
  7. mac vscode zsh git中文乱码解决方案
  8. oracle数据库怎么切换实例,oracle切换数据库实例
  9. 使用JConsole观察分析Java程序的运行(转)
  10. 自学PS-持续更新 共勉
  11. 阿里妈妈展示广告引擎新探索:迈向全局最优算力分配
  12. 中华人民共和国民法典
  13. 为 Form Library 开发工作流,如何读取 InfoPath 表单内容
  14. 用C语言实现小写金额转大写
  15. C++快速入门学习笔记(一)
  16. Python对象赋值和拷贝
  17. Windows远程桌面连接报错【无法连接到远程计算机】
  18. 根据瘦子的日历,改装了一个月历控件
  19. python批量下载巨潮PDF年报
  20. 安装及配置Maven环境变量

热门文章

  1. 《川西剿匪记》关机 苏岩“吃苦”罗嘉良作陪
  2. 问题 G: 深入浅出学算法007-求佩尔方程的解
  3. 2021水利水电安全员考证必备判断题库
  4. socket.io client + socketio-netty server简析
  5. 为什么要学习编程?孩子学习编程有用吗?
  6. mysql不同情况下加锁类型实验 record lock 和 gap lock
  7. 说下 MySQL 中的锁
  8. MySQL开启服务失败,错误1607
  9. 35个seo优化技巧
  10. 傻瓜bat脚本实现包管理和包引用——如何优雅的管理bat脚本集(一)