SEA-RAFT: Simple, Efficient, Accurate RAFT for Optical Flow

news/2024/11/19 5:54:57/文章来源:https://www.cnblogs.com/jianyingzhou/p/18434319
SEA-RAFT: Simple, Efficient, Accurate RAFT for Optical Flow
Yihan Wang, Lahav Lipson, and Jia Deng
 
一种比RAFT更简单、有效、准确率高的光流算法,比起来RAFT, sea-raft训练时用了一种新的loss,拉普拉斯混合。SEA-RAFT 是现有方法的2.3倍快,同时保持精确具有可比性。在3090卡上,1080P大小的图,能达到21fps,比RAFT快3倍。
 

 相比较原始的RAFT主要改进有三点:

  1. laplace 混合loss, 在RAFT中使用的是L1 loss。
  2. 直接回归初始化光流,在初始状态,不是从0开始,而是重复使用现有上下文解码器来直接预测初始光流,然后供应给输入的frame。
  3. 能够提升泛化性。

这些改进和现有的RAFT相关工作是垂直的,也就是说可以方便地迁移到别的方法上使用。首先是基于数据集TartanAir进行rigid flow预训练,而后再进行optical flow训练。

和光流相关的任务比如点匹配,在存在大位移、外观变化或均匀区域的情况下,密集流估计容易出错。 在遮挡的情况下或例如 天空,那里的预测必然是不准确的。PDCNet不仅估计了准确的对应关系,而且还估计了何时信任它们。它预测了一个稳健的不确定性地图,识别准确的匹配,并排除不正确和不匹配的像素。本文引进的MOL需要一个混合的,有一个常量方差,这样和L1 loss等价,更适合光流的评估标准。这样在光流中,每一个像素需要一个准确的反馈,不像点匹配中那样,是一个匹配的点集合。

 

 

备注,此处增加一些额外知识:

又是一堆新领域知识,来自GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose. Zhichao Yin and Jianping S. 中文参考:https://zhuanlan.zhihu.com/p/37671541

与完整的场景理解相比,理解相机的齐次运动相对容易得多,因为大部分区域都受到相机的约束。为了从本质上分解三维场景的理解问题,将由相机运动控制的场景级一致性运动称为rigid flow,区别于物体运动(object motion)。所以计算rigid flow需要把相机运动算出来,通过把target像素pt映射到source 像素ps上,然后两个像素做差值计算pt-ps,这样得到rigid flow.

 

方法

3.1 迭代优化

 

 先进行rigid flow预训练,而后进行optical flow训练。

两个解码器,特征解码器F(图中蓝色部分),I1,I2作为输入,输出F(I1), F(I2),上下文解码器C(图中橙色部分),输入I1,输出C(I1)。 然后生成多尺度的4D 关联Vk,此处详细的框架可以参考RAFT原文中的图,如下图,这个图中,画的比较清楚,SEA-RAFT用convnet替换掉了GRU部分。

 

,RAFT循环优化光流预测u。每一步都得到一个运动特征M

 

 返回I1上每个像素点和I2上临近像素之间在半径r内的相似性。运动特征向量然后通过一个运动编码器转换。RNN但愿输入有一个隐藏状态h,运动特征,以及上下文特征。而后通过flow head得到delta u。

 

 

 

相比较来说,SEA-RAFT需要更少的迭代次数,RAFT相关的算法一般需要在训练过程中每一次需要12次迭代,推理时需要32次迭代,而sea-raft训练过程中只需要4次迭代,推理时需要12次迭代,同时结果已经相当优秀了。

 

3.2 Mixture-of-Laplace Loss

先前的工作大多是用EPE(endpoint-error loss on all pixels,光流估计中标准的误差度量,是预测光流向量与真实光流向量的欧式距离在所有像素上的均值。)进行监督学习,但是光流训练数据通常包含大量模棱两可、不可预测的样本,这样的数据充满这个loss数据。作者分析数据发现,这种模棱两可的情况主导了误差。

Review of Probabilistic Regression

PS: 概率回归问题,目的是点匹配过程中只找到最佳的匹配给预测概率值,而不是一个子集。
给定两张图I1,I2,光流真值ugt,训练误差损失

 

 

在对数空间进行优化,就是直接优化的值是取对数之后的值。

概率回归probablistic regression无法收敛的原因有两个:1. 回归范围太大,很小值到很大值之间。2. 损失函数来自标准的EPE,这种损失函数只关心L1误差,不关心不确定性估计。提出了两个Laplace distributions,一个是针对正常情况,一个是针对模棱两可的情况,混合稀疏是\alpha=[0,1]

 

 

 

 最后loss是这样的,其中r<1, n表示迭代的次数。

 

