本文主要用来记录我在学习过程中接触到的一些或新或旧的点云配准的方法,有些方法我可能还不怎么理解,如果有错误欢迎大家指出。


2018/04/15 添加LORAX
2018/04/08 添加DO法和结合法
2018/04/01 初版


  • 粗配准方案

    • LORAX
    • 4点法(4-Points Congruent Sets,4PCS)
    • Super 4PCS(Super 4-Points Congruent Sets)
    • SK-4PCS(Semantic Keypoint 4-Points Congruent Sets)
    • G-4PCS(Generalized 4-points congruent sets)
  • 精配准方案
    • DO(Discriminative Optimization)

      • 1. 更新法则 
      • 2. 训练方法
      • 3. 配准应用
    • 结合法
      • 1. RGB-D
      • 2. Color Point Cloud
    • ICP(Iterative Closest Point)
    • 模型对应法
      • 1. 间接法
      • 2. 直接法

  我们都知道点云配准分为粗配准(Coarse Registration)和精配准(Fine Registration)两个阶段,本文同样也分为粗配准和精配准两个部分来说明。

粗配准方案

LORAX

  这是一篇采用机器学习的点云配准的论文,简单来说就是通过将点云用一个个球体分成很多个小快,对每一块投影成深度图,然后采用深度神经网络对深度图进行特征压缩,最后压缩成一个5×2的矩阵做为一个特征,也就是我们所说的描述子(descriptor)。通过这些描述子的位置关系可以进行粗配准,最后文章也还是采用了ICP进行精配准。原文链接:3D Point Cloud Registration for Localization Using a Deep Neural Network Auto-Encoder。具体的内容我单独写了一篇博客:阅读笔记

4点法(4-Points Congruent Sets,4PCS)

  4点法由D Aiger,NJ Mitra,D Cohen-Or [1] [ 1 ] ^{[1]}于2008年提出的一种快速地,鲁棒地的3D点云粗配准方法,原文链接见 4-points Congruent Sets for Robust Surface Registration
占个位,这部分内容可见我的阅读笔记 4-Points Congruent Sets for Robust Pairwise Surface Registration——4PCS阅读笔记

Super 4PCS(Super 4-Points Congruent Sets)

  Super 4PCS是由Nicolas Mellado,Dror Aiger,Niloy J. Mitra [2] [ 2 ] ^{[2]}等人与2014年提出的一种对4PCS的加速方案。原文连接见Super4PCS: Fast Global Pointcloud Registration via Smart Indexing。
  网上很少能找到关于这篇文章的原理,我个人的理解是首先它通过记录点集 P P P中ab" role="presentation">ababab, cd c d cd两条直线相交的角度 θ θ \theta,在点集 Q Q Q中寻找匹配对时,额外计算两条直线相交的角度是否在θ" role="presentation">θθ\theta的一定范围 ξ ξ \xi里,从而排除一些无效的匹配对来加速配准。
  那么如何快速的找到角度在一定范围内的匹配对呢,Super4PCS采用的是类似与在球面上画圆的方法,如下图:
  

 

球面上在圆 c c c上的点,与点e" role="presentation">eee连接产生的向量 v⃗  v → \vec v,与向量 n⃗  n → \vec n之间的夹角,均为 θ θ \theta。若圆 c c c具有一定的宽度,则圆上所有点与e" role="presentation">eee组成的向量与向量 n⃗  n → \vec n的夹角分布在 [θ−ξ,θ+ξ] [ θ − ξ , θ + ξ ] [\theta - \xi,\theta + \xi]。这样就可以快速找到交叉角度在一定范围内的两条直线。那么如何快速找到圆面上的这些点,Super4PCS则是通过光栅化,智能索引来完成,如下图:

这里原文中是通过二维来展示算法,不停的细分网格(cell),将点云归一化塞入其中创建快速索引。这一部分不是很理解,欢迎大家来交流。

SK-4PCS(Semantic Keypoint 4-Points Congruent Sets)

在提取了上表面后,使用一系列高度间隔为 ht h t h_t的平行面去分割点云,分割示意图如下图所示,其中绿色部分为其中一平行面:


对与分割面内的点,首先对其高度统一化,然后把他们看作2D图像,进行2D的特征提取和分割,如下图。其中红色点为线段顶点,绿色点为两条线的交点。

  在提取了每个横截面中的特征点后,我们需要对它们进行区分和连接,根据他们自身的位置,以及潜在位置赋予不通的标签。最终建立 target t a r g e t target和 source s o u r c e source中语义点的意义对应关系。连接后的语义点如下图,其中蓝色线条连接特征点,红色点代表线段的顶点,绿色点代表线段的相交点,紫色三角形则是我们所定义的语义点,是连接线段与参考面的交点,存储着整条线段的语义信息(特征点的个数,每个特征点的标签)。

在搜寻到所有的SK-Point后,将这些SK-Points做为输入进行配对对的搜寻,不仅要满足原始的配准要求,同时其语义也要相同才能标记为匹配。

G-4PCS(Generalized 4-points congruent sets)

  G-4PCS是由M Mohamad , D Rappaport , M Greenspan 提出的对4PCS的一种拓展,使4点法不在局限于共面的4点对。原文连接见:Super Generalized 4PCS for 3D Registration。
此方法不在限制4点须在一个平面内,下图显示了非共面的4点对, S={p,q,i,j} S = { p , q , i , j } S=\{p,q,i,j \},我们认为 pq p q pq, ij i j ij空间相交,在 pq p q pq上相交于 m m m,在ij" role="presentation">ijijij上相交于 n n n,mn" role="presentation">mnmnmn是 pq p q pq到 ij i j ij的最短距离。

则此方法不仅需要满足类似4点法的比例关系:

r1=||q−m||||q−p|| r 1 = | | q − m | | | | q − p | |

r_1=\dfrac{||q-m||}{||q-p||}

r2=||i−n||||i−j|| r 2 = | | i − n | | | | i − j | |

r_2=\dfrac{||i-n||}{||i-j||}
还需要满足下面这个附加条件:

d3=||m−n|| d 3 = | | m − n | |

d_3=||m-n||
满足以上三个条件才可认为是匹配对。

由于在4PCS中,强制选取共面的4点,所以由于点云对称导致的配准错的问题并不明显,但是在3D中,这种对称则会导致较为严重的错。如下图,假如一个基础对 Γ={i,j,p,q} Γ = { i , j , p , q } \Gamma =\{i,j,p,q\}以及3D交叉点 {n,m} { n , m } \{n,m\}。

  我们可以找到很多满足上式的匹配对,例如: Γ1={i,j,p1,q1} Γ 1 = { i , j , p 1 , q 1 } \Gamma_1=\{i,j,p_1,q_1\}, Γ2={i,j,p2,q2} Γ 2 = { i , j , p 2 , q 2 } \Gamma_2=\{i,j,p_2,q_2\}, Γ1={i,j,p3,q3} Γ 1 = { i , j , p 3 , q 3 } \Gamma_1=\{i,j,p_3,q_3\},分别相交于 n,m1 n , m 1 {n,m_1}, n,m2 n , m 2 {n,m_2}, n,m3 n , m 3 {n,m_3}。因此,有必要在寻找匹配对时删去这些模糊的匹配对。在SK-4PCS中,作者对这种问题进行了分类,将其分为垂直类型和平面类型的两种模糊。
  对于垂直类型的模糊,例如 Γ Γ \Gamma和 Γ1 Γ 1 \Gamma_1,我们可以计算向量 nm−→− n m → \overrightarrow {nm}和向量 nm1−→− n m 1 → \overrightarrow {nm_1},并和参考点云的向量做比较从而区分他们。
  对于平面类型的模糊,如下图,我们定义一个通过向量 ij→ i j → \overrightarrow {ij}来定义一个参考方向,并计算方位角 α2 α 2 \alpha_2, α3 α 3 \alpha_3从而进行区分。

精配准方案

  精配准中,最经典最常用的方法就是迭代最近点法(Iterative Closest Point,ICP),而后的大多数方法都是ICP的变种。下文会简单介绍ICP算法的原理以及我在查阅论文中遇到的一些引用数较多的文章中所提到的算法。如果大家有什么经典或者新颖的算法也可以留言大家共同讨论交流,学习进步。


04/08/2018

