朱迪,吳曉紅,何小海,張余強
(1.四川大學電子信息學院圖像信息研究所,成都610065;2.成都西圖科技有限公司,成都 610065)
實物地質標本作為珍貴的不可再生資源,在地質勘探、礦產(chǎn)開采等領域中具有重要的研究意義[1]。作為近年來計算機視覺領域的研究熱點之一,三維重建技術能將實物地質標本進行數(shù)字化存儲,有效地避免了實物地質資料遭到破壞后對后續(xù)研究造成的不良影響。目前,業(yè)界主流的方案有視覺和激光雷達兩大類。其中,視覺類代表為Kinect[2],激光雷達類代表為三維掃描儀。三維掃描儀通過激光掃描技術[3]提供被測物體表面精確的三維點云數(shù)據(jù),魯棒性很高,但該技術在全掃描時計算速度慢,且價格非常昂貴。而Ki?nect能提供實時、精確和密集的三維測量數(shù)據(jù),同時硬件成本比較低廉,未來發(fā)展前景廣闊。
目前在Kinect上進行實時稠密重建最常用的算法是帝國理工和微軟研究院在2012年提出的Kinect Fu?sion[4]。該算法首先采用雙邊濾波對原始深度信息進行平滑降噪,然后使用“最鄰近迭代算法(Iterative Closest Point,ICP)”求解相機每次的相對位移與轉動,把求解到的相機位姿融合到“截斷符號距離場(Truncated Signed Distance Field,TSDF)”模型中,最后通過渲染和投影給TSDF模型賦予顏色紋理,使重建結果變得肉眼可見。雖然Kinect Fusion實現(xiàn)了基于廉價消費類相機的實時剛體重建,但是該算法依然存在很多缺陷。例如原始深度信息降噪采用的雙邊濾波器計算速度較慢,無法滿足重建的實時性,以及點云配準采用的ICP算法會導致幀間誤差隨運行時間增加而累積,造成重建錯位。對于ICP算法,J.Xie和Y.F.Hsu(2015)提出重建時先用“隨機抽樣一致算法(Random Sample Con?sensus,RANSAC)”[5]對點云進行粗配準,然后再用添加了“尺度不變特征變換(Scale-Invariant Feature Trans?form,SIFT)”算子的ICP進行精細配準,改進了Kinect Fusion對被建物體結構特征要求高的問題,但該方法依然無法消除配準累積誤差。
針對上述問題,本文首先引入聯(lián)合雙邊濾波[6]對深度圖進行預處理,該聯(lián)合雙邊濾波采用了快速高斯變換降低計算復雜度。然后利用全局校準減小了累積誤差帶來的重建錯位,提高了重建質量和算法魯棒性。最后采用局部最優(yōu)投影法對點云進一步擬合,平滑了點云,減少了噪聲,實現(xiàn)了一種針對實物地質標本高效率、高質量的重建方法。
基于實物地質標本的三維重建系統(tǒng)框圖如圖1所示:首先采用Kinect捕獲目標物體的RGB圖和深度圖。接著用GrabCut[7]分割算法對RGB圖進行分割,把前景目標從背景中提取出來,然后根據(jù)裁剪的RGB圖像和深度圖像形成當前視圖的三維點云。各幀點云生成后,先采用RANSAC算法進行粗對準,再使用添加了SIFT算子的ICP算法進行精細配準,接著通過全局校準消除配準誤差累積,然后用局部最優(yōu)投影法擬合點云,對點云進一步降噪。
Kinect Fusion采用的雙邊濾波[8]相比一些常用的濾波算法如均值濾波[9]、中值濾波[10]能很好地克服邊界信息損失的問題。但它的核函數(shù)為高斯函數(shù),計算速度較慢,無法滿足重建系統(tǒng)的實時性。由于Kinect能同時采集目標物體的RGB圖和深度圖,兩圖的相似性很高,引入聯(lián)合雙邊濾波,讓彩色圖作為導向圖,對深度圖中像素點間的歐式距離和彩色中強度值的相似性進行加權處理,補全深度圖像中缺失的部分。改進后的深度圖輸出如式(1)所示:
公式(1)中的 p、q為圖像中的兩個相鄰像素,Ip、Iq表示彩色圖像灰度化后的像素值,k是歸一化常量,f、g表示權重分布函數(shù),是高斯函數(shù)。從公式(1)可以看出,在強度差距大的地方,權重會減小,濾波效應相應變小,所以在圖像邊緣等強度差較大的地方可以保持梯度。
圖1 實物地質標本三維重建系統(tǒng)框圖
ICP配準過程中,隨著點云不斷被添加到模型里,幀與幀之間的配準錯誤逐漸積累[11],導致最后一幀和第一幀之間出現(xiàn)明顯的錯位,本文采用全局校準來消除這個影響。首先建立場景數(shù)據(jù)集,通過場景數(shù)據(jù)集檢測閉環(huán),然后將閉環(huán)的最后一幀與第一幀進行配準獲取配準誤差,最后把得到的誤差均勻分配在其他幀之間,得到一致的回路。
(1)場景數(shù)據(jù)集的建立
在已有的研究中,閉環(huán)檢測多采用一種叫詞袋模型[12]的算法來進行場景建模。該算法先提取每張圖像的特征,然后對所有特征向量進行聚類,得到K個聚類中心作為詞典,每幅圖像就能表示為一個有K個視覺詞典的矢量。接著計算每幅圖中各特征到K個詞的距離,距離最小的單詞數(shù)值加1,由此,每一幅圖像就變成了一個與視覺詞序列相對應的詞頻矢量。通過場景數(shù)據(jù)集獲得每幅圖像的詞頻表示后,計算兩圖的視覺詞典間距就能確定兩幅圖的相似度,從而完成圖像檢索、識別、分類等任務。
(2)閉環(huán)檢測
通過計算圖像間的余弦距離來測量兩幅圖像之間的相似度。用一個n維的特征向量集合來表示圖像Iu,圖像中的每個特征向量di都關聯(lián)到一個視覺單詞dm。每幅圖像都會包含很多不同權重的詞匯,權重代表了這個詞匯在圖像集中出現(xiàn)的頻率,單個詞匯的權重計算如式(2)所示。
其中N表示所有圖像的數(shù)量,ni表示所有圖像中包含了dm的圖像數(shù)量。得出每個詞匯的權重后再利用相似函數(shù)計算兩幅圖像Iu與Iv間的相似度,相似函數(shù)如式(3)所示。
式中m為圖像中包含的詞匯數(shù),根據(jù)式(3)就能計算出兩圖像間的相似矩陣,然后判斷它們的相似程度。
(3)誤差校準
檢測到閉環(huán)后,首先用閉環(huán)中每一幀的代表頂點制定一個循環(huán)圖,如圖2展示了一個簡單的循環(huán)圖示例,圖中頂點A為初始幀代表點,頂點E為末尾幀代表點,循環(huán)閉合到頂點A。ΔX為頂點A與頂點E對齊后的變換參數(shù),令Ti為配準過程中各幀的位姿變換值,有T1T2...Tn=ΔX。然后將ΔX均勻分配到各個位姿中,最大化減小環(huán)路閉合不匹配的問題。通常,因為配準過程有誤差,ΔX的值會各不相同,如果配準過程完全標準沒有錯誤的話,ΔX的值應該是一個單位矩陣。
圖2 包含5個頂點的循環(huán)示例圖
為了獲得一致的映射,誤差校準需要計算頂點的權重,這些權重指定了ΔX在變換中需要改變的部分。例如圖2,頂點E需要變換ΔX,而頂點A則保持不變。頂點vi的權重計算如式(4)所示。其中vs是閉環(huán)中的第一個頂點,ve是最后一個頂點。變換參數(shù)ΔX的計算公式如式(5)所示。誤差校準后,每一幀圖像最終修改轉換為Tm,如式(6)所示。Tm就是修改后每幀的位姿變換值,整個過程會重復進行多次直到收斂。
(4)三維點云擬合
經(jīng)過配準和全局校準后的點云依然存在內部高頻噪聲[13]以及系統(tǒng)自身和預處理過程中產(chǎn)生的離群點噪聲,點云模型紋理不夠連續(xù)、邊緣參差不齊。因此,需要對配準后的離群點云進行進一步擬合,細化模型。
本文采用了一種基于投影的算法——局部最優(yōu)投影法,來對點云進行局部擬合[14]。該方法的目的在于通過迭代投影把采樣表面附近的點均勻擬合到采樣表面上,實現(xiàn)高質量點云去噪。
其中:
G(Q)是本文需要分析的能量函數(shù),如式(12)所示。式中能量項E1( )X,P,C表示了初始點云P與目標點云Q之間的擬合程度。
從式(9)的E1中可以看出這個公式把目標點云中每個點與初始點云各點的L1范數(shù)的高斯加權和都計算了一遍,可以看作是考察了初始點云與目標點云里每個點的擬合程度。但由于公式中存在高斯范數(shù),與目標點相距較遠的點云高斯權重很低,可以被忽略。所以能量項E1表示的其實是目標點云Q中每個點與其附近領域的初始點云P的擬合程度,是一個局部的算法。
能量項E2表示了目標點云Q各點間的相斥力,它是保證點云分布均勻的關鍵。E2計算了對每個目標點云qi∈Q與其他不同點云的距離的高斯加權和,與E1類似,由于存在高斯權重,E2中的求和項實際只有qi的鄰域點起作用??梢园袳2看作過近點云間的斥項,當兩個點距離很近時,這兩點間的E1能量會很大,這時候加入E2就可以有效避免這種情況的發(fā)生。
搭建的實物地質標本重建系統(tǒng)示意圖如圖3所示。平臺包括一個Kinect傳感器、一個電控旋轉平臺、一臺計算機以及一塊黑色吸光布,黑色吸光布均勻鋪于旋轉平臺表面,以減少平臺反光對地質標本成像的影響。整個改進算法利用C++實現(xiàn),并在一臺帶有12GB RAM,處理器為 Intel Core i5-4590 CPU@3.30GHz 64位的計算機上進行測試。
圖3 實物地質標本三重建系統(tǒng)平臺示意圖
本文總共對6個形狀、大小、紋理各不相同的實物地質標本進行了30余組重建對比實驗,從中挑選了部分實驗結果在下文進行展示。其中,圖4中的(a)、(b)、(c)分別為地質標本1在重建圖像為20幀時使用Kinect Fusion、J.Xie算法和本文算法的重建結果圖;圖(d)、(e)、(f)為標本 1 在重建圖像為 40 幀時使用三種算法的結果圖。
圖4 標本1重建結果對比圖
圖 5 中的(a)、(b)、(c)分別為地質標本 2 在重建圖像為20幀時使用Kinect Fusion、J.Xie算法和本文算法的重建結果圖;圖(d)、(e)、(f)為標本 2 在重建圖像為40幀時使用三種算法的結果圖。從圖4(c)、(f)與(b)、(e)的對比中可以看出本文算法很好的消除了配準誤差帶來的重建錯位。從圖 5(c)、(f)與(b)、(e)的對比中可以看出本文算法很好地填補了孔洞、擬合了點云、去除了離群噪聲。
圖5 標本2重建結果對比圖
此外,表1展示了兩組標本的重建幀數(shù)與重建時間記錄。從表中可以看出雖然在輸入幀數(shù)相同的情況下本文算法耗費時間比Kinect Fusion與J.Xie算法略多,但從圖4、圖5中可以看出本文算法在輸入圖像20幀情況下的重建效果明顯優(yōu)于另外兩種算法在輸入圖像40幀情況下的結果,所以從重建結果角度看,本文算法相比Kinect Fusion與J.Xie算法花費了更少的采集圖像和運行時間重建出了更完整的地質實物標本,優(yōu)化了重建效果,提升了重建速度。
表1 三組算法運行時間比較表
本文基于Kinect,提出了一種用于實物地質標本的三維重建方法。首先,引入聯(lián)合雙邊濾波器對深度數(shù)據(jù)進行優(yōu)化;然后,對配準后點云進行全局校準消除配準中的累積誤差;最后,采用局部最優(yōu)投影法對離群點云進行擬合、平滑點云、去除噪聲。在采用了多組具有代表性的標本進行實驗后,最終結果表明:
(1)本文算法在大幅減少重建地質標本圖像幀數(shù)時依然可以保持重建結果穩(wěn)定,提升了重建效率,魯棒性很高。
(2)本文算法有效地修復了配準累積誤差、平滑了點云、填補了孔洞、去除了離群噪聲,得到了更優(yōu)的重建效果。