最后根据不同的配置,实验如下表所示。在实验中,使用imagenet做预训练效果会更好,同时loss的使用确实是MOL是更好的,同时把GRU换成了conv,但是可以看到计算量稍微减少了。从实验结果可以看到,替代掉GRU后,增加block数并不能提升。

 

 整体来看,这篇文章工作没有RAFT惊艳是肯定的,但是实现了加速这算是解决了痛点。尤其是工程上用的时候,速度很关键,可以跑一下试试。作者网站上也公开了很多基于RAFT进行SLAM和3d重建的工作,可以参考。作者之一Jia Deng是L. FeiFei的学生,可能和他们创业成立AI 3d重建公司也有关。

 

SEA-RAFT: Simple, Efficient, Accurate RAFT for Optical Flow Yihan Wang, Lahav Lipson, and Jia Deng 一种比RAFT更简单、有效、准确率高的光流算法,比起来RAFT, sea-raft训练时用了一种新的loss,拉普拉斯混合。SEA-RAFT 是现有方法的2.3倍快,同时保持精确具有可比性。在3090卡上,1080P大小的图,能达到21fps,比RAFT快3倍。
NFERENCELATENCY(MS
MACS(G
 
GMAOFLOWFORMER+
A-...MATCHFLOWOO
SEA-RAFT(S)
EA-RAFT(M
S-RAFT
OMATCHFLOY
SEA-RAFT
SEA-RAFTM
FLOWFORMER+十
RPKNE
GMFLOV
10000
MS-RAFT
11XSMALLER
RAFTO
RPKNET
GMFLOW
24XFAST
 
CRAFT
0.45
4500
0.46
6000
0.39
3000
100
CRAF
 
SKFLOW
1000
1500
DIP
O
 
RAFT
.47
O0
6
SKFLOW
0
2
10
img_v3_02f3_c8ae80e1-7ec4-473d-b3fb-2dc8a64979ag.jpg

相比较原始的RAFT主要改进有三点:
1laplace 混合loss, 在RAFT中使用的是L1 loss。
2直接回归初始化光流,在初始状态,不是从0开始,而是重复使用现有上下文解码器来直接预测初始光流,然后供应给输入的frame。
3能够提升泛化性。
这些改进和现有的RAFT相关工作是垂直的,也就是说可以方便地迁移到别的方法上使用。首先是基于数据集TartanAir进行rigid flow预训练,而后再进行optical flow训练。
和光流相关的任务比如点匹配,在存在大位移、外观变化或均匀区域的情况下,密集流估计容易出错。 在遮挡的情况下或例如 天空,那里的预测必然是不准确的。PDCNet不仅估计了准确的对应关系,而且还估计了何时信任它们。它预测了一个稳健的不确定性地图,识别准确的匹配,并排除不正确和不匹配的像素。本文引进的MOL需要一个混合的,有一个常量方差,这样和L1 loss等价,更适合光流的评估标准。这样在光流中,每一个像素需要一个准确的反馈,不像点匹配中那样,是一个匹配的点集合。

备注,此处增加一些额外知识:
又是一堆新领域知识,来自GeoNet: Unsupervised Learning of Dense Depth, Optical Flow and Camera Pose. Zhichao Yin and Jianping S. 中文参考:https://zhuanlan.zhihu.com/p/37671541
与完整的场景理解相比,理解相机的齐次运动相对容易得多,因为大部分区域都受到相机的约束。为了从本质上分解三维场景的理解问题,将由相机运动控制的场景级一致性运动称为rigid flow,区别于物体运动(object motion)。所以计算rigid flow需要把相机运动算出来,通过把target像素pt映射到source 像素ps上,然后两个像素做差值计算pt-ps,这样得到rigid flow.
 
方法
 
3.1 迭代优化
2)MIXTUREOFLAPLACELOSS,AND(3)DIRECTREGRESSIONOFINITIALFOW.
FIG2:COMPAREDWITHRAFT50,SEA-RAFTINTRODUCES(L)RIGID
LNITIALPREDICTIONMIXTUREOFLAPLACELOSS
)RIGID-FOWPRE-TRAINING
ELARCHITECTUREANDSUPERVI
TRAININGPIPELINE
REFINEDPREDICTIONS
4DCOSTVOLUME
RNN一
OPTICALFLOV
PRE-TRAINING
RIGID-FLOW
TRAINING
22222222222222222222
面和面
 
OFINITIALFOW.
京世
image.png
SEA-RAFT Framework

先进行rigid flow预训练,而后进行optical flow训练。
两个解码器,特征解码器F(图中蓝色部分),I1,I2作为输入,输出F(I1), F(I2),上下文解码器C(图中橙色部分),输入I1,输出C(I1)。 然后生成多尺度的4D 关联Vk,此处详细的框架可以参考RAFT原文中的图,如下图,这个图中,画的比较清楚,SEA-RAFT用convnet替换掉了GRU部分。

 
XHXIXHCORELATIONVOLUMEBYTAKINGTHEINNERPRODUCTOFALLDAIRSOF
 
 
 
 
L:RAFTCONSISTSOF3MAINCOMPOENTS:(1)AFEATUREENCODERTHATEXTRACTS
ROMTHESETOFCORRELATIONVOLULMES.
4DCORELATIONVOLUMES
CONTEXTENCOD
FEATUREENCODER
OPTICALFLOWW
000
10ITE
FRAME2
image.png
RAFT framework


GPOO1(F(I2),2R)
V-F(L)OAV
乐X乐
DHXUX
OAVGPOO1(F12),2*)
R
V
image.png
,RAFT循环优化光流预测u。每一步都得到一个运动特征M
image.png