DO(Discriminative Optimization)

  与传统的构建损失函数,求解损失函数不同, 这篇文章提出了DO(Discriminative Optimization)的方法,通过学习更新序列来解决一系列计算机视觉上的问题。原文见2017年CVPR:Discriminative Optimization: Theory and Applications to Point Cloud Registration [11] [ 11 ] ^{[11]}。
  

1. 更新法则 

  DO采用如下的更新法则:
  

Xk+1=Xk−Dk+1h(Xk)(2) (2) X k + 1 = X k − D k + 1 h ( X k )

X_{k+1} = X_k - D_{k+1}h(X_k) \tag 2
  其中, h:Rp→Rf h : R p → R f h:\Bbb R^p \rightarrow \Bbb R^f为特征提取函数,矩阵 Dk+1∈Rp×f D k + 1 ∈ R p × f D_{k+1} \in \Bbb R^{p \times f}将特征 h(Xk) h ( X k ) h(X_k)转换为更新向量,矩阵 Dk+1 D k + 1 D_{k+1}由训练数据得来。

2. 训练方法

  给定一个训练集 (X(i)0,X(i)∗,h(i))Ni=1 ( X 0 ( i ) , X ∗ ( i ) , h ( i ) ) i = 1 N {(X_0^{(i)},X_*^{(i)},h^{(i)})}_{i=1}^N,其中 X(i)0∈Rp X 0 ( i ) ∈ R p X_0^{(i)} \in \Bbb R^p是第 i i i个问题的实例,X∗(i)∈Rp" role="presentation">X(i)∗∈RpX∗(i)∈RpX_*^{(i)} \in \Bbb R^p为真实值(groundt ruth),而 h(i):Rp→Rf h ( i ) : R p → R f h^{(i)}:\Bbb R^p \rightarrow \Bbb R^f为第 i i i个实例的特征,DO的目标就是学习更新序列{Dk}k" role="presentation">{Dk}k{Dk}k\{D_k\}_k,使得 Xi0 X 0 i X_0^{i}更新为 Xi∗ X ∗ i X_*^{i},学习规则采用如下最小二乘回归函数:
  

Dk+1=argminD~1N∑||X(i)∗−X(i)k+D~h(i)(X(i)k)||2(2) (2) D k + 1 = arg ⁡ min D ~ 1 N ∑ | | X ∗ ( i ) − X k ( i ) + D ~ h ( i ) ( X k ( i ) ) | | 2

D_{k+1} = \arg \min_{\tilde D} \dfrac{1}{N} \sum ||X_*^{(i)}-X_k^{(i)} + \tilde D h^{(i)}(X_k^{(i)})||^2 \tag 2
  在学习了 Dk+1以后 D k + 1 以 后 D_{k+1}以后,可以用(1)来更新 X(i)k X k ( i ) X_k^{(i)},然后继续学习下一层,不断重复这个过程,直到满足终止条件。当 X(i)k≈X(i)∗ X k ( i ) ≈ X ∗ ( i ) X_k^{(i)} \approx X_*^{(i)},式(3)会强制 D~h(i)(X(i)k) D ~ h ( i ) ( X k ( i ) ) \tilde D h^{(i)}(X_k^{(i)})接近于0,也就是在 X(i)∗ X ∗ ( i ) X_*^{(i)}附近引入驻点。在实际中,为了防止过拟合,加入了ridge regression:
  

minD~1N∑i=1N||X(i)∗−X(i)k+D~h(i)(X(i)k)||2+λ2||D~||2F(3) (3) min D ~ 1 N ∑ i = 1 N | | X ∗ ( i ) − X k ( i ) + D ~ h ( i ) ( X k ( i ) ) | | 2 + λ 2 | | D ~ | | F 2

\min_{\tilde D} \dfrac{1}{N} \sum_{i=1}^{N} ||X_*^{(i)}-X_k^{(i)} + \tilde D h^{(i)}(X_k^{(i)})||^2 + \dfrac{\lambda}{2}||\tilde D||_F^2 \tag 3

