桂 力,鄭順義,王曉南,馬 電
(武漢大學(xué)遙感信息工程學(xué)院,湖北武漢430079)
目前攝影測量與遙感方面的數(shù)據(jù)處理基本都依賴于地面計算機處理系統(tǒng),如常用的通用PC機、大規(guī)模集群系統(tǒng)等,計算機技術(shù)的發(fā)展使得基于這類處理系統(tǒng)的數(shù)據(jù)處理效率得到很大的提高[1],但是此類系統(tǒng)普遍存在體積大、功耗高、可移動性差等缺點,難以進行在線裝備。而通過無線傳輸數(shù)據(jù)到地面進行處理的方法也因傳輸速度慢、有效范圍小等因素在實際應(yīng)用中受到限制。當災(zāi)害、突發(fā)事件發(fā)生時,地面系統(tǒng)容易遭到破壞,這往往要求能夠?qū)崟r獲取并在線處理空間數(shù)據(jù),比如飛行器在飛行中在線計算并給出處理結(jié)果,目前尚無有效手段可以實現(xiàn)。由于飛行平臺空間有限,載重受到限制,同時,還要考慮到功耗設(shè)計因素等,這些都極大限制了在線處理系統(tǒng)的規(guī)模。而嵌入式計算技術(shù)具有功耗低、體積小、集成度高的特點,將空間數(shù)據(jù)處理與嵌入式技術(shù)相結(jié)合是在線攝影測量發(fā)展的方向之一。研究運用嵌入式技術(shù)的在線攝影測量可實現(xiàn)對突發(fā)事件的快速、實時監(jiān)測,迅速了解觀測區(qū)情況,無論是對民用還是國防軍事,對傳統(tǒng)測繪還是應(yīng)急響應(yīng),都具有重要的意義。
在線攝影測量的研究還處于初級階段,目前相關(guān)的研究側(cè)重于處理的實時性,如Wu等研究了一種實時攝影測量測圖系統(tǒng)[2],處理一個包括12個模型(15張影像)的測區(qū)僅需要42min;F?rstner從特征提取、目標識別、影像的時空處理等方面討論了實時攝影測量的發(fā)展[3],給出了許多成功的應(yīng)用實例。這些研究在處理速度方面有較大的提升,但使用的硬件平臺仍然是通用PC機,在體積、功耗等方面不適宜于在線處理。
隨著嵌入式計算技術(shù)的發(fā)展,基于嵌入式技術(shù)的實時圖像處理成為研究的熱點,近幾年出現(xiàn)了大量的研究成果[4-5],這些研究要么針對圖像處理的某個具體算法[6-7],要么是針對視頻監(jiān)控、醫(yī)學(xué)圖像[8-9]等應(yīng)用。雖然這些應(yīng)用使用的圖像幅面較小,處理任務(wù)單一,且不針對大幅面航空影像,但嵌入式計算技術(shù)領(lǐng)域的研究方法為從事航空影像在線處理提供了很好的思路。
可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)、高級精簡指令集機器(Advanced RISC Machine,ARM)和數(shù)字信號處理器(Digit Signal Processor,DSP)等嵌入式技術(shù)發(fā)展很快,已經(jīng)應(yīng)用到生產(chǎn)生活的各個方面,如圖像實時處理、智能手機、機器人導(dǎo)航等領(lǐng)域。
(1)FPGA作為一種硬件可編程芯片,具備豐富的內(nèi)部資源,設(shè)計者可根據(jù)自己的需要將FPGA內(nèi)部的邏輯模塊連接起來,定制一塊新的處理芯片。相比專用處理器,F(xiàn)PGA的硬件可編程功能提供了更多的靈活性,能夠根據(jù)需要修改內(nèi)部程序以兼容多種硬件而不用更改系統(tǒng)結(jié)構(gòu)。同時FPGA能夠在硬件級別實現(xiàn)算法的并行和流水處理,具有強大的數(shù)據(jù)處理能力。
(2)ARM屬于一種通用處理器,有較強的系統(tǒng)管理和數(shù)據(jù)處理能力,并具有豐富的外部接口,適合完成與外部設(shè)備的通訊、數(shù)據(jù)傳輸?shù)裙ぷ鳎涔δ茴愃朴谕ㄓ秒娔X的CPU,目前已大量用于智能手機、平板電腦、服務(wù)器等設(shè)備。
(3)而DSP具備較強的數(shù)字信號處理能力,有較好的數(shù)字運算性能,一般無緩存或緩存較小,系統(tǒng)開銷極少,運行周期穩(wěn)定可靠,適合對數(shù)字圖像進行快速處理。
相比通用CPU,以上三類芯片的共同點是重量輕、功耗小、成本低,系統(tǒng)自身不占用資源或占用極少資源,更適合小型化、嵌入式裝備。其中FPGA與DSP一般作為協(xié)處理器(Coprocessor)進行專用計算處理,ARM則適合做數(shù)據(jù)管理與外設(shè)交互等工作。
結(jié)合三類嵌入式技術(shù)的優(yōu)勢,遵循以下思路設(shè)計一種適合在線攝影測量的處理系統(tǒng):
(1)將FPGA作為數(shù)據(jù)傳輸與控制的核心設(shè)計模塊,連接各種外部傳感器獲取影像和POS數(shù)據(jù)。利用FPGA的硬件可編程優(yōu)勢,對不同外部硬件類型可通過改變其內(nèi)部電路連接方式予以兼容,提升系統(tǒng)的可擴展性。同時還可在FPGA里編制各類硬件處理算法對需要預(yù)處理的數(shù)據(jù)進行硬件加速處理,減輕后端數(shù)據(jù)處理壓力。
(2)以ARM+DSP處理器作為數(shù)據(jù)管理和處理的核心。ARM用來負責(zé)系統(tǒng)管理與數(shù)據(jù)流控制,而DSP具備很強的數(shù)字信號處理能力,可配合ARM對算法進行加速處理。
考慮到通用性及靈活可擴展性,設(shè)計運用FPGA芯片的數(shù)據(jù)傳輸模塊和運用ARM+DSP的數(shù)據(jù)處理模塊。與一般的嵌入式系統(tǒng)相區(qū)別,該模塊的功能和接口面向攝影測量的特點而設(shè)計。從外部傳感器獲取的數(shù)據(jù)通過數(shù)據(jù)傳輸模塊預(yù)處理并轉(zhuǎn)發(fā),分發(fā)至多個數(shù)據(jù)處理模塊進行并行處理。
圖1為數(shù)據(jù)傳輸模塊的邏輯圖,該模塊以FPGA協(xié)處理器為核心,采取CameraLink接口連接航空相機接收影像數(shù)據(jù),采用RS485接口連接POS系統(tǒng)接收位置姿態(tài)信息。影像與POS數(shù)據(jù)通過這兩種接口輸入到FPGA核心中,在FPGA內(nèi)部可進行預(yù)處理和數(shù)據(jù)整合。設(shè)計了內(nèi)存模塊用于對數(shù)據(jù)進行緩存以及處理過程中的轉(zhuǎn)存,為解決同時讀寫內(nèi)存造成的IO瓶頸問題,設(shè)置兩個內(nèi)存模塊進行“乒乓”讀、寫操作。在數(shù)據(jù)經(jīng)過FPGA處理后,即可通過高速PCIe接口進行同步分發(fā),供多個數(shù)據(jù)處理模塊同時處理。
圖1 數(shù)據(jù)傳輸模塊示意圖Fig.1 Diagram of data transmission module
圖2為運用ARM+DSP處理器的數(shù)據(jù)處理模塊邏輯圖,其中DSP與ARM集成在同一塊芯片中,DSP作為協(xié)處理器用于算法加速。PCIe高速接口用于連接外部數(shù)據(jù)輸入端,實現(xiàn)高速數(shù)據(jù)傳輸;經(jīng)過處理的數(shù)據(jù)則可以通過SATA接口連接存儲設(shè)備進行存儲,同時通過HDMI接口連接顯示設(shè)備進行顯示。為方便與其他系統(tǒng)的連接,該模塊還設(shè)有千兆網(wǎng)口、USB等接口。模塊中的SD卡接口與NAND可用來提供系統(tǒng)的啟動入口和相關(guān)程序的存儲,如果要加入某個新程序,只需在編譯完成后寫入這種存儲設(shè)備中即可,無需將整個模塊與上位機連接。
圖2 數(shù)據(jù)處理模塊示意圖Fig.2 Diagram of data processing module
數(shù)據(jù)傳輸模塊主要用于連接攝影測量相關(guān)的設(shè)備,F(xiàn)PGA的硬件可編程特性使得該模塊能夠兼容更多的設(shè)備而無須重新制板。數(shù)據(jù)處理模塊則主要通過設(shè)計算法處理獲得的數(shù)據(jù)并存儲顯示最終的結(jié)果。數(shù)據(jù)傳輸模塊上可設(shè)計多個高速PCIe接口與數(shù)據(jù)處理模塊相連接,每個數(shù)據(jù)處理模塊中可設(shè)計不同的處理算法對數(shù)據(jù)進行快速處理。圖3為多個模塊連接的情況,針對算法需求設(shè)計了三個模塊,在實際應(yīng)用中可根據(jù)需要增減模塊數(shù)量實現(xiàn)最佳處理效果。
圖3 模塊互連示意圖Fig.3 Diagram of module connection
以FPGA為核心的數(shù)據(jù)傳輸模塊使用硬件描述語言(Verilog或VHDL)進行軟件開發(fā),設(shè)計好的電路程序可以經(jīng)過簡單的綜合與布局,快速燒錄至FPGA上進行測試,這也是現(xiàn)代IC設(shè)計驗證的技術(shù)主流。而運用ARM+DSP架構(gòu)的軟件設(shè)計則與通用PC程序設(shè)計較為類似,通常使用C/C++語言編寫程序?qū)崿F(xiàn)算法,并移植到嵌入式操作系統(tǒng)上進行驗證。使用自定制的嵌入式Linux系統(tǒng)作為該模塊的底層操作系統(tǒng),根據(jù)自己的需要選擇保留必需的功能,裁剪無須使用的模塊,保證系統(tǒng)內(nèi)核最小化(如本研究中內(nèi)核文件僅為2.3MB)。這樣的定制內(nèi)核在載入嵌入式設(shè)備后僅使用少量的硬件資源,保證應(yīng)用程序有足夠的資源。
運用ARM+DSP架構(gòu)的數(shù)據(jù)處理涉及處理器間的協(xié)同,該方式以ARM作為系統(tǒng)的主控端,以DSP作為協(xié)處理器對算法進行加速,ARM端加載嵌入式Linux操作系統(tǒng),而DSP端使用實時操作系統(tǒng)SYS/BIOS(RTOS),兩個處理核心使用內(nèi)存共享機制實現(xiàn)數(shù)據(jù)共享,避免復(fù)雜而耗時的數(shù)據(jù)傳遞過程。如某個應(yīng)用程序在運行過程中可使用ARM的外部接口與外設(shè)進行通信,同時使用DSP進行算法加速。程序可調(diào)用Linux函數(shù)庫實現(xiàn)與外設(shè)的通信,如數(shù)據(jù)讀取、存儲、顯示等,同時可通過調(diào)用實時處理函數(shù)庫來控制DSP對數(shù)據(jù)進行實時處理。一般情況下數(shù)據(jù)接收與處理是串行進行,所花費時間為兩者之和,為縮短時間,使用一種三級緩存機制[10],可實現(xiàn)數(shù)據(jù)接收與處理的并行化,在理想情況下處理一次數(shù)據(jù)的耗時為兩者中時間較長者。
基于上述方法設(shè)計了原型系統(tǒng),并選擇三種算法進行嵌入式移植:全景圖拼接、幾何質(zhì)量評定以及云、陰影檢測。全景圖拼接算法在數(shù)字微分糾正的基礎(chǔ)上針對嵌入式計算的特點進行改進,算法具體細節(jié)可參考文獻[10],可為應(yīng)急情況下在線提供具有地理參考價值的全景圖;幾何質(zhì)量評定功能主要對拍攝過程進行監(jiān)控,判斷航攝影像是否漏拍、航向旁向重疊度是否過小、影像旋偏角是否過大、航線彎曲度是否超限等[11],對發(fā)現(xiàn)的問題可及時在線補拍,避免落地后再返飛;云、陰影檢測功能則用來檢測所獲取的影像是否存在大片云、陰影等現(xiàn)象,可在線指導(dǎo)飛行器選擇更合適的位置和角度進行拍攝,該算法選取能夠有效檢測陰影和云的特征組合實現(xiàn)陰影[12]、云[13-14]的自動檢測,檢測涉及Otsu閾值計算、色調(diào)亮度飽和度(Hue Intensity Saturation,HIS)色彩空間變換以及條件判斷等過程。
如圖4所示為原型系統(tǒng)結(jié)構(gòu),航空相機和POS系統(tǒng)分別通過CameraLink接口、RS485接口與系統(tǒng)連接,發(fā)送影像數(shù)據(jù)和POS數(shù)據(jù)到FPGA模塊中,F(xiàn)PGA模塊通過PCIe接口將數(shù)據(jù)分別發(fā)送到三個功能模塊進行處理,在航拍過程中即可獲取處理結(jié)果。
圖4 在線攝影測量原型系統(tǒng)結(jié)構(gòu)Fig.4 Prototype system architecture of online photogrammetry
為驗證所述方法的有效性,實現(xiàn)了數(shù)據(jù)傳輸模塊、數(shù)據(jù)處理模塊的原型系統(tǒng),并制作了相應(yīng)的電路板卡,圖5、圖6分別為數(shù)據(jù)處理板卡、數(shù)據(jù)傳輸板卡的電路圖和板卡實物。其中FPGA板卡采用Altera公司的CycloneII系列芯片[15]作為核心處理器,數(shù)據(jù)處理板卡使用TI公司的C6A8168芯片[16]設(shè)計實現(xiàn)。為方便硬件調(diào)試和功能驗證,分開制作兩種模塊的硬件板卡,圖7展示了三塊數(shù)據(jù)處理板卡與一塊數(shù)據(jù)傳輸板卡集成在一個小機箱內(nèi)部的情況。通過對兩種板卡上電測試發(fā)現(xiàn),F(xiàn)PGA板卡功耗為8.12W,ARM+DSP板卡功耗為10.8W,兩種板卡功耗遠低于通用計算機,非常適合對功耗有嚴格限制的應(yīng)用場合。從計算性能上看,1個ARM+DSP模塊有2個計算節(jié)點,1個FPGA模塊可實現(xiàn)至少1個計算節(jié)點(利用FPGA的硬件可編程特性可實現(xiàn)更多計算節(jié)點數(shù)),整個硬件結(jié)構(gòu)實際可提供至少7個計算節(jié)點,且能夠并行處理。
為驗證系統(tǒng)在實際飛行環(huán)境下的有效性,通過搭載機載平臺在湖北省荊州市沙市城區(qū)進行了航飛試驗。所使用航攝儀為成都中科院光電所自主研發(fā)的國產(chǎn)相機,其影像分辨率為4032×4032,原始影像為31MB大小的Bayer格式數(shù)據(jù)。本次航飛試驗平均飛行高度為800m,共規(guī)劃了9條航帶,平均每條航帶設(shè)置36個曝光點,拍攝了359張影像(包括1條補飛航帶)。在試驗過程中,實現(xiàn)了在航拍的同時同步處理數(shù)據(jù)并輸出結(jié)果的功能,飛行完成即得到整個測區(qū)的拼接全景圖,如圖8所示。幾何質(zhì)量評定結(jié)果如圖9所示,同航帶內(nèi)的相鄰幾組影像間具有航向重疊,相鄰航帶間的影像則有旁向重疊,即圖中四邊形的重疊區(qū)域,其中顏色越亮區(qū)域表明重疊度越大。從圖9(a)可以看出,在對第8號航帶區(qū)域航拍過程中漏拍一張影像,在飛完第9號航帶后及時指導(dǎo)飛機在線進行了補飛,其結(jié)果如圖9(b)所示。另外,此次飛行天氣環(huán)境較好,飛行高度較低,未出現(xiàn)云和明顯的陰影區(qū)域。
圖5 運用ARM+DSP的數(shù)據(jù)處理板卡Fig.5 Data processing board using ARM+DSP
圖6 運用FPGA的數(shù)據(jù)傳輸板卡Fig.6 Data transmission board using FPGA
三種算法模塊耗時統(tǒng)計如圖10所示。從圖10中可以看出全景圖拼接與幾何質(zhì)量評定最大耗時都不超過0.25s,這兩種算法計算量僅與要處理的數(shù)據(jù)大小相關(guān),在每張影像都是同樣大小的情況下,時間消耗較為均勻。云、陰影檢測算法最大耗時不超過0.5s,該算法處理時間與具體的影像內(nèi)容有關(guān),耗時有一定的波動性,符合算法特性。
表1統(tǒng)計了系統(tǒng)的實測性能,對于31MB的原始影像最大可滿足5fps的傳輸速度,算法部分最快能達到5fps的處理效率,而最后的計算結(jié)果數(shù)據(jù)量都較小,可快速存盤,若系統(tǒng)在后續(xù)擴展出無線傳輸功能,也可將結(jié)果實時傳輸?shù)狡渌K端。航飛期間在航帶內(nèi)每隔5s拍攝1張影像,本系統(tǒng)的處理性能可滿足該時間要求。
該方法主要針對應(yīng)急等需求的快速在線處理進行設(shè)計,因而沒有考慮影像勻光勻色等處理,從圖8中可以看出拼接后有色調(diào)不均勻的情況,在后續(xù)的研究中將加以改進。
圖7 原型系統(tǒng)集成Fig.7 Integration of prototype system
圖8 拼接全景圖Fig.8 Result of on-line mosaicking
圖9 航空攝影測量幾何質(zhì)量評定Fig.9 Geometry quality evaluation for aerial photogrammetry
表1 系統(tǒng)性能統(tǒng)計表Tab.1 Statistics of system performance
圖10 算法耗時統(tǒng)計Fig.10 Time consumption of each algorithm
本文提出了一種運用嵌入式架構(gòu)的在線攝影測量方法,設(shè)計了一套在線攝影測量軟硬件系統(tǒng)并完成了系統(tǒng)原型。該系統(tǒng)面向攝影測量的實際應(yīng)用,體積小,功耗低,有較好的擴展性和靈活性,對推進攝影測量系統(tǒng)向小型化、實時化發(fā)展有一定的應(yīng)用價值。在實際應(yīng)用中可根據(jù)需要對系統(tǒng)進行裁剪、集成,或者增加更多的處理單元,將兩種模塊集成到同一個板卡上以增加集成度,可更好地應(yīng)用于無人機、星載等對重量、體積、功耗有更嚴格限制的平臺。該方法作為一種新的嘗試,為攝影測量向嵌入式和在線處理方向發(fā)展探路,后面將會把更多的攝影測量算法移植并優(yōu)化到系統(tǒng)環(huán)境中,以滿足各種不同的應(yīng)用需求。
References)
[1]張劍清,柯濤,孫明偉,等.并行計算在航空攝影測量中的應(yīng)用與實現(xiàn)[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:一種基于流模板的多粒度可重構(gòu)數(shù)字信號處理器[J].國防科技大學(xué)學(xué)報,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實現(xiàn)浮點FFT處理器的研究[J].國防科技大學(xué)學(xué)報,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線醫(yī)學(xué)圖像處理系統(tǒng)[J].中國生物醫(yī)學(xué)工程學(xué)報,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架構(gòu)的機載影像實時拼接方法[J].武漢大學(xué)學(xué)報:信息科學(xué)版,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]喬瑞亭,孫和利,李欣.攝影與空中攝影學(xué)[M].武漢:武漢大學(xué)出版社,2008.QIAO Ruiting,SUN Heli,LI Xin.Photography and aerial photography[M].Wuhan:Wuhan University Press,2008.(in Chinese)
[12]高賢君,萬幼川,鄭順義,等.航空遙感影像陰影的自動檢測與補償[J].武漢大學(xué)學(xué)報:信息科學(xué)版,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.