Multi-scale Features for Approximate Alignment of Point-based Surfaces論文閱讀

問題

給定一個點雲描述(P={(pi,ni)}iI\mathcal{P}=\{(\mathbf{p}_{i}, \mathbf{n}_{i})\}_{i \in \mathcal{I}},其中pi\mathbf{p}_i是點的位置,ni\mathbf{n}_{i}是點的法向,I\mathcal{I}是點的集合)的曲面(surfel cloud),求曲面特徵。

基本思路

先對曲面做不同尺度的smooth(類似於圖像處理中的高斯金字塔),然後仿照二維圖像中求SIFT特徵的方法計算特徵。

點雲Smooth

假設給定點雲P={(pi,ni)}iI\mathcal{P}=\{(\mathbf{p}_{i}, \mathbf{n}_{i})\}_{i \in \mathcal{I}}以及任意一個三維空間的點x\mathbf{x},計算x\mathbf{x}P\mathcal{P}上的投影。

因爲是三維空間中任意一點,因此我們往往要將它表示成已知的各點的加權平均。如果按照高斯函數的範圍取權重,則x\mathbf{x}相對於某一點pi\mathbf{p}_{i}的權重爲
θih(x):=Aied2(x,pi)/h2jIAjed2(x,pj)/h2 \theta_{i}^{h}(\mathbf{x}):=\frac{A_{i} e^{-d^{2}\left(\mathbf{x}, \mathbf{p}_{i}\right) / h^{2}}}{\sum_{j \in \mathcal{I}} A_{j} e^{-d^{2}\left(\mathbf{x}, \mathbf{p}_{j}\right) / h^{2}}}

其中,d(x,pi)d(\mathbf{x}, \mathbf{p}_i)表示兩點之間的距離,hh表示高斯函數的方差(半徑),AiA_i表示各點的面積——如果我們知道各點的連接方式,那麼面積就是一環三角形面的面積的三分之一;如果我們只知道點雲,不知道連接方式,則AiA_i統一等於1。

使用權重加權,我們可以計算得到x\mathbf{x}的法向:
n[P,h](x):=iIθih(x)ni \mathbf{n}_{[\mathcal{P}, h]}(\mathbf{x}):=\sum_{i \in \mathcal{I}} \theta_{i}^{h}(\mathbf{x}) \mathbf{n}_{i}

因此,如果我們想計算x\mathbf{x}在曲面上的投影,則可以求以下式子的最小值:
E[P,h](x):=iIθih(x)n[P,h](x),xpi2E_{[\mathcal{P}, h]}(\mathbf{x}):=\sum_{i \in \mathcal{I}} \theta_{i}^{h}(\mathbf{x})\left\langle\mathbf{n}_{[\mathcal{P}, h]}(\mathbf{x}), \mathbf{x}-\mathbf{p}_{i}\right\rangle^{2}

顯然,只有x\mathbf{x}在曲面上時,首先xpi\mathbf{x}-\mathbf{p}_i的值較小,其次它們往往和法向n[P,h](x)\mathbf{n}_{[\mathcal{P}, h]}(\mathbf{x})垂直,因此能讓誤差取到最小值。曲線內外的點,通過迭代求解,就可以投影到曲面上。

對於點雲的Smooth,我們將每個點自身帶入到上面的計算中,每個點的位置都受到周圍點位置的影響,相當於進行了smooth。我們取不同的hh半徑,即hj=h0Fjh_{j}=h_{0} F^{j},其中FF是一個可調常數(文中設置爲21/42^{1/4}),就得到了不同程度的smooth,與圖像處理中的高斯金字塔十分類似。

特徵計算

我們希望特徵是不變量在鄰域中的最大值,因此首先定義鄰域。對於空間上的一個點q\mathbf{q},我們認爲以下集合中的點在q\mathbf{q}的鄰域內:b(q,R):={kI:d(pk,q)<R}b(\mathbf{q}, R):=\left\{k \in \mathcal{I}: d\left(\mathbf{p}_{k}, \mathbf{q}\right)<R\right\},即一個半徑爲RR的球體。

然後我們定義不變量。有了不同尺度的高斯濾波後(即Pj:={(pihj,nihj)}iI\mathcal{P}_{j}:=\{(\mathbf{p}_{i}^{h_{j}}, \mathbf{n}_{i}^{h_{j}})\}_{i \in \mathcal{I}}),我們對他們相鄰兩層計算
dj(i):=nij,pijpij1 d_{j}(i):=\left\langle\mathbf{n}_{i}^{j}, \mathbf{p}_{i}^{j}-\mathbf{p}_{i}^{j-1}\right\rangle

