曾安明,蒲德祥,唐 輝,楊 烽
(1.重慶市地理信息和遙感應(yīng)用中心,重慶 401147;2.重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
重慶是“一帶一路”和長江經(jīng)濟(jì)帶的連接點(diǎn),也是西部大開發(fā)的戰(zhàn)略支點(diǎn),隨著“兩地”、“兩高”建設(shè)目標(biāo)的推進(jìn),對高精度數(shù)字正射影像的需求與日俱增。重慶地貌復(fù)雜多樣,東、南、北三面中高山環(huán)繞,中西部丘陵廣布,河流、山脈沿線的地勢起伏較大,最大落差接近3 000 m[1-2]。另外,重慶的云霧天氣頻繁,導(dǎo)致可見光波段的穿透性較差[3],嚴(yán)重影響了衛(wèi)星遙感、大飛機(jī)航拍的成像質(zhì)量。載人直升機(jī)航空攝影雖然能達(dá)到要求,但成本較高且具有一定的風(fēng)險,因此無人機(jī)攝影測量已經(jīng)逐漸成為攝影測量數(shù)據(jù)獲取的重要手段。
受技術(shù)手段以及區(qū)域內(nèi)地形等因素影響,不同生產(chǎn)單位、不同批次的影像在分辨率方面的質(zhì)量差異較大。王海風(fēng)等[4]通過分析傾斜相機(jī)的結(jié)構(gòu)特點(diǎn),給出了面向傾斜影像的列向水平分辨率、列向垂直分辨率、行向水平分辨率的計算公式。曹洪濤等[5]基于傾斜攝影的成像原理,推算了多視角相機(jī)的分辨率數(shù)學(xué)模型。但這些方法沒有顧及無人機(jī)的瞬時位姿影響,且缺少對地形起伏的考慮,所以對特殊地形條件下的無人機(jī)攝影測量無法完全適用。因此,目前重慶的無人機(jī)遙感影像檢查主要通過人工判讀的方法實(shí)現(xiàn),需要消耗大量人力物力,且只能做到抽樣檢查,無法保證系統(tǒng)性、全面性。
本文以數(shù)字?jǐn)z影測量基本原理為基礎(chǔ),綜合考慮相機(jī)畸變、拍攝時的位置與姿態(tài)、地形起伏等,建立像素級分辨率評估計算的嚴(yán)密數(shù)學(xué)模型,并設(shè)計開發(fā)了一款評估軟件。通過實(shí)驗證明,本文方法具有自動化程度高、計算速度快、評估精度準(zhǔn)等優(yōu)勢。
本文提出的無人機(jī)影像空間分辨率評估算法,以帶畸變差改正的共線方程為基礎(chǔ),在數(shù)字高程模型、無人機(jī)影像、傳感器之間建立數(shù)學(xué)模型,可以準(zhǔn)確地分析像素級的分辨率情況。
經(jīng)典的畸變差改正模型[6]:

式中,x、y為像點(diǎn)坐標(biāo);Δx、Δy為像點(diǎn)坐標(biāo)的改正值;x0、y0為像主點(diǎn)坐標(biāo);為像點(diǎn)到主點(diǎn)的距離;k1、k2為徑向畸變系數(shù);p1、p2為切向畸變系數(shù);α為CCD像元非正方形比例因子;β為CCD陣列非正交畸變系數(shù)。
引入畸變差改正的共線方程:

式中,f為影像的內(nèi)方位元素中的主距;Xs、Ys、Zs為攝站坐標(biāo);XA、YA、ZA為物方坐標(biāo);ai、bi、ci(i=1,2,3)為旋轉(zhuǎn)矩陣的9個組成元素,可由3個外方位角元素計算得到。

經(jīng)典的數(shù)字?jǐn)z影測量有3種轉(zhuǎn)角系統(tǒng)[7],分別如下:
根據(jù)r值的正負(fù)大小可以分為高度正相關(guān)、中度正相關(guān)、低度正相關(guān)、高度負(fù)相關(guān)、中度負(fù)相關(guān)、低度負(fù)相關(guān)(見表5)。
1)φ,ω,κ轉(zhuǎn)角系統(tǒng),將偏角φ的旋轉(zhuǎn)軸(Y軸)作為主軸,傾角ω的旋轉(zhuǎn)軸作為第二軸,旋角κ的旋轉(zhuǎn)軸作為第三軸。則:R=RφRωRκ。
2)φ′,ω′,κ′轉(zhuǎn)角系統(tǒng),將傾角ω′的旋轉(zhuǎn)軸作為主軸,偏角φ′、旋角κ′的旋轉(zhuǎn)軸分別作為第二軸、第三軸。則:R=Rφ′Rω′Rκ′。
3)A,ν,κ轉(zhuǎn)角系統(tǒng),主要用于單像攝影測量。將Z軸作為主軸,在旋轉(zhuǎn)中具備空間方向不變的性質(zhì)。ν為攝影光束與鉛垂線的夾角,κ為像片主縱線與y軸之間的夾角。則:R=RARνRκ。
通過對主流軟件進(jìn)行分析(如Pix4dMapper等),其采用了第二種轉(zhuǎn)角系統(tǒng),即φ′,ω′,κ′轉(zhuǎn)角系統(tǒng)。旋轉(zhuǎn)矩陣計算方式如下:

在本文算法中,數(shù)字高程模型(DEM)提供(XA、YA、Za),外方位元素提供線元素(Xs、Ys、Zs)與角元素(φ′、ω′、κ′),內(nèi)方位元素提供(x0、y0、f),畸變校正提供(k1、k2、p1、p2、α、β)。一般而言,α與β可以缺省,也能保證足夠的精度。通過共線方程,可以建立數(shù)字高程模型坐標(biāo)與圖像像素之間的對應(yīng)關(guān)系。對于DEM上一點(diǎn),對應(yīng)像素的(x、y)坐標(biāo)可由共線方程計算得到,此處地面分辨率ρgsd的計算公式:

式中,ρccd為成像感光器件CCD的像元尺寸。
本文實(shí)現(xiàn)的無人機(jī)影像分辨率評估軟件如圖1所示,適用操作系統(tǒng)為Windows 7或Windows 10,編程語言為C#,開發(fā)工具為Visual Studio 2010,運(yùn)行環(huán)境為.Net Framework 4.0。針對DEM數(shù)據(jù)的操作,基于ArcGIS Engine 10.0進(jìn)行二次開發(fā)[8]。針對數(shù)字圖像的操作,調(diào)用OpenCV功能實(shí)現(xiàn)[9]。

圖1 無人機(jī)影像分辨率評估軟件
軟件實(shí)現(xiàn)步驟:
2)估算影像對應(yīng)DEM范圍,目的是減少程序遍歷時的計算量。影像的長和寬分別為m,n個像素,則影像四個角的像平面坐標(biāo)分為:左下角(-ρccd·m/2,-ρccd·n/2),左上角(-ρccd·m/2,+ρccd·n/2),右下角(+ρccd·m/2,-ρccd·n/2),右上角(+ρccd·m/2,+ρccd·n/2)。當(dāng)ZA取DEM中高程最小值,利用公式(2)計算四個角對應(yīng)的物方坐標(biāo),并求出最小外包盒對應(yīng)的DEM像素行列號,分別是起始行號rb,終止行號re,起始列號cb,終止列號ce。
3)遍歷DEM中第r(rb≤r≤re)行第c(cb≤c≤ce)列的像素,利用ArcGIS Engine的Pixel2Map函數(shù)得到(XA、YA),再利用GetPixelValue函數(shù)得到ZA。
4)根據(jù)公式(2)的共線方程,計算得到對應(yīng)無人機(jī)影像的像素(x、y),并轉(zhuǎn)換為行列號(i、j)。利用公式(5)計算(i、j)處的分辨率ρgsd,并將ρgsd作為像素值。
5)重復(fù)步驟3,直到遍歷完成。生成無人機(jī)影像分辨率分布圖。
6)針對無人機(jī)影像分辨率分布圖中反投影法導(dǎo)致的一些孔隙,使用形態(tài)學(xué)處理中的膨脹算法[10],可以較好地消除。
本文使用Pix4dMapper的測試數(shù)據(jù)集,如圖所示。其中,圖2a為原始的無人機(jī)影像,圖2b為空三計算成果,圖2c為生成的正射影像圖,圖2d為生成的數(shù)字表面模型,可以取代DEM參與計算,能更好表現(xiàn)建筑、植被等凸起地物對分辨率地影響。

圖2 Pix4dMapper數(shù)據(jù)
內(nèi)方位元素以及畸變改正參數(shù)記錄在文件internal_camera_parameters中,外方位元素記錄在文件external_camera_parameters中,提取后保存為軟件可用的標(biāo)準(zhǔn)格式。
分辨率分布圖如圖3所示,像素灰度值差異代表了分辨率的大小,黑色區(qū)域表示無對應(yīng)的地形數(shù)據(jù)。圖中,地形起伏已經(jīng)得到了反映,河流處的高度較小導(dǎo)致分辨率較低,所以灰度值較暗。堆體處的高度較大,導(dǎo)致分辨率較高,所以灰度值較亮。其次,影像邊緣距離拍攝中心較遠(yuǎn),所以分辨率會逐漸降低,灰度值會相應(yīng)地逐漸變暗。

圖3 分辨率分布圖
軟件還支持輸出最小分辨率、最大分辨率、平均分辨率等統(tǒng)計信息,并可以按照質(zhì)檢需求進(jìn)行拓展。
為了解決現(xiàn)有無人機(jī)影像空間分辨率評估算法在特殊地形條件下應(yīng)用時的不足,本文綜合考慮地形起伏、外方位元素、內(nèi)方位元素、畸變改正數(shù)等影響因素,提出了一種高精度的像素級分辨率評估方法,并設(shè)計開發(fā)了評估軟件。
本文中使用反投影的方法,遍歷DEM尋找對應(yīng)的影像像素位置,具有速度快的優(yōu)點(diǎn),但生成的分辨率分布圖存在孔隙,雖然使用形態(tài)學(xué)膨脹算法可以有效改善,但進(jìn)一步研究遍歷影像尋找對應(yīng)DEM像素的正投影算法,仍具有重要意義。