从RANSAC到DSAC,再到NG-RANSAC,论文记录

RANSAC

摘自论文《Random Sample Consensus: A Paradigm for Model Fittign with Applications to Image Analysis and Automated Cartography》 1981

针对的问题

一种新的范例,RANSAC,用于将模型拟合到实验数据。
适用于处理有着较大比例误差的数据。
场景分析实际上是根据一组预定义的模型来解释测量数据。解释涉及两个步骤:首先,在可用模型中找到一个与数据的最佳匹配(分类问题);然后,为所选模型的参数计算最佳值(参数估计问题)。实际上,这两个问题不是独立的,通常需要解决参数估计问题才能解决分类问题。
场景分析,其数据来源于局部特征检测器,但它经常会出错: 1分类错误; 2测量错误。
当特征检测器错误地将图像的一部分识别为特征的出现时,就会发生分类错误。当特征检测器正确识别特征,但略微错误计算其参数之一(例如,其图像位置)时,就会发生测量错误。测量误差通常遵循正态分布,因此平滑假设适用于它们。但是,分类错误是严重错误,其影响要比测量错误大得多,并且不会平均。

算法过程

考虑一个模型至少需要 n n n个点以确定参数。一个数据点集合 P P P。从 P P P中随机选择一个含有n个点子集 S 1 S1 S1,实例化模型 M 1 M1 M1(计算出模型参数)。从 P P P中筛选出,在一定误差范围 e e e内满足模型 M 1 M1 M1的点集 S 1 ∗ S1^* S1,集合 S 1 ∗ S1^* S1被称为集合 S 1 S1 S1的consensus set(一致集?共识集?)。
如果点集 S 1 ∗ S1^* S1中点的数量高于阈值 t t t(阈值 t t t P P P中gross errors的函数),使用 S 1 ∗ S1^* S1计算新的模型 M 1 ∗ M1^* M1
如果点集 S 1 ∗ S1^* S1不满足阈值 t t t,重选选择子集 S 2 S2 S2,重复上述过程, N N N次尝试后仍未找到,模型失败。
然后论文的接下来部分讲述了如何计算:1数据点与模型的误差容忍 e e e。2 模型失败时的最大尝试次数 N N N。3 阈值 t t t

DSAC

摘自论文:《DSAC - Differentiable RANSAC for Camera Localization》
RANSAC是鲁棒优化中的重要算法,并且是许多计算机视觉应用程序的重要组成部分。近年来,很多传统的手工算法已被深度学习算法所取代。但是,到目前为止,RANSAC都未能应用于深度学习中,关键在于它的假设选择过程不可微分。

背景

