三维视觉论文阅读:RAFT2020双目光流

2023-05-16

论文

RAFT: Recurrent All-Pairs Field Transforms for Optical Flow

摘要

2020年下半年以来,深度学习都逐渐走向了迭代优化(例如NeRf),还都取得了不错的效果。在RAFT中,作者将迭代优化应用到了光流之中,取得了非常不错的效果,截至到目前RAFT仍旧是多个benchmark的第一名。所以,本篇文章还是非常有必要读一读的。

方法

虽然RAFT的网络结构与大部分光流的结构在总体上仍旧是相似的,即有特征提取模块,然后有cost volumn构建,最后再是一个代价聚合。但是,RAFT在每个模块上,都进行了比较大的改动,保证其能够得到更优良的结果,后文将逐步展开介绍。
在这里插入图片描述

1. 特征提取

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

2. cost volumn构建

cost volumn构建是本篇文章最有意思的地方!以前看很多光流匹配或者双目匹配的文章,都需要人工的设定一个搜索范围,如果对数据集理解不够透彻,很有可能设置不合理的范围。RAFT就非常简单粗暴,直接算所有像素之间的cost,牛啊,计算公式如下,其中 g θ g_{\theta} gθ是匹配特征, I 1 I_1 I1 I 2 I_2 I2分别是左右影像。右侧的计算公式中, h h h是匹配特征的维度, i , j , k , l i,j,k,l i,j,k,l当然就是遍历的索引。
在这里插入图片描述
通过以上方式即可获取cost,为了保证有足够的视野,作者还给cost加上了池化,获取不同分辨率下的cost。
在这里插入图片描述
由于RAFT的cost volumn构建方法过于暴力,可能会导致计算效率大幅度下降。所以其从两个方向进行了改进:

  1. 降低分辨率。这个很简单,提取匹配特征的时候多进行几次下采样即可。在RAFT中,匹配特征的分辨率为原始的 1 8 \frac{1}{8} 81
  2. 一步到位计算所有的cost其实没啥意义,因为RAFT并不是利用三维卷积进行cost回归;所以更好的方法是,需要那个匹配对的cost,就计算那个匹配对的cost。

3. 匹配代价回归

其实利用GRU-Conv做匹配代价回归,早在R-MVSNet里就已经被应用了,用来替代计算量较大的三维卷积。RAFT也差不多是这个思路,至于GRU-Conv怎么工作,博主之前有讨论过了,此处就不再展开。

loss

由于每一层都有一个输出,所以每层都要有一个loss,只是权重不一样,越靠后权重越大。
在这里插入图片描述

结果

