桂 力,鄭順義,王曉南,馬 電
(武漢大學遙感信息工程學院,湖北武漢430079)
目前攝影測量與遙感方面的數據處理基本都依賴于地面計算機處理系統,如常用的通用PC機、大規模集群系統等,計算機技術的發展使得基于這類處理系統的數據處理效率得到很大的提高[1],但是此類系統普遍存在體積大、功耗高、可移動性差等缺點,難以進行在線裝備。而通過無線傳輸數據到地面進行處理的方法也因傳輸速度慢、有效范圍小等因素在實際應用中受到限制。當災害、突發事件發生時,地面系統容易遭到破壞,這往往要求能夠實時獲取并在線處理空間數據,比如飛行器在飛行中在線計算并給出處理結果,目前尚無有效手段可以實現。由于飛行平臺空間有限,載重受到限制,同時,還要考慮到功耗設計因素等,這些都極大限制了在線處理系統的規模。而嵌入式計算技術具有功耗低、體積小、集成度高的特點,將空間數據處理與嵌入式技術相結合是在線攝影測量發展的方向之一。研究運用嵌入式技術的在線攝影測量可實現對突發事件的快速、實時監測,迅速了解觀測區情況,無論是對民用還是國防軍事,對傳統測繪還是應急響應,都具有重要的意義。
在線攝影測量的研究還處于初級階段,目前相關的研究側重于處理的實時性,如Wu等研究了一種實時攝影測量測圖系統[2],處理一個包括12個模型(15張影像)的測區僅需要42min;F?rstner從特征提取、目標識別、影像的時空處理等方面討論了實時攝影測量的發展[3],給出了許多成功的應用實例。這些研究在處理速度方面有較大的提升,但使用的硬件平臺仍然是通用PC機,在體積、功耗等方面不適宜于在線處理。
隨著嵌入式計算技術的發展,基于嵌入式技術的實時圖像處理成為研究的熱點,近幾年出現了大量的研究成果[4-5],這些研究要么針對圖像處理的某個具體算法[6-7],要么是針對視頻監控、醫學圖像[8-9]等應用。雖然這些應用使用的圖像幅面較小,處理任務單一,且不針對大幅面航空影像,但嵌入式計算技術領域的研究方法為從事航空影像在線處理提供了很好的思路。
可編程門陣列(Field Programmable Gate Array,FPGA)、高級精簡指令集機器(Advanced RISC Machine,ARM)和數字信號處理器(Digit Signal Processor,DSP)等嵌入式技術發展很快,已經應用到生產生活的各個方面,如圖像實時處理、智能手機、機器人導航等領域。
(1)FPGA作為一種硬件可編程芯片,具備豐富的內部資源,設計者可根據自己的需要將FPGA內部的邏輯模塊連接起來,定制一塊新的處理芯片。相比專用處理器,FPGA的硬件可編程功能提供了更多的靈活性,能夠根據需要修改內部程序以兼容多種硬件而不用更改系統結構。同時FPGA能夠在硬件級別實現算法的并行和流水處理,具有強大的數據處理能力。
(2)ARM屬于一種通用處理器,有較強的系統管理和數據處理能力,并具有豐富的外部接口,適合完成與外部設備的通訊、數據傳輸等工作,其功能類似于通用電腦的CPU,目前已大量用于智能手機、平板電腦、服務器等設備。
(3)而DSP具備較強的數字信號處理能力,有較好的數字運算性能,一般無緩存或緩存較小,系統開銷極少,運行周期穩定可靠,適合對數字圖像進行快速處理。
相比通用CPU,以上三類芯片的共同點是重量輕、功耗小、成本低,系統自身不占用資源或占用極少資源,更適合小型化、嵌入式裝備。其中FPGA與DSP一般作為協處理器(Coprocessor)進行專用計算處理,ARM則適合做數據管理與外設交互等工作。
結合三類嵌入式技術的優勢,遵循以下思路設計一種適合在線攝影測量的處理系統:
(1)將FPGA作為數據傳輸與控制的核心設計模塊,連接各種外部傳感器獲取影像和POS數據。利用FPGA的硬件可編程優勢,對不同外部硬件類型可通過改變其內部電路連接方式予以兼容,提升系統的可擴展性。同時還可在FPGA里編制各類硬件處理算法對需要預處理的數據進行硬件加速處理,減輕后端數據處理壓力。
(2)以ARM+DSP處理器作為數據管理和處理的核心。ARM用來負責系統管理與數據流控制,而DSP具備很強的數字信號處理能力,可配合ARM對算法進行加速處理。
考慮到通用性及靈活可擴展性,設計運用FPGA芯片的數據傳輸模塊和運用ARM+DSP的數據處理模塊。與一般的嵌入式系統相區別,該模塊的功能和接口面向攝影測量的特點而設計。從外部傳感器獲取的數據通過數據傳輸模塊預處理并轉發,分發至多個數據處理模塊進行并行處理。
圖1為數據傳輸模塊的邏輯圖,該模塊以FPGA協處理器為核心,采取CameraLink接口連接航空相機接收影像數據,采用RS485接口連接POS系統接收位置姿態信息。影像與POS數據通過這兩種接口輸入到FPGA核心中,在FPGA內部可進行預處理和數據整合。設計了內存模塊用于對數據進行緩存以及處理過程中的轉存,為解決同時讀寫內存造成的IO瓶頸問題,設置兩個內存模塊進行“乒乓”讀、寫操作。在數據經過FPGA處理后,即可通過高速PCIe接口進行同步分發,供多個數據處理模塊同時處理。

