曾 佳,陳 晨,劉世杰
(同濟大學 測繪與地理信息學院,上海 200092)
月球是人類探索宇宙的第一步,是中國深空探測的首站。2007年,中國“嫦娥一號”探月衛星成功發射,進行了環月綜合探測,獲取月表圖像,制成了中國第一幅全月球影像圖和全月球數字高程模型(Digital Elevation Model,DEM)。“嫦娥二號”衛星則在一號衛星的基礎上有更高的精度,制作了國際上領先的分辨率達到7 m的全月球數字影像圖和全月球數字高程模型。而月球軌道器衛星相機成像仿真是月球正射影像獲取的逆過程,可以對探月衛星和相機參數進行驗證,優化飛行任務的設計,為后續探測任務奠定基礎。
“嫦娥一號”和二號衛星搭載的線陣CCD(Charged couple device)相機,能產生多幅同軌的重疊影像,時間差異小,角度不同,從而可以組成立體像對。1983年,法國地球研究所(IGN)對第一臺衛星推掃式掃描儀SPOT進行嚴格的幾何建模,第一個推掃式成像衛星模型誕生;Ebner等人對MOMS-02三線陣相機影像模擬展開研究。
同時,基于地球衛星SPOT在三峽地區的影像數據,江萬壽等人研究了衛星三線陣CCD相機影像模擬,討論了根據DEM數據和正射影像確定投影中心軌跡、姿態模擬以及影像生成等過程。隨著信息技術的不斷發展,3D模型模擬數據源、光線追蹤等技術被運用到線陣CCD相機成像仿真中。張曉寒則搭建了包括推掃式成像在內的多種模式半物理衛星成像仿真系統,從原圖數據處理到圖像質量評價整個過程進行了集成。岳慶興等人建立了更為精細的地面模型,提出了亞m級衛星TDI(Time delay and integration)CCD相機立體影像仿真理論。三維仿真方面,汪志良以OpenSceneGraph渲染引擎和osgEarth為工具,搭建了三維地球衛星成像仿真系統。
探月任務相較于常規的地球探測任務更加復雜,成本更高。李巧枝等人以共線方程為基礎,考慮了雙向反射效應,對月球線陣相機進行影像模擬。在可視化方面,左維等人根據嫦娥一號影像資料和激光測距數據,構建了基于OpenGL的月球三維可視化系統,但其功能主要在于月球漫游和數據存儲。月球軌道器線陣相機成像模擬資料較少,且大多止步于生成靜態圖片,未能與三維仿真和可視化系統結合起來。
本文在探月衛星軌道和姿態模擬基礎上,結合月球DEM數據和月球正射影像資料,采用嚴密的方法,基于共線方程建立了月球軌道器相機幾何成像模型;遷移數字微分糾正正解法的思想,研究并實現了月球軌道器相機成像仿真算法,基于OSG建模完成三維月球衛星場景仿真,最后生成了雙線陣相機前視和下視仿真圖像,并對其進行影像質量評價。
月球軌道器相機成像模型旨在構建仿真影像和月面之間的幾何關系,成像算法在成像模型的基礎上進行月面投影點求解和灰度值采樣,由此得到仿真影像,此后進行仿真影像的精度分析。仿真實驗流程見圖1。

圖1 仿真實驗流程圖Fig.1 Flow chart of simulation experiment
探月衛星軌道參數包括半長軸、偏心率、軌道傾角、升交點赤經、近月點角距、平近月點角一共6個基本參數,衛星軌道可以由這6個參數唯一確定。
假設線陣CCD相機中心指向月心,根據傳感器位置計算姿態矩陣,將衛星某時刻在月固坐標系下的位置和速度表示為:


其中,位置和速度都是隨時間變化的,從衛星軌道坐標系到月固坐標系的姿態矩陣(轉換矩陣)為:


根據共線方程構建影像坐標和月面投影點坐標的幾何關系。時刻前視和下視立體相機成像的共線方程可以寫為:


月球軌道器相機成像仿真的任務在于求解原始影像和月面之間的幾何關系。正解法為從仿真圖的像點坐標出發求解投影光線與月面相交點的坐標,反解法要從月球DEM上取格網點計算對應焦平面像素坐標,計算較為復雜,故選用正解法。
由于初始時月面點三維坐標(,,)都為未知量,故要預先計算作為近似值先求解,,再讀取月面數字高程模型數據計算得到,再將代入公式進行迭代,直到把值近似值和月面真實值之差控制在一定范圍內。
由前文建立的月球軌道器相機幾何成像模型,結合數字微分糾正中正解法,月面點求解算法如下[10]:
(1)根據相機參數和像素坐標行列值,構建探月衛星相機成像模型中像素矢量模型,完成像素坐標到像空間坐標的轉換。
(2)根據采樣時刻的位置和速度計算姿態矩陣,完成像空間坐標到月固坐標轉換。
(3)由于正解法月面點坐標(,,)都為未知,要先根據月球標準半徑,計算近似值,將像點像空間坐標代入共線方程,求得月球參考橢球面上的月面點月固坐標近似值;再在月球數字高程模型DEM上找到真實月面點;計算共線方程求得的近似點和真實月面點之間距離,若不符合擬定條件,則繼續迭代求解。
將所得月面點月固坐標轉換為經緯度坐標,再根據月球正射影像格式轉換到對應的像素行列值。成像采樣時采用雙線性內插算法,并不直接將坐標取整,而是保留小數,以像素坐標為中心,讀取月球正射影像灰度值進行模擬影像灰度采樣。
實驗所用的月球數字高程模型DEM是由美國國家航空航天局(NASA)月球勘測軌道器(LRO)上的激光高度計(LOLA)獲得的數據,像素分辨率為每像素118 m。月球正射影像數據是由LRO上的偵察軌道器攝像機(LROC)廣角攝像機(WAC)采集組成的全月球鑲嵌圖,像元分辨率為100 m。
使用的系統環境為Windows 10,開發平臺為Visual Studio 2019,編程語言為C++,所用庫為Eigen 3.4.0、OpenCV 4.5.4、GDAL 2.3.2、OSG 3.6.5。實驗中仿真的衛星軌道為正圓形極軌,高度為200 km,偏心率為0,軌道傾角為90°,月球標準半徑為1 737.4 km。線陣CCD相機參數見表1。

表1 相機參數Tab.1 Camera parameters
編寫基于C#的WinForm界面,將算法實現成月球軌道器線陣相機成像仿真軟件,輸入為相機立體角、相機焦距等相機參數、衛星軌道模擬數據、月球DEM、月球正射影像數據和生成仿真影像行數,輸出為前視、下視仿真圖。輸入參數并點擊“生成仿真圖”按鈕后,開始生成仿真影像,同時顯示生成進度條。仿真軟件界面如圖2所示。

圖2 成像仿真軟件界面Fig.2 Software interface of imaging simulation
OpenSceneGraph(OSG)是一個高層次的開源3D計算機圖形工具包,完全由標準C++和OpenGL編寫而成。OSG的場景管理方式為包圍體層次(BVH),即采用樹狀結構將場景節點封裝進包圍空間體中。一棵場景樹BVH包含一個根節點。
本文基于OSG進行月球衛星三維建模,背景幾何節點、月球節點、衛星模型節點、投影線節點、文字節點都為葉節點,包含對應可繪制體的信息;根節點、相機節點和衛星空間變換節點都為組節點,被賦予一些功能或是負責渲染層次。相機節點主要用來設置投影矩陣、觀察矩陣、參考系、渲染順序等;空間變換節點用來設置衛星的位置、姿態,使衛星嚴格按照模擬的軌道和姿態數據飛行。生成仿真數據后,動態顯示月面點經緯度信息,連接衛星的實時位置和投影點三維坐標形成前視、下視投影線,繪制成2個三角形,使得前階段模型生成的月面投影點數據得到了驗證,仿真過程更加生動形象。最終實現效果如圖3所示,左下角為下視掃描點實時經緯度,三角形為模擬的衛星投影線。

圖3 三維仿真最終效果(局部放大圖)Fig.3 The final effect of 3D simulation(local enlarged view)
仿真影像及對應的正射影像區域如圖4所示。

圖4 月球線陣相機成像仿真結果示例Fig.4 Examples of imaging simulation results of lunar linear array camera
仿真初始時,衛星在月球約南緯45°西經168°處從南往北飛行,故生成的前視、下視仿真圖與月球正射影像圖上下相反。生成的前視和下視仿真示例圖行高為200像素,像元的空間分辨率約為100 m。
為檢查模型的正確性,對生成的仿真影像做精度分析:在原始正射影像數據上選取20個明顯的檢查點,對應到前視和下視仿真圖上各10個同名像點,讀取前視和下視仿真圖像點像素行列坐標值,代入模型,迭代后求出模擬經緯度坐標,與實際的原始正射影像像點經緯度坐標作比較,計算模擬值和真實值之間的殘差和標準差。前視和下視仿真圖上對應的檢查點分布如圖5所示。

圖5 前視和下視仿真圖上對應的檢查點分布Fig.5 The distribution of forward-looking and down-looking simulation image checkpoints
根據所得數據計算的檢查點數據殘差的標準差:前視仿真影像在經度(掃描方向)上為0.003 41°,緯度(飛行方向)為0.004 31°;下視仿真影像在經度上為0.004 15°,緯度為0.002 28°。
總體上,本次仿真影像檢查點經緯度標準差在0.005°以內,約0.5至0.9個像素,標準差較小,模型能較好地模擬月球軌道器相機圖像的生成。
本文基于共線方程構建了嚴密的月球軌道器相機幾何成像模型,實現了月球軌道器相機成像仿真算法,使用雙線性內插法進行成像采樣;基于OSG進行了三維月球衛星仿真建模,設計了友好的用戶交互界面,使用C#完善成探月衛星成像仿真軟件對仿真工作進行整合,使得仿真工作工程化、可視化程度高;生成了前視和下視探月衛星成像仿真圖像,仿真影像精度評價的結果顯示模型模擬效果良好。