RAFT的思路非常有意思,后续一定要看代码!!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三维视觉论文阅读:RAFT2020双目光流 的相关文章

  • Linex Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置

    任务背景 在ROS环境中使用d435i xff0c 订阅图像和imu数据 任务概述 实现在ros中使用d435i主要有两步骤 xff1a 1 安装d435i sdk xff0c 即librealsense xff1b 2 安装realsen
  • C++ 实现简单Http服务器

    实现一个简单的Http服务器 xff0c 基于windows 平台 总共五个文件 HttpServer hpp HttpServer cpp Utils hpp Utils cpp main cpp Utils hpp span class
  • libcurl API介绍及简单编程

    libcurl编程 xff0c 主要采用callback function 回调函数 的形式完成传输任务 xff0c 用户在启动传输前设置好各类参数 和回调函数 xff0c 当满足条件时 libcurl 将调用用户的回调函数实现特定功能 下
  • git patch

    git patch用于将所做的修改进行打包 xff0c 然后再别的分支或给别人可以直接应用该patch xff0c 达到修改复用的效果 diff命令 git diff gt xxxx patch git diff xx file gt xx
  • WIFI知识 - MCS简介

    WIFI知识 MCS简介 MCS简介 802 11n 射频速率的配置通过 MCS xff08 Modulation and Coding Scheme xff0c 调制与编码策略 xff09 索引值实现 MCS 调制编码表是 802 11n
  • 802.11 QoS

    到了空调西瓜WiFi的夏日时光了 xff0c 家里用网的人一多 xff0c 难免会抢占起宽带资源来 有没有什么办法 xff0c 让家里所有人都可以得到一个比较不错的网络体验呢 xff1f 那今天你可以试试打开你路由器的QoS功能了 xff0
  • Wireshark抓包分析WLAN连接过程

    一个完整的WLAN连接过程 xff1a 一 xff1a WLAN扫描 主动扫描 xff1a 两种方式 xff1a xff08 1 xff09 向各个信道发出Probe Request帧并制定某个SSID xff0c 只有能够提供指定SSID
  • 802.11X用户身份验证 EAPOL

    EAPOL是什么 sogou com 802 11X用户身份验证 走看看 zoukankan com EAPOl的由来是基于802 1x网络访问认证技术 xff1a 802 1x协议起源于802 11协议 xff0c 后者是IEEE的无线局
  • git reset

    git reset 三种模式分别为 mixed 默认 soft hard 直接看官方的解释 其中HEAD代表版本库 xff0c index代表暂存区 xff0c 另外还有一个我们改代码的工作区 mixed 回退版本库 xff0c 暂存区 m
  • git reset还是git revert?

    reset和revert都可以用来回滚代码 但他们是有区别的 xff0c 准确来说 xff0c reset是用来 34 回退 34 到某个提交 xff0c 而revert是用来 34 撤销 34 某次或者某几次提交 xff0c 撤销也会作为
  • PR and MR

    GitHub 的 Pull Request 是指什么意思 xff1f 作者 xff1a 知乎用户 链接 xff1a https www zhihu com question 21682976 answer 79489643 来源 xff1a
  • python--基础知识点--subprocess模块

    subprocess 模块的介绍与使用 一 介绍 subprocess模块可以生成新的进程 xff0c 连接到它们的input output error管道 xff0c 同时获取它们的返回码 二 基本操作方法 1 subprocess的ru
  • Homebus(HBS)通信协议学习

    HBS通信主控与从机连接示意图 两根HBS总线之间的电压差大约为15V xff0c 差分信号分别加载到HBS的这两根总线上 用示波器的探头测得 xff08 探头的地在任意一根HBS总线上 xff0c 探头的信号输入端在另一根HBS总线上 x
  • RSA参数及RSA用法

    RSA算法n e d三个参数的意义 n为q p乘机 e为加密质数数值 d为解密质数数值 其中 e d p 1 q 1 61 1余数为1 其中p和q为2个足够大的素数 RSA的算法涉及三个参数 xff0c n e1 e2 其中 xff0c n
  • STM32的CAN

    一 CAN控制器简介 STM32自带了基本扩展CAN外设 xff0c 又称bxCAN xff0c bxCAN的特点如下 xff1a 1 支持CAN协议2 0A和2 0B主动模式 2 波特率最高达1Mbps 3 支持时间触发通信 4 具有3个
  • VSCode使用ssh密钥,不用每次输密码登录服务器的方法

    如果已经用ssh keygen 生成密钥了 xff0c 则跳过生成密钥这一步 客户端机器生成密钥 也就是vscode运行的机器 xff0c 在终端任意路径下输入 ssh keygen 生成密钥 本地 ssh keygen 默认目录在 ssh
  • Wi-Fi 802.11协议 管理帧 之 Auth帧详解

    Auth xff1a 链路认证 链路认证阶段主要是 AP 用来确认 Station 是否是 802 11 设备 xff0c 确认彼此是否可以正常通讯 xff0c 身份认证一般有为两种方式 xff0c 一种是开放系统认证 xff0c 另一种是
  • 802.11 协议介绍

    802 11协议基础 前言 OSI七层网络 开放式系统互联模型 xff08 Open System Interconnection Model xff09 是一种概念模型 xff0c 由国际标准化组织提出 xff0c 一个试图使各种计算机在
  • 802.11标准deauth报文的reason code中文版

    代码 原因 0 保留 1非特定原因 2以前的身份验证不再有效 3由于发送STA离开 xff08 或已经离开 xff09 ibs或ESS而被取消身份验证 4由于不活动而解除关联 5已解除关联 xff0c 因为AP无法处理所有当前关联的STA
  • 虚拟机ubuntu单向ping通

    可以单向ping通 xff0c 到win端查看VMnet8 xff0c 发现VMnet8不见了 找回方法 xff1a 在VMware中对NAT模式进行 还原默认设置 操作或者配置好后点击确定 xff08 注意 xff1a 虚拟机开机后无法还