3. 配准应用

  设 M∈R3×NM M ∈ R 3 × N M M \in \Bbb R^{3 \times N_M}为模型点云矩阵, S∈R3×NS S ∈ R 3 × N S S \in \Bbb R^{3 \times N_S}为场景模型矩阵。我们的目标是找到 S→M S → M S \rightarrow M的最佳变化矩阵。
  由于大部分感兴趣的点云都是由物体表面组成的,文中提出了一种基于统计场景中的点在模型点的前方还是后方的特征函数用于矩阵学习,如下图:
  我们定义 n⃗ a∈R3 n → a ∈ R 3 \vec n_a \in \Bbb R^3为模型点 ma m a m_a由其领域计算得来的法向量。 Γ(y;x) Γ ( y ; x ) \Gamma(y;x)使用参数 x x x对y" role="presentation">yyy做刚性变换。 ma m a m_a的前方点定义为: S+a={sb:n⃗ ⊤a(Γ(sb;x)−ma)>0} S a + = { s b : n → a ⊤ ( Γ ( s b ; x ) − m a ) > 0 } S_a^+=\{s_b:\vec n_a^{\top}(\Gamma(s_b;x)-m_a) \gt 0\}, S−a S a − S_a^-则包含其他的场景点,对于 h:R6×R3→R2NM h : R 6 × R 3 → R 2 N M h:\Bbb R^6 \times \Bbb R^{3} \rightarrow \Bbb R^{2N_M}定义如下:
  

[h(x;S)]a=1z∑sb∈S+aexp(−1σ2||Γ(sb;x)−ma||2)(4) (4) [ h ( x ; S ) ] a = 1 z ∑ s b ∈ S a + e x p ( − 1 σ 2 | | Γ ( s b ; x ) − m a | | 2 )

[h(x;S)]_a=\dfrac{1}{z} \sum_{s_b \in S_a^+} exp\bigl(- \dfrac{1}{\sigma^2}||\Gamma(s_b;x)-m_a ||^2\bigr) \tag 4
  

[h(x;S)]a+NM=1z∑sb∈S−aexp(−1σ2||Γ(sb;x)−ma||2)(5) (5) [ h ( x ; S ) ] a + N M = 1 z ∑ s b ∈ S a − e x p ( − 1 σ 2 | | Γ ( s b ; x ) − m a | | 2 )

[h(x;S)]_{a+N_M}=\dfrac{1}{z} \sum_{s_b \in S_a^-} exp\bigl(- \dfrac{1}{\sigma^2}||\Gamma(s_b;x)-m_a ||^2 \bigr) \tag 5
  为了加速算法,输入数据会被归一化到 [−1,1] [ − 1 , 1 ] [-1,1],训练数据来自对模型的随机采样,并进行随机变换做为ground truth进行训练。
  
  

结合法

  结合法是将点云的颜色信息与几何信息相结合经行配准,原文见2017年ICCV:Colored Point Cloud Registration Revisited [10] [ 10 ] ^{[10]}。文中回顾了RGB-D深度图像基于颜色的配准方案和基于几何位置的配准的方案,并将两者的相结合,并推广至无序点云。

1. RGB-D

  一副RGB-D图像由颜色信息 I I I和深度信息D" role="presentation">DDD组成,这里我们采用灰度信息来简化问题。给定一对RGB-D图像 (Ii,Di) ( I i , D i ) (I_i,D_i), (Ij,Dj) ( I j , D j ) (I_j,D_j)以及一个粗略的初始矩阵 T0 T 0 T^0,我们的目标是找到一个使两幅图像紧密配准的最佳变换矩阵。
  基于颜色信息的目标函数 EI E I E_I为:
  

EI(T)=∑(Ii(x′)−Ij(x))2 E I ( T ) = ∑ ( I i ( x ′ ) − I j ( x ) ) 2