RANSAC的基本实现包括四个步骤:(i)通过对数据的最小子集进行采样来生成一组假设模型;(ii)测量 与假设模型一致的数据,作为假设模型的得分,例如,计算inliers数量;(iii)选择最佳评分的假设模型; (iv)使用其他数据点来完善所选假设,例如,使用所有inlier更新假设模型的参数。
我们将在相机定位的具体问题中符号化上述过程。
考虑RGB图像 I I I,包含由 i i i索引的像素,我们希望估计获得一个模型 h ~ \tilde{\mathbf{h}} h~来解释 I I I。在相机定位问题中,这个 h ~ \tilde{\mathbf{h}} h~就是六自由度的位姿。我们不会直接将模型 h ~ \tilde{\mathbf{h}} h~拟合到图像 I I I上。而是利用一个有噪声、有离群值的观测——每个像素的2D-3D匹配关系\对应关系: Y ( I ) = { y ( I , i ) ∣ ∀ i } Y(I)=\{y(I,i)|\forall i\} Y(I)={y(I,i)i},其中 y ( I , i ) y(I,i) y(I,i)即为与像素 i i i匹配的空间点。接下来,我们将使用记号 y i y_i yi代替 y ( I , i ) y(I,i) y(I,i) Y ( I ) Y(I) Y(I)表示整个图像 I I I的所有匹配,并记为 Y Y Y。使用RANSAC算法估计模型 h ~ \tilde{\mathbf{h}} h~
1生成假设池
每一个假设模型都是由对应关系的最小子集生成。该最小子集包含用于计算唯一解的最小数量的对应关系。这样一个最小子集 Y J Y_J YJ和其匹配关系索引 J = { j 1 , . . . , j n } J=\{j_1,...,j_n\} J={j1,...,jn} n n n是最小子集大小。我们从所有对应关系中,均匀地采样获得 n n n个对应关系,获得最小子集 Y J : = { y j 1 , . . . , y j n } Y_J:=\{y_{j1},...,y_{jn}\} YJ:={yj1,...,yjn},其中 j m ∈ [ 1 , . . . , ∣ Y ∣ ] j_m \in [1,...,|Y|] jm[1,...,Y]。假设函数 H \mathbf{H} H可以从最小子集中计算假设模型,即 h J = H ( Y J ) h_J=\mathbf{H}(Y_J) hJ=H(YJ)。在相机定位问题中, H \mathbf{H} H即为PNP算法,最小子集大小 n n n为4。
2 评估假设模型
评价函数 s ( h J , Y ) s(\mathbf{h}_J,Y) s(hJ,Y)用于测量假设模型 h J \mathbf{h}_J hJ的consensus/quality,即inlier数量。为了定义lilier,我们需要定义对应关系 y i y_i yi的重投影误差:
e i = ∥ p i − C h J y i ∥ e_{i}=\left\|\mathbf{p}_{i}-C \mathbf{h}_{J \mathbf{y}_{i}}\right\| ei=piChJyi
p i \mathbf{p}_i pi是像素 i i i的2D位置, C C C是相机投影矩阵。如果误差 e i < τ e_i<\tau ei<τ,那么 y i y_i yi是一个iinlier, τ \tau τ是inlier阈值。在我们的系统中,我们不会计算inlier数量,而是直接让网络学习 s ( h J , Y ) s(\mathbf{h}J,Y) s(hJ,Y)
3 选择最佳假设模型
h A M = argmax ⁡ h J s ( h J , Y ) \mathbf{h}_{\mathrm{AM}}=\underset{\mathbf{h}_{J}}{\operatorname{argmax}} s\left(\mathbf{h}_{J}, Y\right) hAM=hJargmaxs(hJ,Y)
4 优化 最佳假设模型
我们使用所有inlier重新计算模型参数,记为 h ^ A M = R ( h A M , Y ) \hat{\mathbf{h}}_{AM}=\mathbf{R}(\mathbf{h}_{AM},Y) h^AM=R(hAM,Y) R \mathbf{R} R为优化函数。

通过RANSAC Pipelline进行学习

我们的工作是为了,在RANSAC框架内,以端到端的方式,学习 scene coordinate prediction 和假设模型评分。即 y ( I , i ; w ) y(I,i;w) y(I,i;w) s ( h J , Y ; v ) s(\mathbf{h}_J,Y;v) s(hJ,Y;v),学习参数 w w w v v v,前者通过影响最小子集的选择过程,从而影响生成假设模型(预测位姿)的质量; 后者影响最佳假设模型的选择。我们希望训练获得参数 w w w v v v,使得在训练图像集 I \mathcal{I} I上的经过优化后的最佳模型的损失函数 ℓ \ell 最小。
w ~ , v ~ = argmin ⁡ w , v ∑ I ∈ I ℓ ( R ( h A M w , v , Y w ) , h ∗ ) \tilde{\mathbf{w}}, \tilde{\mathbf{v}}=\underset{\mathbf{w}, \mathbf{v}}{\operatorname{argmin}} \sum_{I \in \mathcal{I}} \ell\left(\mathbf{R}\left(\mathbf{h}_{\mathrm{AM}}^{\mathbf{w}, \mathbf{v}}, Y^{\mathbf{w}}\right), \mathbf{h}^{*}\right) w~,v~=w,vargminII(R(hAMw,v,Yw),h) 其中, h ∗ h^* h是图像 I I I的ground true模型。为了端到端地训练,我们需要对 w w w v v v进行微分。假设误差函数 ℓ \ell 和优化函数 R \mathbf{R} R可微。但是在选择最佳假设模型阶段,选择结果依赖于参数 w w w v v v,但是无法用梯度表达。接下来介绍两种方法解决该问题。

Soft argmax Selection (softAM)

