Fast Global Registration (ECCV 2016) 论文解析_fast+global+registration论文

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

F§中最接近

f

(

q

i

)

f(q_i)

f(qi​)的

f

(

p

j

)

f(p_j)

f(pj​),即

arg

min

p

j

P

f

(

p

j

)

f

(

q

i

)

2

2

\arg\min_{p_j\in P}{\Vert f(p_j)-f(q_i)\Vert_2^2}

argpj​∈Pmin​∥f(pj​)−f(qi​)∥22​

\qquad

以上即是FGR特征匹配的基本思想了。需要知悉的是,整个点云配准过程,FPFH的匹配只会操作一次,这便是FGR相比其他Robust Point Cloud Registration快的原因,然而这个操作其实也占用了FGR大部分的运行时间。

1.2. 两个校验

\qquad

接下来进入FGR的核心部分——outlier rejection。由于特征匹配存在较多的outlier (如下图红色连线所示)。对于correspondence-based 方法而言,这些outlier会对最后的SVD过程造成干扰,因而FGR的目的就是滤除这些红色的错误匹配。
outlier
本图摘自论文(Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection)

\qquad

FGR的第一校验是双向校验(dual validation),在大多数特征匹配方法里还是比较常见的。记1.1节得到的匹配好的特征为

K

1

=

{

(

p

t

1

,

q

1

)

,

(

p

t

2

,

q

2

)

,

.

.

.

,

(

p

t

n

,

q

n

)

}

K_1=\lbrace(p_{t_1},q_1),(p_{t_2},q_2),…,(p_{t_n},q_n)\rbrace

K1​={(pt1​​,q1​),(pt2​​,q2​),…,(ptn​​,qn​)},(n应该等于点云

Q

Q

Q的点数),对于

K

1

K_1

K1​中的每个特征对

(

p

t

i

,

q

i

)

(p_{t_i},q_i)

(pti​​,qi​),寻找

q

i

=

arg

min

q

k

Q

p

t

i

q

k

2

2

q_i^*=\arg\min_{q_k\in Q}{\Vert p_{t_i}-q_k \Vert_2^2}

qi∗​=argqk​∈Qmin​∥pti​​−qk​∥22​

q

i

q

i

q_i^*\neq q_i

qi∗​=qi​,则排除这个点云对。

\qquad

第一校验筛选完之后的点云对记为

K

2

K_2

K2​。

\qquad

第二校验是距离差校验,选取

K

2

K_2

K2​中任意三个点云对

(

p

1

,

p

2

,

p

3

)

(p_1,p_2,p_3)

(p1​,p2​,p3​)和

(

q

1

,

q

2

,

q

3

)

(q_1,q_2,q_3)

(q1​,q2​,q3​),它们需要满足如下的不等式:

i

j

,

0.9

<

p

i

p

j

q

i

q

j

<

1

0.9

\forall i\neq j,\quad 0.9<\frac{\Vert p_i-p_j \Vert}{\Vert q_i-q_j \Vert}<\frac{1}{0.9}

∀i=j,0.9<∥qi​−qj​∥∥pi​−pj​∥​<0.91​
若不满足,则排除

(

p

1

,

q

1

)

,

(

p

2

,

q

2

)

,

(

p

3

,

q

3

)

(p_1,q_1),(p_2,q_2),(p_3,q_3)

(p1​,q1​),(p2​,q2​),(p3​,q3​)三对点。以此得到

K

3

K_3

K3​。

\qquad

如果是理想情况,应该满足

p

i

p

j

q

i

q

j

=

1

\frac{\Vert p_i-p_j \Vert}{\Vert q_i-q_j \Vert}=1

∥qi​−qj​∥∥pi​−pj​∥​=1,FGR通过一个距离范围排除那些明显不符合距离检验的点,但需要注意的是,这个检验并不是始终有效的。TEASER那篇论文就证明,当outlier ratio特别大时,距离检验也失效了,原因可能是

K

2

K_2

K2​中每三组对应点中都包含outlier,导致选不出几组正确的点。

1.3. 鲁棒函数与BR对偶

\qquad

这可能是FGR论文最难懂也是最核心的部分。在完成了一次匹配和两轮校验之后,FGR需要通过Gradually Non-Convexity(GNC,渐进非凸过程)的方式完成outlier rejection。经典ICP在已完成特征匹配后的目标函数是

arg

min

T

S

E

(

3

)

(

p

,

q

)

K

q

T

p

\arg\min_{T\in SE(3)}{\sum_{(p,q)\in K}}{\Vert q-\textbf{T}p\Vert}

argT∈SE(3)min​(p,q)∈K∑​∥q−Tp∥
其中

