?

基于Kinect的3D全景圖像掃描重建技術

2023-12-08 12:14黃君君
成都工業學院學報 2023年6期
關鍵詞:三維重建濾波物體

黃君君

(福建農業職業技術學院 信息工程學院,福州 350007)

計算機視覺是指通過攝像頭、傳感器和計算機等設備代替人眼對物體進行識別、跟蹤和分析[1]。目前,獲取視覺三維模型的方式有3種:1)根據物體的幾何外觀直接生成,通常是利用三維處理軟件建模,其特點是制作1個模型所需要的時間長,對操作人員的技術要求高,同時細節處也可能無法顧及[2];2)借助三維掃描儀器設備對物體建模,但局限于單個對象建模[3];3)通過計算機視覺重建目標物體的三維模型,這種方式不受物體形狀限制,建立的模型逼真,現實感強,而且設備價格便宜[4]。但第3種方法的主要問題是:1)如何采集獲取物體的三維信息,并對這些信息中存在的各種噪音進行濾波[5];2)如何保證三維重建的精度以及加快三維重建的速度[6]。傳統的迭代最近點(Iterative Closest Point,ICP)算法存在耗時長的問題[7]。本文針對傳統ICP算法存在的問題提出基于K維樹(K-Dimensional tree, K-D tree)以及篩選策略的改進ICP算法,并進行三維重建實驗,驗證當前算法的有效性。

1 三維模型設計與實現

1.1 總體設計方案

本文基于微軟推出的體感設備Kinect進行三維點云重建,重建的流程如圖1所示。

1)Kinect獲取深度圖像

三維重建的重要步驟是采集深度信息和RGB圖像,通過Kinect采集深度信息和RGB圖像。采用Kinect采集深度信息前,需要對Kinect相機進行標定,標定的過程為:通常情況下Kinect采集深度圖像的范圍為鏡頭前1~5 m,將這4 m的距離均勻分成40份,每份的間隔為10 cm,選擇1個參考平面測試,依次采集參考平面在這40個位置上的散斑圖像[8]。使用Kinect采集深度信息時,將獲取的實時散斑圖像與前面已經標定好的40份散斑圖像進行相關的運算,得到40份差異的散斑圖像。由差異散斑圖像的具體像素值可以計算出深度信息,計算方法如圖2所示。

圖1 三維點云重建流程

圖2 深度信息計算原理

從圖2可知,由紅外發射器反射紅外線,紅外線照射到參考平面上時,形成鐳射散斑O,紅外攝像機采集到散斑點O后,內部成像為O′點。面對實際測量的目標物時,紅外發射器發射紅外線在物體表面形成鐳射散斑點,經紅外攝像機采集在內部成像k′點[9]。由上述表達已知:參考平面到此時Kinect的距離為Zo,Kinect紅外攝像機的焦距為f,紅外攝像機與紅外發射器之間的距離為b,物體的散斑點與參考平面散斑點的距離為d,由這幾個參數便可計算出物體平面到Kinect的距離。

2)獲取深度信息和RGB圖像

由于Kinect相機1次只能獲取1個角度的深度信息和RGB圖像,同時拍攝圖像還會受到物體形狀和拍攝范圍的限制,不能一次性獲取物體或者建筑環境的全部信息。因此,需要操作人員移動Kinect相機對場景進行連續多方位拍攝。

3)濾波及預處理

對深度圖像采用雙邊濾波算法。雙邊濾波是在高斯濾波算法的基礎上開發的,在起到良好降噪作用的同時,還能夠不丟失深度圖像的邊緣信息,其具體算法為[8]:

(1)

式中:kd(x)為歸一化系數;c(ξ,x)是中心點與該中心點所在的領域內點空間相似度的函數;f(ξ)為濾波前所對應點的灰度值大小的函數。該濾波算法將點x附近鄰域與它鄰近的點賦予了不同的權重,所以能夠使濾波后的圖像更加平滑,減少黑洞的同時保護邊緣信息,使背景信息更加明顯。

4)圖像特征提取

Kinect設備采集到目標物的三維點云數據后,需要將RGB彩色圖像轉化為灰度圖像,然后進行提取圖像中的特征點。提取圖像特征時采用加速魯棒性特征(Speeded Up Robust Features, SURF)提取算法[9]。

5)點云配準的初始匹配

提取完特征點后,將相鄰的2幀圖像的特征點進行初始匹配。用1個向量來表示特征點,這個向量也稱作特征描述子[10]?,F在有2幀圖像I1和I2,它們的特征描述子的集合分別為X={x1,x2,…,xn}和Y={y1,y2,…,yn},計算它們之間的歐式距離[10]:

(2)

將歐式距離D(x,y)作為衡量兩者相似性的度量,D(x,y)越小,表示特征點的相似程度越高。特征點匹配的方法是:根據式(2)尋找最相似的匹配點,將圖像I2中的所有特征描述子依次和圖像I1的特征描述子向量進行計算比較,求得的D(x,y)最小的1對特征描述子便是最佳匹配的特征點,按上述過程重復I1中所有的特征描述子,求得所有的最佳匹配的特征點。

1.2 點云拼接算法的拼接分析

ICP算法是基于最小二乘法原理的最優匹配算法。ICP算法求解變換參數是關鍵,對旋轉和平移用以下7個參數向量表示[7]:

(3)

式中:R=[q0qxqyqz]表示旋轉矩陣;T=[txtytz]表示平移矩陣。

ICP處理過程如下:找出曲面S上對應目標點集Pk中點的點坐標的最近點的集合Prk。針對點集Pk和Prk,先計算出它們的重心的坐標,再將點集中心化,獲得新的點集和它的正定矩陣N。計算出最大特征向量,也就是殘差平方和最小的旋轉矩陣R。計算出R和T確定變換參數后,再借助2個坐標的重心進一步求出2個點集的重心的差值。由R、T向量迭代后生成1個新的點集Pk+1。迭代終止的條件為目標距離的平方和小于設定的閾值即迭代結束。ICP迭代結束后就完成點云數據的拼接,得到完整的三維模型。單次迭代點云拼接的偽代碼如下:

Input:

q∈Q;參考點

p∈P;待匹配點

R0;初始3D旋轉矩陣

T0;初始3D平移矩陣

Output:

R;最終3D旋轉矩陣

T;最終3D平移矩陣

1Ptem=Reproject(P,R0,T0);位姿變換過程

2 for iter is 1 to max_iter do

3 [Ptem]=Search NN(Q);搜索最近點過程

4 [Rt]=Estimate Trans (Ptem,Q,Rtem,Ttem);求解最終姿態變換矩陣

5 P′-Reproject(Ptem,Rt);

6 end for

7 returnRt;

1.3 改進ICP算法的拼接分析

傳統ICP算法只對三維模型的表面結構感興趣,也就是只采用深度信息,沒有關注3D點云的RGB圖像信息。同時存在著查找最近點的速度慢和效率低的問題,并且傳統ICP算法魯棒性較差,匹配點對時容易出現大量錯誤點對。本文提出了基于K-D樹的改進ICP算法。K-D樹分為三維,在每一維上都依據坐標的大小分開所有子節點。首先第一維坐標小于根節點安排在左子樹,大于根節點就安排在右子樹。同理第二維和第三維也按相同的方法安排。三維K-D樹結構如圖3所示。

圖3 三維K-D樹結構

K-D樹搜尋方式是循環搜尋,需要執行回路追蹤,追蹤到根部以找到最近點。要增強系統的魯棒性,則需要剔除系統的異常值。目前有很多種方法剔除異常值,如閾值法是將點對的距離與設定的閾值相比較,若大于閾值,則剔除該異常點對,即將它的權重賦為0?;蛘邔⒕嚯x換成均方差等。采用線性最小二乘方法優化點到切平面目標函數,并提出一種新的匹配點對篩選策略。采用K-D樹搜索點云域中原始點云P的k個最臨近點的集合Pk,其搜索領域半徑為[11]:

(7)

式中,Pk={Λ(1),Λ(2),…,Λ(k)}。

改進ICP算法流程如下:點云初始配準。使用奇異值分解法達到點對點距離函數的最小化,即計算原始點云P和目標點云Q去中心化的協方差矩陣;從而計算得到初始配準的矩陣;然后對原始點云數據中所有的點P采用初始配準矩陣進行旋轉平移變換。不斷循環迭代下面的過程,直至滿足迭代的次數大于最大迭代次數或者相鄰的2次配準的矩陣的差值小于設定的閾值。存在原始點云數據集合中的點P,采用K-D樹搜尋的方式在目標點云Q中尋找最近的點y,作為待處理的匹配點。篩選匹配點對,并保留符合約束條件的匹配點對集合,采用線性最小化二乘法使目標函數最小化,可計算出匹配點對和之間的最優變換T;通過變換矩陣T經旋轉和平移更新上一次迭代的原始點云P。

2 實驗及結果分析

2.1 實驗設備環境及操作方法