圖1 數據傳輸模塊示意圖Fig.1 Diagram of data transmission module
圖2為運用ARM+DSP處理器的數據處理模塊邏輯圖,其中DSP與ARM集成在同一塊芯片中,DSP作為協處理器用于算法加速。PCIe高速接口用于連接外部數據輸入端,實現高速數據傳輸;經過處理的數據則可以通過SATA接口連接存儲設備進行存儲,同時通過HDMI接口連接顯示設備進行顯示。為方便與其他系統的連接,該模塊還設有千兆網口、USB等接口。模塊中的SD卡接口與NAND可用來提供系統的啟動入口和相關程序的存儲,如果要加入某個新程序,只需在編譯完成后寫入這種存儲設備中即可,無需將整個模塊與上位機連接。

圖2 數據處理模塊示意圖Fig.2 Diagram of data processing module
數據傳輸模塊主要用于連接攝影測量相關的設備,FPGA的硬件可編程特性使得該模塊能夠兼容更多的設備而無須重新制板。數據處理模塊則主要通過設計算法處理獲得的數據并存儲顯示最終的結果。數據傳輸模塊上可設計多個高速PCIe接口與數據處理模塊相連接,每個數據處理模塊中可設計不同的處理算法對數據進行快速處理。圖3為多個模塊連接的情況,針對算法需求設計了三個模塊,在實際應用中可根據需要增減模塊數量實現最佳處理效果。

圖3 模塊互連示意圖Fig.3 Diagram of module connection
以FPGA為核心的數據傳輸模塊使用硬件描述語言(Verilog或VHDL)進行軟件開發,設計好的電路程序可以經過簡單的綜合與布局,快速燒錄至FPGA上進行測試,這也是現代IC設計驗證的技術主流。而運用ARM+DSP架構的軟件設計則與通用PC程序設計較為類似,通常使用C/C++語言編寫程序實現算法,并移植到嵌入式操作系統上進行驗證。使用自定制的嵌入式Linux系統作為該模塊的底層操作系統,根據自己的需要選擇保留必需的功能,裁剪無須使用的模塊,保證系統內核最小化(如本研究中內核文件僅為2.3MB)。這樣的定制內核在載入嵌入式設備后僅使用少量的硬件資源,保證應用程序有足夠的資源。
運用ARM+DSP架構的數據處理涉及處理器間的協同,該方式以ARM作為系統的主控端,以DSP作為協處理器對算法進行加速,ARM端加載嵌入式Linux操作系統,而DSP端使用實時操作系統SYS/BIOS(RTOS),兩個處理核心使用內存共享機制實現數據共享,避免復雜而耗時的數據傳遞過程。如某個應用程序在運行過程中可使用ARM的外部接口與外設進行通信,同時使用DSP進行算法加速。程序可調用Linux函數庫實現與外設的通信,如數據讀取、存儲、顯示等,同時可通過調用實時處理函數庫來控制DSP對數據進行實時處理。一般情況下數據接收與處理是串行進行,所花費時間為兩者之和,為縮短時間,使用一種三級緩存機制[10],可實現數據接收與處理的并行化,在理想情況下處理一次數據的耗時為兩者中時間較長者。
基于上述方法設計了原型系統,并選擇三種算法進行嵌入式移植:全景圖拼接、幾何質量評定以及云、陰影檢測。全景圖拼接算法在數字微分糾正的基礎上針對嵌入式計算的特點進行改進,算法具體細節可參考文獻[10],可為應急情況下在線提供具有地理參考價值的全景圖;幾何質量評定功能主要對拍攝過程進行監控,判斷航攝影像是否漏拍、航向旁向重疊度是否過小、影像旋偏角是否過大、航線彎曲度是否超限等[11],對發現的問題可及時在線補拍,避免落地后再返飛;云、陰影檢測功能則用來檢測所獲取的影像是否存在大片云、陰影等現象,可在線指導飛行器選擇更合適的位置和角度進行拍攝,該算法選取能夠有效檢測陰影和云的特征組合實現陰影[12]、云[13-14]的自動檢測,檢測涉及Otsu閾值計算、色調亮度飽和度(Hue Intensity Saturation,HIS)色彩空間變換以及條件判斷等過程。
如圖4所示為原型系統結構,航空相機和POS系統分別通過CameraLink接口、RS485接口與系統連接,發送影像數據和POS數據到FPGA模塊中,FPGA模塊通過PCIe接口將數據分別發送到三個功能模塊進行處理,在航拍過程中即可獲取處理結果。