然後仿照SIFT,使用dj(i)d_{j}(i)來定義特徵:
dj(i)>dj1(i) for all ib(pi,Chj1)dj(i)>dj(i) for all ib(pi,Chj)\{i}dj(i)>dj+1(i) for all ib(pi,Chj+1) \begin{aligned} &d_{j}(i)>d_{j-1}\left(i^{\prime}\right) \quad \text { for all } i^{\prime} \in b\left(p_{i}, C h_{j-1}\right)\\ &d_{j}(i)>d_{j}\left(i^{\prime}\right) \quad \text { for all } i^{\prime} \in b\left(p_{i}, C h_{j}\right) \backslash\{i\}\\ &d_{j}(i)>d_{j+1}\left(i^{\prime}\right) \quad \text { for all } i^{\prime} \in b\left(p_{i}, C h_{j+1}\right) \end{aligned}

特徵點的dj(i)d_{j}(i)需比同一層、上一層、下一層的鄰域內的其他點的dj(i)d_{j}(i)都要大。類似地,我們也可以按照最小值給出一個特徵的定義。

穩定性分析

穩定性分析主要考慮三個因素:均勻重採樣、添加噪聲、使用QSlim模型簡化(可參考我的另一篇博客對QSlim的介紹)對特徵點的影響。

首先我們需要定義如何判定兩個(稍有不同的)模型上特徵點是否一致。文中的判定方法是,對於x\mathbf{x}點,尺度爲hh的特徵ff,如果在另一個模型的相同尺度或鄰近尺度hh'(對於本文中,h[F1h,Fh]h'\in[F^{-1}h,Fh]),存在一個特徵ff',它的座標x\mathbf{x'}x\mathbf{x}之間的距離小於h2\frac{h}{2},我們就判定ffff'之間存在對應關係。

文中測試了Venus、Buddha和Bunny三個模型,對均勻重採樣、添加噪聲,得到了Figure1。

圖1

對模型簡化,得到了Figure4。同時,在模型簡化中,引入了面積權重,發現帶面積權重的比不帶面積權重的要好。

圖4

我個人感覺,這裏的穩定性看起來一般,只有約一半的點找到了對應點。不知道其他特徵算法的穩定性和它相比如何。

表面局部特徵描述子

上面的方法只是找到了特徵點的位置,但沒有特徵點的描述子。如果我們把那些座標、法向、尺度之類的視爲描述子,那麼它們就不具有旋轉不變性了。因此,要仿造SIFT就要仿到底,我們要加上鄰域的信息,形成直方統計,然後再加一個傅里葉變換。

具體來說,我們在特徵點和法向垂直的方向,取一個平面,對平面上以特徵點爲中心,按圓盤採樣,如下圖所示:
在這裏插入圖片描述

如果我們在平面上定義uv座標系,則每個點ξkl\xi_{k l}的位置爲
ξkl:=x+2lhM(cos(2πkN)u+sin(2πkN)v) \xi_{k l}:=\mathbf{x}+\frac{2 l h}{M}\left(\cos \left(\frac{2 \pi k}{N}\right) \mathbf{u}+\sin \left(\frac{2 \pi k}{N}\right) \mathbf{v}\right)

其中l=1,,Ml=1,\cdots,M,爲在半徑上採樣,k=1,,Nk=1,\cdots,N,爲在角度上採樣。對於這樣一個點ξkl\xi_{k l},我們也可以加權地求它的法向vklv_{k l},即
vkl=n[P,h](ξkl) v_{k l}=\mathbf{n}_{[P, h]}\left(\xi_{k l}\right)

類似上面對於不變量的定義,這裏也對每個點求不變量skls_{k l}
skl=ξklx,vklξklx s_{k l}=\frac{\left\langle\xi_{k l}-\mathbf{x}, \mathbf{v}_{k l}\right\rangle}{\left\|\xi_{k l}-\mathbf{x}\right\|}

對這些skls_{k l}做直方統計就好了。但另一種更好的方法是,通過傅里葉變換實現空間壓縮和特徵保留的方法,在ll方向做離散餘弦變換(DCT),在kk方向做離散傅里葉變換(DFT),然後取結果的左上角M×NM'×N'個值就好了。因此,它的特徵描述子爲:
σP(x,n,h):=(s~kl)k=1,N,l=1,M \sigma_{P}(\mathbf{x}, \mathbf{n}, h):=\left(\tilde{s}_{k l}\right)_{k=1, \ldots N^{\prime}, l=1, \ldots M^{\prime}}

穩定性分析

由於我們在點的切平面上對圓盤進行採樣,這些採樣點都沒有落在模型表面。實驗發現,落在表面反而由於表面的噪聲,導致結果更差。Figure6中,左圖使用投影落在模型表面,右圖直接使用切平面,比較兩者和不加噪聲的模型之間的誤差。發現左圖誤差更大。
圖6

特徵過濾

另外,如果在一個平面上加噪聲,平面會變得起伏不平,從而出現許多小的特徵。但這些特徵在描述子的大小(magnitude)上往往很小,因此可以人爲設定閾值將其去除。

應用:表面匹配

過程略。放一張結果圖吧(Figure10)。

圖10

參考文獻

Li, Xinju, and Igor Guskov. “Multiscale Features for Approximate Alignment of Point-based Surfaces.” Symposium on geometry processing. Vol. 255. 2005.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章