阮競蕓,厲 犇
(廈門大學嘉庚學院,福建 漳州 363105)
近些年,人們對古跡保護越來越重視。但是經過歲月的侵蝕,大部分古跡都在不同程度上發生了風化、腐蝕甚至人為破壞等情況。如何對已破壞古建筑進行重建,并確保重建后的高還原度成為了古建筑修復領域的主要研究問題。由于三維重建技術不斷發展成熟,其也被廣泛地應用于古建筑還原重建領域中。
王令文[1]等人提出結合點云數據與建筑信息模型(Building Information Modeling,BIM)的古建筑三維重建與信息化管理方法。該方法使用四面體剖分算法建立三角網模型,隨后以點云作為參考目標給出實體模型,并根據實際的模型信息特點,以實現信息化管理。通過實驗證明該方法具有一定的有效性,且構建的信息管理部分能夠在不同階段對建筑的幾何信息進行持續管理。但是該方法受外界噪聲或環境等因素的干擾較大,具有一定的局限性;徐照[2]等人提出基于點云的建筑物表面損傷三維重建與屬性提取方法,通過Kinect采集實際場景和信息,利用點云庫(Point Cloud Library,PCL)對采集后的數據格式轉化,將數據坐標系轉變為與各個構建相對應的坐標系以確定建筑的損傷位置,隨后采用Meshlab切割點云提取主要破損區域信息,最后在地理信息系統(Geographic Information System,GIS)環境內將處理后數據轉為深度圖像,實現對損傷部位信息的提取與重建。該方法的還原精度較高,最終的三維圖像呈現效果較好,但是由于該方法所涉及的算法較多,導致操作較為復雜,且重建的效率較低。
針對上述問題,本文以圖像配準為基本原則,提出一種多視角深度圖配準算法下破損古建筑三維重建。圖像配準就是通過將不同時間,不同條件下(照度、天候以及攝像機位置和角度等)獲得兩幅或兩幅以上的圖像進行匹配和疊加的過程。因此,本文通過相機坐標系的標定獲得相對于標準坐標系各個攝像機的具體坐標,降低外界干擾,隨后以上述攝像機標定為基礎,給出圖像配準方法,并憑借多視角三維拼接確定坐標系旋轉平移前后的局部空間坐標變換關系,該過程中的關鍵部分即是確定旋轉前坐標系、旋轉后坐標系以及攝像機坐標系。三維拼接后通過求解平移向量、縮放因子以及最優旋轉矩陣,快速完成破損古建筑的三維重建。
攝像機標定為三維重建的第一步,主要作用是確定攝像機像素位置與真實三維場景位置間的關系。假設Q(X,Y,Z)表示世界坐標中的一點,q(x,y,f)表示圖像上一點,其中f表示焦距。若O表示攝像機光心,則可以通過平移和選擇將世界坐標轉換為相機坐標,在如圖1所示的相機坐標內,Q的坐標系可以表示為[R|T]Q。

圖1 攝像頭成像模型
因此,Q與q之間的關系可以表示為

(1)
由于最后呈現出的畫面是以像素的方式進行表現的,引入像素坐標m(u,v),則像素對應的相機坐標可以表示為(dx,dy)。在實際操作過程中,像素的坐標中心可能不會與中心光軸完全重合,故引入A=(cx,cy)表示像素中心的偏移,由此可推導出下式

(2)
當通過多個攝像頭進行拍攝時,在實際操作過程中攝像頭做不到完全對齊,因此導致成像平面不能做到完全平行,甚至可能導致兩個不同攝像頭的成像平面發生交錯[3]。因此通過下式對攝像頭進行旋轉平移變換。