圖4 在線攝影測量原型系統結構Fig.4 Prototype system architecture of online photogrammetry
為驗證所述方法的有效性,實現了數據傳輸模塊、數據處理模塊的原型系統,并制作了相應的電路板卡,圖5、圖6分別為數據處理板卡、數據傳輸板卡的電路圖和板卡實物。其中FPGA板卡采用Altera公司的CycloneII系列芯片[15]作為核心處理器,數據處理板卡使用TI公司的C6A8168芯片[16]設計實現。為方便硬件調試和功能驗證,分開制作兩種模塊的硬件板卡,圖7展示了三塊數據處理板卡與一塊數據傳輸板卡集成在一個小機箱內部的情況。通過對兩種板卡上電測試發現,FPGA板卡功耗為8.12W,ARM+DSP板卡功耗為10.8W,兩種板卡功耗遠低于通用計算機,非常適合對功耗有嚴格限制的應用場合。從計算性能上看,1個ARM+DSP模塊有2個計算節點,1個FPGA模塊可實現至少1個計算節點(利用FPGA的硬件可編程特性可實現更多計算節點數),整個硬件結構實際可提供至少7個計算節點,且能夠并行處理。
為驗證系統在實際飛行環境下的有效性,通過搭載機載平臺在湖北省荊州市沙市城區進行了航飛試驗。所使用航攝儀為成都中科院光電所自主研發的國產相機,其影像分辨率為4032×4032,原始影像為31MB大小的Bayer格式數據。本次航飛試驗平均飛行高度為800m,共規劃了9條航帶,平均每條航帶設置36個曝光點,拍攝了359張影像(包括1條補飛航帶)。在試驗過程中,實現了在航拍的同時同步處理數據并輸出結果的功能,飛行完成即得到整個測區的拼接全景圖,如圖8所示。幾何質量評定結果如圖9所示,同航帶內的相鄰幾組影像間具有航向重疊,相鄰航帶間的影像則有旁向重疊,即圖中四邊形的重疊區域,其中顏色越亮區域表明重疊度越大。從圖9(a)可以看出,在對第8號航帶區域航拍過程中漏拍一張影像,在飛完第9號航帶后及時指導飛機在線進行了補飛,其結果如圖9(b)所示。另外,此次飛行天氣環境較好,飛行高度較低,未出現云和明顯的陰影區域。

圖5 運用ARM+DSP的數據處理板卡Fig.5 Data processing board using ARM+DSP

圖6 運用FPGA的數據傳輸板卡Fig.6 Data transmission board using FPGA
三種算法模塊耗時統計如圖10所示。從圖10中可以看出全景圖拼接與幾何質量評定最大耗時都不超過0.25s,這兩種算法計算量僅與要處理的數據大小相關,在每張影像都是同樣大小的情況下,時間消耗較為均勻。云、陰影檢測算法最大耗時不超過0.5s,該算法處理時間與具體的影像內容有關,耗時有一定的波動性,符合算法特性。
表1統計了系統的實測性能,對于31MB的原始影像最大可滿足5fps的傳輸速度,算法部分最快能達到5fps的處理效率,而最后的計算結果數據量都較小,可快速存盤,若系統在后續擴展出無線傳輸功能,也可將結果實時傳輸到其他終端。航飛期間在航帶內每隔5s拍攝1張影像,本系統的處理性能可滿足該時間要求。
該方法主要針對應急等需求的快速在線處理進行設計,因而沒有考慮影像勻光勻色等處理,從圖8中可以看出拼接后有色調不均勻的情況,在后續的研究中將加以改進。

圖7 原型系統集成Fig.7 Integration of prototype system

圖8 拼接全景圖Fig.8 Result of on-line mosaicking

圖9 航空攝影測量幾何質量評定Fig.9 Geometry quality evaluation for aerial photogrammetry

表1 系統性能統計表Tab.1 Statistics of system performance