K

K

K是matched feature的集合,在FGR中指的是

K

3

K_3

K3​。

\qquad

然而最小二乘的函数对于outlier非常敏感,即使经过两轮校验,仍然会存在大量的outlier。

\qquad

FGR的目标函数是鲁棒函数Geman-McClure,即

ρ

=

μ

x

2

μ

x

2

\rho=\frac{\mu x2}{\mu+x2}

ρ=μ+x2μx2​,即

arg

min

T

S

E

(

3

)

(

p

,

q

)

K

ρ

(

q

T

p

)

\arg\min_{T\in SE(3)}{\sum_{(p,q)\in K}}{\rho(\Vert q-\textbf{T}p\Vert)}

argT∈SE(3)min​(p,q)∈K∑​ρ(∥q−Tp∥)
对于鲁棒函数的使用,FGR原文是这样解释的:

使用适当的鲁棒惩罚函数是至关重要的,因为目标函数中很多匹配约束都是伪约束。为了实现高计算效率,我们不希望在优化过程中采样、验证、修剪或重新计算关联。一个精心选择的估计器ρ将自动执行验证和剪枝,而不施加额外的计算成本。

说的直白一些,鲁棒函数可以在不改变匹配对集合

K

K

K的情况下,使得最优解

T

T^*

T∗自然地满足内点优先匹配的原则。其中的原因其实是由鲁棒函数非凸性造成的。对于outlier具有较高的、较为统一的损失,对于inlier具有较低的损失。

\qquad

FGR使用的Geman-McClure是一个经典的GNC函数,随着

μ

\mu

μ的减小,越来越接近于非凸函数,而当

μ

\mu \rightarrow \infty

μ→∞时,等价于

x

2

x^2

x2,即理想凸函数。为什么要使用GNC而不直接采用一个鲁棒函数(如Huber Loss)优化呢?因为一开始得到的T可能是个非常错误的值,就会造成

(

p

,

q

)

K

ρ

(

q

T

p

)

\sum_{(p,q)\in K}{\rho(\Vert q-\textbf{T}p\Vert)}

(p,q)∈K∑​ρ(∥q−Tp∥)也是个错误的函数,因此需要逐步降低函数

ρ

\rho

ρ的凸性逐步逼近正确的T
GNC-GM

\qquad

承接上文,FGR为了不增加额外的计算量(其实主要是不重新计算correspondence),采用了BR对偶的方式完成鲁棒函数的优化求解。

\qquad

其做法就是增加额外的线性过程

L

\mathcal{L}

L,构造目标函数

E

(

T

,

L

)

E(\textbf{T},\mathcal{L})

E(T,L),并通过对

L

\mathcal{L}

L和

T

\textbf{T}

T交替优化的方式完成的推导过程及优化求解。相关截图如下:
在这里插入图片描述
这一套操作对于非专业人士确实非常不友好,文中的解释也只是a prior(一个先验知识),实际上它牵涉到BR对偶性的知识,想完全看懂FGR的读者务必得往下看。

1.4.1. Black-Rangarjan Duality (BR对偶性)

原文【PDF】链接

\qquad

这是构造鲁棒函数和线性过程关联性的非常有名的方法,用于解决early-vision(例如平面重建、三维重建、图像恢复)滤除outlier的问题。这篇20世纪论文的引用量高达900+,足以证明它完全没有过时。

\qquad

原文的理论对于非数学专业的同学可能非常难懂,本文只讲解它当中最重要的部分——定理和鲁棒函数的构造方法。定理如下:
定理
图片源于:https://arxiv.org/pdf/1909.08605?ref=https://githubhelp.com

\qquad

这条定理说的是给定一个鲁棒函数

ρ

\rho

ρ,定义

ϕ

(

z

)

=

ρ

(

z

)

\phi(z)=\rho(\sqrt{z})

ϕ(z)=ρ(z

​),若

ϕ

(

z

)

\phi(z)

ϕ(z)满足一定的条件,则可以将原鲁棒函数优化的问题转化为定理中的weighted process的等价形式。而这个新的二元函数的优化过程详见1.4.3节。

本文并不会证明这条定理,但需要读者知悉以下几点:

  1. ϕ

(

)

\phi(\cdot)

ϕ(⋅)和鲁棒函数

ρ

(

)

\rho(\cdot)

ρ(⋅)的关系
2. 等价命题的形式(

ϕ

(

)

\phi(\cdot)

ϕ(⋅)需满足的条件)
3. 等价命题

Φ

ρ

(

)

\Phi_\rho(\cdot)

Φρ​(⋅)的含义(关于

w

i

w_i

wi​的惩罚项)

最难理解的是

Φ