返回I1上每个像素点和I2上临近像素之间在半径r内的相似性。运动特征向量然后通过一个运动编码器转换。RNN但愿输入有一个隐藏状态h,运动特征,以及上下文特征。而后通过flow head得到delta u。
H-RNN(H,M,CI))
A一FLOWHEAD(H'
image.png

相比较来说,SEA-RAFT需要更少的迭代次数,RAFT相关的算法一般需要在训练过程中每一次需要12次迭代,推理时需要32次迭代,而sea-raft训练过程中只需要4次迭代,推理时需要12次迭代,同时结果已经相当优秀了。
 
3.2 Mixture-of-Laplace Loss
先前的工作大多是用EPE(endpoint-error loss on all pixels,光流估计中标准的误差度量,是预测光流向量与真实光流向量的欧式距离在所有像素上的均值。)进行监督学习,但是光流训练数据通常包含大量模棱两可、不可预测的样本,这样的数据充满这个loss数据。作者分析数据发现,这种模棱两可的情况主导了误差。
Review of Probabilistic Regression
PS: 概率回归问题,目的是点匹配过程中只找到最佳的匹配给预测概率值,而不是一个子集。给定两张图I1,I2,光流真值ugt,训练误差损失
一-LOGPE(U一UATL1L2)
PROB
image.png
无法收敛
LGT(,0)一(U,W)1
(LOG2B(U,U十
22
2B(U,0)
LLAP一
HW
9
21
image.png
在对数空间进行优化,就是直接优化的值是取对数之后的值。
概率回归probablistic regression无法收敛的原因有两个:1. 回归范围太大,很小值到很大值之间。2. 损失函数来自标准的EPE,这种损失函数只关心L1误差,不关心不确定性估计。提出了两个Laplace distributions,一个是针对正常情况,一个是针对模棱两可的情况,混合稀疏是\alpha=[0,1]
MIRLAP(X;A,BI,B2,)-A
十(1一A.
2EB2
2E81
一队
image.png

IOG[MLIRIAP(GT(N,E)D;A(N,E),0,B2(UN,V),(,E)D)
222
UUDEFRY
LMOL三
2H
image.png

NCOI
L
 
1]二
Y
image.png
最后loss是这样的,其中r<1, n表示迭代的次数。

最后根据不同的配置,实验如下表所示。在实验中,使用imagenet做预训练效果会更好,同时loss的使用确实是MOL是更好的,同时把GRU换成了conv,但是可以看到计算量稍微减少了。从实验结果可以看到,替代掉GRU后,增加block数并不能提升。

SPRING|35LSUBVAL.THEEFFECTOFCHANGESCANBEIDENTIHEDTHROUGHCOMPARISONSWTH
THEFRSTROW.SEESEC.4.3FORDETAILS.
ABLE4:WEABLATEPRETRAININGDIRECTREGTESSION,RNNDESIGM.ANDLOSSDE
IMG7TAR52]GRU#BLOCKS
NAIVESINGLELAPLACE
SSIONRNNDESIGN.ANDLOSSDESIGMSON
MLORECONVNEXTBLOCKS
SEA-RAFT(W/OTAR.)
NAIVEMLIXTURE-OF-LAPLACE
SEA-RAFTWTAR.)
8E-10,10
81=0,B260,10
MLIXTURE-OF-LAPLACE
MIXTURE-OF-GAUSSIANO=L,
MIXTUREOF-LAPLACE
MLIXTURE-OF-LAPLACE
MLIXTURE-OF-LAPLACE
=0.B2E0.10
MIXTURE-OF-LAPLACE
MIXTURE-OF-LAPLACE
8-0,62E0,10
=0.BE0.1
81,2E-10,
284.7G0.179
NAIVELAPLACE
WODIRECTREG
284.7G0.194
A1=1,02=E9,B26[0.10]
#MACSEPE
0.82E0.10
14.7G
L284.7G0.210
RAFTGRU
PRE-IRAINING
1=0,2E0,1
LOSSDESIGM
EXPERIMENT
284.7G0.187
77.3G0
4.7G0.
97.9G
PARAMS
TABLE4:WEABLA
84.7G
GAUSSIAN
ROIIEHCONMPARISONSWITH
0.217
/OLMG.
TYPE
RNN
0.248
0.18G
0.18G
工1
NIT.
0.10
image.png



整体来看,这篇文章工作没有RAFT惊艳是肯定的,但是实现了加速这算是解决了痛点。尤其是工程上用的时候,速度很关键,可以跑一下试试。作者网站上也公开了很多基于RAFT进行SLAM和3d重建的工作,可以参考。作者之一Jia Deng是L. FeiFei的学生,可能和他们创业成立AI 3d重建公司也有关。








 
 
 
 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HuggingChat macOS 版现已发布

Hugging Face 的开源聊天应用程序 Hugging Chat,现已推出适用于 macOS 的版本。主要特点 Hugging Chat macOS 版本具有以下亮点:强大的模型支持: 用户可以一键访问多个顶尖的开源大语言模型,包括 Qwen 2.5 72B、Command R+、Phi 3.5、Mistral 12B 等等; 丰富的功能: 应用内置…

Setup Factory API

SetupFactory中可以通过其API控制很复杂的业务需求。下图中展示了其内置的API种类与具体分类函数。序号API名称 API说明1 Application.Exit 退出安装程序,并返回一个可选的返回代码2 Application.GetInstallLanguage 返回一个包含当前安装语言的表格3 Application.GetLastErro…

使用duxapp开发 React Native App 事半功倍

Taro的React Native端开发提供了两种开发方式,一种是将壳和代码分离,一种是将壳和代码合并在一起开发壳是用来打包调试版或者发版安装包使用的 代码是运行在壳上的js代码 Taro壳子的代码仓库https://github.com/NervJS/taro-native-shellduxapp中更进一步,你不需要太关注壳子…

package.json依赖包漏洞之nodejs-glob-parent正则表达式拒绝服务漏洞

背景 有个安全扫描的流水线,扫描了负责的项目之后,发现一些漏洞。 需要说明的是,这个扫描只是针对package.json文件,扫的是依赖树,而不是项目源代码,也不是打包后的代码。 但既然是漏洞,都是可以好好学习下的。nodejs-glob-parent正则表达式拒绝服务漏洞(CVE-2020-28469…

[转]线性代数库介绍

1、BLAS基础线性代数程序集(Basic Linear Algebra Subprograms),基于Fortran实现的基本向量乘法,矩阵乘法的一种科学计算函数库,也是一组向量和矩阵运行的接口规范标淮,规范向量之间的乘法、矩阵之间的乘法等,BLAS实际上是将复杂的矩阵、向量运算简化成类似加减乘法一样…

资本(生成函数)

$\quad $ 其中 $n\le 1e3 $ 、$ m\le 1e9 $ 、 $ T\le 10 $。 $\quad $ 这是一个排列问题,所以我们可以考虑指数型生成函数,这里我们称 \(x ^n\) 的系数为 \(\frac{x ^n}{n!}\) 之前的系数,下文记作 \([x ^n]\) 。 $\quad $ 我们定义函数 \(f _{k}(x)=\sum _{n=0}^{k}\frac{…

Axure解决列表项中触发内部元件交互的冲突问题

背景在绘制列表项中“更多”菜单按钮的时候,我想在我鼠标悬浮上去时会出现一个底色的效果 如下图:但我在做的过程中发现如果在一个组下勾选了"触发内部元件鼠标交互样式",那你鼠标还没放到"更多"按钮上就已经给触发了制作过程1、所需元件2、结构3、只需…

手把手教你建【货币】一题的网络流模型

现在已知如下问题,并告诉你这题可以用网络流来解决,你该怎么做,该怎么建出网络流的模型?一些前提: 显然可以发现绝不可能走横向向左的边,但可能走竖向向上的边(如下图) 那么图其实就是这样的:问从 \(s\) 到 \(t\) 的最小花费如果没有那 \(m\) 条限制,我们直接跑最短路…

人工智能教育技术学第二次作业

本节课我们学习了制作思维导图的工具,学习怎样运用软件制作思维导图,我们小组制作的思维导图是统计的知识点,通过思维导图我们将小学阶段学习到的有关于统计学的知识点都很好地总结出来。

C#(.NetCore)接入AD域用户的实现

很多公司电脑都是windows,而对用户的管理则很多采用AD域的形式来管理,本文简单的来介绍一下.NetCore中怎么接入AD域来实现登录等操作。首先,我这里使用的是.net6,其它版本类似。其次,这里假设你已经对AD域有了基本的了解,比如AD域所使用的LDAP、属性等,如果不了解先自行…

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...) @目录三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)1. 条件构造器介绍2. 准备工作:3. 等值查询3.1 eq (条件筛选属性 = ?)3.2 allEq(满足多个条…