RAFT:Recurrent All-Pairs Field Transforms for Optical Flow

news2024/11/17 7:44:59

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

文章目录

  • 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 ,这就算完成了光流估计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/838187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RISC-V基础之浮点指令(包含实例)

RISC-V体系结构定义了可选的浮点扩展,分别称为RVF、RVD和RVQ,用于操作单精度、双精度和四倍精度的浮点数。RVF/D/Q定义了32个浮点寄存器,f0到f31,它们的宽度分别为32位、64位或128位。当一个处理器实现了多个浮点扩展时&#xff0…

企业人力资源管理系统servlet+jsp人事招聘培训薪资java源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 企业人力资源管理系统servletjsp 系统1权限&#xff…

基于面向对象基础设计——里氏替换原则

在Java中,支持抽象和多态的关键机制之一是继承。正是使用了继承,我们才可以创建实现父类中抽象方法的子类。那么,是什么规则在支配着这种特殊的继承用法呢?最佳的继承层次的特征又是什么呢?在什么情况下会使我们创建的…

Python中的copy和deepcopy

一、定义 浅拷贝:创建一个新的对象,不拷贝内部子对象,只拷贝子对象的引用。这意味着,如果原对象的子对象发生变化,拷贝后的对象也会受到影响。 深拷贝:创建一个新的对象,并递归地拷贝原对象的所…

删除这4个文件夹,流畅使用手机无忧

在现代社会中,手机已经成为我们生活中不可或缺的一部分。然而,随着使用时间的增长,我们可能会遇到手机卡顿和内存不足的问题,让我们感到十分困扰。手机卡顿不仅影响使用体验,还可能导致应用程序运行缓慢,甚…

简单高效,教你如何制作食品小程序商城

食品行业的发展越来越繁荣,为了满足人们对食品的需求,许多商家都开始转向线上销售。而制作一个食品小程序商城,不仅可以提高销售效率,还可以增加用户粘性。下面,我们就来详细介绍如何制作食品小程序商城。 首先&#x…

python日志logging的用法

python日志看起比较简单,要用起来稍微有点复杂,基础用法网上也介绍得比较多,下面就最近遇见的问题,作一个简单的介绍。就是在两个以上的python文件中要记录日志,怎么才能实现在一个地方配置,多个地方使用的…

11.函数递归与迭代

递归与迭代 1.什么是递归?2.递归的限制条件3.递归举例3.1 求n的阶乘3.2 顺序打印一个整数的每一位 4.递归与迭代4.1 求第n个斐波那契数(递归 不推荐)4.2 求第n个斐波那契数(迭代 推荐)4.3 总结 1.什么是递归&#xff1…

奥威BI—数字化转型首选,以数据驱动企业发展

奥威BI系统BI方案可以迅速构建企业级大数据分析平台,可以将大量数据转化为直观、易于理解的图表和图形,推动和促进数字化转型的进程,帮助企业更好地了解自身的运营状况,及时发现问题并采取相应的措施,提高运营效率和质…

使用socket实现UDP版的回显服务器

文章目录 1. Socket简介2. DatagramSocket3. DatagramPacket4. InetSocketAddress5. 实现UDP版的回显服务器 1. Socket简介 Socket(Java套接字)是Java编程语言提供的一组类和接口,用于实现网络通信。它基于Socket编程接口,提供了…

【测试学习五】测试类型的划分(重点:白盒与黑盒测试)

目录 一、测试类型的分类 1、按测试对象划分 2、是否查看代码划分(重点) 🌷(1)黑盒测试 🌷(2)白盒测试 🌷(3)灰盒测试 3、按照开发阶段划…

JVM分析工具JProfiler介绍及安装

目录 一、什么是JProfiler? 二、JProfiler 功能结构 1、分析代理 2、记录数据 3、快照 三、安装 一、什么是JProfiler? JProfiler是一个专业的工具,用于分析运行中的JVM内部发生的事情。当您的生产系统出现问题时,您可以…

FileZilla Server同时共享多个目录(手把手教你使用FileZilla Server同时设置多个目录)

网上的基本全是一句话带过怎么共享多个目录,没图很烦,所以我自己就写一个过程 目录 1、创建ftp用户并设置密码 1.1、进入用户管理 1.2、新建用户 1.3、设置密码 2、添加共享的目录 2.1、选择用户添加目录 2.2、给予用户访问权限 2.2.1、客户端访…

小程序服务器配置多大够用?

​  了解小程序服务器的大小和要求对于确保小程序的高效运行非常重要。下面将介绍小程序服务器的大小和要求,帮助您选择合适的服务器。 服务器费用 服务器费用因服务器类型、配置和带宽等因素而异。一般而言,小型小程序服务器的年费用在500元至2000元之…

SpringCloud之微服务API网关Gateway介绍

文章目录 1 微服务API网关Gateway1.1 网关简介1.2 Spring Cloud Gateway介绍1.3 Gateway特性1.4 Gateway核心概念1.4.1 路由1.4.1.1 定义1.4.1.2 动态路由 1.4.2 断言1.4.2.1 默认断言1.4.2.2 自定义Predicate 1.4.3 过滤器1.4.3.1 默认过滤器1.4.3.2 自定义Filter(…

2023年第三届工业自动化、机器人与控制工程国际会议 | IET独立出版 | EI检索

会议简介 Brief Introduction 2023年第三届工业自动化、机器人与控制工程国际会议(IARCE 2023) 会议时间:2023年10月27 -30日 召开地点:中国成都 大会官网:www.iarce.org 2023年第三届工业自动化、机器人与控制工程国际…

【DMA】认识 DMA 及其工作流程

DMA(Direct Memory Access),字面意思“直接访问内存”,无需 CPU 干预直接读写内存。传统CPU读写数据时,需要先将要使用的数据保存到 RAM,等要用时再从RAM 加载。 目录 一、传统CPU存取数据 二、认识DMA …

安防视频监控汇聚平台EasyCVR接入Ehome告警,公网快照不显示是什么原因?

智能视频监控汇聚平台TSINGSEE青犀视频EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,视频监控管理平台…

openCV图像读取和显示

文章目录 一、imread二、namedWindow三、imshow #include <opencv2/opencv.hpp> #include <iostream>using namespace std; using namespace cv;int main(int argc,char** argv) {cv::Mat img imread("./sun.png"); //3通道 24位if (img.empty()) {std:…

App自动化测试|dom结构和元素定位方式

先来看几个名词和解释&#xff1a; dom: Document Object Model 文档对象模型 dom应用: 最早应用于html和js的交互。界面的结构化描述&#xff0c; 常见的格式为html、xml。核心元素为节点和属性 xpath: xml路径语言&#xff0c;用于xml 中的节点定位&#xff0c;XPath 可在 x…