随机推荐

  • Beyond compare文件夹内容自动比较

    前言 xff1a 在一开始比较文件都是手动一个个去点击文件 xff0c 如果是几万个代码文件这将是巨大的工程 xff0c 带着偷懒的想法跑去找方法真找到了 默认会全部的文件标红 xff0c 这就很难受了 解决方案 xff1a 顶部的菜单 会
  • 从MIT协议谈契约精神

    以前看到过李笑来讲的发生在他身上的故事 xff0c 说他当年 2001年 住在双榆树 xff0c 经常去双安商场的地下超市买东西 xff0c 有一次买了个什么东西觉得不好 xff0c 要退 xff0c 超市服务员说按规定 xff0c 该类商
  • VLC命令行使用帮助

    Usage vlc options stream You can specify multiple streams on the commandline They will be enqueued in the playlist The f
  • 将Conda Prompt Here添加到右键菜单

    如何将Conda Prompt Here添加到右键菜单 Conda是一个非常流行的Python的环境管理工具 xff0c 在做项目的时候把它跟IDE整合在一起用来管理不同项目的环境会很方便 xff0c 但是在日常使用Windows的过程中如
  • AMS-1117

    电路图 说明 10uF 61 10622uF 61 226100nF 61 104106 61 10乘以10的6次方pF xff1b 简单点的说就是106表示容量 10后面加六个零 单位pF 转换成uF就是10uF 电容之间的换算公式 xf
  • ROS---用catkin创建ROS包、编译

    安装好ROS后 xff0c 默认已经安装了catkin xff0c 接着执行以下步骤 用catkin创建ROS包 span class hljs comment 每次都要进入这个目录 xff0c 也就是所有的包都要放在这个目录下 span
  • libQtGui.so: undefined reference to `png

    使用Qt4 包在Centos上编译时 xff0c 出现libQtGui so 找到未定义的png等 首先进行网上搜索 xff0c 没有发现任何思路 执行ldd时 xff0c 发现少了很多依赖库 xff0c 如下 xff1a ldd libQ
  • C/C++中在头文件中定义函数或变量会出现的问题

    在 C C 43 43 中 xff0c 我们一般是把代码分为头文件 xff08 h xff09 和源文件 xff08 c cpp xff09 分开保存 xff0c 这样可以方便代码管理和阅读 但是如果把函数或变量的定义也放在头文件中会出现什
  • C++ 求100的阶乘

    include lt iostream gt using namespace std int main int n int k 61 1 k为当前的位数 int fact 10000 61 1 0 cout lt lt 34 输入阶乘n 3
  • C++ 读入一个整数,将各个数位上的数拆分下来并输出(从高位到低位)。

    include lt iostream gt include lt cmath gt using namespace std void split int num int n 61 num int count 61 0 位数 int tem
  • C++建立一个关于平面点坐标的类

    建立一个关于平面点坐标的类 include lt iostream gt include lt cmath gt using namespace std class Cpoint private int flag flag 61 1时 xf
  • 图---生成树与最小生成树

    今天在做题的时候遇到一个问题 xff0c 如何根据图的邻接表来画出 DFS 生成树和 BFS 生成树 xff0c 有两年的真题中涉及到这个问题 xff0c 在以前的学习中没注意过此问题 xff0c 由于严奶奶的书上也只是一带而过 xff0c
  • 编写一个递归算法,实现将一棵二叉树的左右孩子互换。

    include 34 iostream 34 using namespace std define max 20 定义树的结点数 typedef struct BTNode 定义二叉树结点类型 char data 结点数据类型 struct
  • IIC协议解释

    xff08 1 xff09 概述 I2C Inter Integrated Circuit BUS 集成电路总线 xff0c 该总线由NXP xff08 原PHILIPS xff09 公司设计 xff0c 多用于主控制器和从器件间的主从通信
  • 使用栈非递归实现复制二叉树

    include 34 iostream 34 using namespace std define max 20 the number of node typedef struct BTNode char data struct BTNod
  • stanford-segmenter一个简单例子

    1 简介 stanford分词目前支持 Arabic 和 Chinese 它的原理是基于CRFs CRFs分词的原理不难懂 xff0c 就是把分词当作另一种形式的命名实体识别 xff0c 利用特征建立概率图模型后 xff0c 用Veterb
  • 集中式vs分布式

    Linus一直痛恨的CVS及SVN都是集中式的版本控制系统 xff0c 而Git是分布式版本控制系统 xff0c 集中式和分布式版本控制系统有什么区别呢 xff1f 先说集中式版本控制系统 xff0c 版本库是集中存放在中央服务器的 xff
  • 一个完整的schema验证xml的例子

    xml文件 xff1a lt reference xmlns 61 34 http www w3school com cn 34 xmlns xsi 61 34 http www w3 org 2001 XMLSchema instance
  • 三维视觉论文阅读:DeepPruner2019双目立体匹配

    论文 DeepPruner Learning Efficient Stereo Matching via Differentiable PatchMatch 摘要 DeepPruner这篇文章 xff0c 本人在2019年上半旬就大致读过一
  • 三维视觉论文阅读:RAFT2020双目光流

    论文 RAFT Recurrent All Pairs Field Transforms for Optical Flow 摘要 2020年下半年以来 xff0c 深度学习都逐渐走向了迭代优化 xff08 例如NeRf xff09 xff0