劉保安
(塔里木大學(xué) 信息工程學(xué)院,新疆 阿拉爾市 843300)
三維結(jié)構(gòu)光掃描技術(shù)以掃描速度快、精度高等優(yōu)勢(shì),在文物保護(hù)方面應(yīng)用廣泛。目前利用三維結(jié)構(gòu)光掃描儀建立三維模型是一種有效的手段,而點(diǎn)云數(shù)據(jù)的配準(zhǔn)是三維建模的關(guān)鍵技術(shù),在醫(yī)學(xué)、逆向工程、文物保護(hù)等方面起到了關(guān)鍵作用。用三維結(jié)構(gòu)光掃描獲取到目標(biāo)物體表面的大量點(diǎn)云數(shù)據(jù),即物體的三維圖像。光在同種均勻介質(zhì)中沿直線傳播,因此,光學(xué)測(cè)量?jī)x器常常僅能測(cè)量到物體局部坐標(biāo)系下的局部數(shù)據(jù),并且數(shù)據(jù)會(huì)出現(xiàn)平移、旋轉(zhuǎn)錯(cuò)位[1]等現(xiàn)象,需要對(duì)這些表面數(shù)據(jù)進(jìn)行配準(zhǔn)。因此,點(diǎn)云的配準(zhǔn)顯得尤為重要,特別是文物點(diǎn)云與原始模型的配準(zhǔn),將直接影響文物三維模型精確度[2]。
由P. J. Besl[3]、Arun[4]等提出的迭代最近點(diǎn)算法(iterative closest points,ICP)目前被廣泛應(yīng)用,近年來(lái)國(guó)內(nèi)外也有大量的研究者對(duì)該算法進(jìn)行探索[5-7]。ICP算法實(shí)質(zhì)上是基于最小二乘法的最優(yōu)配準(zhǔn)方法。該算法對(duì)對(duì)應(yīng)關(guān)系點(diǎn)對(duì)反復(fù)進(jìn)行選擇,計(jì)算最優(yōu)剛體變換這一過(guò)程,一直到符合正確配準(zhǔn)的收斂精度條件[8]。
基于ICP算法的特性,對(duì)獲取的原始點(diǎn)云數(shù)據(jù)先通過(guò)旋轉(zhuǎn)矩陣和平移向量實(shí)現(xiàn)粗配準(zhǔn),在Matlab軟件中使用ICP算法對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行精確配準(zhǔn),從而提高配準(zhǔn)的準(zhǔn)確性和效率。
按照點(diǎn)云的數(shù)據(jù)獲取測(cè)量方法的不同與測(cè)量設(shè)備是否接觸物體,基本上分為兩大類(lèi):接觸式測(cè)量與非接觸式測(cè)量[9]。手持式三維結(jié)構(gòu)光掃描儀屬于非接觸式測(cè)量方式。在數(shù)據(jù)的獲取過(guò)程中,首先利用Artec Eva 3D手持式結(jié)構(gòu)光掃描儀獲取陶罐數(shù)據(jù),其次將掃描儀中的數(shù)據(jù)導(dǎo)入圖像工作站的Artec studio 9軟件中。為使導(dǎo)出的數(shù)據(jù)原屬性不受影響,包括顏色、曲面法線、紋理坐標(biāo)等[10],便于三維網(wǎng)格數(shù)據(jù)在Matlab中的輸入、處理[11],且為后續(xù)處理奠定良好的基礎(chǔ),需要一種便于處理的輸出格式。ply格式以數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、易于讀取,可以用ASCII碼格式存儲(chǔ)文件等特點(diǎn)而得到了廣泛的應(yīng)用[12]?;谒膬?yōu)點(diǎn),利用該軟件將獲取的點(diǎn)云數(shù)據(jù)以ply格式導(dǎo)出[13],獲取初始數(shù)據(jù)。
基本原理是根據(jù)空間幾何變換使數(shù)據(jù)完成配對(duì),選取待配準(zhǔn)點(diǎn)云,運(yùn)用最小二乘法的優(yōu)化思想[3],其核心內(nèi)容是:讓點(diǎn)云數(shù)據(jù)旋轉(zhuǎn)、平移,使得兩個(gè)點(diǎn)集之間的距離最小[14]。文中基于四元數(shù)方法[15]來(lái)求解旋轉(zhuǎn)矩陣和平移矩陣。
(1)
平移向量可以表示為:
(2)
(2)對(duì)于兩個(gè)點(diǎn)集之間的度量,使用如下目標(biāo)函數(shù)表示:
(3)

最小化問(wèn)題,算法流程如下:

(4)
對(duì)點(diǎn)集P和點(diǎn)集X做去中心化處理后,求出其協(xié)方差矩陣:
(5)
令對(duì)稱(chēng)矩陣為:
(6)
由此得到列向量:
(7)
利用該列向量構(gòu)建4×4對(duì)稱(chēng)矩陣:
(8)
其中,tr(Σpx)表示矩陣Σpx的跡,即主對(duì)角線元素的總和,也即特征值之和;I3表示3×3單位矩陣。
將式7套入式8中,即在程序中直接使用上面這個(gè)公式。
(4)對(duì)式9中特征值q進(jìn)行分解,得到最大和的特征值和對(duì)應(yīng)的特征向量,特征向量就對(duì)應(yīng)誤差的平方及最小時(shí)的四元數(shù):
(9)
計(jì)算最佳平移向量:
(10)
使用上式的四元數(shù)套入式1:
如下式,結(jié)果到最小值時(shí)停止迭代,否則繼續(xù)重復(fù)流程1~4。
(11)
為驗(yàn)證文中提出的改進(jìn)ICP算法的效果,在Intel(R) Core(TM)i7-2760QM CPU主頻為2.40 GHz,內(nèi)存12 GB,Windows7 64位操作系統(tǒng)圖形工作站上,基于Artec Studio 9版本三維掃描軟件,搭載Artec Eva 3D掃描儀實(shí)驗(yàn)平臺(tái)中獲取陶罐的三維點(diǎn)云數(shù)據(jù);在Intel(R)Core(TM)i5-5200U 主頻2.20 GHz,內(nèi)存4 GB,Windows 7 64位操作系統(tǒng)的計(jì)算機(jī)上用Matlab進(jìn)行仿真實(shí)驗(yàn)。
由圖1可知,僅用原始ICP配準(zhǔn)會(huì)導(dǎo)致配準(zhǔn)精度不理想,獲得三維模精度效果不佳。

圖1 僅用初始配準(zhǔn)的點(diǎn)云數(shù)據(jù)對(duì)齊
由圖2可知,直接使用Matlab中ICP算法配準(zhǔn)會(huì)使得配準(zhǔn)趨向于一個(gè)錯(cuò)誤的方向,致使無(wú)法得到良好的配準(zhǔn)效果。

圖2 僅用精確配準(zhǔn)的點(diǎn)云數(shù)據(jù)對(duì)齊
利用pcregrigid函數(shù)對(duì)ICP算法進(jìn)行優(yōu)化,得到表1的數(shù)據(jù)。將數(shù)據(jù)在Matlab中運(yùn)行,結(jié)果如圖3所示。由圖3可知,先進(jìn)行初始配準(zhǔn),再進(jìn)行精確配準(zhǔn),不但可以大幅度提高配準(zhǔn)精確度,并且能確保配準(zhǔn)方向的合理性,可以獲得更大的配準(zhǔn)效果。

圖3 數(shù)據(jù)使用文中配準(zhǔn)算法后的效果
在Matlab中用優(yōu)化ICP算法進(jìn)行點(diǎn)云數(shù)據(jù)的配準(zhǔn),不但擁有良好的配準(zhǔn)精度,而且匹配速度也令人滿意。與原始的ICP算法相比,在Matlab中編程優(yōu)化后的ICP算法,相比于Artec Studio軟件中進(jìn)行的數(shù)據(jù)配準(zhǔn)有了一定的提高,同時(shí)也提升了配準(zhǔn)效果。
由表1中的比較分析可以看出,點(diǎn)云數(shù)據(jù)的數(shù)據(jù)量越大,在Matlab中用優(yōu)化的ICP算法在配準(zhǔn)速度上的優(yōu)勢(shì)越明顯。

表1 海量數(shù)據(jù)兩種點(diǎn)云算法配準(zhǔn)速度的比較
利用三維結(jié)構(gòu)光技術(shù)獲取文物的原始數(shù)據(jù),經(jīng)過(guò)前期數(shù)據(jù)的處理獲得點(diǎn)云數(shù)據(jù),在Matlab中利用ICP算法進(jìn)行初步配準(zhǔn),得到基本模型,利用pcregrigid函數(shù)對(duì)ICP算法進(jìn)行優(yōu)化,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)文物的配準(zhǔn)精度得到大幅度提高,而且減少了配準(zhǔn)所需時(shí)間。實(shí)驗(yàn)結(jié)果表明,經(jīng)過(guò)ICP算法優(yōu)化后的三維模型比三維掃面議自帶Artec Studio軟件點(diǎn)云數(shù)據(jù)自動(dòng)配準(zhǔn)更加精確。