桂坡坡,葉勤,鄧非
(1.同濟大學(xué) 測繪與地理信息學(xué)院,上海 200092;2.武漢大學(xué) 測繪學(xué)院,武漢 430079)
隨著攝影測量學(xué)、計算機技術(shù)的發(fā)展,數(shù)字?jǐn)z影測量系統(tǒng)無論是理論上還是實踐應(yīng)用中都取得了重大突破與應(yīng)用。在數(shù)字?jǐn)z影測量雙像測圖獲取立體信息中,核線影像占有著重要地位。核線影像是原始立體影像對沿核線進行重采樣而形成,在核線影像上同名像點被約束在同一行,因此是計算機立體顯示的基礎(chǔ)。核線影像大大增強計算機的立體顯示效果,提高立體量測與匹配的精度及速度,是數(shù)字?jǐn)z影測量數(shù)據(jù)處理中自動獲取數(shù)字地面高程的基礎(chǔ),因此在數(shù)字?jǐn)z影測量中具有重要意義。
現(xiàn)有以共線方程為基礎(chǔ)的攝影測量理論已相對完善,國內(nèi)、外主流的商用數(shù)字?jǐn)z影測量系統(tǒng),如JX4、Virtuozo、Inpho等[1]。在進行立體測圖獲取信息時,核線影像的生成流程都采用在相對定向完成后、測圖前對整個像對進行核線重采樣的方式;即在定向模塊中,完成相對定向后即對立體像對進行核線重采樣,生成核線影像。測圖時,測圖模塊直接調(diào)用核線影像進行顯示、計算分析。這種策略需要留出專門的核線影像生成時間、以及專門的存儲空間;若要快速實時地實現(xiàn)立體顯示以及立體信息獲取,則這種處理策略無法滿足要求。
但是隨著攝影測量的快速發(fā)展,目前用于攝影測量或輔助攝影測量的數(shù)據(jù)源越來越多,數(shù)字?jǐn)z影測量工作站一方面面臨著多源數(shù)據(jù)聯(lián)合進行攝影測量的問題,另一方面面臨實時快速的生成產(chǎn)品縮短內(nèi)業(yè)成圖周期的挑戰(zhàn)。而影像對數(shù)據(jù)網(wǎng)上立體發(fā)布以及某些場合如實時街景立體測量中實時化的要求,這些都迫切需要在保證量測精度的同時提高攝影測量系統(tǒng)的工作效率、實時性(這包括定向完成后立體顯示的實時性),為此要求實時快速地顯示與生成產(chǎn)品,縮短內(nèi)業(yè)處理的時間,此時對涉及的立體影像全部生成核線影像從時間上已不允許。
因此,本文針對當(dāng)前數(shù)字?jǐn)z影測量系統(tǒng)常用工作流程存在的實時性差、耗時長并且要有大量空間來存儲生成的核線影像的缺點,運用實時核線重采樣的思想,在定向后對定向模塊下的影像對不再生成核線影像,而是在測圖過程中,采用立體顯示加速策略,在內(nèi)存中實時快速生成所需要影像區(qū)域的核線影像,同時將影像分層分塊,采用線程調(diào)度的方法提高影像的刷新效率,在實施立體測圖過程中實現(xiàn)核線影像的實時重采樣和滿足視覺要求的調(diào)用。
核線重采樣算法中,確定核線重采樣矩陣既是生成核線影像的關(guān)鍵也是實時核線重采樣的基礎(chǔ)。文獻[2-4]中給出了幾種核線重采樣算法,但是這些方法的數(shù)據(jù)針對性較強,普適性不高。文獻[1]及文獻[4]中提到的基于相對方位元素的核線生成算法在數(shù)字?jǐn)z影測量系統(tǒng)中有很強的應(yīng)用性。計算機視覺中,常采用匹配的策略通過計算本質(zhì)矩陣進行對極幾何的恢復(fù),實時性較強,如文獻[5-7],但是限于航空影像的圖幅及拍攝高度,匹配的效率與正確率都將下降,并且恢復(fù)的核線影像對地形圖測制精度較低。本文從普適性及精度的角度出發(fā)采用了文獻[8]中的兩步旋轉(zhuǎn)法。
根據(jù)攝影測量基本原理[8],在已知立體影像對的兩張像片間的相對定向元素后,兩張像片相對于所選的攝影測量參考坐標(biāo)系的姿態(tài)角(φ,ω,κ)已知。從原始影像得到核線影像只需要兩步旋轉(zhuǎn)變換,在重采樣分辨率保持不變的情況下,必然存在重采樣矩陣Rn使得原始影像下像點坐標(biāo)(x,y)到核線影像下像點坐標(biāo)(x′,y′)存在唯一映射,即
X′=RnX
(1)
圖1 原始影像轉(zhuǎn)換核線影像示意圖
第一步:將原始影像旋轉(zhuǎn)到絕對垂直位置。這里絕對垂直位置是指影像平面與所選的相對定向攝影測量參考坐標(biāo)系下XOY平面平行的位置。此步旋轉(zhuǎn)的旋轉(zhuǎn)矩陣通過像片相對于攝影測量參考坐標(biāo)系的3個角元素來確定,即可完成原始影像旋轉(zhuǎn)到絕對垂直位置的轉(zhuǎn)換。
X⊥=RX
(2)
其中,
(3)
φ,ω,κ為影像拍攝時刻的相機相對于攝影測量參考坐標(biāo)系的姿態(tài)角,c,s分別為三角函數(shù)cos,sin的縮寫。
第二步:將影像由絕對垂直位置旋轉(zhuǎn)到核線影像位置,此步涉及繞基線旋轉(zhuǎn)影像,此時旋轉(zhuǎn)矩陣用Rb表示。
X′=RbX⊥
(4)
(5)
首先繞Y軸旋轉(zhuǎn)絕對垂直影像Φ,其次繞Z軸旋轉(zhuǎn)K。為使核線影像的大小最小,采用式(6)所得Ω角度繼續(xù)繞X軸旋轉(zhuǎn)。式(6)中?′和?″分別代表立體影像左右片與相對定向所選參考坐標(biāo)系X軸的旋轉(zhuǎn)角(如果參考坐標(biāo)系是地面已知坐標(biāo)系,則為左右片外方位角元素中繞X軸的旋轉(zhuǎn)角)。
(6)
Rb=RΚ*RF*RΩ
(7)
因此有:
(8)
令
(9)
(10)
(11)
式(10)給出了由原始影像點坐標(biāo)計算核線影像點坐標(biāo)的正算式,式(11)給出的是由核線影像點坐標(biāo)計算原始影像上點坐標(biāo)的反算式。
由式(9)知核線采樣矩陣只與影像對左右片之間的相互位置關(guān)系元素有關(guān)。對于像對中左右影像,繞基線的旋轉(zhuǎn)矩陣Rb是共有的,Rb與各自像片旋轉(zhuǎn)矩陣相乘即可以得到對應(yīng)影像的核線重采樣矩陣。根據(jù)式(10)、式(11),進行核線影像坐標(biāo)與原始影像坐標(biāo)轉(zhuǎn)換時,需要知道原始影像與核線影像的主距,實際解算中,一般假設(shè)兩者主距相等,同為原始影像的主距f。
在實時生成核線影像測圖前,需對影像進行統(tǒng)一預(yù)處理,生成金字塔影像。影像定向完成后,確定影像對4個角點在核線影像上的相應(yīng)位置。在實時測圖前,不對已定向的影像對進行核線重采樣生成核線影像,而是直接在測圖過程的顯示環(huán)節(jié),在內(nèi)存中完成視場區(qū)域內(nèi)影像的核線重采樣。由于只對視場區(qū)域內(nèi)的影像進行核線生成,所以涉及的計算數(shù)據(jù)比整個影像的核線生成明顯減少,計算速度快;但由于視場會隨著測圖區(qū)域的變化而移動,所以在實時性采樣過程中要研究立體顯示加速策略。
整個基于實時性采樣的立體測圖顯示過程為:影像靜態(tài)預(yù)處理、實時預(yù)處理、基于立體顯示加速策略的影像塊實時采樣。最終實現(xiàn)立體顯示、為測圖做準(zhǔn)備。
預(yù)處理是影像塊實時采樣前的數(shù)據(jù)準(zhǔn)備工作,以提高實時立體顯示時影像的加載速度。預(yù)處理包括靜態(tài)預(yù)處理與實時預(yù)處理。
3.1.1 靜態(tài)預(yù)處理
靜態(tài)預(yù)處理是對原始影像建立影像金字塔,以原始影像為單位進行,與像對信息無關(guān)。影像金字塔是以影像寬與高減半的方式向上創(chuàng)建,每一層金字塔影像的寬和高都是其下一層金字塔影像的一半且是其上一層金字塔的兩倍。在實時顯示的調(diào)用過程中,通過視口顯示的影像縮放比確定需要調(diào)用影像的金字塔層級,如當(dāng)縮放倍數(shù)為8時,根據(jù)縮放倍數(shù)調(diào)用金字塔第3層影像。
影像金字塔的建立除可以提高影像的調(diào)度速度,在大范圍粗略顯示時還可以減少了內(nèi)存的冗余處理。當(dāng)顯示范圍很大、影像縮小不需要精細(xì)的顯示影像時,可不必對原始影像對進行核線重采樣,而是直接調(diào)用金字塔上層影像。這減少了內(nèi)存中處理的像素數(shù)據(jù)、縮短了處理時間,保證了縮放的流暢性。
3.1.2 實時預(yù)處理
實時預(yù)處理是為實時顯示影像對,進行立體觀察做準(zhǔn)備。需對影像對的加載或切換進行操作,為了保證視覺的連續(xù)性與穩(wěn)定性,這些處理有很強的時間要求被稱為實時預(yù)處理。它主要包括計算重采樣矩陣及核線影像分塊等。核線重采樣矩陣只與影像對中左右片的相互位置關(guān)系元素有關(guān),當(dāng)影像相對定向完成后,左右片的核線重采樣矩陣唯一確定。實時顯示影像對不變時,核線重采樣矩陣保持不變;因此實時預(yù)處理過程是以像對為單位進行的,在顯示影像對改變時,重采樣矩陣也相應(yīng)發(fā)生變化,所以該預(yù)處理被稱為實時預(yù)處理。
在相對定向完成、已知立體影像對的兩張像片間的相對定向元素后,核線重采樣矩陣也已知,此時根據(jù)正算式(10)計算左右像片影像4個角點(0,0)(0,H)(W,H)(W,0)對應(yīng)在核線影像上的坐標(biāo)(X1,Y1)(X2,Y2)(X3,Y3)(X4,Y4),確定角點中X、Y的最大最小值,分別以X、Y最大最小值之差確定影像的寬與高,以X、Y最小值為影像的左下點。在影像對的立體顯示中,通用的三維渲染引擎(如OpenGL等)對影像大小為2的整數(shù)次方的支持較好,同時綜合考慮立體刷新的效率與速度,研究中采用256*256的分塊大小,將確定的核線影像范圍分成若干影像塊,右側(cè)及底部不足整數(shù)塊時以實際大小處理。
經(jīng)過影像預(yù)處理,任一像點坐標(biāo)對應(yīng)在任意金字塔層上的坐標(biāo)、以及在核線影像上對應(yīng)的分塊號和塊內(nèi)坐標(biāo)關(guān)系都被確定。因此已知當(dāng)前塊上某點坐標(biāo),通過塊號以及金字塔層級即可以算出在核線影像上的坐標(biāo),根據(jù)反算公式(11)可計算出該點在原始影像上對應(yīng)坐標(biāo),并進行前方交會等運算。
為提高海量遙感影像的讀取與顯示速度,影像的分層與分塊是常用策略,文獻[9][10][11]都采用了這種處理方式。本文中針對航空攝影立體影像對進行分層分塊,同時完成兩張影像的調(diào)度,通過當(dāng)前測標(biāo)位置的Z值及影像對的相對位置關(guān)系,確定對應(yīng)的影像塊。
在顯示算法實現(xiàn)過程中,為提高影像的顯示刷新速率,將每一個影像塊作為一個線程在后臺進行調(diào)度。每一幀中都要判斷是否有影像塊移入或移出當(dāng)前視口,對移入移出當(dāng)前視口的影像塊分別進行加載和卸載。為保障影像刷新的流暢性,在實現(xiàn)中添加緩存器,其實質(zhì)是一個存儲列表,存儲著下一幀可能出現(xiàn)在當(dāng)前視口內(nèi)的所有影像塊,即沿當(dāng)前顯示影像塊四周的影像塊。如圖2所示,圖中每小格代表一個影像塊,其中白色為當(dāng)前顯示影像塊,灰色區(qū)域為緩存器中保存的影像塊。
影像塊的加載與卸載過程是與緩存器進行交互,從當(dāng)前緩存器中進行影像塊的加載,卸載的影像塊并不立即清除,而是重新保存在緩存器中。這種設(shè)置避免了程序直接與硬盤數(shù)據(jù)進行通信,可加快數(shù)據(jù)的處理,提高顯示速度。同時,緩存器通過線程在后臺根據(jù)當(dāng)前位置信息不斷計算更新可能在下一幀出現(xiàn)的影像塊。
圖2 當(dāng)前視口影像塊與緩存器中影像塊關(guān)系圖
影像塊的采樣作為一個線程在后臺進行運行,因此核線影像生成的實時性一方面體現(xiàn)在核線影像存儲在當(dāng)前內(nèi)存中,另一方面體現(xiàn)在核線影像的獲取是根據(jù)當(dāng)前視口而決定的。
影像塊的采樣算法流程如表1所示。
表1 影像塊的采樣算法
根據(jù)當(dāng)前塊號計算其在核線影像上的角點坐標(biāo)(x1′,y1′)(x2′,y2′)(x3′,y3′)(x4′,y4′)反算至原圖像上(x1,y1)(x2,y2)(x3,y3)(x4,y4),確定4點中x、y的最大最小值,分別以x、y最大最小值之差確定影像的寬與高,以x、y最小值為影像的左上點,在對應(yīng)影像金字塔層上取值。
采樣生成顯示影像塊的核線影像時,遍歷該核線影像塊、對影像塊上每點利用式(11)反算其在原圖像上坐標(biāo),采用雙線性插值法進行點的灰度插值,得到此時需顯示影像塊的核線影像。
圖3 立體像對
實驗用計算機配置為:8GB內(nèi)存、Intel Core i7(2.9GHz)CPU。實驗數(shù)據(jù)如圖3所示,是由膠片掃描得到的數(shù)字原始影像,主距f為210.681mm,影像大小皆為8328*8375,像素大小為0.02799mm/pixel。該立體像對的基線向量為(322.95,-9.32,1.15),各分量根據(jù)攝影比例尺調(diào)整到與實地大小相接近,單位為m。左右影像的內(nèi)標(biāo)定系數(shù)及姿態(tài)角如表2所示,其中,a10、a11、a12、a20、a21、a22為內(nèi)定向參數(shù)。
表2 像對左右片的各項參數(shù)
由于式(2)中的算式都是建立在以像主點為原點的像平面坐標(biāo)系上的,因此若基于掃描影像進行核線重采樣,則應(yīng)該對獲得的影像像素坐標(biāo)(i,j)進行內(nèi)定向,將像素坐標(biāo)轉(zhuǎn)換為像平面坐標(biāo)系中的坐標(biāo)。
內(nèi)定向公式為:x=a10+a11i+a12jy=a20+a21i+ka22j,此時可將像點的像空間坐標(biāo)表示為如下形式:
(12)
根據(jù)表1結(jié)合式(9)和式(12)計算左片的核線重采樣矩陣為:
表3是由立體像對重疊區(qū)域選取6個地面模型點(由于左片攝站點為模型的原點,其在地面坐標(biāo)系中的坐標(biāo)X、Y、Z大約為:500934、543180、910,所以地面模型點的X、Y會出現(xiàn)負(fù)值,而地面點的Z都為負(fù)值、在-900m左右),來驗證算法正確性。因為相對定向后,像片相對于參考坐標(biāo)系的方位元素已知,由地面模型點的坐標(biāo)利用共線條件方程式計算該點對的左右像點坐標(biāo),進而利用式(2)中的方法求得對應(yīng)的核線影像上點的坐標(biāo)。根據(jù)核線影像上下視差已消除這一特點驗證算法的正確性。
表3 模型點坐標(biāo)及其對應(yīng)核線影像上下視差
計算這6點上下視差的中誤差為Δ=0.00124135pixel。由于像片拍攝的高度約為900m,地面分辨率約為0.12m/pixel,0.12Δ非常小,因此算法誤差可以忽略不計,即算法精度完全滿足測圖需求。
根據(jù)核線重采樣矩陣生成全幅核線影像的全局用時166737.36ms。
表4是通過原始影像4個角點正算到核線影像上坐標(biāo),分別取最大值與最小值,計算在影像快速顯示時,將影像按256*256分塊的行列分塊數(shù)。
表4 核線信息
表4中左下點坐標(biāo)是以像主點為原點的像素坐標(biāo)。
以(322.54,-10.12)對應(yīng)的模型點出現(xiàn)在視口內(nèi)為例來說明立體顯示的策略:
假設(shè)當(dāng)前測標(biāo)Z值為-902.41m,計算點(322.54,-10.12,-902.41)對應(yīng)在核線影像上的像點坐標(biāo)及對應(yīng)塊信息如表5所示。
根據(jù)當(dāng)前影像縮放比計算當(dāng)前影像的金字塔層級?,F(xiàn)假設(shè)處于第0級,即在原始影像上取值。若當(dāng)前影像不在第0級時需要將坐標(biāo)歸算到對應(yīng)層級的影像上。分別將塊的4個角點反算至原始影像上,取其外包圍矩形內(nèi)數(shù)據(jù),內(nèi)存中對塊逐像素采樣。圖4中給出了表4信息對應(yīng)的左右核線影像區(qū)塊圖。區(qū)塊調(diào)度過程中,受限于分塊方式及當(dāng)前測標(biāo)Z值,同一次調(diào)入的左右核線區(qū)塊范圍不一定相同,甚至不會出現(xiàn)相同區(qū)域,但當(dāng)前視口內(nèi)所有左核線與右核線區(qū)塊覆蓋范圍的總和具有重疊區(qū)域。
表5 影像塊信息
圖4 區(qū)塊采樣圖像
每個區(qū)域的重采樣時間約為4.35ms。假設(shè)當(dāng)前窗口的刷新率為30,則完成一幀所用的時間約為33ms;同時刷新所有當(dāng)前顯示在視口內(nèi)的左右節(jié)點影像會造成卡屏,切換不流暢,因此利用線程根據(jù)當(dāng)前位置不斷刷新可能出現(xiàn)或可能移出的節(jié)點、能很好的保證切換的流暢性。
上面的實驗分析是在完成相對定向后進行的處理,模型依據(jù)的坐標(biāo)系是以左片攝站點為原點的參考坐標(biāo)系。當(dāng)已知立體影像對的外方位元素時,上述方法與策略也可以進行立體影像對的實時核線影像生成與顯示,此時依據(jù)的是地面參考坐標(biāo)系,但是計算的方法、公式以及顯示的策略與上面完全一致。
本文針對數(shù)字?jǐn)z影測量工作站中核線影像的生成流程,提出了基于實時核線重采樣思想的立體影像調(diào)度方法,該方法摒除了傳統(tǒng)數(shù)字?jǐn)z影測量系統(tǒng)定向模塊中預(yù)先生成核線重采樣過程,而是在測圖顯示過程中對影像實時進行核線重采樣。因此可簡化操作流程,同時減少硬盤存儲空間、降低文件的組織復(fù)雜度。通過本文的算法實現(xiàn)與驗證表明,該方法在精度上滿足一般測圖目的的要求,在顯示時間與速度上在現(xiàn)有的機器配置條件下,滿足實時顯示、觀測的要求,因此方法具有很強的可行性。
本文的研究方法可以為大測區(qū)內(nèi)多像對之間的切換提供策略支持,即可以完成像對間的無縫漫游最終達到無縫測圖的目的。文獻[12]指出只有網(wǎng)絡(luò)與計算機集群處理技術(shù)充分地應(yīng)用于新一代的數(shù)字?jǐn)z影測量系統(tǒng)中,才能使數(shù)字?jǐn)z影測量發(fā)展到一個新的臺階。本文的研究對基于網(wǎng)絡(luò)的立體影像顯示同樣適用,在立體像對的相對位置關(guān)系(或者外方位元素已知時),不需經(jīng)過核線重采樣過程,即可在客戶端或者瀏覽器中查看基于核線影像的立體模型。因此也是影像對網(wǎng)絡(luò)立體顯示的基礎(chǔ)之一。
參考文獻:
[1] 張祖勛,張劍清.數(shù)字?jǐn)z影測量學(xué)[M].武漢:武漢大學(xué)出版社,1997:233-255.
[2] 袁修孝,吳珍麗.基于POS數(shù)據(jù)的核線影像生成方法[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2008,33(6):560-564.
[3] 李華光,陳鷹.基于數(shù)字糾正的核線影像生成方法[J].山東建筑工程學(xué)院學(xué)報,2004,19(4):45-48.
[4] 王寧,劉源璋,吳平,等.基于相對方位元素的核線影像生成方法[J].測繪與空間地理信息,2011,34(3):254-257.
[5] BJORKMANN M,EKLUNDH J O.Real-time epipolar geometry estimation and disparity[C].The Proceedings of the Seventh IEEE International Conference on.Computer Vision,1999(1):234-241.
[6] BJORKMAN M,EKLUNDH J O.A real-time system for epipolar geometry and ego-motion estimation[C].Proceedings of IEEE Conference on.Computer Vision and Pattern Recognition,2000(2):506-513.
[7] CHUM O,WERNER T,MATAS J.Epipolar geometry estimation via ransac benefits from the oriented epipolar constraint[C].Proceedings of the 17th International Conference on Pattern Recognition,2004(1):112-115.
[8] Toni Schenk.數(shù)字?jǐn)z影測量學(xué)——背景、基礎(chǔ)、自動定向過程[M].武漢:武漢大學(xué)出版社,2009:194-201.
[9] 余粉香,王光霞,萬剛,等.大數(shù)據(jù)量遙感影像的快速調(diào)度與顯示[J].海洋測繪,2006,26(2):27-30,40.
[10] 程偉,王波,石劍龍,等.海量圖像數(shù)據(jù)快速顯示方法及實現(xiàn)[J].地理與地理信息科學(xué),2011,27(1):109-110.
[11] 張涵斐,黃忠紅,孟永軍,等.海量遙感影像的存儲與快速調(diào)度顯示方法[J].測繪與空間地理信息,2011,34(3):36-39,43.
[12] 張祖勛,張劍清,張力.數(shù)字?jǐn)z影測量發(fā)展的機遇與挑戰(zhàn)[J].武漢測繪科技大學(xué)學(xué)報,2000,25(1):23-27.