点云配准–Fast Global Registration

  • Post author:
  • Post category:其他




3两个点云配准



3.1目标函数

对于俩个点集



P

P






P









Q

Q






Q





,我们的目的是找到一个刚体变换,对齐这两个点集。我们的方法是优化关于



P

P






P









Q

Q






Q





对应关系的稳健性目标函数。





K

=

(

p

,

q

)

K = { ( p , q) }






K




=









(


p


,




q


)






是由匹配点从P和Q中获得的对应集合,我们的目标是优化位姿T,使得对应点之间的距离最小化,同时拒绝



K

K






K





中的的错误对应关系。目标函数具有如下形式:





E

(

T

)

=

(

p

,

q

)

K

ρ

(

p

T

q

)

(1)

E(\mathbf{T})=\sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}} \rho(\|\mathbf{p}-\mathbf{T} \mathbf{q}\|)\tag{1}






E


(


T


)




=

















(


p


,


q


)





K





























ρ


(





p













Tq





)







(



1



)











ρ

(

.

)

\rho(.)






ρ


(


.


)





是罚函数。罚函数的选择是至关重要的,一个好的罚函数可以规避错误的匹配关系。我们使用Geman-McClure估计器:





ρ

(

x

)

=

μ

x

2

μ

+

x

2

(2)

\rho(x)=\frac{\mu x^2}{\mu+x^2}\tag{2}






ρ


(


x


)




=



















μ




+





x










2





















μ



x










2
































(



2



)








目标函数1是很难直接进行优化的,我们利用Black -Rangaration对偶(对偶:即等价的)处理目标函数1,Black -Rangaration对偶是稳健估计和线性的。具体地,令



L

=

{

l

p

q

}

L = \lbrace l_{p,q} \rbrace






L




=








{




l











p





q



















}





为对应关系上的线过程。我们在T和L上优化以下联合目标函数:





E

(

T

,

L

)

=

(

p

,

q

)

K

l

p

,

q

p

T

q

2

+

(

p

,

q

)

K

Ψ

(

l

p

,

q

)

(3)

E(\mathbf{T}, \mathbb{L})=\sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}} l_{\mathbf{p}, \mathbf{q}}\|\mathbf{p}-\mathbf{T} \mathbf{q}\|^2+\sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}} \Psi\left(l_{\mathbf{p}, \mathbf{q}}\right)\tag{3}






E


(


T


,




L


)




=

















(


p


,


q


)





K






























l











p


,


q






















p













Tq














2











+

















(


p


,


q


)





K





























Ψ





(



l











p


,


q



















)








(



3



)











Ψ

(

l

p

,

q

)

\Psi\left(l_{\mathbf{p}, \mathbf{q}}\right)






Ψ





(



l











p


,


q



















)






是先验概率:





Ψ

(

l

p

,

q

)

=

μ

(

l

p

,

q

1

)

2

(4)

\Psi\left(l_{\mathbf{p}, \mathbf{q}}\right)=\mu\left(\sqrt{l_{\mathbf{p}, \mathbf{q}}}-1\right)^2\tag{4}






Ψ





(



l











p


,


q



















)





=








μ







(












l











p


,


q
















































1



)












2














(



4



)








为了最小化



E

(

T

,

L

)

E(\mathbf{T}, \mathbb{L})






E


(


T


,




L


)





,需要对每个



l

p

,

q

l_{\mathbf{p}, \mathbf{q}}







l











p


,


q






















求偏导:





E

l

p

,

q

=

p

T

q

2

+

μ

l

p

,

q

1

l

p

,

q

=

0

(5)

\frac{\partial E}{\partial l_{\mathbf{p}, \mathbf{q}}}=\|\mathbf{p}-\mathbf{T} \mathbf{q}\|^2+\mu \frac{\sqrt{l_{\mathbf{p}, \mathbf{q}}}-1}{\sqrt{l_{\mathbf{p}, \mathbf{q}}}}=0\tag{5}





















l











p


,


q


































E






















=











p













Tq














2











+








μ






















l











p


,


q






























































l











p


,


q
















































1






















=








0







(



5



)








所以:





l

p

,

q

=

(

μ

μ

+

p

T

q

2

)

2

(6)

l_{\mathbf{p}, \mathbf{q}}=\left(\frac{\mu}{\mu+\|\mathbf{p}-\mathbf{T} \mathbf{q}\|^2}\right)^2\tag{6}







l











p


,


q





















=











(














μ




+







p









Tq














2





















μ





















)












2














(



6



)












l

p

,

q

l_{\mathbf{p}, \mathbf{q}}