我们将放宽对argmax的限制,将 h A M = argmax ⁡ h J s ( h J , Y ) \mathbf{h}_{\mathrm{AM}}=\underset{\mathbf{h}_{J}}{\operatorname{argmax}} s\left(\mathbf{h}_{J}, Y\right) hAM=hJargmaxs(hJ,Y)替换为一个加权和:
h S o f t A M w , v = ∑ J P ( J ∣ v , w ) h J w \mathbf{h}_{\mathrm{Soft} \mathrm{AM}}^{\mathrm{w}, \mathrm{v}}=\sum_{J} P(J | \mathbf{v}, \mathbf{w}) \mathbf{h}_{J}^{\mathrm{w}} hSoftAMw,v=JP(Jv,w)hJw
其权值:
P ( J ∣ v , w ) = exp ⁡ ( s ( h J w , Y w ; v ) ) ∑ J ′ exp ⁡ ( s ( h J ′ w Y w ; v ) ) P(J | \mathbf{v}, \mathbf{w})=\frac{\exp \left(s\left(\mathbf{h}_{J}^{\mathbf{w}}, Y^{\mathbf{w}} ; \mathbf{v}\right)\right)}{\sum_{J^{\prime}} \exp \left(s\left(\mathbf{h}_{J^{\prime}}^{\mathbf{w}} Y^{\mathbf{w}} ; \mathbf{v}\right)\right)} P(Jv,w)=Jexp(s(hJwYw;v))exp(s(hJw,Yw;v))
即,采用所有假设模型的加权平均计算最终假设模型。

Probabilistic Selection (DSAC)

或者我们采用一个概率选择代替 h A M = argmax ⁡ h J s ( h J , Y ) \mathbf{h}_{\mathrm{AM}}=\underset{\mathbf{h}_{J}}{\operatorname{argmax}} s\left(\mathbf{h}_{J}, Y\right) hAM=hJargmaxs(hJ,Y)。即:
h D S A C w , v = h J w ,  with  J ∼ P ( J ∣ v , w ) \mathbf{h}_{\mathrm{DSAC}}^{\mathbf{w}, \mathbf{v}}=\mathbf{h}_{J}^{\mathbf{w}}, \text { with } J \sim P(J | \mathbf{v}, \mathbf{w}) hDSACw,v=hJw, with JP(Jv,w)
其中 P ( J ∣ v , w ) P(J|\mathbf{v},\mathbf{w}) P(Jv,w)是由分数 s ( h J w , Y w ; v ) s\left(\mathbf{h}_{J}^{\mathbf{w}}, Y^{\mathbf{w}} ; \mathbf{v}\right) s(hJw,Yw;v)确定的softmax分布。
该方法涉及到定义在随机过程上的损失函数最小化。即:
w ~ , v ~ = argmin ⁡ w , v ∑ I ∈ I E J ∼ P ( J ∣ v , w ) [ ℓ ( R ( h J w , Y w ) ) ] \tilde{\mathbf{w}}, \tilde{\mathbf{v}}=\underset{\mathbf{w}, \mathbf{v}}{\operatorname{argmin}} \sum_{I \in \mathcal{I}} \mathbb{E}_{J \sim P(J | \mathbf{v}, \mathbf{w})}\left[\ell\left(\mathbf{R}\left(\mathbf{h}_{J}^{\mathbf{w}}, Y^{\mathbf{w}}\right)\right)\right] w~,v~=w,vargminIIEJP(Jv,w)[(R(hJw,Yw))]
并计算导数如下:
∂ ∂ w E J ∼ P ( J ∣ v , w ) [ ℓ ( ⋅ ) ] = E J ∼ P ( J ∣ v , w ) [ ℓ ( ⋅ ) ∂ ∂ w log ⁡ P ( J ∣ v , w ) + ∂ ∂ w ℓ ( ⋅ ) ] \begin{array}{l} \frac{\partial}{\partial \mathbf{w}} \mathbb{E}_{J \sim P(J | \mathbf{v}, \mathbf{w})}[\ell(\cdot)]= \\ \mathbb{E}_{J \sim P(J | \mathbf{v}, \mathbf{w})}\left[\ell(\cdot) \frac{\partial}{\partial \mathbf{w}} \log P(J | \mathbf{v}, \mathbf{w})+\frac{\partial}{\partial \mathbf{w}} \ell(\cdot)\right] \end{array} wEJP(Jv,w)[()]=EJP(Jv,w)[()wlogP(Jv,w)+w()]
我们称该方法为 DSAC(Differentiable Sample Consensus),该方法保护了hard假设选择(相对于Soft argmax Selection)。

