竇曉磊,陳 鳴,陳 兵,徐亞欣
(南京航空航天大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,南京 211106)
E-mail:dxl_nuaa@nuaa.edu.cn
隨著無人機(jī)技術(shù)的成熟,各種在無人機(jī)上搭載相機(jī)系統(tǒng)的圖像應(yīng)用也得到了很大的發(fā)展.由于無人機(jī)可以方便地飛行到目標(biāo)上空的特定區(qū)域,使相機(jī)系統(tǒng)能夠從適合的視角獲得目標(biāo)的圖像信息,這種應(yīng)用有比從地面由人獲取圖像具有更好的靈活性、工作質(zhì)量和經(jīng)濟(jì)性.以往對于這類航空攝影攝像應(yīng)用,人們要在無人機(jī)航攝航拍過程結(jié)束后,從機(jī)載相機(jī)系統(tǒng)上拷貝出影像文件,再進(jìn)行后繼處理和利用,存在著實時性差的缺點.然而,在諸如交通事故處理、森林火災(zāi)監(jiān)測、搜索救援、邊境管理、石油管線巡查等場景下[1-4],實時處理圖像應(yīng)用的技術(shù)和系統(tǒng)顯得極為重要.我們將這類基于無人機(jī)實時獲取影像信息并完成特定應(yīng)用功能的應(yīng)用稱為基于無人機(jī)的實時圖像應(yīng)用(Realtime Image Applications based on Unmanned aerial vehicle,RIAU).
支持RIAU的系統(tǒng)通常包括攝像、計算、通信、控制、飛行器和地面站等功能單元.根據(jù)人類參與該應(yīng)用的程度,本文將RIAU分為“人在環(huán)路中”和“人在環(huán)路上”兩種類型.對于“人在環(huán)路中”的系統(tǒng),人是系統(tǒng)的關(guān)鍵要素,通常由人承擔(dān)了與圖像處理相關(guān)的工作,如判斷圖像中否包括了特定事件以及該事件的嚴(yán)重等級等.人的參與降低了系統(tǒng)的技術(shù)復(fù)雜性,但使系統(tǒng)具有如下缺點:反應(yīng)速度緩慢、應(yīng)用質(zhì)量不一致和網(wǎng)絡(luò)通信帶寬要求高等.對于“人在環(huán)路上”的系統(tǒng),人只負(fù)責(zé)管理系統(tǒng)和進(jìn)行決策,不再參與執(zhí)行具體的應(yīng)用功能如圖像識別、不同功能協(xié)同等工作,從而能夠大大提高系統(tǒng)反應(yīng)速度,保證應(yīng)用質(zhì)量的一致性,并能較低系統(tǒng)造價.顯然,由于“人在環(huán)路中”系統(tǒng)由人來承擔(dān)關(guān)鍵的圖像處理工作,人的負(fù)擔(dān)重且難以保證工作質(zhì)量,故它是一種相對低效、反應(yīng)慢的系統(tǒng);而“人在環(huán)路上”系統(tǒng)由計算機(jī)處理圖像相關(guān)任務(wù),故它是一種高效、反應(yīng)快的系統(tǒng),因此這種類型的RIAU系統(tǒng)具有更為廣闊的應(yīng)用領(lǐng)域.但它對圖像處理能力也有了更高的要求.值得慶幸的是,由于基于人工智能(AI)的圖像處理技術(shù)的發(fā)展,許多基于神經(jīng)網(wǎng)絡(luò)的圖像處理算法提供的許多功能已經(jīng)達(dá)到了人類專家相似或更高的水平,從而為這種系統(tǒng)提供了廣闊的發(fā)展空間.本文下面討論在人在環(huán)路上RIAU系統(tǒng)的設(shè)計方法與相關(guān)技術(shù).
引入基于AI圖像處理導(dǎo)致RIAU系統(tǒng)是計算密集型的,計算單元通常要采用計算能力強(qiáng)大的圖像服務(wù)器甚至服務(wù)器集群來支撐相關(guān)圖像處理算法.某些計算速度快、重量輕專用AI圖像處理芯片的問世,為發(fā)展RIAU系統(tǒng)提供強(qiáng)大支持,即使嵌入式系統(tǒng)也能驅(qū)動該芯片作為計算單元以提供所需的圖像處理服務(wù).根據(jù)提供實時圖像處理的計算單元的位置,RIAU可以分為地面計算和機(jī)載計算兩種模式.所謂地面計算是指無人機(jī)將拍攝的圖像信息傳輸?shù)轿挥诘孛娴膱D像服務(wù)器,待其處理后再將相關(guān)信息傳輸回?zé)o人機(jī),以繼續(xù)應(yīng)用的后繼任務(wù).圖像服務(wù)器置于地面是因為無人機(jī)載重量受限,無法將服務(wù)器放置在無人機(jī)上的緣故.根據(jù)地面圖像服務(wù)器的具體位置,還可以進(jìn)一步地將其分為云計算和邊緣計算兩種情況.前者是指服務(wù)器位于數(shù)據(jù)中心,后者是指服務(wù)器位于無人機(jī)的附近.所謂機(jī)載計算是指實時圖像處理的計算單元位于無人機(jī)上,這必然要求計算單元滿足計算能力強(qiáng)、重量輕和能耗低等要求,通常需要計算單元采用嵌入式系統(tǒng)加專用圖像處理芯片的技術(shù).
本文研究主要包括:設(shè)計分析了人在系統(tǒng)上RIAU系統(tǒng)的工作流程,重點研究了地面計算模式和機(jī)載計算模式的性能特點;研究了基于機(jī)載計算模式的RIAU系統(tǒng)的實現(xiàn)技術(shù),討論基于深度神經(jīng)網(wǎng)絡(luò)的圖像目標(biāo)檢測方法和實現(xiàn)技術(shù);最后,對比分析了基于邊緣計算和機(jī)載計算兩種原型系統(tǒng)的關(guān)鍵性能參數(shù).
本文其余部分的組織結(jié)構(gòu)如下.第2節(jié)概述相關(guān)工作.第3節(jié)重點分析人在環(huán)路上的RIAU系統(tǒng).第4節(jié)設(shè)計了邊緣計算和機(jī)載計算的RIAU系統(tǒng).第5節(jié)討論了基于深度神經(jīng)網(wǎng)絡(luò)的圖像目標(biāo)檢測系統(tǒng).第6節(jié)試驗了原型系統(tǒng)并分析了試驗數(shù)據(jù).第7節(jié)總結(jié)了全文.
無人機(jī)圖像應(yīng)用可以有非實時應(yīng)用與實時應(yīng)用之分.在無人機(jī)非實時應(yīng)用中,無人機(jī)僅充當(dāng)收集數(shù)據(jù)的角色,文獻(xiàn)[4]提出了一種改進(jìn)型的Viola-Jones算法,將道路方向調(diào)整方法與原Viola-Jones算法相結(jié)合.配備攝像機(jī)的無人機(jī)先對一段公路錄像30分鐘,錄像結(jié)束后返回起始點,然后處理錄像以完成車輛檢測.為了滿足實時性要求,文獻(xiàn)[5]提出了一個局域多智能體系統(tǒng),該系統(tǒng)利用昆蟲群體的熱技術(shù),其中每架無人機(jī)都配備一個圖像傳感器,捕捉無人機(jī)飛行區(qū)域的快照.限于無人機(jī)計算能力,所配備的圖像處理軟件僅能以一定的置信度來確定目標(biāo);地面控制站接收到多無人機(jī)發(fā)送的信息,通過融合它們的圖像數(shù)據(jù)而對圖像進(jìn)行智能分類.文獻(xiàn)[6]提出了一種利用機(jī)載平臺和微型計算機(jī)進(jìn)行運(yùn)動車輛檢測、跟蹤與定位的方法,無人機(jī)配備單目攝像機(jī)和低成本傳感器進(jìn)行地理定位;配備的微型計算機(jī)Jetson TX1,運(yùn)行YOLOv3目標(biāo)識別算法來識別圖片中車輛.文獻(xiàn)[7]提出了一種完整的目標(biāo)跟蹤系統(tǒng)控制策略,它將目標(biāo)跟蹤問題分為3種模式:目標(biāo)搜尋、目標(biāo)跟蹤以及目標(biāo)丟失.針對每種模式,設(shè)計了相應(yīng)的控制策略,實現(xiàn)了不同模式之間的切換.無人機(jī)上的計算單元具有Intel NUC、 3.1 GHz酷睿i7處理器、16gb內(nèi)存和256gb SSD,配備高幀率攝像機(jī)PS3-Eye進(jìn)行實時視頻序列的捕獲,配備ROS工具為所有運(yùn)行算法提供接口.
通過對上述相關(guān)工作的分析可知,文獻(xiàn)[5]中采用了機(jī)載計算模式以及邊緣計算模式相結(jié)合的計算模式,機(jī)載計算模式先初步識別出目標(biāo)物體,通過Wi-Fi將圖片傳送至鄰近的地面控制站,再用邊緣計算模式進(jìn)行精確識別.文獻(xiàn)[6]與文獻(xiàn)[7]都采用了機(jī)載計算模式以滿足實時應(yīng)用需求,分別在無人機(jī)上部署了微型計算機(jī)Jetson TX1[6],或在無人機(jī)上部署了Intel NUC,3.1 GHz酷睿i7處理器[7].然而,當(dāng)前無人機(jī)實時圖像應(yīng)用的研究大都集中在具體應(yīng)用的算法以及相應(yīng)算法改進(jìn)方面,而對無人機(jī)實時圖像應(yīng)用的計算模式、這些模式的優(yōu)缺點、適合場合和實現(xiàn)技術(shù)等研究不多.例如,文獻(xiàn)[8]討論了使用大疆科技公司的S1000以及基于XAIRCRAFT Technology Co.的四旋翼X650 pro試驗情況;文獻(xiàn)[9]使用輸入原始圖像數(shù)據(jù)進(jìn)行了模擬實驗;文獻(xiàn)[6-9]的研究重點是一種具體無人機(jī)圖像應(yīng)用,而不是無人機(jī)計算模式.根據(jù)實時圖像應(yīng)用的工作環(huán)境,選擇合適的計算模式和關(guān)鍵技術(shù),能夠提升應(yīng)用的實時性,這是本文研究的意義所在.
文獻(xiàn)[10,11]介紹了無人機(jī)實時圖像應(yīng)用系統(tǒng)實現(xiàn),文獻(xiàn)[10]介紹了一種無人機(jī)巡邏系統(tǒng),該系統(tǒng)由拼接模塊與檢測模塊組成,拼接模塊接受無人機(jī)捕獲的視頻作為輸入,選擇視頻中的合適幀拼接形成全景圖像,傳至檢測模塊,檢測模塊使用Faster-RCNN模型檢測對象,返回具有使用邊界框突出顯示的檢測對象的全景圖像.文獻(xiàn)[11]提出了一種基于無人機(jī)的多車輛檢測與跟蹤框架,該框架可以用于車輛計數(shù),并且可以同時處理固定背景和移動背景.其中系統(tǒng)由檢測器、跟蹤器以及多對象管理模塊組成,檢測器分為靜態(tài)背景與動態(tài)背景兩部分,跟蹤器將跟蹤所有檢測到的車輛,多對象管理模塊能夠有效地管理跟蹤車輛并且避免跟蹤混亂.由文獻(xiàn)[6-11]可分析出圖像應(yīng)用共同的功能為目標(biāo)檢測以及目標(biāo)識別.因此,無人機(jī)實時圖像應(yīng)用系統(tǒng)都需要圖片檢測器與目標(biāo)識別器;之后根據(jù)各應(yīng)用的目標(biāo)增加對應(yīng)硬件,如文獻(xiàn)[7]設(shè)置監(jiān)測模塊處理目標(biāo)丟失情況,文獻(xiàn)[11]增加了跟蹤器完成目標(biāo)跟蹤任務(wù),增加多對象管理模塊,管理跟蹤車輛,防止跟蹤混亂.本文著重研究了無人機(jī)圖像應(yīng)用的基本系統(tǒng)的設(shè)計與實現(xiàn),介紹了各部件的組成及實現(xiàn)技術(shù),為實現(xiàn)復(fù)雜無人機(jī)圖像應(yīng)用系統(tǒng)提供了研究基礎(chǔ),具有重要意義.
人在回路上的RIAU系統(tǒng)通常包括如下單元:嵌入式控制單元、拍攝圖像的相機(jī)單元、處理圖像的計算單元、傳輸控制信息或和圖像信息的通信單元、控制無人機(jī)的地面站和承載相關(guān)設(shè)備的無人機(jī).這些單元的主要功能如下:
相機(jī)單元:是RIAU系統(tǒng)獲取圖像信號的設(shè)備,通過程序或指令控制云臺相機(jī)系統(tǒng)拍攝圖像圖片,并將它們存儲在存儲區(qū)或交付給通信單元.
計算單元:承擔(dān)RIAU系統(tǒng)的圖像處理任務(wù),能夠利用相關(guān)圖像處理算法完成所拍攝圖像圖片的目標(biāo)檢測、模式識別等任務(wù),并將計算結(jié)果反饋控制單元或地面站.
通信單元:承擔(dān)RIAU系統(tǒng)控制指令、圖像信息等的傳輸任務(wù).地面站通過通信單元可將系統(tǒng)操作控制指令傳輸給無人機(jī),控制無人機(jī)飛行和RIAU操作任務(wù),相機(jī)單元也可以通過通信單元將圖像圖片數(shù)據(jù)傳輸給計算單元
嵌入式控制單元:是無人機(jī)上控制RIAU系統(tǒng)功能的設(shè)備,它根據(jù)所執(zhí)行的任務(wù)邏輯,驅(qū)動相機(jī)單元、通信單元和無人機(jī)工作,完成特定的實時圖像應(yīng)用.
無人機(jī):是承載RIAU系統(tǒng)部分單元并在任務(wù)區(qū)域飛行的設(shè)備.
地面站:是RIAU的控制中樞,它將人類的控制命令發(fā)送給無人機(jī)執(zhí)行,并收集、存儲無人機(jī)獲取的信息.
以地面計算模式從無人機(jī)飛行區(qū)域?qū)崟r檢測出目標(biāo)的任務(wù)為例,人在環(huán)路上RIAU的大致工作流程如下:
地面站向無人機(jī)控制單元發(fā)出執(zhí)行實時圖像應(yīng)用的指令;
相機(jī)單元執(zhí)行飛行現(xiàn)場實時拍攝任務(wù);
無人機(jī)上的通信單元將圖像信息傳輸給地面計算單元;
計算單元從現(xiàn)場圖像中檢測目標(biāo);
地面通信單元將目標(biāo)檢測結(jié)果傳輸給無人機(jī),以控制無人機(jī)獲取相關(guān)圖像或繼續(xù)后繼拍攝;
地面站向無人機(jī)控制單元發(fā)出任務(wù)結(jié)束指令,無人機(jī)返航.
圖1 地面計算模式RIAU系統(tǒng)的工作時序圖Fig.1 Working sequence diagram of RIAU systems in ground computing mode
圖1給出了上述RIAU系統(tǒng)主要單元的工作時序圖,其中t1是地面站發(fā)送控制分組到無人機(jī)通信單元的時延,Δ1=t2-t1是相機(jī)單元工作時延,Δ2=t3-t2是無人機(jī)向計算單元傳輸圖像分組的時延,Δ3=t4-t3是計算單元處理時延,無人機(jī)需要等Δ4=t5-t4時延才能收到計算單元得到的目標(biāo)檢測結(jié)果.可見,從相機(jī)單元獲取圖像到計算單元檢測到目標(biāo),再到控制無人機(jī)做后繼動作所需要的反應(yīng)時間Δ約為:
Δ=Δ1+Δ2+Δ3+Δ4
(1)
由式(1)可見,為了增強(qiáng)RIAU系統(tǒng)的實時性,一是設(shè)法減小構(gòu)成系統(tǒng)反應(yīng)時延Δ的各個成分,二是根據(jù)每個階段通信單元傳輸?shù)臄?shù)據(jù)量,采用性價比合適的通信技術(shù),如Wi-Fi、4G或5G技術(shù).下面分別討論地面計算模式以及機(jī)載計算模式的相關(guān)技術(shù).
為了支持RIAU系統(tǒng)對圖像的實時處理能力,計算單元必須要具備密集計算能力,為了快速、精確地檢測目標(biāo)可采用如YOLOv3深度學(xué)習(xí)網(wǎng)絡(luò),計算設(shè)備需要有強(qiáng)大的計算能力以減少Δ3.在地面計算模式中,通常由專用服務(wù)器作為計算單元,由此要為RIAU提供更寬的通信帶寬.圖2顯示了RIAU系統(tǒng)的組成情況,其中圖2(a)表示在云計算場景下的系統(tǒng)構(gòu)成,圖2(b)表示在邊緣計算場景下的系統(tǒng)構(gòu)成.
圖2 RIAU系統(tǒng)組成Fig.2 Composition of RIAU systems
在云計算場景下,RIAU系統(tǒng)使用數(shù)據(jù)中心中的服務(wù)器運(yùn)行特定算法作為計算單元.無人機(jī)通過通信單元接收到地面站發(fā)送的任務(wù)指令后,控制單元控制相機(jī)單元拍攝圖像;然后將拍攝的圖像信息通過通信單元傳輸?shù)綌?shù)據(jù)中心中的服務(wù)器,服務(wù)器運(yùn)行特定圖像處理算法得到結(jié)果;接下來將處理結(jié)果信息再傳輸給無人機(jī)控制單元進(jìn)行后繼處理,例如調(diào)整相機(jī)單元參數(shù)或改變無人機(jī)航線等.
在邊緣計算場景下,RIAU系統(tǒng)則將計算單元部署在無人機(jī)附近的地面站或車輛中.此時工作流程與云計算場景下的不同之處在于,將相機(jī)單元拍攝的圖像信息通過通信單元傳輸?shù)綗o人機(jī)系統(tǒng)附近的服務(wù)器進(jìn)行處理,而不是傳輸?shù)綌?shù)據(jù)中心中.顯然,后者的下傳的圖像傳輸和上傳的處理結(jié)果的傳輸路徑更短,因此傳輸時延(Δ2+Δ4)將比前者更小,傳輸?shù)拇鷥r也更小.
在地面計算模式中,通信通常可以采用Wi-Fi技術(shù)或4G技術(shù).在當(dāng)前無人機(jī)技術(shù)中,地面站與無人機(jī)之間通信常使用Wi-Fi技術(shù).因此,Wi-Fi技術(shù)不僅能夠用于地面站控制無人機(jī)飛行,也能夠用于傳輸將相機(jī)單元拍攝的圖像或視頻傳輸給地面站.盡管Wi-Fi是通信帶寬寬、技術(shù)簡單和價格低廉的技術(shù),但它存在干擾大的缺點,當(dāng)距離稍大時通信就可能中斷.例如,某品牌無人機(jī)為使通信質(zhì)量穩(wěn)定、通信距離更遠(yuǎn),采用了大功率的Wi-Fi技術(shù),但它不僅會對其他無線通信系統(tǒng)產(chǎn)生嚴(yán)重干擾,而且當(dāng)同時使用同款多臺無人機(jī)時,這些通信系統(tǒng)將會互相干擾.
為了減小多無人機(jī)之間的通信干擾,同時滿足無人機(jī)長距離通信的需求,通信單元可以使用4G甚至5G通信技術(shù).當(dāng)通信單元之間使用4G/5G技術(shù)交換數(shù)據(jù)時,就是利用移動通信系統(tǒng)的基站來溝通RIAU系統(tǒng)的兩個或多個節(jié)點.由于4G網(wǎng)絡(luò)通信帶寬可達(dá)幾十Mbps,可以滿足大多數(shù)實時圖像應(yīng)用的需求.然而,在RIAU系統(tǒng)中使用4G技術(shù),需要解決內(nèi)網(wǎng)穿越問題[12]技術(shù)問題.這是因為IPv4網(wǎng)絡(luò)地址缺乏,大多數(shù)互聯(lián)網(wǎng)用戶使用內(nèi)部IP地址通過網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT)技術(shù)上網(wǎng).NAT技術(shù)僅允許內(nèi)網(wǎng)用戶訪問因特網(wǎng)的公網(wǎng)IP地址,卻不支持公網(wǎng)IP地址訪問內(nèi)網(wǎng)IP地址.如果RIAU系統(tǒng)采用4G技術(shù)通信的話,兩個節(jié)點間的通信需要從一個內(nèi)網(wǎng)的IP地址進(jìn)入公網(wǎng)的穿越服務(wù)器,再利用該服務(wù)器提供的穿越服務(wù)才能進(jìn)入另一個內(nèi)網(wǎng).
機(jī)載計算模式與地面計算模式關(guān)鍵差異在于,前者將計算單元放置在無人機(jī)上而不再放置在地面.圖2(c)給出了基于機(jī)載計算模式的RIAU系統(tǒng)的組成,其中由于計算單元在無人機(jī)上,因而免除了大量圖像及其結(jié)果信息的長距離傳輸,因而也就完全消除了Δ2和Δ4.然而,這對無人機(jī)機(jī)載實時處理圖像的能力也提出了更高的要求.目前已經(jīng)研發(fā)出一些高效低耗的支持特定圖像處理算法的專用商用芯片.借助于運(yùn)行該芯片的計算單元,無人機(jī)就能夠以機(jī)載方式承載計算能力強(qiáng)(浮點計算可達(dá)100GFLOPs)、重量輕(<60克)、功耗低(<1.2W瓦)的計算棒,從而減少了時延Δ3.
在機(jī)載計算模式中,無人機(jī)通過通信單元接收到地面站的拍攝命令后,控制相機(jī)單元拍攝,將拍攝的圖像信息直接提交給機(jī)載的計算單元,計算單元處理圖像并返回處理結(jié)果,繼續(xù)后繼工作.此時,式(1)可以簡化為式(2):
Δ=Δ1+Δ3
(2)
綜上所述,表1中列出了幾種RIAU計算模式的特點.
表1 兩種RIAU計算模式的特點比較Table 1 Comparison of the characteristics of the two RIAU computing modes
可見,云計算模式由于計算資源充足非常適合計算復(fù)雜、各種不同算法的圖像處理,計算的復(fù)雜性越高,其計算優(yōu)勢也就越大;但其數(shù)據(jù)傳輸?shù)拈_銷隨著數(shù)據(jù)量的增加而增大,對帶寬的要求也越高,成本也就越大.機(jī)載計算模式需要得到支持特定算法的專用芯片的支持,因此它支持的應(yīng)用受限.在有專用芯片支持的前提下,其優(yōu)勢是有較低的系統(tǒng)時延和通信帶寬需求,部署成本較低.云計算模式與邊緣計算模式相比,后者的時延較低,而后者計算成本較高和通信成本較低.因此,需要根據(jù)實時圖像應(yīng)用的具體要求來選擇適合的計算模式.
我們設(shè)計實現(xiàn)的一種RIAU系統(tǒng)的原型系統(tǒng)中無人機(jī)是一個基本設(shè)備,可以采用大疆公司DJ M100或基于開源飛控Pixhawk飛行平臺,利用平臺提供的SDK就能夠控制無人機(jī)根據(jù)RIAU需求按預(yù)定航線飛行.
嵌入式控制單元采用了樹莓派3B+.樹莓派3B+運(yùn)行Linux系統(tǒng),具備ARM v7 1.2 GHz處理器和1 GB RAM,雖計算能力有限,但其具有編程開發(fā)便利、接口齊全、小巧輕便、成本低等優(yōu)點,適合機(jī)載使用.通過在樹莓派3B+編程,可將無人機(jī)、相機(jī)單元、通信單元和計算棒等綜合為一體.
相機(jī)單元采用了一款電子吊艙產(chǎn)品,包括了可編程控制的一體化云臺和相機(jī).因此,當(dāng)控制單元的程序控制無人機(jī)沿航線飛行時,RIAU程序控制相機(jī)在特定區(qū)域進(jìn)行拍照,并將拍攝的圖像送到計算單元進(jìn)行目標(biāo)檢測,再根據(jù)檢測結(jié)果調(diào)整控制,以完成實時圖像應(yīng)用.
通信單元是在基于高通QCA9563+QCA9880芯片的一款無線通信主板上編程實現(xiàn)的.該主板內(nèi)置OpenWRT系統(tǒng),集成了2.4/5GHz Wi-Fi和4G LTE網(wǎng)絡(luò)通信芯片,具有128MB的內(nèi)存以及16MB的閃存,支持多模式無線通信.2.4G/5G Wi-Fi芯片及其天線能夠為無人機(jī)與地面站之間提供Wi-Fi通信,但通信距離僅限于約100m.4G LTE芯片及其天線能夠利用電信公司的移動通信設(shè)施進(jìn)行距離不限的通信,通信帶寬可達(dá)幾十Mbps,可用于無人機(jī)與地面站或云計算中心之間的通信.配置通信單元使其支持4G通信的方法將在4.2節(jié)中簡要討論.
地面站可采用強(qiáng)化版的便攜式計算機(jī),該機(jī)器上運(yùn)行便于人機(jī)交互的可視化程序.為了支持邊緣計算模式,該機(jī)的CPU應(yīng)當(dāng)足夠強(qiáng)大,以能夠運(yùn)行YOLOv3算法,并采用數(shù)據(jù)庫或地理信息系統(tǒng)來管理RIAU系統(tǒng).
為使RIAU節(jié)點之間利用4G技術(shù)進(jìn)行通信,通信單元配置LTE 4G模塊,在SIM卡槽中插入4G手機(jī)卡并設(shè)置4G聯(lián)網(wǎng)模式.此時,節(jié)點的內(nèi)網(wǎng)IP地址要指向公共互聯(lián)網(wǎng)上某數(shù)據(jù)中心(如阿里云)運(yùn)行的一個虛擬專用服務(wù)器(VPS),該服務(wù)器具有公共IP地址如IP1.借助于該服務(wù)器上運(yùn)行的專用內(nèi)網(wǎng)穿透軟件(如FRP),就能夠利用4G移動網(wǎng)絡(luò)實現(xiàn)RIAU節(jié)點之間的通信.圖3(a)給出了一個原型系統(tǒng)的配置示例.圖中為支持兩個專網(wǎng)中地面站與控制單元間的通信,地面站的IP地址為192.168.10.10,控制單元的IP地址為192.168.2.10,控制單元與地面站中需要分別運(yùn)行FRP客戶機(jī)服務(wù),它們借助于VPS服務(wù)器運(yùn)行的FRP服務(wù)器服務(wù)實現(xiàn)穿越公網(wǎng)的通信.
為使FRP服務(wù)器程序工作,先要修改其配置文件,設(shè)置服務(wù)端IP地址和端口號、使用的協(xié)議等參數(shù);其次要重啟服務(wù)器程序.為使客戶機(jī)程序工作,也要經(jīng)過類似的初始化工作,修改其配置文件,設(shè)置本地IP地址、服務(wù)器IP地址和端口號、是否壓縮、是否加密等參數(shù),重啟客戶機(jī)程序,從而完成部署.
機(jī)載計算模式系統(tǒng)在硬件配置方面與邊緣計算模式系統(tǒng)的大體一致,區(qū)別在于前者將計算單元放置在無人機(jī)上,而后者將計算單元放置在地面站中.為了實現(xiàn)在機(jī)上進(jìn)行圖像應(yīng)用計算,可以利用Movidius 神經(jīng)計算棒(Neural Computing Stick,NCS)[13]輔助計算.NCS是Movidius推出的基于Myriad 2視覺處理單元(Visual Processing Unit,VPU)的神經(jīng)計算棒,是一種基于USB模式的加速設(shè)備,官方提供的API同時支持C/C++、Python語言以及SDK,目前SDK中主要支持Caffe以及Tensorflow兩種深度學(xué)習(xí)框架.只需將NCS插入樹莓派USB接口上,并安裝Movidius NCS的USB驅(qū)動即可方便使用.使用NCS能夠為計算能力不足的樹莓派提供了深度學(xué)習(xí)加速功能,使樹莓派也具有直接運(yùn)行實時深度學(xué)習(xí)檢測算法的能力,以滿足實時應(yīng)用的需求,保證了機(jī)載計算模式的圖像處理的實時性.
圖3 通信方式Fig.3 Methods of communications
圖3(b)給出了機(jī)載系統(tǒng)的一種配置.在無人機(jī)上配備的基于樹莓派的控制單元中,運(yùn)行著航線控制及其RIAU程序,它們基于 DJ SDK開發(fā),調(diào)用無人機(jī)飛控功能,將起飛、前后左右飛行、降落等指令轉(zhuǎn)換成實際操作無人機(jī)的飛行動作.我們可以在控制單元中設(shè)置初始化檢查程序、起飛程序、航線控制程序、實時圖像應(yīng)用程序以及返航與降落程序,整個RIAU過程無需人類干預(yù).
作為RIAU的一部分,控制相機(jī)單元的云臺控制程序也部署在控制單元中.云臺控制程序需要根據(jù)具體RIAU而調(diào)試編寫,其中包括如何拍攝圖像、如何根據(jù)圖像處理信息來控制云臺三軸轉(zhuǎn)動、如何控制相機(jī)改變焦距等,對于圖像拍攝、處理方式的不同將使得RIAU豐富多彩,其應(yīng)用領(lǐng)域十分廣泛.為了滿足RIAU實時性要求,本系統(tǒng)的計算單元主要有NCS充當(dāng),主要基于YOLOv3算法來提供目標(biāo)識別功能(詳見第5節(jié)).
作為RIAU的一部分,控制相機(jī)單元的云臺控制程序也部署在控制單元中.云臺控制程序需要根據(jù)具體RIAU而調(diào)試編寫,其中包括如何拍攝圖像、如何根據(jù)圖像處理信息來控制云臺三軸轉(zhuǎn)動、如何控制相機(jī)改變焦距等,對于圖像拍攝、處理方式的不同將使得RIAU豐富多彩,其應(yīng)用領(lǐng)域十分廣泛.為了滿足RIAU實時性要求,本系統(tǒng)的計算單元主要有NCS充當(dāng),主要基于YOLOv3算法來提供目標(biāo)識別功能(詳見第5節(jié)).
如果有必要的話,圖3(b)中的地面站主要用于實時干預(yù)RIAU的運(yùn)行.地面站中內(nèi)置通信單元,可利用4G網(wǎng)絡(luò)與無人機(jī)上的設(shè)備進(jìn)行通信,其IP地址設(shè)置為192.168.10.10.注意到圖像處理在機(jī)上完成,因此4G通道的通信量較小.機(jī)上的相機(jī)單元、控制單元和通信單元通過以太網(wǎng)連接,它們可配置在同一子網(wǎng),通信單元、控制單元和相機(jī)單元的IP地址分別為192.168.2.1、192.168.2.10和192.168.2.100.根據(jù)4.2節(jié),地面站與無人機(jī)間的通信需要借助于互聯(lián)網(wǎng)上的穿越機(jī)制.
對于人在環(huán)上的RIAU而言,計算單元能夠代替人進(jìn)行復(fù)雜圖像處理功能是必須的.對于目前許多流行的基于無人機(jī)的實時圖像應(yīng)用系統(tǒng)而言,計算單元從圖像中檢測出特定目標(biāo)非常關(guān)鍵,而無論計算單元是位于無人機(jī)上、網(wǎng)絡(luò)邊緣或數(shù)據(jù)中心.下面將以圖像中檢測特定目標(biāo)為例,討論了將YOLOv3(You Only Look Once)[14]算法用于RIAU應(yīng)用的過程,YOLOv3是目前在準(zhǔn)確率和速度方面都極為出色的一種算法.
為使YOLOv3高效運(yùn)行,首先需要建立檢測目標(biāo)的訓(xùn)練數(shù)據(jù)集.為了盡可能精確地從圖像中識別目標(biāo),我們可以從不同角度拍攝2000張包括目標(biāo)的圖片,并保存為.jpg格式的文件.其次,使用Labelme工具標(biāo)注這2000張圖片,每張圖片對應(yīng)生成一個xml文件.最后,將標(biāo)注過的數(shù)據(jù)集按照6∶2∶2的比例劃分為訓(xùn)練集、驗證集和測試集數(shù)據(jù)文件.
算法設(shè)置IsExist返回值,告知圖片P0中是否存在目標(biāo)Ts,其判斷標(biāo)準(zhǔn)為:
(3)
如果識別過程中IsExis=false,表示P0中不存在Ts,無人機(jī)繼續(xù)飛行拍攝;如果IsExist=true,表示P0中存在Ts,識別程序處理得圖片如圖4所示,程序以圖片左下角為原點,下邊界為X軸,左邊界為Y軸建立直角坐標(biāo)系,圖片范圍為(0,Ymax;0,0;Xmax,0;Xmax,Ymax).其中圓柱體假定為目標(biāo)對象,中間框體即為目標(biāo)識別的矩形邊框,矩形四角坐標(biāo)為:(xlu,ylu,xld,yld,xru,yru,xrd,yrd).最后識別程序?qū)D片范圍、識別矩形四角坐標(biāo)以及Ts置信度ε(Ts的可信程度)保存在文件中.計算程序調(diào)用文件通過識別結(jié)果對無人機(jī)后續(xù)行動,如將識別的目標(biāo)圖像發(fā)送給地面站,或指示無人機(jī)對該識別的目標(biāo)進(jìn)行跟蹤等.
圖4 識別目標(biāo)對象Fig.4 Identifing the target
為了驗證本文所提的RIAU設(shè)計方法,本節(jié)對基于邊緣計算模式的RIAU原型系統(tǒng)和機(jī)載計算模式RIAU原型系統(tǒng)進(jìn)行了試驗,重點測試了在兩種模式下實時圖像應(yīng)用對系統(tǒng)的性能要求.
試驗中,我們使用大疆M100無人機(jī)搭載了實現(xiàn)控制單元功能的樹莓派3B+、用于通信的網(wǎng)絡(luò)板以及云臺系統(tǒng),Movidius 神經(jīng)計算棒與樹莓派USB口相連.對于邊緣計算或云計算模式系統(tǒng),地面站計算機(jī)運(yùn)行YOLOv3算法來處理目標(biāo)對象.
為了使試驗結(jié)果具有一般性,本試驗在分別機(jī)載計算模式和邊緣計算模式下,根據(jù)式(1)中的4個成分對RIAU原型系統(tǒng)進(jìn)行實際測量,以期對每個關(guān)鍵時間有數(shù)量級概念.
相機(jī)單元工作時延Δ1是從控制單元向相機(jī)單元發(fā)送拍攝命令直至在控制單元內(nèi)存得到圖片持續(xù)的時間.試驗用了測試10次的平均值作為測量結(jié)果,Δ1=0.055s.可見,相機(jī)單元工作有毫秒級時延.
根據(jù)圖片像素的不同,計算單元處理圖片的時延Δ3有所不同.本系統(tǒng)相機(jī)單元拍攝的圖片默認(rèn)像素大小為4096×2160,考慮到各種不同實時應(yīng)用的需求,本試驗系統(tǒng)處理5種不同像素,即像素分別為640×480,1600×1200,1280×960,2560×1920和4096×2160的圖片進(jìn)行了測量.存儲上述像素的圖片所需要的內(nèi)存分別為:60KB、200KB、300KB、500KB和1MB.
試驗中分別在兩種計算模式下測量識別圖片中對象所需要的時間,為此,需要在兩種模式下的程序中加入計時的功能.
圖5(a)是5種像素不同的圖片在兩種計算模式下的圖片處理時間.可見,圖片的像素對機(jī)載計算模式中圖片處理時間有較大影響,例如,在640×480像素下,處理時間約為0.044秒;而在4096×2160大小下,處理時間約為1秒,可能已經(jīng)不適合某些要求較高的實時性應(yīng)用了.在邊緣計算模式中,由于服務(wù)器處理圖片能力較強(qiáng),圖片像素對處理時間的影響較小.可見,對于圖片處理要求一般的應(yīng)用,可以采用機(jī)載計算模式的RIAU系統(tǒng);而對于某些要求較高的應(yīng)用,應(yīng)當(dāng)采用邊緣計算模式的RIAU系統(tǒng).
圖5 試驗結(jié)果Fig.5 Experimental results
圖片傳輸時延Δ2顯然與圖片像素和網(wǎng)絡(luò)傳輸數(shù)列直接相關(guān).試驗分別在4G和Wi-Fi兩種傳輸方式下對5種不同大小的圖片進(jìn)行了傳輸時延測量.采用4G傳輸方式時,系統(tǒng)的不同通信單元處于4G基站范圍內(nèi),下載速度為2 MB/s~3MB/s.采用Wi-Fi傳輸方式時,系統(tǒng)的不同通信單元位于同一接入點范圍內(nèi),下載速度為2 MB/s ~3MB/s.通信程序基于Socket實現(xiàn)圖片的收發(fā)和計時.試驗中分別對每張圖片進(jìn)行10次測試并取平均值作為結(jié)果.
圖5(b)給出了5種大小的圖片在兩種傳輸方式下的傳輸時延.可見,在4G傳輸方式中,圖片像素大于1280×960時,圖片傳輸時延大于1秒,在像素大于4096×2160時,圖片傳輸時延接近8秒.而在Wi-Fi傳輸方式中,各種圖片的傳輸時延都小于1秒.
但由于Wi-Fi通信覆蓋的區(qū)域較小,對于兩個通信單元相隔較遠(yuǎn)時無法使用.為了測試Wi-Fi通信模式下,無人機(jī)的活動范圍,設(shè)置了普通Wi-Fi下,圖片傳輸范圍試驗.
試驗中,使用路由器開啟Wi-Fi,Wi-Fi下載速度為2MB/s~3MB/s,傳輸圖片分辨率為640×480的圖片,在此分辨率下,4G傳輸方式與Wi-Fi傳輸方式的傳輸時延相近,適合用作對比.
圖5(c)給出了與路由器分別相距2米、5米、10米、20米及30米時,兩種模式下傳輸分辨率為640×480的圖片的傳輸時延,由于測量范圍均在4G基站內(nèi),因此4G傳輸方式的傳輸時延是固定的;無人機(jī)與路由器相距20米內(nèi),Wi-Fi傳輸模式的傳輸時延比較穩(wěn)定,相距20米-30米范圍內(nèi),傳輸時延大幅度增加,相距超過30米后,無人機(jī)與Wi-Fi連接開始不穩(wěn)定,出現(xiàn)連接中斷現(xiàn)象.
結(jié)合測量結(jié)果可知,Wi-Fi傳輸模式的傳輸時延依賴開啟Wi-Fi的站點服務(wù)范圍,超過站點服務(wù)范圍會出現(xiàn)丟包或中斷現(xiàn)象,導(dǎo)致無人機(jī)丟失控制.而4G傳輸方式幾乎沒有距離限制,盡管它的傳輸時延較大.未來可以考慮使用5G技術(shù),以降低圖片傳輸時延.試驗表明,命令傳輸時延Δ4的10次測試的平均值為0.015s.
我們根據(jù)式(1),分別對邊緣計算模式和機(jī)載計算模式的系統(tǒng),測量了系統(tǒng)反應(yīng)時間.
圖5(d)是測試機(jī)載計算模式系統(tǒng)和邊緣計算模式系統(tǒng)所得的總時延曲線.可見,使用Wi-Fi傳輸?shù)倪吘売嬎隳J揭约皺C(jī)載計算模式的系統(tǒng),其總時延隨圖片像素增加變化不大;而在邊緣計算模式下使用4G傳輸,由于網(wǎng)絡(luò)帶寬限制,總時延隨圖片像素增加而迅速增加.結(jié)合前面的測量結(jié)果可知,RIAU系統(tǒng)的總時延主要取決于計算單元處理時延和通信單元傳輸時延,對像素高的圖片其處理時延和傳輸時延尤為突出.
隨著基于無人機(jī)的實時圖像應(yīng)用(RIAU)增加,設(shè)計實現(xiàn)RIAU系統(tǒng)面臨著許多技術(shù)挑戰(zhàn).本文分析了人在環(huán)路上的RIAU系統(tǒng)的典型計算模式和應(yīng)用的時延構(gòu)成,分析了地面計算和機(jī)載計算兩種模式系統(tǒng)的特點;研究設(shè)計實現(xiàn)RIAU系統(tǒng)的關(guān)鍵技術(shù)和基于YOLOv3算法的圖像目標(biāo)檢測方法,建立了RIAU原型系統(tǒng).試驗結(jié)果表明,系統(tǒng)的總時延主要取決于計算單元處理時延和通信單元傳輸時延,對像素高的圖片其處理時延和傳輸時延尤為突出;對于圖片處理要求一般的應(yīng)用,可以采用機(jī)載計算模式的RIAU系統(tǒng);而對于某些要求較高的應(yīng)用,應(yīng)當(dāng)采用邊緣計算模式的RIAU系統(tǒng);4G傳輸方式對于通信節(jié)點的位置沒有限制,但對于像素較高的圖片傳輸時間較大.