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主要改进有三点:
- laplace 混合loss, 在RAFT中使用的是L1 loss。
- 直接回归初始化光流,在初始状态,不是从0开始,而是重复使用现有上下文解码器来直接预测初始光流,然后供应给输入的frame。
- 能够提升泛化性。
这些改进和现有的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
相比较原始的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. 京世 分 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 RAFT framework
GPOO1(F(I2),2R) V-F(L)OAV 乐X乐 DHXUX OAVGPOO1(F12),2*) R V ,RAFT循环优化光流预测u。每一步都得到一个运动特征M
返回I1上每个像素点和I2上临近像素之间在半径r内的相似性。运动特征向量然后通过一个运动编码器转换。RNN但愿输入有一个隐藏状态h,运动特征,以及上下文特征。而后通过flow head得到delta u。
H-RNN(H,M,CI)) A一FLOWHEAD(H' 一
相比较来说,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 无法收敛 LGT(,0)一(U,W)1 (LOG2B(U,U十 22 2B(U,0) LLAP一 HW 9 21 在对数空间进行优化,就是直接优化的值是取对数之后的值。
概率回归probablistic regression无法收敛的原因有两个:1. 回归范围太大,很小值到很大值之间。2. 损失函数来自标准的EPE,这种损失函数只关心L1误差,不关心不确定性估计。提出了两个Laplace distributions,一个是针对正常情况,一个是针对模棱两可的情况,混合稀疏是\alpha=[0,1]
MIRLAP(X;A,BI,B2,)-A 十(1一A. 2EB2 2E81 一 一队
IOG[MLIRIAP(GT(N,E)D;A(N,E),0,B2(UN,V),(,E)D) 222 UUDEFRY LMOL三 2H
NCOI L 1]二 Y 最后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
整体来看,这篇文章工作没有RAFT惊艳是肯定的,但是实现了加速这算是解决了痛点。尤其是工程上用的时候,速度很关键,可以跑一下试试。作者网站上也公开了很多基于RAFT进行SLAM和3d重建的工作,可以参考。作者之一Jia Deng是L. FeiFei的学生,可能和他们创业成立AI 3d重建公司也有关。
若有收获,就点个赞吧
标签:loss,Simple,Accurate,flow,像素,SEA,光流,RAFT From: https://www.cnblogs.com/jianyingzhou/p/18434319