NG-RANSAC

来自论文《Neural-Guided RANSAC: Learning Where to Sample Model Hypotheses》
RANSAC的主要局限性在于:它在具有许多异常值的任务中性能较差。随着离群值比率的增加,RANSAC需要成倍地进行增加迭代次数才能找到无离群值的最小集。
在这项工作中,我们将RANSAC与神经网络相结合,该神经网络可以预测每个观测值的权重。权重最终指导最小集的采样。
(i)学习权重以指导假设搜索,而不是使用手工制作的启发式方法;
(ii)将RANSAC本身集成到训练过程中,从而实现对预测权重的自校准。

准备工作

算法针对的问题是:将模型 h \mathbf{h} h拟合到观测集合 y ∈ Y \mathbf{y}\in\mathcal{Y} yY中,获得模型的 h \mathbf{h} h参数。观测集合是有噪声且有离群值。
例如, h \mathbf{h} h可以是描述两张图像对极几何的基本矩阵,观测 Y \mathcal{Y} Y是从图像对中提取的SIFT匹配关系。为了计算基本矩阵的参数,我们利用一个八点法求解器 f f f。但是,由于存在离群值,从所有观察值中计算 h \mathbf{h} h将导致估算不佳。我们可以通过一个观测的最小子集(大小为 N N N)来计算 h = f ( y 1 , . . . , y N ) \mathbf{h}=f(y_1,...,y_N) h=f(y1,...,yN)。对八点法来说,只需要八个点即可确定基本矩阵,即 N = 8 N=8 N=8
RANSAC算法会随机选择 M M M个最小子集,创建假设模型池 H = ( h 1 , . . . , h M ) \mathcal{H} =(\mathbf{h}_1,...,\mathbf{h}_M) H=(h1,...,hM)。因为是为了获得无离群值的最小子集,所以,对于具有较大离群值比例的任务, M M M的大小会呈指数级增长,但通常会设置最大值。RANSAC根据得分 s s s,从假设模型池中选择最佳假设模型 h ^ \hat{\mathbf{h}} h^
h ^ = argmax ⁡ h ∈ H s ( h , Y ) \hat{\mathbf{h}}=\underset{\mathbf{h} \in \mathcal{H}}{\operatorname{argmax}} s(\mathbf{h}, \mathcal{Y}) h^=hHargmaxs(h,Y)
该得分 s s s是 所有观测中与假设模型 h h h一致的观测的数量,也即是inlier数量。

Neural Guidance

RANSAC是随机地选择最小子集,来创建假设模型池 H \mathcal{H} H。我们的目标是根据学习到的分布对观测进行采样。即,我们根据分布 y 〜 p ( y ; w ) y〜p(\mathbf{y};\mathbf{w}) yp(y;w)选择观测值(最小子集)。而 p ( y ; w ) p(\mathbf{y};\mathbf{w}) p(y;w)是观测值 Y \mathcal{Y} Y上的离散分类分布,而不是观测空间中的连续分布。
我们学习参数 w w w得目的是提高选择到无离群最小集得概率。
我们依据分布 p ( H ; w ) p(\mathcal{H};\mathbf{w}) p(H;w),采样假设模型池 H \mathcal{H} H
p ( H ; w ) = ∏ j = 1 M p ( h j ; w ) p ( h ; w ) = ∏ i = 1 N p ( y i ; w ) p(\mathcal{H} ; \mathbf{w})=\prod_{j=1}^{M} p\left(\mathbf{h}_{j} ; \mathbf{w}\right)\\ p(\mathbf{h} ; \mathbf{w})=\prod_{i=1}^{N} p\left(\mathbf{y}_{i} ; \mathbf{w}\right) p(H;w)=j=1Mp(hj;w)p(h;w)=i=1Np(yi;w)
从假设模型池 H \mathcal{H} H中,我们获得最佳模型参数 h ^ \hat{\mathbf{h}} h^
对于网络得训练,我们假设我们可以使用一个task lose函数 ℓ ( h ^ ) \ell(\hat{\mathbf{h}}) (h^)获得最佳模型的得分。该函数可以是当前最佳模型的内点数量相对于ground true模型的内点数量,或者直接是最佳模型内点数量的相反数,即 ℓ ( h ^ ) = − s ( h ^ , Y ) \ell(\hat{\mathbf{h}})=-s(\hat{\mathbf{h}}, \mathcal{Y}) (h^)=s(h^,Y)
我们希望学习分布 p ( H ; w ) p(\mathcal{H};\mathbf{w}) p(H;w)以使得系统能以较高的概率获得更小的task loss。即,我们的训练目标是预期task loss的最小化:
L ( w ) = E H ∼ p ( H ; w ) [ ℓ ( h ^ ) ] \mathcal{L}(\mathbf{w})=\mathbb{E}_{\mathcal{H} \sim p(\mathcal{H} ; \mathbf{w})}[\ell(\hat{\mathbf{h}})] L(w)=EHp(H;w)[(h^)]
然后通过推导获得损失函数相对于权值 w w w的导数:
∂ ∂ w L ( w ) ≈ 1 K ∑ k = 1 K [ [ ℓ ( h ^ ) − b ] ∂ ∂ w log ⁡ p ( H k ; w ) ] \frac{\partial}{\partial \mathbf{w}} \mathcal{L}(\mathbf{w}) \approx \frac{1}{K} \sum_{k=1}^{K}\left[[\ell(\hat{\mathbf{h}})-b] \frac{\partial}{\partial \mathbf{w}} \log p\left(\mathcal{H}_{k} ; \mathbf{w}\right)\right] wL(w)K1k=1K[[(h^)b]wlogp(Hk;w)]