ρ

\Phi_\rho

Φρ​的构造过程,下面将会给出FGR中选取

Φ

ρ

\Phi_\rho

Φρ​(详见1.4节)的推导过程。

1.4.2.Derivation of

Φ

ρ

\Phi_\rho

Φρ​

Black-Rangarjan 对偶性原文给出寻找的close-form的

Φ

ρ

\Phi_\rho

Φρ​的算法步骤如下:
在这里插入图片描述
实际上,大部分论文都将

τ

\tau

τ默认为1处理。FGR中给出的形式为
BR对偶性
FGR鲁棒函数

这里的

l

p

,

q

l_{\text{p},\text{q}}

lp,q​对应原文中的

z

z

z,

ρ

(

x

)

=

μ

x

2

μ

x

2

\rho(x)=\frac{\mu x2}{\mu+x2}

ρ(x)=μ+x2μx2​
根据

ϕ

(

)

\phi(\cdot)

ϕ(⋅)与

ρ

(

)

\rho(\cdot)

ρ(⋅)的关系

ϕ

(

z

)

=

ρ

(

x

2

)

=

μ

z

μ

z

(

z

0

)

\phi(z)=\rho(\sqrt{x^2})=\frac{\mu z}{\mu + z} \quad (z\geq 0)

ϕ(z)=ρ(x2

​)=μ+zμz​(z≥0)

ϕ

(

z

)

\phi(z)

ϕ(z)需要满足Black-Rangarajan对偶性的三个条件,即

{

lim

x

0

ϕ

(

x

)

=

lim

x

0

μ

2

(

μ

x

)

2

=

1

lim

x

ϕ

(

x

)

=

lim

x

μ

2

(

μ

x

)

2

=

0

ϕ

(

x

)

=

2

μ

2

(

μ

x

)

3

<

0

\begin{cases} & \lim_{x \leftarrow 0}\phi’(x)=\lim_{x\leftarrow 0}\frac{\mu2}{(\mu+x)2}=1 \[2ex] & \lim_{x \leftarrow \infin}\phi’(x)=\lim_{x \leftarrow \infin}\frac{\mu2}{(\mu+x)2}=0 \[2ex] & \phi’'(x)=-\frac{2\mu2}{(\mu+x)3}<0 \end{cases}

⎧​​limx←0​ϕ′(x)=limx←0​(μ+x)2μ2​=1limx←∞​ϕ′(x)=limx←∞​(μ+x)2μ2​=0ϕ′′(x)=−(μ+x)32μ2​<0​
根据上述推导,显然

ϕ

(

)

\phi(\cdot)

ϕ(⋅)都满足了,接下来需要根据Black-Rangarajan原文中提供的方法解出

Φ

ρ

\Phi_\rho

Φρ​。
首先,

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

ρ(⋅)的关系

ϕ

(

z

)

=

ρ

(

x

2

)

=

μ

z

μ

z

(

z

0

)

\phi(z)=\rho(\sqrt{x^2})=\frac{\mu z}{\mu + z} \quad (z\geq 0)

ϕ(z)=ρ(x2

​)=μ+zμz​(z≥0)

ϕ

(

z

)

\phi(z)

ϕ(z)需要满足Black-Rangarajan对偶性的三个条件,即

{

lim

x

0

ϕ

(

x

)

=

lim

x

0

μ

2

(

μ

x

)

2

=

1

lim

x

ϕ

(

x

)

=

lim

x

μ

2

(

μ

x

)

2

=

0

ϕ

(

x

)

=

2

μ

2

(

μ

x

)

3

<

0

\begin{cases} & \lim_{x \leftarrow 0}\phi’(x)=\lim_{x\leftarrow 0}\frac{\mu2}{(\mu+x)2}=1 \[2ex] & \lim_{x \leftarrow \infin}\phi’(x)=\lim_{x \leftarrow \infin}\frac{\mu2}{(\mu+x)2}=0 \[2ex] & \phi’'(x)=-\frac{2\mu2}{(\mu+x)3}<0 \end{cases}

⎧​​limx←0​ϕ′(x)=limx←0​(μ+x)2μ2​=1limx←∞​ϕ′(x)=limx←∞​(μ+x)2μ2​=0ϕ′′(x)=−(μ+x)32μ2​<0​
根据上述推导,显然

ϕ

(

)

\phi(\cdot)

ϕ(⋅)都满足了,接下来需要根据Black-Rangarajan原文中提供的方法解出

Φ

ρ

\Phi_\rho

Φρ​。
首先,

[外链图片转存中…(img-ZV1ug0oM-1715745180161)]
[外链图片转存中…(img-dtAaoW0w-1715745180161)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值