圖10 算法耗時統計Fig.10 Time consumption of each algorithm
本文提出了一種運用嵌入式架構的在線攝影測量方法,設計了一套在線攝影測量軟硬件系統并完成了系統原型。該系統面向攝影測量的實際應用,體積小,功耗低,有較好的擴展性和靈活性,對推進攝影測量系統向小型化、實時化發展有一定的應用價值。在實際應用中可根據需要對系統進行裁剪、集成,或者增加更多的處理單元,將兩種模塊集成到同一個板卡上以增加集成度,可更好地應用于無人機、星載等對重量、體積、功耗有更嚴格限制的平臺。該方法作為一種新的嘗試,為攝影測量向嵌入式和在線處理方向發展探路,后面將會把更多的攝影測量算法移植并優化到系統環境中,以滿足各種不同的應用需求。
References)
[1]張劍清,柯濤,孫明偉,等.并行計算在航空攝影測量中的應用與實現[J].測繪通報,2008(12):11-14.ZHANG Jianqing,KE Tao,SUN Mingwei,et al.Application and realization of parallel computation in aerophotogrammetry[J].Bulletin of Surveying and Mapping,2008(12):11-14.(in Chinese)
[2]Wu S S C,Hutton J,Kletzli B,et al.A real-time photogrammetric mapping system[J].International Archives of Photogrammetry and Remote Sensing,2004,35(B2):61-66.
[3]F?rstner W.Real-time photogrammetry[C]//Proceedings of Photogrammetric Week,2005,5:229-239.
[4]Hu J H,Zhang T X,Zhong S,et al.A novel parallel architecture for real-time image processing[C]//Proceedings of SPIE,the International Society for Optical Engineering,2009:7497.
[5]楊乾明,文梅,伍楠,等.MGR-SAT:一種基于流模板的多粒度可重構數字信號處理器[J].國防科技大學學報,2011,33(4):65-72.YANG Qianming,WEN Mei,WU Nan,et al.MGR-SAT:A multi-granularity recon Figurable DSP based on stream architecture template[J].Journal of National University of Defense Technology,2011,33(4):65-72.(in Chinese)
[6]王遠模,趙宏鐘,張軍,等.用FPGA實現浮點FFT處理器的研究[J].國防科技大學學報,2004,26(6):61-64.WANG Yuanmo,ZHAO Hongzhong,ZHANG Jun,et al.The realization of floating-point FFT processor with FPGA chip[J].Journal of National University of Defense Technology,2004,26(6):61-64.(in Chinese)
[7]Dillinger P,Vogelbruch J F,Leinen J,et al.FPGA-based realtime image segmentation for medical systems and data processing[J].IEEE Transactions on Nuclear Science,2006,53(4):2097-2101.
[8]張輝,夏明新,焦戩,等.基于FPGA的實時X線醫學圖像處理系統[J].中國生物醫學工程學報,2008,27(1):39-44.ZHANG Hui,XIA Mingxin,JIAO Jian,et al.A FPGA based real-time X-ray image processing system[J].Chinese Journal of Biomedical Engineering,2008,27(1):39-44.(in Chinese)
[9]Martin V,Dunand G,Moncada V,et al.New field programmable gate array-based image-oriented acquisition and real-time processing applied to plasma facing component thermal monitoring[J].Review of Scientific Instruments,2010,81(10):10E113.
[10]鄭順義,馬電,桂力,等.一種ARM+DSP架構的機載影像實時拼接方法[J].武漢大學學報:信息科學版,2014,39(1):1-7.ZHEN Shunyi,MA Dian,GUI Li,et al.A real-time airborne image mosaic method using the ARM+DSP architecture[J].Geomatics and Information Science of Wuhan University,2014,39(1):1-7.(in Chinese)
[11]喬瑞亭,孫和利,李欣.攝影與空中攝影學[M].武漢:武漢大學出版社,2008.QIAO Ruiting,SUN Heli,LI Xin.Photography and aerial photography[M].Wuhan:Wuhan University Press,2008.(in Chinese)
[12]高賢君,萬幼川,鄭順義,等.航空遙感影像陰影的自動檢測與補償[J].武漢大學學報:信息科學版,2012,37(11):1299-1302.GAO Xianjun,WAN Youchuan,ZHENG Shunyi,et al.Automatic shadow detection and compensation of aerial remote sensing images[J].Geomatics and Information Science of Wuhan University,2012,37(11):1299-1302.(in Chinese)
[13]Abraham L,Sasikumar M.Cloud extraction and removal in aerial and satellite images[C]//Proceedings of the International Symposium on Intelligent Informatics ISI'12,2013:341-347.
[14]Li B Y,Li X.Cloud detection based on segmentation with statistical and geometry features[C]//Proceedings of Geoscience and Remote Sensing Symposium,IEEE International,2012:6020-6023.
[15]Cyclone II Device Handbook[EB/OL].http://www.altera.com.cn/literature/lit-cyc2.jsp.
[16]TI TexasInstruments Inc.,DM816x,C6A816x and AM389x Overview[EB/OL].[2011-06-07].http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_Overview.