E_I(T)=\sum {\bigl (I_i(x^{'}) - I_j(x)} \bigr)^2

  其中, x=(u,v)T x = ( u , v ) T x = (u,v)^T是RGB-D图像 (Ij,Dj) ( I j , D j ) (I_j,D_j)中的一个像素,而 x′=(u′,v′)T x ′ = ( u ′ , v ′ ) T x^{'} = (u^{'},v^{'})^T是点 x x x在图像(Ii,Di)" role="presentation">(Ii,Di)(Ii,Di)(I_i,D_i)中的对应点。这种对应关系是通过将深度像素 (x,Dj(x)) ( x , D j ( x ) ) (x,D_j(x))在 (Ij,Dj) ( I j , D j ) (I_j,D_j)的空间中转换为3D点,并将其变换 T T T后投影到图像(Ii,Di)" role="presentation">(Ii,Di)(Ii,Di)(I_i,D_i)中建立的,具体如下:
  

x′=guv(s(h(x,Dj(x)),T)) x ′ = g u v ( s ( h ( x , D j ( x ) ) , T ) )

x^{'} = g_{uv} \Bigl(s \bigl(h(x,D_j(x)),T \bigr)\Bigr)
  其中, h h h是将深度像素转换为3D点,s" role="presentation">sss为刚性变换, g g g为h" role="presentation">hhh的逆函数,将3D点转换为深度像素。
  同样的,我们根据深度信息也可以如此定义目标函数 ED E D E_D,由两幅点云是在不同的相机空间中测量得到的,直接比较深度值会导致一个错误的结果, 所以这里我们采用弯曲深度。
  

ED()T=∑x(Di(x′)−gd(s(h(x,Dj(x)),T)))2 E D ( ) T = ∑ x ( D i ( x ′ ) − g d ( s ( h ( x , D j ( x ) ) , T ) ) ) 2

E_D()T = \sum_x \bigl(D_i(x^{'}) - g_d(s(h(x,D_j(x)),T)) \bigr)^2
  如此我们可以通过下式 E E E,将两者进行结合,其中σ∈[0,1]" role="presentation">σ∈[0,1]σ∈[0,1]\sigma \in [0,1]为一常数,用于平衡两者间的关系。
  

E(T)=(1−σ)EI(T)+σED(T) E ( T ) = ( 1 − σ ) E I ( T ) + σ E D ( T )

E(T) = (1 - \sigma)E_I(T) + \sigma E_D(T)

2. Color Point Cloud

  接着,文章将上述方法拓展至普通点云。 P P P为一有色点云,C(p)" role="presentation">C(p)C(p)C(p)为颜色检索函数,我们需要将颜色建设函数转变为一个连续函数 Cp(u) C p ( u ) C_p(u)以便使用其梯度。
  因此,文中为每一个点 p∈P p ∈ P p \in P引入了虚拟正交相机这一概念,其沿着 n⃗ p n → p \vec n_p,观察点 p p p,虚拟相机的观察面为点p" role="presentation">ppp的切平面,设 u⃗  u → \vec u是从点 p p p开始的位于切平面上的一个向量,u→⋅n→p=0" role="presentation">u⃗ ⋅n⃗ p=0u→⋅n→p=0\vec u \cdot \vec n_p =0,则函数 Cp(u) C p ( u ) C_p(u)可一阶近似为:
  

$Cp(u)≈C(p)+dp⊤u $ C p ( u ) ≈ C ( p ) + d p ⊤ u

$C_p(u) \approx C(p) + d_p \top u
  其中 dp d p d_p是函数 (Cp(u)) ( C p ( u ) ) (C_p(u))的梯度,由对其临近点进行最小二乘拟合得来。我们定义 f(s) f ( s ) f(s)为投影3D点到切平面的函数:
  

f(s)=s−n⃗ p(s−p)⊤n⃗ p f ( s ) = s − n → p ( s − p ) ⊤ n → p

f(s) = s - \vec n_p(s-p)^{\top}\vec n_p
  同样地我们假设虚拟相机有着深度信息因此定义连续深度函数 Gp(u) G p ( u ) G_p(u),他的原点的梯度为0, 0p 0 p 0_p为相机原点,则起一阶近似为:
  

Gp(u)≈(op−P)⊤n⃗ p G p ( u ) ≈ ( o p − P ) ⊤ n → p

G_p(u) \approx (o_p - P)^\top \vec n_p
  这样,对于两个点云 P,Q P , Q P,Q我们可以定义联合最优函数 E(T) E ( T ) E(T):
  

E(T)=(1−σ)EC(T)+σEG(t) E ( T ) = ( 1 − σ ) E C ( T ) + σ E G ( t )

E(T) = (1-\sigma)E_C(T) + \sigma E_G(t)
  令 p,q p , q p,q为每次迭代后 P P P和TkQ" role="presentation">TkQTkQT^kQ的对应点集 K={(p,q)} K = { ( p , q ) } K=\{(p,q)\}。 q′ q ′ q^{'}为点 q q q在点p" role="presentation">ppp的切平面上的投影
  

q′=f(s(q,T))9 q ′ = f ( s ( q , T ) ) 9

q^{'}=f(s(q,T)) 9
  则 EC,EG E C , E G E_C,E_G分别如下定义:
  

EC(T)=∑(p,q)∈K(Cp(q′)−C(q)) E C ( T ) = ∑ ( p , q ) ∈ K ( C p ( q ′ ) − C ( q ) )

E_C(T)=\sum_{(p,q) \in K} (C_p(q^{'})-C(q))
  

  EG(T)  =∑(p,q) inK(Gp(q′)−(op−s()q,T))⊤n⃗ p)2=∑(p,q) inK((s(q,T)−P)⊤n⃗ p)2  (1)(2) (1) E G ( T ) = ∑ ( p , q ) i n K ( G p ( q ′ ) − ( o p − s ( ) q , T ) ) ⊤ n → p ) 2 (2) = ∑ ( p , q ) i n K ( ( s ( q , T ) − P ) ⊤ n → p ) 2

\begin{align}E_G(T) & = \sum_{(p,q) \ in K } (G_p(q^{'})-(o_p - s()q,T))^\top \vec n_p)^2 \\& = \sum_{(p,q) \ in K }((s(q,T)-P)^\top \vec n_p)^2\end{align}
  如何求解,可以参考原文。同时为了避免陷入局部最优,文中采用不同大小的体素滤波器对原始点云进行滤波产生了不同精度的点云金字塔,通过不断提高输入的点云密度使得配准精度由粗略转为精细。


04/01/2018

ICP(Iterative Closest Point)

  ICP算法是由PJ Besl , ND Mckay [6] [ 6 ] ^{[6]}在1992年提出的一种高层次的基于自由形态曲面的配准方法。原文连接见:A method for registration of 3-D shapes。简单来说就是不停的循环,在两个点云间找到最近的对应点,由这些对应点计算出一个使按照此旋转平移矩阵变换后对应点距离最小的RT矩阵,并进行变换,重复以上步骤,直到某些值达到设定的阈值则停止迭代。对于点集 P,Q P , Q P,Q,算法步骤如下:

  • 计算点集 Qi Q i Q_i中的若干点在点集 P P P中的最近点
  • 求上述对应最近点对平均距离最小的旋转变化矩阵RTi" role="presentation">RTiRTiRT_i
  • 对点集 Qi Q i Q_i使用上述求的 RTi R T i RT_i进行变换得到点集 Qi+1 Q i + 1 Q_{i+1}
  • 若点集 P P P与点集Qi+1" role="presentation">Qi+1Qi+1Q_{i+1}的某些目标函数小于一定阈值(例如最近点的平均距离),则可以停止迭代

模型对应法

  好吧,这个名字是我起的。文章并没有给这个方法起一个名字。这篇文章是我在查阅资料时遇到的一篇100+引用的文章,原文是由T Rabbani , S Dijkman , FVD Heuvel , G Vosselman 发表在ISPRS上的 [7] [ 7 ] ^{[7]}。原文连接见:An integrated approach for modelling and global registration of point clouds。这篇文章有趣之处在于提出了一种对点云进行建模与配准同时进行的方法。原文中有大量的公式推导,这里不会进行赘述。文章中针对工业环境存在大量的简单几何体例如平面,圆柱,圆环等实际提出两种方法,一种间接法,一种直接法。其中间接法是将物体拟合和场景匹配分开来做,而直接法则是同时决定物体的形状和位置参数以及配准参数。
   

1. 间接法

  • 在不通的场景中为每个点赋予一个标记,将其标记在一个具体的物体上,文中采用Hoover, A., Jean-Baptiste, G. et al.在1996年提出的方案 [8] [ 8 ] ^{[8]},An experimental comparison of range image segmentation algorithms。
  • 在每个场景中,对每一个物体进行基于最小均方差的参数拟合
  • 将物体参数做为输入,使用最小均方差法去计算最后的变换矩阵的参数,这一步将物体参数的均方差做为场景的变换参数的目标函数使其最小

数学公式可表示如下:

min{R},{t}∑i=1C∑j=1MiΔ2uij min { R } , { t } ∑ i = 1 C ∑ j = 1 M i Δ u i j 2

\min_{\{R\},\{t\}} \sum^{C}_{i=1} \sum^{M^i}_{j=1} \Delta^{2}_{u_{i_j}}
其中:

Δuij=ΨRaitai(uaij)−ΨRbitbi(ubij) Δ u i j = Ψ R i a t i a ( u i j a ) − Ψ R i b t i b ( u i j b )

\Delta_{u_{i_j}}=\Psi_{R^a_i t^a_i}(u^a_{i_j}) -\Psi_{R^b_i t^b_i}(u^b_{i_j})

  在等式中, C C C是指存在的对应关系的个数,每一个对应关系都包含有两个物体a,b" role="presentation">a,ba,ba,b。第 i i i个对应关系的模型由Mi" role="presentation">MiMiM_i个拟合参数。 ΨRaitai Ψ R i a t i a \Psi_{R^a_i t^a_i}表示对场景使用变换对 Raitai R i a t i a R^a_i t^a_i进行变换。物体 a a a由它的参数uija" role="presentation">uaijuijau^a_{i_j}建模而成。我们的目标是使得存在对应关系的物体对的参数的均方差 Δ2uij Δ u i j 2 \Delta^{2}_{u_{i_j}}最小。因此,我们可以调整参数 {R} { R } \{R\}, {t} { t } \{t\}。那么如何求解这个最值问题,具体可以参考原文的推导。

2. 直接法

  • 配准参数预估,结果仅仅是对配准参数的预估
  • 综合调整,配准参数和模型参数同时被估算

数学公式可表示如下:

min{R},{t}∑i=1O∑j=1PiΩ2i(Ripj+ti) min { R } , { t } ∑ i = 1 O ∑ j = 1 P i Ω i 2 ( R i p j + t i )

\min_{\{R\},\{t\}} \sum^{O}_{i=1} \sum^{P^i}_{j=1} \Omega^2_i(R_i p_j + t_i)

其中, O O O是物体的总数,Pi" role="presentation">PiPiP^i是被用于第 i i i个物体配准的点云 中所有未配准的点云中的点的个数。函数Ωi" role="presentation">ΩiΩi\Omega_i计算一个给定点到第 i i i个物体表面的正交距离(orthogonal distance)。我们的目标是通过调整{R},{t}" role="presentation">{R},{t}{R},{t}\{R\},\{t\}使 Ω2i Ω i 2 \Omega^2_i最小 。其中第二步来自Bundle Adjustmengt方法的拓展 [9] [ 9 ] ^{[9]}。

参考文献:

[1] Homepage B T. 4-points Congruent Sets for Robust Surface Registration[J].

[2] Mellado N, Aiger D, Mitra N J. Super 4PCS Fast Global Pointcloud Registration via Smart Indexing[J]. Computer Graphics Forum, 2015, 33(5):205-215.

[3] Ge X. Automatic markerless registration of point clouds with semantic-keypoint-based 4-points congruent sets[J]. Isprs Journal of Photogrammetry & Remote Sensing, 2017, 130:344-357.

[4] Theiler P W, Wegner J D, Schindler K. Keypoint-based 4-Points Congruent Sets – Automated marker-less registration of laser scans[J]. Isprs Journal of Photogrammetry & Remote Sensing, 2014, 96(11):149-163.

[5] Mohamad M, Ahmed M T, Rappaport D, et al. Super Generalized 4PCS for 3D Registration[C]// International Conference on 3d Vision. IEEE Computer Society, 2015:598-606.

[6] Besl P J, Mckay N D. A Method for Registration of 3-D Shapes[M]. IEEE Computer Society, 1992.

[7] Rabbani T, Dijkman S, Heuvel F V D, et al. An integrated approach for modelling and global registration of point clouds[J]. Isprs Journal of Photogrammetry & Remote Sensing, 2007, 61(6):355-370.

[8] Hoover A, Jean-Baptiste G, Jiang X, et al. An experimental comparison of range image segmentation algorithms[J]. IEEE Trnasactions on Pattern Analysis & Machine Intelligence, 1996, 18(7):673-689.

[9] Atkinson K B. Close Range Photogrammetry and Machine Vision[J]. Empire Survey Review, 2001, 34(266):276-276.

[10] Park J, Zhou Q Y, Koltun V. Colored Point Cloud Registration Revisited[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2017:143-152.

[11] Vongkulbhisal J, Torre F D L, Costeira J P. Discriminative Optimization: Theory and Applications to Point Cloud Registration[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2017:3975-3983.

点云配准各种方法总结[不定时更新]相关推荐

  1. TensorFlow 常见错误与解决方法——长期不定时更新

    TensorFlow 常见错误与解决方法--长期不定时更新 参考文章: (1)TensorFlow 常见错误与解决方法--长期不定时更新 (2)https://www.cnblogs.com/seni ...

  2. 一分钟详解点云配准ICP方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:丁洪凯 链接:https://zhuanlan.zhihu.com/p/107218828 本文 ...

  3. 点云配准各种方法总结

    粗配准方案 LORAX 4点法(4-Points Congruent Sets,4PCS) Super 4PCS(Super 4-Points Congruent Sets) SK-4PCS(Sema ...

  4. Android中一些有用的小方法(不定时更新)

    在Android中,有些方法非常有用,但是一时想不起来怎么用.所以将这些方法积累在这里,自己可以时常上来看看熟悉一下,如果能够帮到朋友们就更好了. 获取当前系统时间 前置条件: import andr ...

  5. 个人编译移动内核时遇到的一些问题报错及处理方法【不定时更新2021.1.3】

    以下仅用于记录个人学习时遇到的一些问题及部分相应解决方法,不一定能解决所有情况. 1. 用qemu创建虚拟机来运行编译的小型系统时: drive with bus=0, unit=0 (index=0 ...

  6. 点云配准(二)— python open3d ICP方法

    上一节中介绍了点云配准的基础知识.本节将采用python open3d来进行点云配准. open3d安装和点云配准介绍,请参考: Open3d读写ply点云文件_Coding的叶子的博客-CSDN博客 ...

  7. Open3d系列 | 1. Open3d实现点云数据读写、点云配准、点云法向量计算

    如有错误,恳请指出. 从这一篇博客开始,开始利用Open3d来处理点云数据.之后将围绕点云数据的多种处理方式来记录笔记.本篇博客的内容包括点云的文件格式介绍,点云数据的读取,以及点云的配准与点云的法向 ...

  8. 针对地图可压缩性的点云配准方法评估(IROS 2021)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Penny@知乎 来源丨https://zhuanlan.zhihu.com/p/2009241 ...

  9. GICP:基于体素泛化ICP方式的准确快速点云配准方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题: Voxelized GICP for Fast and Accurate 3D Point C ...

最新文章

  1. [ZJOI2010]网络扩容
  2. 企业应用平台移动化发展趋势
  3. 【Android 逆向】Android 逆向通用工具开发 ( Windows 平台静态库程序类型 | 编译逆向工具依赖的 Windows 平台静态库程序 )
  4. ubuntu 编译QT Basic XLib functionality test failed!问题解决
  5. 将json字符串转换为json对象
  6. Tomcat 项目代码上线步骤详解
  7. 2020 计蒜之道 预赛 第一场 爆零记
  8. 如何预置apk(MTK6589)
  9. 程序员职业发展路线图
  10. 一直用破解软件?可以试试学生优惠!
  11. 为什么人需要一个人静静--《孤独力》的读后感
  12. 数据结构 第2版 第二版 陈越_高中数学选学---人教A版选修2-1第二章第二节椭圆...
  13. Android 监听短信数据库过滤获取短信内容上传至服务器
  14. 怎么把vue改写成html,vue将字符串转为为html
  15. 52PJ官网 基础教程第二课的分享(OD)_Part2
  16. Byte Pair Encoding
  17. 专题地图的编制——整理复习
  18. C++制作打字小游戏
  19. 小米android手机密码忘了怎么解锁,小米手机锁屏密码忘了怎么办
  20. 质性分析软件nvivo的学习(一)

热门文章

  1. C#实现毫秒级计时器
  2. Spring boot的特性与四大核心
  3. ebpf 研究之 XDP 技术
  4. sql server出生年月减去退休年月 计算年龄
  5. 含泪整理最优质现代家装su模型素材,你想要的这里都有
  6. 将台式机组成云服务器_四种旧PC台式电脑改造桌面云虚拟化的方案介绍
  7. 深度学习-人工神经网络网络
  8. 你是不是程序员菜鸡,一句话就能证明!
  9. umi+dva dva全局的dispatch方法
  10. Gem Port和T-CONT实现业务复用