(3)
式(3)中,qc1、qc2分別表示2個不同攝像機坐標,R、T表示旋轉和平移矩陣[4]。將該原理應用于多個攝像頭中,若多個攝像機均以某個攝像機為參照,就可以獲得與之相應的旋轉矩陣,從而獲得各個攝像機的具體坐標。
以上述攝像機標定為基礎,給出圖像配準方法,多視角三維拼接的主要就是在于確定坐標系旋轉平移前后的局部空間坐標變換關系。其中主要涉及3種坐標系分別為:旋轉前坐標系、旋轉后坐標系以及攝像機坐標系[5]。旋轉前的平面坐標為XZ,旋轉軸為Y軸。建立旋轉坐標系OtXtYtZt。假設旋轉一定角度后坐標系為Ot1Xt1Yt1Zt1,相機坐標為OcXcYcZc。隨后對轉軸進行標定,轉軸標定指的是確定被測物體繞轉軸在相機坐標系內的具體位置。為簡化標定過程,本文采用棋盤角點信息標定法。具體流程如下:將棋盤標定板放置在旋轉臺上,以某一攝像機坐標為參考,從而獲得標定板角點的位置。棋盤角點的運動軌跡如圖2所示。

圖2 角點運動軌跡
角點通過旋轉而形成的平面方程如下
Ax+By+Cz+d=0
(4)
可將式(4)進一步改寫為

(5)
式(5)中,n表示平面法向,(x,y,z)表示標定板的角點坐標。
理論上講,當任意角點旋轉位置的置數目為3時,即可求出由標定板角點所形成圓的法向,也就是轉軸方向。但是為確保準確性,在實際操作過程中可以通過對多個角點進行求解確保在噪聲干擾下的轉軸方向的魯棒性[6]。在對轉軸上點的求解過程中,可以通過擬合圓心的方法進行,但是由于角點坐標是在三維空間內的,擬合出圓較為困難,因此為能夠使算法實現,將攝像機坐標系條件下的轉軸法向n旋轉至轉臺坐標系下,旋轉的具體方法如下:

R=Icosθ+sinθ[u]×+(1-cosθ)u?u
(6)
式(6)中
(7)

(8)
利用式(6)將攝像機坐標系的轉軸法向n轉換至轉臺坐標系[7],此時旋轉軸可以表示為

(9)
旋轉角度可以表示為

(10)
通過式(6)將角點坐標轉換為旋轉軸坐標系中時,角點所在平面和XZ平面互相平行。角點對XZ平面進行投影弧,即可通過最小二乘法完成圓心擬合[8],獲得圓心坐標,可將其轉為攝像機坐標系下位置Xp=[xp,yp,zp]。
通過上述方法獲得旋轉軸位于攝像機坐標系的具體位置,為進一步求得攝像機和轉臺坐標系間的關系,首先建立兩種坐標系統,隨后根據二者坐標系間的聯系,確定二者間關系。相機坐標系統可以表示為:

(11)
在設定轉臺坐標系統的過程中,需保證旋轉軸始終為Y,X、Z軸可以根據實際情況自由選擇。為了方便操作,將XZ平面和轉軸之間的交點當作轉臺坐標系統的原點。則XZ平面方程可以表示為:Y=0,轉軸的參數方程可以表示為

(12)
式(12)中,轉軸法向n=(nx,ny,nz),t表示轉軸參數[9]。旋轉軸上的一點坐標為Xp=[xp,yp,zp]。


(13)
對兩個坐標系進行對齊處理。最后即可獲得兩個坐標系間的關系如下
R1=RxRy
(14)
在獲得兩個坐標系間關系后,分別取建筑破損部分在兩個坐標系中的一點,將兩點進行融合即可實現三維重建全過程。融合的過程分為兩個部分,一是確定坐標系中一致對應的點集,二為求解變換矩陣,完成兩個矩陣點集的融合。
分別使用P1、P2代表兩個坐標系統,統計古建筑的照片D中破損部分在P1、P2中對應點的數目,具體實現方法為,對于D中每幅圖像K,讀取其在兩個坐標系統中的對應點,定義為Pk1、Pk2。隨后計算出P1、P2投影在K上的像素位置,并對三維點在公共平面內的投影點位坐標進行記錄,其計算公式為
xi=PXi
(15)
式(15)中,Xi表示三維點坐標,P表示與圖像K相對應的攝像機矩陣,xi表示Xi投影至K上的二維點坐標。
將P1、P2投影至圖像K的結果記為K1、K2。通過式(15)計算所得的投影像素點坐標不是整數[10],因此需要對圖像內的每個像素點進行進行坐標取整,取整后將兩張圖像中的像素點坐標位置進行對比分析,并記錄出坐標值相互重合的像素點,將重合像素點組成一個點集A,則這個集合內的點為匹配點。由此即可獲得整體與局部點之間的一致點對。
為實現對應點集內所有點的坐標準確對齊,需要尋找出一個相似變換T,由于兩個坐標系統的對應點是已知的,因此使用具有顯式解的方式對T進行求解。變換T是由三個參數組合而成,分別為平移向量L、縮放因子s、最優旋轉矩陣R′,由此即可將求解問題轉換成最小化目標函數[11]如下:

(16)
隨后通過以下方法求解相應變換。
1)求解平移向量L
首先通過下式計算出P1、P2的幾何中心:

(17)
式(17)中,O表示幾何中心,N表示點的數目,隨后通過所得的O1、O2即可計算出平移向量L如下
L=O1-O2
(18)
在實際操作過程中,采用了坐標歸一化法,將兩個坐標系統的中心點平移至原點O,因此式(16)還可以轉換成如下形式
L=(O1-O2)+(O-O1)
(19)
2)求解最優旋轉矩陣R′
在不考慮縮放因子的條件下,式(18)可進一步簡化為:

(20)
為使系統坐標能夠在選擇變換的過程中確保結構不變,選擇矩陣應該滿足det(R)=1的約束條件。通過OPP算法求解出最優旋轉矩陣R′如下
R′=U·VT
(21)
式(21)中,U、V分別表示特征向量矩陣。
3)求解縮放因子s
可以根據式(22)直接求得縮放因子。

(22)
式(22)中,tr(·)表示矩陣跡[12],通過上述方法完成縮放、平移和旋轉變換后,通過下式將坐標系統P2中的點云轉換至P1坐標系統下:

(23)
綜上,即完成了兩個坐標系統點云的融合,實現了破損古建筑的三維重建。
為驗證多視角深度圖配準算法下破損古建筑三維重建方法的有效性,設計如下仿真分析。為使實驗結果更為直觀,在Visual C++環境下,以用圖像工具庫OpenGL為圖像處理平臺,從重建效果和定量分析兩個角度完成性能驗證。為避免實驗結果的單一性,將文獻[1]方法、文獻[2]方法作為對比,與本文方法共同完成性能驗證。
圖3為兩個不同視角下的破損古建筑的數據圖像,圖4中(a)、(b)、(c)分別表示文獻[1]方法、文獻[2]方法以及本文方法的重建結果。

圖3 不同視角下數據圖像

圖4 不同方法重建效果對比圖
根據圖4可以看出,由于本文使用棋盤坐標定位配準,能夠準確地剔除環境干擾,且準確地恢復了原始圖像的破損部分,且三維重建后的圖像呈現效果更清晰。
在此基礎上,進一步對不同方法展開定量分析,結果如表1所示。

表1 不同算法的定量分析結果
表1中的數據避免,與其它兩種方法相比,本文方法給出的各項相關數值與真實值最為接近,且說明其實際還原度較好,具有較高的實際應用價值。
為還原破損古建筑的真實情況,本文在多視角深度圖配準算法下提出了一種破損古建筑三維重建。方法主要通過棋盤角點信息標定法完成空間坐標和相機坐標之間關系,隨后通過點云融合完成三維重建,實驗證明該方法具有一定的有效性,但是還在以下方面存在不足:
1)在進行圖像配準的過程中,沒有考慮受干擾情況下的測量誤差。由于實際數據較多且其中可能還包含雜點和噪點等因素影響,因此在配準之前需要對數據進行預處理。
2)本文方法針對的是包含像素信息的深度圖像,存在局限性,可以考慮通過其它途徑對深度圖進行圖像化處理,因此下一步將會在不考慮像素信息的條件下對本文算法進行完善,使其的適用性更強,能夠廣泛地應用至更多領域內。