l











p


,


q






















带入公式3,得到公式1。因此优化目标函数3即是优化目标函数1。



3.2优化

等式3的好处就是可以交替优化T和L。

当L固定时:等式3转变为对应关系的距离的



L

2

L^2







L










2












罚函数的权重之和。通过文献9可以轻松的得到封闭解。但是这种求解方式只适合两两点云配准,不适合求解多个点云同时配准。因此提出一种新的计算方法:假设两次变化矩阵的变化很小,则变换矩阵



T

T






T





用下面公式进行近似:





T

(

1

γ

β

a

γ

1

α

b

β

α

1

c

0

0

0

1

)

T

k

(7)

\mathbf{T} \approx\left(\begin{array}{cccc} 1 & -\gamma & \beta & a \\ \gamma & 1 & -\alpha & b \\ -\beta & \alpha & 1 & c \\ 0 & 0 & 0 & 1 \end{array}\right) \mathbf{T}^k\tag{7}






T




















































1








γ











β








0
































γ








1








α








0





























β











α








1








0





























a








b








c








1



















































T










k














(



7



)











α

,

β

,

γ

,

a

,

b

,

c

\alpha,\beta,\gamma,a,b,c






α


,




β


,




γ


,




a


,




b


,




c





分别是三个旋转量和三个偏移量,



T

k

T^k







T










k












是上一次迭代得到的变换矩阵。则通过高斯牛顿法可以求解公式3.

当T固定时,当



l

p

,

q

l_{p,q}







l











p


,


q






















满足公式6时,等式3可以求得封闭解。



3.3对应关系

我们选择Fast Point Feature Histogram (FPFH) feature。记



F

(

P

)

=

{

F

(

p

)

:

p

P

}

F(P)=\lbrace{F(p):p\in{P}}\rbrace






F


(


P


)




=








{




F


(


p


)




:




p










P




}





,



F

(

p

)

F(p)






F


(


p


)





是点p对应的FPFH,同样地,记



F

(

Q

)

=

{

F

(

q

)

:

q

Q

}

F(Q)=\lbrace{F(q):q\in{Q}}\rbrace






F


(


Q


)




=








{




F


(


q


)




:




q










Q




}





。对于点p的F§,在F(Q)中找到p点的最近邻点,同样对于点q,在F§中找到q的最近邻点。记



K

1

{K1}







K


1






为对应关系集合,但是这里面有很多错误的匹配对,因此运用一下两个准则进行筛选:

(1)互惠性检测

如果F§和F(q)互为最近邻点,则通过互惠性检验,是一个对应关系对,将所有通过互惠性检验的对应关系集合记为



K

2

{K2}







K


2






.

(2)元组检测





K

2

{K2}







K


2






随机选择3个匹配对



(

p

1

,

q

1

)

,

(

p

2

,

q

2

)

,

(

p

3

,

q

3

)

(p1,q1),(p2,q2),(p3,q3)






(


p


1


,




q


1


)


,




(


p


2


,




q


2


)


,




(


p


3


,




q


3


)





,如果满足以下关系上,表明3个匹配对是相容的,将所有通过测试的匹配对集合记为



K

3

{K3}







K


3










K

3

{K3}







K


3






即为最终的匹配对集合。





i

j

,

τ

<

p

i

p

j

q

i

q

j

<

1

/

τ

(8)

\forall i \neq j, \quad \tau<\frac{\left\|\mathbf{p}_i-\mathbf{p}_j\right\|}{\left\|\mathbf{q}_i-\mathbf{q}_j\right\|}<1 / \tau\tag{8}









i
























=









j


,






τ




<
























q










i


























q










j







































p










i


























p










j










































<








1/


τ







(



8



)








整个算法如下图所示:

在这里插入图片描述



4多个点云配准

我们开发一种方法:直接将所有点云同时配准,而不是优化单独的成对的点云,然后优化两两配准结果。我们直接优化所有点云的全局位姿。



4.1目标函数

对于点云集合



{

P

i

}

\lbrace{P_i}\rbrace






{





P










i



















}





,其对应的变换矩阵集合为



T

=

{

T

i

}

\mathbb{T}=\lbrace{T_i}\rbrace






T




=








{





T










i



















}





.对于所有点云而言,公式1将变为如下等式(i表示点云序号,j表示每个点云中第j个匹配对):





E

(

T

)

=

λ

i

(

p

,

q

)

K

i

T

i

p

T

i

+

1

q

2

+

i

<

j

(

p

,

q

)

K

i

j

ρ