结合 DSAC

DSAC通过一个softmax概率分布选择最佳假设模型 h ^ \hat{\mathbf{h}} h^
h ^ D S A C = h j ∼ p ( j ∣ H ) = exp ⁡ s ( h j , Y ( w ) ) ∑ k = 1 M exp ⁡ s ( h k , Y ( w ) ) \hat{\mathbf{h}}_{\mathrm{DSAC}}=\mathbf{h}_{j} \sim p(j | \mathcal{H})=\frac{\exp s\left(\mathbf{h}_{j}, \mathcal{Y}(\mathbf{w})\right)}{\sum_{k=1}^{M} \exp s\left(\mathbf{h}_{k}, \mathcal{Y}(\mathbf{w})\right)} h^DSAC=hjp(jH)=k=1Mexps(hk,Y(w))exps(hj,Y(w))
这样的可微分的RANSAC,使得最佳模型能够以更高的概率被选择到。其目标优化函数(task loss 函数):
L D S A C ( w ) = E j ∼ p ( j ) [ ℓ ( h j ) ] \mathcal{L}_{\mathrm{DSAC}}(\mathbf{w})=\mathbb{E}_{j \sim p(j)}\left[\ell\left(\mathbf{h}_{j}\right)\right] LDSAC(w)=Ejp(j)[(hj)]
将其与之前的 L ( w ) \mathcal{L}(\mathbf{w}) L(w)结合:
L N G − D S A C ( w ) = E H ∼ p ( H ; w ) E j ∼ p ( j ∣ H ) [ ℓ ( h j ) ] \mathcal{L}_{\mathrm{NG}-\mathrm{DSAC}}(\mathbf{w})=\mathbb{E}_{\mathcal{H} \sim p(\mathcal{H} ; \mathbf{w})} \mathbb{E}_{j \sim p(j | \mathcal{H})}\left[\ell\left(\mathbf{h}_{j}\right)\right] LNGDSAC(w)=EHp(H;w)Ejp(jH)[(hj)]
可以看出,NG-DSAC的培训目标包括两个期望。首先是期望根据神经网络预测的概率对假设模型池进行采样。其次,期望值从假设模型池中抽取最终假设模型。
最终我们给出近似梯度:
1 K ∑ k = 1 K [ [ E j [ ℓ ] − b ] ∂ ∂ w log ⁡ p ( H k ; w ) + ∂ ∂ w E j [ ℓ ] ] \frac{1}{K} \sum_{k=1}^{K}\left[\left[\mathbb{E}_{j}[\ell]-b\right] \frac{\partial}{\partial \mathbf{w}} \log p\left(\mathcal{H}_{k} ; \mathbf{w}\right)+\frac{\partial}{\partial \mathbf{w}} \mathbb{E}_{j}[\ell]\right] K1k=1K[[Ej[]b]wlogp(Hk;w)+wEj[]]
/

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值