龔志杰,陳崇成
(福州大學 地理空間信息技術國家地方聯(lián)合工程研究中心,福州 350108)
相機位姿估計問題,是指在相機內(nèi)參已知的情況下,給定序列影像,求解序列影像對應的相機位置與姿態(tài)的問題。是計算機視覺中的經(jīng)典問題,現(xiàn)已廣泛應用于攝影測量、SLAM、增強現(xiàn)實等多個方面。
關于三維重建中的相機位姿估計,Lei等人采用網(wǎng)格運動統(tǒng)計特征匹配算法進行匹配驗證。將圖像序列劃分為多個子序列,并分別進行獨立重建與優(yōu)化,解決了累積誤差逐漸增大時攝像機姿態(tài)漂移驗證問題。劉東生等人利用深度相機獲取的深度與色彩信息,以幀到模型的方式跟蹤相機,以對應點的歐氏距離和亮度信息為約束,優(yōu)化全局相機位姿。但是重建時間過長,且內(nèi)存消耗巨大。徐浩楠等人提出基于半直接法SLAM的稠密三維重建系統(tǒng),通過半直接法優(yōu)化獲得較精確的相機位姿。張文哲等人提出了一種基于非共面合作目標與EPnP算法結合的單目視覺位姿測量方法。通過獲得的高對比度圖像和提取出的高精度中心坐標,再采用EPnP算法對動平臺的位姿進行求解。但是,該方法只適用于小場景。
本文提出了一種基于增量式運動結構估計的相機位姿估計算法。該算法引入圖像匹配約束條件,提高圖像匹配精度,利用EPnP解決3D-2D問題,確保相機位姿估計的魯棒性與準確性。
本文提出了一種基于增量式運動結構估計的相機位姿估計算法,技術路線如圖1所示。將傾斜攝影影像和單體化精細模型白膜作為輸入數(shù)據(jù),具體步驟如下:
圖1 基于增量式運動結構估計的相機位姿估計技術路線圖Fig.1 The technical route of camera pose estimation based on incremental motion structure estimation
(1)利用尺度不變特征轉換(Scale-InvariantFeature Transform,SIFT)算法,提取影像的特征點;使用基于KD-Tree的BBF(Best Bin First)算法,實現(xiàn)影像之間的特征匹配。
(2)針對特征點匹配過程中產(chǎn)生的錯誤匹配問題,采用多種約束條件,實現(xiàn)對匹配點對的進一步篩選。去除錯誤匹配的點對,并使用RANSAC算法進行幾何驗證。
(3)采用增量式運動結構生成方法。首先進行初始化,通過匹配點對數(shù)量與兩視點間距離(基線長度),選擇出一對圖像作為初始圖像;利用對極幾何計算兩者的坐標轉換關系,從而建立序列重建的初始框架。初始化后主要執(zhí)行步驟可做分述如下:
①選取與當前圖像匹配點最多的圖像(記作I)。
②對I解求PnP(Perspective-n-Point,PnP)問題來估計對應的相機位姿。
③對I進行三角測量,得到新的三維點并與已生成的三維點進行配準。
④對所有已生成的三維點和已估計出的位姿進行光束平差法處理,實現(xiàn)非線性優(yōu)化。
迭代上述步驟,直到圖像全部迭代完畢,得到所有圖像的場景稀疏點云與相機位姿信息。
1.2.1 特征提取
圖像包括點、線、面等特征,本文主要討論點特征的提取。常用的特征點提取方法有FAST算法、SIFT算法、SURF算法、ORB算法等。通過特征描述子對特征進行表示,特征描述子又被分成整體特征描述子與局部特征描述子。其中,局部特征描述子存儲了特征的區(qū)域信息,被廣泛應用于三維重建中。
為了確保相機姿態(tài)參數(shù)的精確度,本文選擇SIFT算法進行圖像特征提取,SIFT算法具有尺度不變與旋轉不變性的特點,是一種穩(wěn)定可行的局部特征檢測與描述方法,雖然其效率不如SURF與ORB算法,但是由于SIFT算法基于浮點內(nèi)核計算特征點,其提取的特征在空間與尺度上定位更為精確,有利于提高相機位姿估計的精度。SIFT算法流程步驟具體如下。
基于尺度空間的極值點搜索,檢索圖像所有像素點,對比像素點與其同一尺度空間及相鄰尺度空間的全部相鄰的點。目標圖像的相鄰尺度空間如圖2所示。由圖2可見,即需要將點所在圖像的3×3鄰域、與上下2個相鄰的尺度空間圖像的3×3鄰域、共26個像素點進行比較。若點的像素值同時大于或者小于這26個像素點時,則點為極值點。
圖2 目標圖像的相鄰尺度空間Fig.2 The adjacent scale space of the target image
針對圖像尺度空間最上層與最下層缺少相鄰尺度空間的情況,在頂部通過高斯模糊生成3張圖,從而滿足尺度變換的連續(xù)性。
由于極值點是在對連續(xù)空間采樣得到離散空間的基礎上進行搜索得到的,故存在一些極值點并不是真正的特征點,需要對極值點進行篩選,去除那些低對比度的極值點以及不穩(wěn)定的邊緣響應點,提取出正確的極值點集合。
確定特征點主方向。刪除不符合的極值點后,就能夠獲得每個特征點的尺度,則相應的尺度空間值(,)為:
其中,
則每個點(,)的梯度模(,)可由式(3)求得,方向(,)可由式(4)求得:
通過直方圖統(tǒng)計梯度的幅角。直方圖的縱軸為梯度幅角的累計值,橫軸為梯度的方向,則特征點的主方向為直方圖中最大值,輔方向為直方圖的次峰值(超過最大值的80%),故特征點的方向只和像素的梯度方向有關,從而能確定特征描述子的旋轉不變性特點。
生成特征描述子。經(jīng)過上述步驟獲得所有特征點的位置、方向與尺度信息后,通過一組向量來生成特征描述子。生成過程的步驟重點可以表述為:矯正旋轉主方向,保證旋轉不變形;生成特征描述子,形成一個4×4×8維的特征向量;對特征向量長度實施歸一化,從而減少光照的影響。
1.2.2 特征匹配
由于是對傾斜攝影影像進行圖像特征匹配,影像本身具有經(jīng)緯度坐標。因此,本文借助圖像的經(jīng)緯度坐標設定閾值,對每張影像進行最近鄰搜索,只對一定距離范圍內(nèi)的影像進行特征匹配,從而達到提高算法效率的目的。
通常,圖像特征匹配都是利用最近鄰特征點的歐氏距離同次近鄰特征點的歐式距離的比值,與設定的閾值對比大小,來判斷是否為匹配點對。而文獻[11]中提出,匹配點最近鄰特征點的歐氏距離與匹配結果的正確與否存在一定關系。當最近鄰特征點的歐氏距離值超過0.3時,特征匹配正確率非常低、甚至為零。為了提高效率,本文采用基于KDTree的BBF算法,計算源圖像中每個特征點到目標圖像上最近鄰特征點、次近鄰特征點的歐氏距離。若最鄰近特征點的歐氏距離大于0.3,表示匹配錯誤,則去除匹配點;若最鄰近特征點的歐氏距離小于0.3,則繼續(xù)計算最近鄰特征點的歐氏距離與次近鄰特征點的歐式距離的比值。以往大部分文章都是采用low推薦的閾值0.8,但由于大尺度影像中特征點較多的情況卻不適用。經(jīng)過多次實驗比較,本文設定閾值為0.5,當最近鄰特征點的歐氏距離同次近鄰特征點的歐式距離的比值大于0.5時,表示源圖像的特征點在目標圖像里不存在匹配點,反之則表示為正確的匹配點對。
在此基礎上,繼續(xù)采用雙向匹配的特征匹配檢驗方法進行驗證。即:當且僅當源圖像的特征點與目標圖像的特征點同時匹配時,才表示此特征點對匹配正確,否則刪除該特征點對。
1.3.1 初始化
因為增量式SFM的重建策略是先選擇種子圖像進行初始重建,然后再不斷地添加新的圖像,所以種子圖像的選擇影響了相機位姿的能否恢復。同時在增量的過程中,種子模型的位置也決定著重建與相機位姿求解的準確性與魯棒性。
初始圖像對應該具有大量的匹配點對且兩視點間距離(基線長度)大,能夠魯棒地估計初始2幀重構。本文選擇具有最大匹配對數(shù)量的圖像對,同時不能很好地構建匹配圖像對之間的單應性關系。所謂單應性,就是對2張圖像進行的變換建模,若單應性不能夠擬合2張圖像之間的對應關系,就可以推斷出2張圖像拍攝位置是有一定的距離,并且都涵蓋了相似的三維場景結構。在估計單應性矩陣方面,本文采用RANSAC算法,根據(jù)求解過程中獲得的與單應性有關的特征匹配百分比,來確定初始圖像對。特征匹配的內(nèi)點百分比越低,則圖像侯選排名越高。同時設定一定的閾值,防止發(fā)生距離過遠導致重建失敗的現(xiàn)象。
確定初始圖像對后,利用分解本質(zhì)矩陣來獲得初始圖像的相機外參數(shù)(相對旋轉矩陣與相對平移矩量)。根據(jù)對極幾何的理論基礎可知,本質(zhì)矩陣擁有5個自由度,故其最小的支撐點為5對匹配點,即至少需要5對匹配點才能夠求解出本質(zhì)矩陣。因此,本文采用經(jīng)典的五點法對本質(zhì)矩陣進行解算。利用奇異值分解,根據(jù)本質(zhì)矩陣的秩為2的屬性,求解出相機的相對平移量,再構建方程組解求相機的相對旋轉矩陣,得到如圖3所示的4組結果。利用相機與三維點位置(即三維點必須在相機的前部)這一約束關系,來確定正確的相對旋轉矩陣與相對平移量。針對求解出的本質(zhì)矩陣可能不唯一的情況,本文采用Sampson距離最小約束方法,對正確的本質(zhì)矩陣進行認定。
圖3 本質(zhì)矩陣分解獲得的4組可能的解Fig.3 Four groups of possible solutions obtained by essential matrix factorization
將第一張圖像的相機坐標系作為世界坐標系,即可求解出第二張圖像的相機位姿。得到2張影像對應相機的相對位姿后,利用相對位姿以及2張影像的匹配點信息,采用三角測量(Triangulation)得到初始的一組三維點。
1.3.2 圖像配準與點云配準
圖像配準就是在初始化后,獲得初始相對三維坐標與對應攝像機的相對位姿關系的基礎上,不斷配準新圖像,并優(yōu)化當前框架的過程。
新輸入的影像選擇十分重要,因其會對位姿的估計與三角測量的精度產(chǎn)生影響。本文通過從候選圖像中看到的當前已生成場景三維點的數(shù)量,以及在圖像中的分布情況,來選擇新輸入的影像。網(wǎng)格化每張侯選影像,用“空”與“滿”來表示每個格子。若影像中某一格子可見,則將該格子表示為“滿”,且該圖像點評分按照權重(當前層格子的尺寸)進行調(diào)整,如圖4所示。
圖4 圖像的劃分與填充Fig.4 Images division and padding
圖4中,4個圖像評分計算依次為:
在新圖像與已配準圖像的匹配點中,一定存在一部分的匹配點是已配準圖像之間的匹配點,即已經(jīng)獲得了這些特征點的三維坐標,同時又知道這些特征點的像素坐標,從而轉化3D-2D相機位姿估計的問題,即PnP問題。PnP問題的目的,是根據(jù)相機的內(nèi)在參數(shù)以及3D點與其2D投影之間的一組個對應關系,來確定相機的位置和方向。目前求解PnP問題的主要方法有P3P、直接線性變換(DLT)、EPnP和非線性優(yōu)化方法等。以往大部分研究均采用P3P來求解PnP問題,但P3P方法對于相機遠離3D平面(low parallax)或者視角垂直于3D平面的情況下效果欠佳,且無法充分利用所有的侯選3D-2D點對信息。經(jīng)分析對比各種PnP求解方法,本文選擇EPnP方法解決PnP問題。該方法無須迭代求解,時間復雜度為()。計算得到新輸入影像的相機位姿參數(shù)后,利用三角測量生成更多的三維點后,再采用迭代最近點法(Iterative Closest Point,ICP),將新生成的點配準至原有的稀疏點云框架中。
1.3.3 光束法平差
圖像配準與多視圖三角化雖然具有高度相關的結果,但卻是相對獨立的2個步驟,相機位姿估計的不準確會影響三角測量的點的生成,同時,額外的三角測量可能會增加冗余度,產(chǎn)生重投影誤差,從而影響相機位姿的估計,若不對這一情況進行修正改進,SFM時常會快速地漂移到無法恢復的狀態(tài),故需要通過光束平差法來優(yōu)化場景結構,光束平差法是通過校正相機位姿與場景點的位置從而把重投影誤差控制到盡可能小。
本文采用分階段優(yōu)化與全局優(yōu)化的方式,每當重建到一定量級的時候,進行一次光束平差法優(yōu)化,從而減少誤差累積,并在所有影像添加完畢后,對生成的場景點云以及相機姿態(tài)參數(shù)進行全局光束平差法優(yōu)化。在得到所有傾斜攝影影像對應相機的位姿參數(shù)后,利用有效方法對單體化精細模型與增量重建的點云進行幾何配準,間接建立傾斜攝影影像與單體化精細模型的對應關系。
為了驗證本文算法求解出的相機位姿信息精確度,本文采用南溪書院的傾斜影像數(shù)據(jù)進行驗證。實驗中的硬件環(huán)境為:VS2019、系統(tǒng)Windows 10、CPU R7-4800H、內(nèi)存16 GB。
南溪書院傾斜影像序列如圖5所示。由圖5可知,該影像序列擁有豐富的結構與紋理信息,影像大小為6 000像素*4 000像素。
圖5 南溪書院傾斜影像序列Fig.5 Oblique images sequence of Nanxi Academy
圖6為采用本文特征匹配方法運行得到的前后效果對比。
圖6 南溪書院傾斜影像序列匹配結果Fig.6 The matching results of oblique images sequence of Nanxi Academy
實驗中利用本文給出的雙向匹配作為衡量匹配精度的指標,采用本文特征匹配方法前后比較結果見表1。
表1 南溪書院傾斜影像序列匹配結果比較Tab.1 Comparison of matching results of oblique images sequences in Nanxi Academy
由此可見,本文的特征匹配算法在計算效率和匹配精度上均有一定提高,并且匹配點數(shù)也能滿足增量式SFM的要求,且得到的較高精度匹配點的數(shù)量相對更多。
利用本文方法求解出傾斜攝影影像對應相機的位姿參數(shù)后,利用針孔相機成像模型,選擇影像中一些突出部分、如建筑角點等,與開源框架COLMAP、OpenSFM所得到的相機位姿參數(shù)進行對比。通過三維點計算對應的二維影像坐標,統(tǒng)計產(chǎn)生的像素偏差,見表2。
表2 不同方法求解相機位姿參數(shù)精度對比Tab.2 Accuracy comparison of camera pose parameters by different methods
由表2可以看出,利用本文方法求解出的相機位姿參數(shù)相較于COLMAP、OpenSFM在精度上有一定的提升,平均像素偏差小于1個像素點。
本文提出了一種大場景三維重建中的高精度相機位姿估計的解決方案,針對圖像特征提取與匹配精度問題,采用多種約束條件提高特征匹配精度、去除錯誤特征匹配,間接提高了相機位姿估計的精度。研究采用增量式運動結構生成估算相機位姿信息,將3D-2D匹配問題轉化為PnP問題,并采用EPnP方法解算相對相機位姿。實驗結果表明,本文方法得到的相機位姿參數(shù)精度較高,具有較好的魯棒性和穩(wěn)定性。