(

T

i

p

T

j

q

)

(10)

E(\mathbb{T})=\lambda \sum_i \sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}_i}\left\|\mathbf{T}_i \mathbf{p}-\mathbf{T}_{i+1} \mathbf{q}\right\|^2+\sum_{i<j} \sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}_{i j}} \rho\left(\left\|\mathbf{T}_i \mathbf{p}-\mathbf{T}_j \mathbf{q}\right\|\right)\tag{10}






E


(


T


)




=








λ












i





































(


p


,


q


)






K










i



















































T










i


















p










T











i


+


1



















q














2











+

















i


<


j






































(


p


,


q


)






K











ij














































ρ





(







T










i


















p










T










j


















q






)








(



10



)








根据公式3和公式4,等式10可以变为如下形式:





E

(

T

,

L

)

=

λ

i

(

p

,

q

)

K

i

T

i

p

T

i

+

1

q

2

+

i

<

j

(

(

p

,

q

)

K

i

j

l

p

,

q

T

i

p

T

j

q

2

+

(

p

,

q

)

K

i

j

Ψ

(

l

p

,

q

)

)

(11)

\begin{aligned} E(\mathbb{T}, \mathbb{L}) & =\lambda \sum_i \sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}_i}\left\|\mathbf{T}_i \mathbf{p}-\mathbf{T}_{i+1} \mathbf{q}\right\|^2 \\ & +\sum_{i<j}\left(\sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}_{i j}} l_{\mathbf{p}, \mathbf{q}}\left\|\mathbf{T}_i \mathbf{p}-\mathbf{T}_j \mathbf{q}\right\|^2+\sum_{(\mathbf{p}, \mathbf{q}) \in \mathcal{K}_{i j}} \Psi\left(l_{\mathbf{p}, \mathbf{q}}\right)\right) \end{aligned}\tag{11}
















E


(


T


,




L


)



































=




λ












i





































(


p


,


q


)






K










i



















































T










i


















p










T











i


+


1



















q














2



















+













i


<


j

































































(


p


,


q


)






K











ij















































l











p


,


q



























T










i


















p










T










j


















q














2











+













(


p


,


q


)






K











ij














































Ψ





(



l











p


,


q



















)




















































(



11



)








4.2优化

我们再次使用交替优化求解最小化问题。在每次迭代中,首先使用L最小化



E

(

T

,

L

)

E(\mathbb{T}, \mathbb{L})






E


(


T


,




L


)











l

p

,

q

=

(

μ

μ

+

T

i

p

T

j

q

2

)

2

(12)

l_{\mathbf{p}, \mathbf{q}}=\left(\frac{\mu}{\mu+\left\|\mathbf{T}_i \mathbf{p}-\mathbf{T}_j \mathbf{q}\right\|^2}\right)^2\tag{12}







l











p


,


q





















=











(














μ




+










T










i


















p










T










j


















q














2





















μ





















)












2














(



12



)








然后使用所有变换矩阵



T

\mathbb{T}






T





最小化



E

(

T

,

L

)

E(\mathbb{T}, \mathbb{L})






E


(


T


,




L


)





(这里和两两配准优化顺序是反的)。记



T

i

k

\mathbf{T}_i^k







T










i








k





















为上一次迭代计算的变换矩阵.



T

i

\mathbf{T}_i







T










i





















可以被线性化为以下形式:





T

i

(

1

γ

i

β

i

a

i

γ

i

1

α

i

b

i

β

i

α

i

1

c

i

0

0

0

1

)

T

i

k

.

(13)

\begin{aligned} \ \mathbf{T}_i & \approx\left(\begin{array}{cccc} 1 & -\gamma_i & \beta_i & a_i \\ \gamma_i & 1 & -\alpha_i & b_i \\ -\beta_i & \alpha_i & 1 & c_i \\ 0 & 0 & 0 & 1 \end{array}\right) \mathbf{T}_i^k . \end{aligned}\tag{13}



















T










i

























































































1









γ










i




























β










i
























0

































γ










i
























1









α










i
























0






























β










i




























α










i
























1








0






























a










i

























b










i

























c










i
























1



















































T










i








k


















.
























(



13



)








使用最小二乘计算旋转和平移量,然后更新



T

i

\mathbf{T}_i







T










i























注意:对应关系只计算一次,并不是每次都更新。每次迭代只更新



l

p

,

q

l_{\mathbf{p}, \mathbf{q}}







l











p


,


q


























T

T






T







文献来源:《Fast Global Registration》


开源代码(两两配准)



版权声明:本文为xinxiangwangzhi_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。