實驗在普通封閉的室內環境下進行,同時注意避免強光源等的干擾。實驗設備為Linux系統的計算機和Kinect設備,硬件要求低。開發工具和軟件平臺是:C++、OpenCV和CodeBlock。操作過程為:啟動Kinect和相關軟件后,操作人員手持Kinect設備從固定點開始采集深度信息和RGB圖像,Kinect設備應該保持離墻壁或者目標物2 m的距離,觀測電腦上的實時特征點采集情況,緩慢移動Kinect設備,掃描全室內的環境和物品,同時使Kinect設備在室內移動1個完整的閉環,但也要注意避免出現突然跳躍掃描1個與當前特征點不相鄰的物體。當Kinect設備回到最初的起點時,掃描完成。退出當前軟件,執行數據處理配準和融合重建后便可生成三維模型。

2.2 傳統ICP和改進ICP重建效果對比

1)單一場景模型

傳統ICP算法所建立的三維模型如圖4(a)所示。采用改進ICP算法測試結果如圖4(b)所示。

(b)改進ICP算法模型

圖4(a)中所標的1和2處的椅子腿有明顯的重影,也就是產生了錯亂的情況。錯亂產生的原因可能是異常值沒有及時剔除或者是干擾等問題造成的累計誤差過大,所以需要降低三維重建過程中產生的誤差。圖4(b)中的椅子輪廓清晰,外表無重影,沒有出現圖4(a)中椅子錯亂重疊的情況,三維重建的模型效果大大優于傳統標準的ICP算法,圖4(b)能夠直接地反映椅子的顏色、外觀、規格等參數,說明改進ICP算法的三維重建效果有較大進步。

2)多場景模型

為了驗證改進ICP算法在多場景模型中的重建效果,分別進行平層公寓和復式公寓的測試,結果見圖5。圖5(a)是1幅平層公寓室內環境的三維重建圖,包含1個小隔間,該模型清晰反映了室內的物體擺放情況和建筑輪廓,同時室內物品沒有發生錯亂,說明改進ICP算法在多場景下的三維重建效果佳,克服了傳統ICP算法重建速度慢以及部分區域容易發生錯亂的情況。圖5(b)是1個復式公寓的一樓的三維模型,該模型清晰反映了該公寓的建筑結構、裝修風格和物體的布置情況,也說明基于Kinect的室內重建不僅僅可以應用于單一封閉房間,還能用于多個連通房間的相對封閉環境完成三維重建,并且效果良好,未來可以廣泛應用于建筑、售房、考古等行業,通過三維重建的模型可以在電腦上直觀詳細地了解房間建筑的具體情況。

(a)平層公寓三維重建模型

(b)復式公寓三維重建模型

2.3 傳統ICP和改進ICP耗時對比

改進ICP算法相較于傳統ICP算法在處理速度上也大大改善。對單一場景模型和多場景模型分別進行耗時測試,如表1所示。

在單一場景模型中,通常完成1個面積在30 m2的房間三維重建,傳統ICP算法的處理時間為1.31 min,而改進ICP算法計算的處理時間為0.67 min;在多場景模型中,通常完成1個面積在30 m2的房間三維重建,傳統ICP算法的處理時間為8.06 min,而改進ICP算法計算的處理時間為5.23 min,速度大大加快,同時也能節省計算機的內存。此外,在重建模型的點云匹配殘差均方根誤差(Root Mean Square, RMS)方面[12],改進ICP比傳統ICP的RMS值更低,說明改進ICP算法的重建精確度更高。

表1 不同模型重建耗時比較

3 結語

針對傳統三維重建耗時長和設備昂貴的問題,本文提出了基于Kinect的3D全景圖像掃描控制系統,該系統不必使用大型專業激光掃描設備,僅僅依賴Kinect和計算機便可完成普通的室內三維重建,對環境的適應性強,簡單易操作。對三維重建的過程進行了實驗驗證,比較了2種ICP算法拼接的三維模型圖,分析了誤差產生的原因。結果表明,改進ICP算法能夠很好地完成室內三維模型,三維重建速度較快,誤差小,沒有明顯的物品位置錯亂等情況,整體輪廓清晰,能滿足日常需要。

猜你喜歡
三維重建濾波物體
基于Mimics的CT三維重建應用分析
深刻理解物體的平衡
我們是怎樣看到物體的
基于關系圖的無人機影像三維重建
三維重建結合3D打印技術在腔鏡甲狀腺手術中的臨床應用
多排螺旋CT三維重建在頜面部美容中的應用
RTS平滑濾波在事后姿態確定中的應用
為什么同一物體在世界各地重量不一樣?
基于線性正則變換的 LMS 自適應濾波
基于隨機加權估計的Sage自適應濾波及其在導航中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合