張 展, 張憲琦, 左德承, 付國(guó)棟
(哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150001)
目標(biāo)追蹤算法近年來(lái)在很多領(lǐng)域得到廣泛應(yīng)用,其主要應(yīng)用場(chǎng)景包括自動(dòng)駕駛、安防監(jiān)控、異常行為分析等方面.例如:機(jī)器人通過目標(biāo)檢測(cè)進(jìn)行行人識(shí)別后,通過追蹤算法保持用戶跟隨,從而進(jìn)行定向服務(wù);工業(yè)加工中,通過調(diào)整舵機(jī)保持追蹤物體處于畫面中心,從而使設(shè)備追蹤目標(biāo)進(jìn)行加工等.追蹤算法的主要挑戰(zhàn)包括目標(biāo)遮擋、尺度更改、光照變化以及運(yùn)動(dòng)模糊等多個(gè)方面.目前,主要的追蹤算法可以大體分為兩類:一類基于相關(guān)濾波器(correlation filter,簡(jiǎn)稱CF),另一類基于深度學(xué)習(xí)(deep learning,簡(jiǎn)稱DL).采用相關(guān)濾波器的算法,將傳入的原始數(shù)據(jù)經(jīng)過快速傅里葉變換轉(zhuǎn)換到頻域內(nèi)進(jìn)行計(jì)算,大大提高了計(jì)算速度,適用于計(jì)算能力較弱的移動(dòng)設(shè)備;基于深度學(xué)習(xí)的追蹤算法在近年來(lái)成為一大熱點(diǎn),該類方法的主要缺點(diǎn)在于計(jì)算壓力較大,雖然可以結(jié)合模型壓縮技術(shù)對(duì)深度學(xué)習(xí)模型進(jìn)行壓縮,但仍難以達(dá)到追蹤任務(wù)對(duì)于算法實(shí)時(shí)性的嚴(yán)苛要求,尤其對(duì)于計(jì)算能力較為薄弱的嵌入式設(shè)備,難以部署應(yīng)用.
嵌入式設(shè)備較弱的計(jì)算能力一直是其應(yīng)用瓶頸,雖然近年來(lái)硬件設(shè)備性能大幅提升,但仍難以滿足像深度學(xué)習(xí)模型這類計(jì)算密集型應(yīng)用的需求,尤其針對(duì)特定領(lǐng)域應(yīng)用,對(duì)設(shè)備的續(xù)航時(shí)間、響應(yīng)速度、穩(wěn)定性和可靠性均有較高的要求,這給算法設(shè)計(jì)造成了更大的困難.邊緣計(jì)算的發(fā)展為解決此類問題提供了新的思路,相比于傳統(tǒng)的云計(jì)算,邊緣計(jì)算采用最近端服務(wù)策略,以最快速度響應(yīng)任務(wù)請(qǐng)求,從而滿足任務(wù)的實(shí)時(shí)性需求.移動(dòng)終端節(jié)點(diǎn)可以將計(jì)算任務(wù)全部或部分卸載到邊緣云,以緩解本地計(jì)算壓力,實(shí)現(xiàn)功耗和處理速度的雙重優(yōu)化.這使得研究人員不但可以從算法設(shè)計(jì)角度研究一種時(shí)效性強(qiáng)、準(zhǔn)確度高、計(jì)算量小、能耗較低的目標(biāo)追蹤算法,還可以從應(yīng)用部署的角度,通過研究計(jì)算任務(wù)分割、卸載、設(shè)備間通信以及數(shù)據(jù)融合等策略,進(jìn)一步優(yōu)化應(yīng)用性能.
本文對(duì)基于計(jì)算機(jī)視覺的目標(biāo)追蹤算法的部署策略進(jìn)行研究,其硬件環(huán)境主要為可穿戴設(shè)備或普通嵌入式設(shè)備,相比常規(guī)目標(biāo)追蹤算法的主要難點(diǎn),應(yīng)用設(shè)備還面臨計(jì)算能力較弱、響應(yīng)度和準(zhǔn)確度要求較高的問題.本文通過研究基于邊緣計(jì)算的任務(wù)分割和信息融合等策略,提升應(yīng)用響應(yīng)速度的同時(shí),降低移動(dòng)終端節(jié)點(diǎn)計(jì)算壓力及能耗.
本文的主要貢獻(xiàn)如下:
1.為嵌入式設(shè)備上深度學(xué)習(xí)模型的部署提供了新的思路.針對(duì)移動(dòng)嵌入式設(shè)備資源不足、深度學(xué)習(xí)模型難以部署應(yīng)用的問題,引入邊緣云對(duì)移動(dòng)設(shè)備提供支撐,從計(jì)算、通信、存儲(chǔ)的角度對(duì)計(jì)算模型的部署策略進(jìn)行優(yōu)化,采用終端節(jié)點(diǎn)與邊緣云協(xié)同處理的方式進(jìn)一步提升任務(wù)處理速度;
2.針對(duì)特定應(yīng)用場(chǎng)景,為保證終端設(shè)備在較差網(wǎng)絡(luò)環(huán)境下的獨(dú)立作業(yè)能力,提升系統(tǒng)整體的容錯(cuò)性和魯棒性,在移動(dòng)終端節(jié)點(diǎn)部署輕量級(jí)目標(biāo)追蹤算法;同時(shí),結(jié)合集成學(xué)習(xí)策略融合本地終端節(jié)點(diǎn)和邊緣云端計(jì)算結(jié)果,使移動(dòng)設(shè)備具備網(wǎng)絡(luò)環(huán)境自適應(yīng)的能力;
3.提出基于峰值置信度的目標(biāo)追蹤算法集成方式,并通過響應(yīng)圖重建策略降低傳輸數(shù)據(jù)量.
本文第1 節(jié)對(duì)目標(biāo)追蹤和邊緣計(jì)算的相關(guān)工作進(jìn)行介紹.第2 節(jié)詳述所提出的目標(biāo)追蹤應(yīng)用部署策略.第3節(jié)實(shí)驗(yàn)驗(yàn)證部署策略的有效性,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析.第4 節(jié)對(duì)全文進(jìn)行總結(jié).
目標(biāo)追蹤算法按照追蹤目標(biāo)和攝像機(jī)數(shù)量,可分為單目標(biāo)單攝像機(jī)(single target single camera,簡(jiǎn)稱STSC)、多目標(biāo)單攝像機(jī)(multi target single camera,簡(jiǎn)稱MTSC)、多目標(biāo)多攝像機(jī)(multi target multi camera,簡(jiǎn)稱MTMC),其中,MTMC 可以看成是MTSC 與ReID(re-identification)技術(shù)的結(jié)合.其主要流程一般為:在第一幀給定追蹤目標(biāo)位置,通常為方形檢測(cè)框;在后續(xù)數(shù)據(jù)幀中,算法對(duì)追蹤目標(biāo)進(jìn)行跟隨,同時(shí)給出算法計(jì)算得出的檢測(cè)位置以及尺度.
目前,單目標(biāo)追蹤算法大體可以分成兩類,分別為基于相關(guān)濾波器的算法和基于深度學(xué)習(xí)的算法.
基于深度學(xué)習(xí)技術(shù)的單目標(biāo)追蹤算法主要可以分為兩類.
· 一類將深度學(xué)習(xí)技術(shù)與相關(guān)濾波器相結(jié)合,如:Danelljan 等人提出的DeepSRDCF[1]算法采用深度特征取代手工特征以提升模型性能;Ma 等人提出的HCFT[2]算法采用VGG-Net[3]進(jìn)行特征提取,集成從不同特征圖譜所學(xué)習(xí)到的濾波器作為最終模型,以利用多層特征,取得了更優(yōu)的追蹤性能;
· 另一類則完全采用深度學(xué)習(xí)相關(guān)技術(shù)進(jìn)行追蹤,如Tao 等人[4]采用孿生神經(jīng)網(wǎng)絡(luò)(siamese network)比較追蹤目標(biāo)與候選目標(biāo)之間的相似性,進(jìn)而確定目標(biāo)位置.
基于孿生神經(jīng)網(wǎng)絡(luò)的目標(biāo)追蹤算法是近來(lái)最主要的研究分支,主要原因在于此類方法兼顧了處理速度和算法性能.Bertinetto 等人提出了SiamFC[5]算法,該方法創(chuàng)新性地將追蹤問題視為相似學(xué)習(xí)問題,避免了深度學(xué)習(xí)模型的在線更新,在速度和性能兩方面均取得了非常不錯(cuò)的效果.SiamRPN[6]通過引入物體檢測(cè)領(lǐng)域的區(qū)域建議網(wǎng)絡(luò)(region proposal network,簡(jiǎn)稱RPN)進(jìn)一步提升性能.針對(duì)將SiamFC 和SiamRPN 的主干網(wǎng)絡(luò)替換為更深層結(jié)構(gòu)時(shí),算法并未取得更好的性能的問題,Li 和 Zhang 等人從不同的角度探究其原因,分別提出了SiamRPN++[7]和SiamDW[8].Wang 等人在原有網(wǎng)絡(luò)基礎(chǔ)上添加Mask 分支,提出了SiamMask[9],完成目標(biāo)追蹤任務(wù)的同時(shí)實(shí)現(xiàn)物體分割,在一般場(chǎng)景下效果顯著,但對(duì)于遮擋等問題魯棒性較差.針對(duì)不同算法的優(yōu)化,一方面可以從算法模型的角度進(jìn)行改進(jìn),如改進(jìn)模型架構(gòu)設(shè)計(jì),或采用集成學(xué)習(xí)方法,結(jié)合不同種算法優(yōu)點(diǎn)構(gòu)建性能更加優(yōu)良的算法模型;另一方面,可以從應(yīng)用部署的角度,通過研究計(jì)算任務(wù)分割、卸載、設(shè)備間通信以及數(shù)據(jù)融合等策略,進(jìn)一步優(yōu)化應(yīng)用性能.本文以STSC 算法為主要研究對(duì)象,從應(yīng)用部署優(yōu)化的角度,對(duì)目標(biāo)追蹤算法在移動(dòng)設(shè)備上的部署策略進(jìn)行研究,部署策略也可進(jìn)一步擴(kuò)展至其他類型算法.
新型網(wǎng)絡(luò)任務(wù)和場(chǎng)景,如自動(dòng)駕駛、安防監(jiān)控等,對(duì)于網(wǎng)絡(luò)延時(shí)和可靠性安全性等方面的高要求,使得傳統(tǒng)網(wǎng)絡(luò)架構(gòu)難以應(yīng)對(duì),邊緣計(jì)算技術(shù)應(yīng)運(yùn)而生.邊緣計(jì)算主要包含虛擬化、云計(jì)算和軟件定義網(wǎng)絡(luò)等關(guān)鍵技術(shù).Shi等人[10]將“邊緣”定義為數(shù)據(jù)源與云數(shù)據(jù)中心之間的任何計(jì)算資源和網(wǎng)絡(luò)資源.對(duì)于其優(yōu)勢(shì)和必要性,Hu 等人[11]通過實(shí)驗(yàn)進(jìn)行相關(guān)驗(yàn)證,并通過實(shí)驗(yàn)證明:移動(dòng)設(shè)備盲目卸載計(jì)算任務(wù)到云,可能導(dǎo)致更低的性能和更高能耗.
目前,邊緣計(jì)算已在諸多領(lǐng)域中得以應(yīng)用.Garg 等人[12]將邊緣服務(wù)器作為中間接口,輔助車輛與云端數(shù)據(jù)中心間通信,減少了終端節(jié)點(diǎn)訪問時(shí)間和網(wǎng)絡(luò)擁塞.Sheng 等人[13]將無(wú)線聲音傳感器網(wǎng)絡(luò)與邊緣計(jì)算相結(jié)合,使得成本和能耗更低.Lai 等人[14]利用邊緣云實(shí)現(xiàn)并行計(jì)算,以提高監(jiān)管系統(tǒng)對(duì)工業(yè)設(shè)備的識(shí)別效率.Muhammad等人[15]將邊緣計(jì)算應(yīng)用于智慧醫(yī)療框架.相比傳統(tǒng)網(wǎng)絡(luò)架構(gòu),邊緣計(jì)算采用降低服務(wù)器和用戶間距離的方式,減少了網(wǎng)絡(luò)響應(yīng)時(shí)間,同時(shí)降低了數(shù)據(jù)傳輸功耗和網(wǎng)絡(luò)堵塞時(shí)間[16].然而,此類應(yīng)用框架僅利用了邊緣云的優(yōu)勢(shì),并未針對(duì)應(yīng)用模型進(jìn)行更近一步地拆分.與此不同,本文針對(duì)應(yīng)用模型本身的計(jì)算任務(wù)進(jìn)行更細(xì)致的劃分,從模型部署的角度進(jìn)行更進(jìn)一步的優(yōu)化.
邊緣云架構(gòu)一直是該領(lǐng)域的主要研究方向.Tong 等人[17]將邊緣云更加細(xì)化,將邊緣云層設(shè)計(jì)為一種樹狀的層次結(jié)構(gòu),允許不同服務(wù)器層對(duì)峰值負(fù)載進(jìn)行聚合,使得云資源利用率更高.Yao 等人[18]從不同設(shè)備以及接入點(diǎn)的角度提出多層邊緣計(jì)算框架EdgeFlow,通過權(quán)衡設(shè)備的資源占用情況以及通信狀態(tài),將不同任務(wù)以最佳方式分配給每一層.Tseng 等人[19]提出一種基于網(wǎng)關(guān)的邊緣計(jì)算服務(wù)模型,可實(shí)現(xiàn)資源按需分配.相比以上幾種邊緣云架構(gòu),在特定應(yīng)用場(chǎng)景下的平臺(tái)架構(gòu)設(shè)計(jì)中,將計(jì)算能力較強(qiáng)的移動(dòng)終端節(jié)點(diǎn)上移邊緣云層是更為合理可靠的.例如,野外環(huán)境下,設(shè)備工作環(huán)境可能較差,網(wǎng)絡(luò)延遲可能使得終端節(jié)點(diǎn)設(shè)備與邊緣云無(wú)法暢通連接.為此,將比穿戴式設(shè)備計(jì)算能力更強(qiáng)的節(jié)點(diǎn)設(shè)備作為其他設(shè)備的邊緣云節(jié)點(diǎn),移動(dòng)終端節(jié)點(diǎn)可自由選擇任務(wù)卸載位置,從而降低網(wǎng)絡(luò)環(huán)境對(duì)計(jì)算任務(wù)的影響.
針對(duì)邊緣云架構(gòu)中的任務(wù)卸載、資源分配及數(shù)據(jù)傳輸?shù)葐栴},不同學(xué)者對(duì)此進(jìn)行了研究探索.Sun 等人[20]提出一種自適應(yīng)任務(wù)卸載算法,相比基于置信上限的學(xué)習(xí)算法,平均延遲降低了30%.針對(duì)如何滿足計(jì)算任務(wù)延遲條件且保證系統(tǒng)成本最小化的問題,Zhang 等人[21]提出一種兩階段任務(wù)調(diào)度成本優(yōu)化算法,在滿足所有任務(wù)延遲的同時(shí),使系統(tǒng)成本最小化.針對(duì)邊緣服務(wù)器的過載問題,Fan 等人[22]設(shè)計(jì)了一種基于應(yīng)用感知的工作負(fù)載分配方案,通過為用戶不同類型的請(qǐng)求分配合適的計(jì)算資源,以最大限度地減少響應(yīng)時(shí)間.Du 等人[23]將邊緣計(jì)算的資源分配問題定義為一個(gè)隨機(jī)優(yōu)化問題進(jìn)行求解,取得了較好的效果,然而該算法并不考慮資源共享的公平性問題.Guan 等人[24]采用博弈論的觀點(diǎn)對(duì)邊緣計(jì)算環(huán)境進(jìn)行了分析,證明其中存在納什均衡.Lin 等人[25]針對(duì)邊緣數(shù)據(jù)中心間的數(shù)據(jù)傳輸問題,提出了一種自適應(yīng)離散粒子群優(yōu)化算法(GA-DPSO),以縮短數(shù)據(jù)傳輸時(shí)間.Ren 等人[26]為更好地適應(yīng)邊緣計(jì)算應(yīng)用,開發(fā)了一種基于微內(nèi)核的操作系統(tǒng)EdgeOS.然而,目前針對(duì)模型計(jì)算任務(wù)劃分的研究相對(duì)較少.嘗試針對(duì)基于深度神經(jīng)網(wǎng)絡(luò)的算法模型進(jìn)行更細(xì)致的計(jì)算任務(wù)劃分,結(jié)合邊緣計(jì)算,解決深度學(xué)習(xí)技術(shù)在嵌入式領(lǐng)域應(yīng)用性較差的問題.
追蹤算法處理流程可分為多個(gè)階段,且算法具有基本相同的處理步驟,這為邊緣計(jì)算的應(yīng)用提供了可行性.通過追蹤任務(wù)進(jìn)行分割,采取不同階段不同節(jié)點(diǎn)計(jì)算的策略.針對(duì)不同處理階段,可以將相同計(jì)算任務(wù)進(jìn)行特殊優(yōu)化,如采用FPGA 等設(shè)備進(jìn)行預(yù)處理階段中圖像剪裁、圖像增強(qiáng)、傅里葉變換等操作,將深度特征提取等運(yùn)算卸載至邊緣云,以減小本地計(jì)算壓力及功耗.
基于邊緣計(jì)算的單目標(biāo)追蹤系統(tǒng)在一定程度上與分布式機(jī)器學(xué)習(xí)系統(tǒng)類似,兩者對(duì)比如圖1 所示,后者通常包含數(shù)據(jù)和模型劃分、單機(jī)優(yōu)化、通信以及模型和數(shù)據(jù)聚合等部分.將訓(xùn)練樣本通過隨機(jī)采樣或置亂切分等方式進(jìn)行劃分,并對(duì)模型進(jìn)行橫向、縱向或隨機(jī)劃分后,分配至不同工作節(jié)點(diǎn),采用單機(jī)優(yōu)化策略進(jìn)行子模型訓(xùn)練,期間通過通信策略進(jìn)行信息同步,最后采用模型和數(shù)據(jù)聚合算法對(duì)訓(xùn)練好的模型進(jìn)行集成聚合.與此類似,基于邊緣計(jì)算的目標(biāo)追蹤系統(tǒng)主要包含任務(wù)分割、目標(biāo)追蹤、通信以及信息融合等部分.其中,終端節(jié)點(diǎn)和邊緣云服務(wù)器分別部署目標(biāo)追蹤算法,通過任務(wù)分割策略決策計(jì)算任務(wù)處理節(jié)點(diǎn),通信方案決策信息收發(fā)內(nèi)容及通信步調(diào)等,計(jì)算任務(wù)卸載至云端運(yùn)算后,通過信息融合策略對(duì)終端節(jié)點(diǎn)和邊緣云兩側(cè)計(jì)算結(jié)果進(jìn)行融合.
· 應(yīng)用場(chǎng)景
本文所研究的部署策略主要針對(duì)工作于野外環(huán)境下的穿戴式設(shè)備或救援機(jī)器人等類似移動(dòng)設(shè)備,如救援機(jī)器人等.野外環(huán)境下,特定用戶人群,如搜救或抓捕人員等,通過配備穿戴式設(shè)備輔助追蹤特定人員或目標(biāo).小組成員間通過信息傳遞,可進(jìn)行多攝像機(jī)單目標(biāo)連續(xù)追蹤.通過保存追蹤目標(biāo)在此過程中的運(yùn)動(dòng)軌跡及外觀信息,可進(jìn)一步對(duì)目標(biāo)進(jìn)行行為分析或融合其他信息進(jìn)行更高層信息提取.
邊緣云網(wǎng)絡(luò)架構(gòu)主要面向野外環(huán)境下穿戴式設(shè)備或救援機(jī)器人等類似移動(dòng)設(shè)備.利用邊緣云解決終端節(jié)點(diǎn)對(duì)應(yīng)用程序計(jì)算壓力及功耗等方面的限制.邊緣云網(wǎng)絡(luò)架構(gòu)及軟件架構(gòu)如圖2 所示.網(wǎng)絡(luò)架構(gòu)總體分為終端節(jié)點(diǎn)、邊緣云和云端數(shù)據(jù)中心這3 層:終端節(jié)點(diǎn)層主要為接入邊緣云的移動(dòng)設(shè)備,每個(gè)節(jié)點(diǎn)部署應(yīng)用包含目標(biāo)追蹤、計(jì)算任務(wù)分割、信息融合和運(yùn)動(dòng)檢測(cè)等多個(gè)部分;邊緣云層主要為邊緣云資源部署層,包含邊緣計(jì)算服務(wù)器和文件服務(wù)器等硬件資源設(shè)備,部署完成終端節(jié)點(diǎn)計(jì)算任務(wù)所需的必要程序,主要包含邊緣云目標(biāo)追蹤、信息融合、信息管理和通信等部分;云端數(shù)據(jù)中心為與移動(dòng)終端節(jié)點(diǎn)相距較遠(yuǎn)的數(shù)據(jù)中心,該層僅與邊緣云進(jìn)行通信.相比第1.2 節(jié)中所分析的3 種層次邊緣云架構(gòu),如將云端資源下移邊緣端或?qū)⑦吘壴茖永^續(xù)拆分,在網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)中,將計(jì)算能力較強(qiáng)的移動(dòng)終端節(jié)點(diǎn)上移邊緣云層.野外環(huán)境下,設(shè)備工作環(huán)境可能較差,網(wǎng)絡(luò)延遲可能使得終端節(jié)點(diǎn)設(shè)備與邊緣云無(wú)法暢通連接,為此,將比穿戴式設(shè)備計(jì)算能力更強(qiáng)的節(jié)點(diǎn)設(shè)備,如筆記本電腦、臺(tái)式機(jī)或小組內(nèi)其他計(jì)算能力較強(qiáng)的設(shè)備等,作為其他穿戴式設(shè)備的邊緣云節(jié)點(diǎn).穿戴式設(shè)備或其他移動(dòng)終端節(jié)點(diǎn)可自由選擇任務(wù)卸載位置,從而降低網(wǎng)絡(luò)環(huán)境對(duì)計(jì)算任務(wù)的影響.
為詳細(xì)說(shuō)明部署策略,搭建目標(biāo)追蹤系統(tǒng),如圖3 所示:主體為基于計(jì)算機(jī)視覺的目標(biāo)追蹤算法,輸入數(shù)據(jù)為視頻流數(shù)據(jù),具體為視頻幀圖片.
任務(wù)分割策略根據(jù)本地計(jì)算負(fù)載狀態(tài)、如設(shè)備溫度、CPU 利用率、內(nèi)存占用率以及能源狀態(tài)等,判定是否進(jìn)行本地計(jì)算;與此同時(shí),根據(jù)網(wǎng)絡(luò)狀態(tài)和邊緣服務(wù)器資源占用情況,判斷是否將發(fā)送邊緣云進(jìn)行計(jì)算,同時(shí)決定計(jì)算任務(wù)分割點(diǎn),用以最終決策終端節(jié)點(diǎn)和邊緣云的任務(wù)計(jì)算量.由于在野外環(huán)境下網(wǎng)絡(luò)情況難以長(zhǎng)期保證,且設(shè)備具體應(yīng)用環(huán)境較為復(fù)雜,如搜救機(jī)器人時(shí)常工作于廢墟或礦道等惡劣環(huán)境下,通信情況難以保證,且此時(shí)任務(wù)失敗將造成嚴(yán)重后果,因此當(dāng)移動(dòng)終端節(jié)點(diǎn)與邊緣云難以保持暢通連接時(shí),終端節(jié)點(diǎn)應(yīng)部署目標(biāo)追蹤算法使其具備獨(dú)立作業(yè)能力,否則將直接導(dǎo)致追蹤任務(wù)失敗,造成嚴(yán)重后果.終端節(jié)點(diǎn)可采用基于相關(guān)濾波器的目標(biāo)追蹤算法進(jìn)行部署,以滿足移動(dòng)節(jié)點(diǎn)計(jì)算能力較弱且能耗要求較高的特點(diǎn).
邊緣云采用基于深度學(xué)習(xí)模型的追蹤算法以提升整體追蹤性能.根據(jù)算法計(jì)算得出的響應(yīng)圖(response map)確定算法融合系數(shù),并確定此時(shí)終端算法模型是否進(jìn)行更新.信息融合算法通過融合終端節(jié)點(diǎn)和邊緣云返回的計(jì)算結(jié)果對(duì)追蹤目標(biāo)的具體位置進(jìn)行最終預(yù)測(cè).此外,終端節(jié)點(diǎn)采用卡爾曼濾波器對(duì)追蹤目標(biāo)的運(yùn)動(dòng)情況進(jìn)行建模;另一方面,采用運(yùn)動(dòng)模型對(duì)追蹤目標(biāo)的位移閾值進(jìn)行動(dòng)態(tài)設(shè)定.當(dāng)連續(xù)多幀目標(biāo)位移均超出該閾值范圍時(shí),啟動(dòng)運(yùn)動(dòng)檢測(cè)以確定是否存在運(yùn)動(dòng)物體,以此進(jìn)一步降低終端計(jì)算壓力,避免不必要的計(jì)算.后文對(duì)各部分算法和具體策略進(jìn)行詳細(xì)介紹.
任務(wù)分割策略中,后續(xù)實(shí)驗(yàn)采用兩種分割策略,即神經(jīng)網(wǎng)絡(luò)模型完整卸載和部分卸載.
(1) 模型完整卸載策略:主要將算法的特征提取部分卸載至邊緣云進(jìn)行計(jì)算,本地終端節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的預(yù)處理和后處理.其中,
? 數(shù)據(jù)預(yù)處理部分的計(jì)算任務(wù)主要包括部分與輸入圖像數(shù)據(jù)相關(guān)的超參數(shù)的計(jì)算;以前一幀追蹤目標(biāo)的位置為中心,剪裁不同尺寸的圖像以供后續(xù)尺度估計(jì)計(jì)算等;
? 后處理部分主要包括:根據(jù)邊緣云返回的響應(yīng)圖,對(duì)追蹤目標(biāo)的尺度及其具體估測(cè)位置進(jìn)行計(jì)算等;
(2) 模型部分卸載策略:相比將特征提取任務(wù)完全卸載至邊緣云計(jì)算,將卷積神經(jīng)網(wǎng)絡(luò)模型中第一部分,即第一個(gè)卷積層、批標(biāo)準(zhǔn)化層(batch normalization,簡(jiǎn)稱BN)及池化層分配至終端節(jié)點(diǎn)計(jì)算.
由于移動(dòng)設(shè)備工作環(huán)境多樣化,難以保證網(wǎng)絡(luò)狀態(tài),因此當(dāng)設(shè)備無(wú)法與邊緣云暢通連接時(shí),應(yīng)保證終端節(jié)點(diǎn)仍具備獨(dú)立作業(yè)能力,避免任務(wù)失敗造成嚴(yán)重后果.基于以上原因,在終端節(jié)點(diǎn)部署計(jì)算壓力較小的目標(biāo)追蹤算法.另一方面,由于算法通常專注于解決具體任務(wù)一個(gè)方面的問題,難以對(duì)任務(wù)的全部問題進(jìn)行優(yōu)化,因此通常采用集成多個(gè)算法的方式以結(jié)合不同算法的優(yōu)點(diǎn),進(jìn)而構(gòu)造一個(gè)性能更加優(yōu)良的算法模型,以滿足實(shí)際需求.例如基于計(jì)算機(jī)視覺的目標(biāo)追蹤算法,其主要難點(diǎn)包含光照、變形、尺度變化、背景雜亂等多個(gè)問題,不同算法通常針對(duì)某一問題進(jìn)行設(shè)計(jì)優(yōu)化,因此,實(shí)際應(yīng)用時(shí),通常采用集成的方式以獲得更好的追蹤性能.集成學(xué)習(xí)(ensemble learning)通過結(jié)合一系列算法模型以獲得一個(gè)性能更好的算法模型,該策略在工程部署中得到廣泛應(yīng)用.在目標(biāo)追蹤過程中,可將移動(dòng)終端節(jié)點(diǎn)的相關(guān)濾波器算法與邊緣云的深度學(xué)習(xí)算法進(jìn)行集成,以獲得更加穩(wěn)定且性能更加優(yōu)良的算法模型.研究過程中,選用以下兩種算法進(jìn)行部署研究,具體模型可更換.
(1) 終端節(jié)點(diǎn)目標(biāo)追蹤算法.
終端節(jié)點(diǎn)采用基于相關(guān)濾波器(correlation filter,簡(jiǎn)稱CF)的目標(biāo)追蹤算法進(jìn)行部署,以滿足移動(dòng)終端節(jié)點(diǎn)計(jì)算能力較弱且對(duì)續(xù)航能力要求較高的特點(diǎn),算法模型采用DCF[27].
DCF(dual correlation filter)在CSK[28]基礎(chǔ)上進(jìn)行改進(jìn),利用循環(huán)矩陣進(jìn)行循環(huán)采樣以解決稀疏采樣問題,并引入多通道特征,使得性能相比以往目標(biāo)追蹤算法大幅提高.DCF 采用嶺回歸建模,通過最小化采樣數(shù)據(jù)的計(jì)算標(biāo)簽與目標(biāo)真實(shí)位置之間的距離求解函數(shù),并引入循環(huán)矩陣進(jìn)行循環(huán)采樣.DCF 采用線性核(linear kernel),根據(jù)當(dāng)前圖片數(shù)據(jù)樣本x計(jì)算核函數(shù)k(x,x)和參數(shù)α值,當(dāng)下一張圖片數(shù)據(jù)z傳入時(shí),計(jì)算k(z,x)和f(z),取f(z)實(shí)部作為響應(yīng)圖,其中最大值位置為算法預(yù)測(cè)目標(biāo)位置.
DCF 算法的主要優(yōu)點(diǎn)在于其處理速度,適用于計(jì)算能力較弱的移動(dòng)設(shè)備.在終端節(jié)點(diǎn)部署該類算法,用以保證設(shè)備無(wú)法連接邊緣云時(shí)仍具備獨(dú)立作業(yè)能力,避免任務(wù)失敗.
(2) 邊緣云目標(biāo)追蹤算法
基于邊緣云計(jì)算資源豐富、處理速度快等特點(diǎn),算法部署無(wú)需過多考慮硬件資源開銷,可采用基于深度學(xué)習(xí)模型的目標(biāo)追蹤算法進(jìn)行部署,以滿足追蹤任務(wù)的性能需求,算法模型采用SiamFC[5].
全卷積孿生神經(jīng)網(wǎng)絡(luò)(fully-convolutional siamese networks,簡(jiǎn)稱SiamFC)創(chuàng)新性地將目標(biāo)追蹤作為一種相似性學(xué)習(xí)問題(similarity learning),模型采用大量數(shù)據(jù)進(jìn)行離線訓(xùn)練后,實(shí)際部署進(jìn)行追蹤時(shí),無(wú)需對(duì)模型進(jìn)行更新,從而避免了追蹤過程中的復(fù)雜計(jì)算,使得算法性能滿足實(shí)時(shí)追蹤任務(wù)要求.通過相似性度量函數(shù)對(duì)樣本圖片和候選圖片之間的相似度進(jìn)行計(jì)算,可以對(duì)兩者間的相似程度進(jìn)行衡量,并返回對(duì)相似程度進(jìn)行評(píng)分,相似度越高,則分?jǐn)?shù)越高.算法采用全卷積孿生神經(jīng)網(wǎng)絡(luò)作為相似性度量函數(shù).該算法在處理速度和追蹤性能上均有取得了良好表現(xiàn),也由此引起眾多學(xué)者基于全卷積孿生神經(jīng)網(wǎng)絡(luò)的進(jìn)一步研究改進(jìn).由于算法采用相似性學(xué)習(xí)的角度解決追蹤問題,算法可采用大量視頻序列對(duì)模型進(jìn)行離線訓(xùn)練,因此針對(duì)特定場(chǎng)景下的目標(biāo)追蹤任務(wù)可以采取預(yù)先收集相似場(chǎng)景數(shù)據(jù)以更好地訓(xùn)練模型,從而取得更好的性能.
基于邊緣計(jì)算的追蹤系統(tǒng),常用任務(wù)卸載策略為將全部計(jì)算任務(wù)卸載至邊緣云.另一種策略,以算法HCFT[3]為例,由于根據(jù)多個(gè)卷積層輸出的特征圖學(xué)習(xí)多個(gè)不同的相關(guān)濾波器,因此可根據(jù)設(shè)備負(fù)載狀態(tài)及網(wǎng)絡(luò)環(huán)境,動(dòng)態(tài)判定所學(xué)習(xí)的濾波器個(gè)數(shù).與此不同,本文根據(jù)算法的處理階段對(duì)計(jì)算任務(wù)進(jìn)行劃分,如預(yù)處理及特征提取計(jì)算量較小,而此時(shí)網(wǎng)絡(luò)延遲較大,則可將該部分計(jì)算任務(wù)本地運(yùn)算;且由于搜索區(qū)域相比整張圖片區(qū)域更小,因此處理后信息傳輸量更小,降低了網(wǎng)絡(luò)傳輸延遲.此外,由于在終端節(jié)點(diǎn)和邊緣云服務(wù)器分別部署不同的目標(biāo)追蹤算法,通過任務(wù)分割策略決策計(jì)算任務(wù)本地計(jì)算、卸載至邊緣云計(jì)算或同時(shí)計(jì)算后融合,最后通過信息融合策略,對(duì)不同種算法計(jì)算結(jié)果進(jìn)行集成.
任務(wù)分割策略如圖4 所示,主要根據(jù)本地計(jì)算節(jié)點(diǎn)負(fù)載情況、硬件設(shè)備利用率、網(wǎng)絡(luò)延遲等狀態(tài)對(duì)計(jì)算任務(wù)進(jìn)行劃分,將計(jì)算任務(wù)部分卸載或全部卸載至邊緣云,以達(dá)到能耗、計(jì)算速度和準(zhǔn)確度的組合優(yōu)化目的.計(jì)算任務(wù)拆分時(shí),一方面考慮本地處理后數(shù)據(jù)量更小,從而降低網(wǎng)絡(luò)傳輸延遲;另一方面,在網(wǎng)絡(luò)處于高延遲狀態(tài)時(shí),通過本地繼續(xù)處理后續(xù)計(jì)算任務(wù),從而避開當(dāng)前高延遲時(shí)段,減少不必要的等待延遲.
本文的研究?jī)?nèi)容在一定程度上可視為多約束條件下的資源分配問題,設(shè)備在當(dāng)前工作環(huán)境下,除了以上約束,還受到計(jì)算任務(wù)本身的約束.在目標(biāo)追蹤應(yīng)用中,為保證追蹤的實(shí)時(shí)性,每幀圖像數(shù)據(jù)的處理時(shí)間一般應(yīng)保持在50ms 以下,即每秒處理數(shù)據(jù)應(yīng)高于20 幀.此外,資源優(yōu)化分配時(shí),還應(yīng)考慮任務(wù)性能的約束,即目標(biāo)追蹤整體模型性能應(yīng)保持在一定范圍內(nèi).
經(jīng)過環(huán)境信息探查后,對(duì)所得信息進(jìn)行融合后判定計(jì)算任務(wù)分割點(diǎn),決策本地終端節(jié)點(diǎn)和邊緣云計(jì)算任務(wù)量,其主要處理流程如圖5 所示.計(jì)算任務(wù)可從數(shù)據(jù)預(yù)處理階段和特征提取之間進(jìn)行劃分,即將神經(jīng)網(wǎng)絡(luò)完整卸載至邊緣云;或從神經(jīng)網(wǎng)絡(luò)模型不同層之間進(jìn)行劃分,即將神經(jīng)網(wǎng)絡(luò)模型分割卸載至邊緣云.通過任務(wù)分割策略判定本地終端節(jié)點(diǎn)進(jìn)行預(yù)處理及裁剪運(yùn)算,或繼續(xù)進(jìn)行第一層或幾層特征提取,處理后,數(shù)據(jù)上傳邊緣云進(jìn)行下一步計(jì)算.邊緣云計(jì)算獲得響應(yīng)圖后,返回響應(yīng)圖中極值序列,數(shù)據(jù)交由本地,通過信息融合策略進(jìn)行響應(yīng)圖重建.融合終端節(jié)點(diǎn)目標(biāo)追蹤算法處理結(jié)果后,最終判定目標(biāo)位置.邊緣云僅負(fù)責(zé)特征提取及響應(yīng)圖相關(guān)計(jì)算任務(wù),本地終端節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)預(yù)處理、淺層特征提取以及獲得極值序列后進(jìn)行響應(yīng)圖后重建、尺度判定、參數(shù)計(jì)算更新等計(jì)算任務(wù).
集成學(xué)習(xí)(ensemble learning)目前已成為工程應(yīng)用中經(jīng)常采用的策略,用以聚合不同算法的優(yōu)勢(shì).本文通過評(píng)測(cè)響應(yīng)圖波動(dòng)程度來(lái)評(píng)價(jià)模型對(duì)當(dāng)前預(yù)測(cè)的目標(biāo)位置的置信程度,根據(jù)峰值置信度指標(biāo)對(duì)不同算法計(jì)算所得的響應(yīng)圖譜進(jìn)行度量,由此確定具體融合系數(shù).濾波器響應(yīng)圖如圖6 所示,其中左圖為高置信度示例,右圖為低置信度示例.
響應(yīng)圖預(yù)處理時(shí),歸一化其取值范圍到[0,M]:
其中,Var(?)表示方差;Dθ為響應(yīng)圖中極值數(shù)據(jù)點(diǎn)集合,Dθ′表示去除響應(yīng)圖中最大值后極值點(diǎn)集合,且集合Dθ中濾除小于閾值θpc的極值,以增強(qiáng)魯棒性,超參數(shù)θpc預(yù)先設(shè)置.ε為超參數(shù),用于避免運(yùn)算中數(shù)值溢出而預(yù)先定義的極小值.濾波器僅在峰值置信度高于閾值時(shí)進(jìn)行更新.
此外,由于響應(yīng)圖傳輸時(shí)間對(duì)算法總體處理時(shí)間影響較大,算法僅傳輸響應(yīng)圖中高于一定閾值的極值集合以降低信息傳輸量,終端節(jié)點(diǎn)通過回傳極值信息,對(duì)響應(yīng)圖進(jìn)行重建:
其中,G(x,y)為重建后曲面,gi(x,y)為以第i個(gè)極值點(diǎn)坐標(biāo)為中心的二維高斯曲面,Vi為對(duì)應(yīng)極值.
由于高斯函數(shù)中的指數(shù)運(yùn)算計(jì)算壓力較大,使得上述策略無(wú)法滿足實(shí)時(shí)性要求.因此進(jìn)一步優(yōu)化,采用平移策略代替創(chuàng)建二維高斯函數(shù)的相關(guān)運(yùn)算:
其中,G(x,y)為重建后曲面,g(x,y)為預(yù)先創(chuàng)建的以(0,0)坐標(biāo)為中心的二維高斯曲面,Vi為對(duì)應(yīng)極值,Pg(xi,yi)為將曲面g(x,y)平移(xi,yi)后的高斯曲面.
由于終端設(shè)備對(duì)應(yīng)用程序的計(jì)算壓力及功耗要求較高,且當(dāng)追蹤算法丟失目標(biāo)時(shí),繼續(xù)計(jì)算將造成嚴(yán)重的資源浪費(fèi),然而追蹤算法正確跟蹤目標(biāo)或已丟失目標(biāo)通常是難以判定的,因此采用運(yùn)動(dòng)模型對(duì)追蹤目標(biāo)的運(yùn)動(dòng)狀態(tài)進(jìn)行建模.通過運(yùn)動(dòng)模型動(dòng)態(tài)設(shè)定位移閾值范圍,當(dāng)追蹤算法預(yù)測(cè)位置連續(xù)多幀超出此閾值范圍時(shí),初步判定丟失目標(biāo),啟動(dòng)運(yùn)動(dòng)檢測(cè)算法檢測(cè)是否存在運(yùn)動(dòng)物體,以確定是否已丟失目標(biāo).后續(xù)可輔助算法在丟失目標(biāo)時(shí)進(jìn)行重檢測(cè).運(yùn)動(dòng)檢測(cè)算法采用幀差法進(jìn)行部署,以滿足計(jì)算壓力小、運(yùn)算速度快以及低能耗的要求.此外建立運(yùn)動(dòng)模型,以針對(duì)不同追蹤目標(biāo)和該目標(biāo)在追蹤過程的不同階段自適應(yīng)設(shè)定位移閾值.
(1) 運(yùn)動(dòng)模型
對(duì)于目標(biāo)追蹤算法,物體的運(yùn)動(dòng)狀態(tài)對(duì)于模型追蹤具有積極影響,尤其在追蹤過程中存在遮擋和運(yùn)動(dòng)模糊等情況時(shí).因此對(duì)追蹤目標(biāo)運(yùn)動(dòng)狀態(tài)建模,以進(jìn)一步提升性能.此外,由于目標(biāo)在追蹤過程中的動(dòng)態(tài)變化,使得對(duì)目標(biāo)位移設(shè)置固定閾值以判斷濾波器預(yù)測(cè)結(jié)果是否處于正常范圍內(nèi)并不合適.基于以上原因,采用運(yùn)動(dòng)模型對(duì)目標(biāo)位移閾值進(jìn)行動(dòng)態(tài)設(shè)定,以適應(yīng)目標(biāo)在追蹤過程中的動(dòng)態(tài)變化.
運(yùn)動(dòng)模型采用卡爾曼濾波器(Kalman filter)進(jìn)行建模,閾值設(shè)定如下所示:
其中,θx為閾值位移,xh為運(yùn)動(dòng)模型估測(cè)位移的滑動(dòng)平均值,ρθ為系數(shù),分別為追蹤算法和卡爾曼濾波器所估測(cè)的目標(biāo)位移.
(2) 運(yùn)動(dòng)檢測(cè)算法
當(dāng)追蹤算法連續(xù)多幀預(yù)測(cè)目標(biāo)位移超出閾值范圍時(shí),采用運(yùn)動(dòng)檢測(cè)算法對(duì)輸入數(shù)據(jù)進(jìn)行運(yùn)動(dòng)檢測(cè),以進(jìn)一步降低模型能耗,提升算法處理速度,減少不必要的計(jì)算.常用運(yùn)動(dòng)檢測(cè)算法有幀差法、光流法、背景減除法、ViBe 算法等.其中,幀差法具有簡(jiǎn)單快速、對(duì)于光照環(huán)境不敏感以及對(duì)于動(dòng)態(tài)環(huán)境適應(yīng)性較強(qiáng)等特點(diǎn),適用于終端節(jié)點(diǎn)硬件環(huán)境以及應(yīng)用程序運(yùn)行環(huán)境.
幀差法通過對(duì)相鄰兩幀圖像做差分運(yùn)算以檢測(cè)運(yùn)動(dòng)物體,其檢測(cè)結(jié)果如圖7 所示.該算法主要理論依據(jù)在于:相鄰2 幀或3 幀進(jìn)行灰度值差值運(yùn)算后,運(yùn)動(dòng)物體由于灰度值變化將會(huì)產(chǎn)生灰度殘留,而靜止物體則由于灰度不變被差值運(yùn)算去除.算法主要步驟:連續(xù)輸入3 幀圖像數(shù)據(jù),前2 幀和后2 幀分別計(jì)算灰度差值后,結(jié)果進(jìn)行按位與運(yùn)算得出結(jié)果.運(yùn)動(dòng)檢測(cè)時(shí),獲得3 幀差法結(jié)果后,在目標(biāo)追蹤算法預(yù)測(cè)位置,取目標(biāo)大小區(qū)域,通過對(duì)該區(qū)域內(nèi)數(shù)值進(jìn)行求和并與閾值比較,以確定該處是否存在物體運(yùn)動(dòng).
信息管理主要用于存儲(chǔ)、分發(fā)以及更高層信息提取等任務(wù).邊緣云對(duì)目標(biāo)在追蹤過程中的狀態(tài)進(jìn)行保存,記錄物體運(yùn)動(dòng)路徑以及目標(biāo)活動(dòng),歷史記錄信息主要用于特定場(chǎng)景下決策判斷或后續(xù)進(jìn)一步的信息提取.例如:對(duì)于搜救機(jī)器人,通過分析運(yùn)動(dòng)記錄,可以確定已搜索區(qū)域,從而輔助判斷下一步搜救區(qū)域;對(duì)于其他追蹤目標(biāo),可根據(jù)記錄信息對(duì)目標(biāo)的行為習(xí)慣或行動(dòng)意圖進(jìn)行判斷.此外,記錄信息可結(jié)合其他應(yīng)用信息進(jìn)行更高層信息融合或發(fā)送其他終端節(jié)點(diǎn)以供其他后續(xù)操作.
邊緣服務(wù)器采用12 核Intel(R) Xeon(R) CPU E5-2678 v3@2.50GHz,GPU 采用GeForce RTX 2080,顯存12G.終端節(jié)點(diǎn)采用平板電腦,Intel(R) Core(TM) i5-8250U CPU@1.6GHz,8G RAM,CPU 處理.軟件環(huán)境,服務(wù)器系統(tǒng)Ubuntu,終端系統(tǒng)Windows7,編程語(yǔ)言Python3,CUDA10.0,PyTorch1.1.0.測(cè)試工具GOT-10k[30],測(cè)試數(shù)據(jù)集為OTB100[29].
為驗(yàn)證任務(wù)分割策略的有效性,首先測(cè)試計(jì)算任務(wù)完全由終端節(jié)點(diǎn)計(jì)算和完全卸載至邊緣云計(jì)算時(shí),完成相同計(jì)算任務(wù)所需時(shí)間,以供對(duì)比分析.
(1) 計(jì)算任務(wù)完全由終端節(jié)點(diǎn)處理
計(jì)算任務(wù)完全由本地終端節(jié)點(diǎn)計(jì)算,處理時(shí)間如圖8 所示.計(jì)算任務(wù)主要包括數(shù)據(jù)預(yù)處理、深度特征提取、響應(yīng)圖計(jì)算以及后處理等階段.
計(jì)算任務(wù)完全由本地終端節(jié)點(diǎn)運(yùn)行,從測(cè)試結(jié)果中可以看出,采用深度學(xué)習(xí)網(wǎng)絡(luò)模型進(jìn)行特征提取成為主要性能瓶頸.其余計(jì)算任務(wù)處理時(shí)間為10~15ms 左右.
(2) 計(jì)算任務(wù)完全由邊緣云處理
計(jì)算任務(wù)完全卸載至邊緣云處理時(shí),終端節(jié)點(diǎn)僅將本地獲取到的圖片數(shù)據(jù)上傳邊緣云,所有計(jì)算任務(wù)均由邊緣云完成.嵌入式終端計(jì)算負(fù)載僅為攝像頭圖像獲取、數(shù)據(jù)發(fā)送/接收,目標(biāo)區(qū)域繪制及顯示.
實(shí)驗(yàn)中,邊緣云模型架構(gòu)采用百度邊緣計(jì)算平臺(tái)OpenEdge.該平臺(tái)可將云計(jì)算能力拓展至用戶現(xiàn)場(chǎng),提供臨時(shí)離線、低延時(shí)的計(jì)算服務(wù),包括設(shè)備接入、消息路由、消息遠(yuǎn)程同步、函數(shù)計(jì)算、設(shè)備信息上報(bào)、配置下發(fā)等功能.通過OpenEdge 和智能邊緣BIE(Baidu-IntelliEdge)協(xié)同部署,可在云端進(jìn)行智能邊緣核心設(shè)備的建立、服務(wù)創(chuàng)建、函數(shù)編寫,然后生成配置文件下發(fā)至本地運(yùn)行,達(dá)到云端管理和應(yīng)用下發(fā),邊緣設(shè)備上運(yùn)行的效果,滿足邊緣計(jì)算應(yīng)用場(chǎng)景.
計(jì)算任務(wù)完全卸載至邊緣云計(jì)算,其總計(jì)算時(shí)間為40ms,邊緣服務(wù)器用于計(jì)算任務(wù)處理時(shí)間約為23ms,其余時(shí)間主要為信息傳輸時(shí)間.實(shí)驗(yàn)中采用的數(shù)據(jù)為OTB100[29]數(shù)據(jù)集中的DragonBaby 圖片序列,圖片分辨率為640×360.實(shí)驗(yàn)結(jié)果如圖9 所示,可以看出:信息傳輸時(shí)間對(duì)于總處理時(shí)間仍存在較大影響,當(dāng)終端節(jié)點(diǎn)獲取到圖片數(shù)據(jù)較大、分辨率更高時(shí),將產(chǎn)生更高的傳輸延遲,嚴(yán)重影響追蹤性能.
(3) 終端節(jié)點(diǎn)與邊緣云協(xié)同處理
計(jì)算任務(wù)完全本地計(jì)算時(shí),嵌入式終端計(jì)算負(fù)載為算法全部計(jì)算任務(wù).計(jì)算任務(wù)完全卸載至邊緣云計(jì)算時(shí),嵌入式終端計(jì)算負(fù)載僅為攝像頭圖像獲取、數(shù)據(jù)發(fā)送/接收,目標(biāo)區(qū)域繪制及顯示.
協(xié)同處理時(shí),計(jì)算任務(wù)部分卸載至邊緣云端.本地嵌入式終端負(fù)責(zé)圖像數(shù)據(jù)的獲取、預(yù)處理以及神經(jīng)網(wǎng)絡(luò)模型的前幾層計(jì)算.本地計(jì)算任務(wù)量介于完全本地計(jì)算和完全卸載云端計(jì)算之間.通過將部分計(jì)算任務(wù)下移本地,使嵌入式終端和邊緣云協(xié)同處理,以達(dá)到降低任務(wù)整體響應(yīng)時(shí)間的目的.
1) 計(jì)算任務(wù)劃分后算法性能測(cè)試
為驗(yàn)證計(jì)算任務(wù)分割策略對(duì)于追蹤算法性能的影響,首先對(duì)任務(wù)分割后算法進(jìn)行性能測(cè)試.測(cè)試實(shí)驗(yàn)中,采用模型部分卸載策略,測(cè)試結(jié)果如圖10 所示.實(shí)驗(yàn)結(jié)果表明:計(jì)算任務(wù)分割后,算法整體性能并未受到影響,其性能與未分割的原始算法相同,即計(jì)算任務(wù)劃分對(duì)算法性能無(wú)影響,僅將相同計(jì)算任務(wù)劃分至不同設(shè)備進(jìn)行處理.
2) 神經(jīng)網(wǎng)絡(luò)模型完整卸載策略
該策略計(jì)算任務(wù)劃分中,主要將算法的特征提取部分卸載至邊緣云進(jìn)行計(jì)算,本地終端節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的預(yù)處理和后處理.其中,
· 數(shù)據(jù)預(yù)處理部分的計(jì)算任務(wù)主要包括部分與輸入圖像數(shù)據(jù)相關(guān)的超參數(shù)的計(jì)算;以前一幀追蹤目標(biāo)的位置為中心,剪裁不同尺寸的圖像以供后續(xù)尺度估計(jì)計(jì)算等;
· 后處理部分主要包括根據(jù)邊緣云返回的響應(yīng)圖、對(duì)追蹤目標(biāo)的尺度及具體估測(cè)位置進(jìn)行計(jì)算等.
由于目標(biāo)追蹤任務(wù)對(duì)實(shí)時(shí)性要求較高,且追蹤目標(biāo)的運(yùn)動(dòng)和變化通常具有平滑特性,至少為局部平滑,即通常情況下,相鄰兩幀中,物體位置相近且外觀相似,因此,通?;谏弦粠恢媒厝?.5~2 倍大小目標(biāo)區(qū)域進(jìn)行檢測(cè),從而避免對(duì)整張圖像進(jìn)行運(yùn)算,提升了模型的計(jì)算速度.此外,目標(biāo)追蹤算法處理追蹤目標(biāo)尺度變化的一個(gè)主要方法,是以上一幀中目標(biāo)所在位置為中心,在當(dāng)前幀中提取多個(gè)不同尺度的圖片區(qū)域進(jìn)行檢測(cè)匹配,選擇響應(yīng)程度最高的尺度作為追蹤目標(biāo).因此,可以通過調(diào)節(jié)預(yù)處理操作中截取區(qū)域的大小和數(shù)量,以降低信息傳輸量,從而降低信息傳輸時(shí)間.
相同計(jì)算任務(wù)進(jìn)行劃分后,測(cè)試并記錄終端節(jié)點(diǎn)與邊緣云計(jì)算任務(wù)處理時(shí)間(圖11)以及終端節(jié)點(diǎn)和邊緣節(jié)點(diǎn)進(jìn)行特征提取時(shí)間(圖12).可以看出:利用邊緣云處理計(jì)算壓力較大的特征提取任務(wù),可以有效降低計(jì)算任務(wù)處理時(shí)間.
圖13 為相同計(jì)算任務(wù)的總處理時(shí)間,圖14 為數(shù)據(jù)傳輸時(shí)間.實(shí)驗(yàn)結(jié)果表明:將部分計(jì)算壓力較小的計(jì)算任務(wù)本地運(yùn)行,與所有任務(wù)完全卸載至邊緣云計(jì)算,總處理時(shí)間基本相同.此外,由于原始數(shù)據(jù)經(jīng)預(yù)處理后,中間結(jié)果相比原始數(shù)據(jù)量小,因此傳輸時(shí)間更低.
相同計(jì)算任務(wù)處理及信息傳輸總時(shí)間如圖15 所示:任務(wù)分割后,終端節(jié)點(diǎn)與邊緣云協(xié)同處理時(shí)間約31ms,相比完全卸載至邊緣云處理(約38ms),可以更快地完成相同計(jì)算任務(wù),速度提升超過15%.追蹤任務(wù)總體計(jì)算時(shí)間測(cè)試結(jié)果如圖16 所示,可以看出,任務(wù)分割后總體處理時(shí)間明顯低于完全由終端節(jié)點(diǎn)處理所用時(shí)間.
對(duì)任務(wù)處理時(shí)間進(jìn)行分析發(fā)現(xiàn),主要瓶頸在于數(shù)據(jù)轉(zhuǎn)換時(shí)間.該問題由于實(shí)現(xiàn)方式導(dǎo)致.數(shù)據(jù)轉(zhuǎn)換主要將深度學(xué)習(xí)框架下的數(shù)據(jù)類型向基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)換,以適配應(yīng)用框架的信息傳輸要求,時(shí)間延遲主要包括數(shù)據(jù)類型轉(zhuǎn)化、信息打包及解析時(shí)間.后續(xù)將針對(duì)該問題進(jìn)行改進(jìn)優(yōu)化.
3) 神經(jīng)網(wǎng)絡(luò)模型部分卸載策略
相比將特征提取任務(wù)完全卸載至邊緣云計(jì)算,模型部分卸載策略中,將卷積神經(jīng)網(wǎng)絡(luò)模型中第1 部分,即第一個(gè)卷積層、批標(biāo)準(zhǔn)化層(batch normalization,簡(jiǎn)稱BN)及池化層分配至終端節(jié)點(diǎn)計(jì)算.計(jì)算結(jié)果如圖17 所示.
從圖中可以看出:對(duì)于不搭載GPU 的終端節(jié)點(diǎn)設(shè)備,即使處理單層神經(jīng)網(wǎng)絡(luò)模型卷積運(yùn)算,仍存在較大計(jì)算壓力.然而對(duì)于目前多數(shù)已搭載輕量級(jí)GPU 或NPU 的移動(dòng)設(shè)備或可穿戴設(shè)備,將神經(jīng)網(wǎng)絡(luò)模型部分計(jì)算任務(wù)分配至本地GPU 計(jì)算以避開網(wǎng)絡(luò)高延遲時(shí)段,仍是值得考慮的部署策略.
(4) 運(yùn)動(dòng)檢測(cè)及響應(yīng)圖重建策略測(cè)試
為驗(yàn)證運(yùn)動(dòng)檢測(cè)和響應(yīng)圖重建策略對(duì)于整體處理時(shí)間的影響,對(duì)兩種策略進(jìn)行實(shí)驗(yàn)測(cè)試.
實(shí)驗(yàn)測(cè)試結(jié)果如圖18 所示(算法1 表示通過指數(shù)運(yùn)算重建,算法2 表示平移重建),從運(yùn)動(dòng)測(cè)試結(jié)果可以看出:運(yùn)動(dòng)檢測(cè)時(shí)間較短,僅需2ms 左右.響應(yīng)圖重建測(cè)試中,對(duì)應(yīng)30 個(gè)極值點(diǎn),采用指數(shù)運(yùn)算進(jìn)行響應(yīng)圖重建需要耗時(shí)679ms,采用平移重建僅需2.3ms,速度提升300 倍.為提升算法魯棒性,同時(shí)降低信息傳輸量以保證數(shù)據(jù)傳輸?shù)脱舆t,對(duì)響應(yīng)圖中的極值點(diǎn)進(jìn)行閾值過濾,僅保留高于一定閾值的極值點(diǎn)進(jìn)行傳輸,因此極值點(diǎn)數(shù)量一般不會(huì)超過30.從實(shí)驗(yàn)結(jié)果可以看出,重建策略對(duì)整體性能幾乎無(wú)影響.
(5) 終端節(jié)點(diǎn)計(jì)算資源占用率測(cè)試
嵌入式端的資源消耗與任務(wù)分割策略密切相關(guān).實(shí)驗(yàn)中,對(duì)終端節(jié)點(diǎn)的計(jì)算資源消耗情況進(jìn)行了測(cè)試.實(shí)驗(yàn)結(jié)果如圖19 和圖20 所示.
從圖19 中可以看出:神經(jīng)網(wǎng)絡(luò)模型的計(jì)算任務(wù)對(duì)嵌入式端的資源占用較大,神經(jīng)網(wǎng)絡(luò)模型部分卸載和完整卸載策略均降低了終端節(jié)點(diǎn)的計(jì)算資源占用率.在部分卸載策略中,若嵌入式終端設(shè)備搭載GPU 或NPU 等處理器,應(yīng)該可以更大程度地降低本地CPU 占用率,同時(shí)降低計(jì)算任務(wù)的整體響應(yīng)時(shí)間.
從圖20 可以看出:嵌入式端僅計(jì)算1 層卷積和計(jì)算全部神經(jīng)網(wǎng)絡(luò)模型,其計(jì)算資源占用情況基本相同,僅影響計(jì)算資源的占用時(shí)長(zhǎng),即僅與任務(wù)完成時(shí)間相關(guān).其主要原因可能在于實(shí)驗(yàn)所采用神經(jīng)網(wǎng)絡(luò)模型的計(jì)算任務(wù)并未進(jìn)行并行化,不同層卷積運(yùn)算間的存在固定的先后關(guān)聯(lián),且不同層卷積運(yùn)算所占用的計(jì)算資源基本相同.
實(shí)驗(yàn)結(jié)果表明,采用任務(wù)分割策略可以降低相同計(jì)算任務(wù)的整體處理時(shí)間.降低的時(shí)間延遲,主要來(lái)源于預(yù)處理后傳輸信息減少所降低的傳輸延遲.數(shù)據(jù)預(yù)處理與信息量降低本質(zhì)上并無(wú)關(guān)聯(lián),為降低傳輸信息量,可針對(duì)此問題進(jìn)行特殊設(shè)計(jì)優(yōu)化.在目標(biāo)追蹤算法中,在目標(biāo)位置處裁剪不同尺度的區(qū)域作為預(yù)處理后的結(jié)果進(jìn)行信息傳輸,預(yù)處理后數(shù)據(jù)量大小與裁剪區(qū)域的大小及數(shù)量密切相關(guān).對(duì)區(qū)域大小和數(shù)量進(jìn)行優(yōu)化調(diào)整,可以使預(yù)處理后數(shù)據(jù)比原始圖片的數(shù)據(jù)量更小.
原始圖片數(shù)據(jù)經(jīng)過預(yù)處理后,其裁剪區(qū)域大小僅與追蹤目標(biāo)大小有關(guān);而經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)特征提取后,其大小除了與特征提取區(qū)域和神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)有關(guān)外,還與網(wǎng)絡(luò)模型參數(shù)的存儲(chǔ)類型有關(guān).因此,可能出現(xiàn)原數(shù)據(jù)參數(shù)較多、而特征提取后的特征圖譜參數(shù)較少、但特征提取后占用存儲(chǔ)大于原數(shù)據(jù)的情況.針對(duì)該問題,一方面可以針對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行設(shè)計(jì)改進(jìn),借鑒神經(jīng)網(wǎng)絡(luò)模型壓縮的相關(guān)研究對(duì)模型參數(shù)進(jìn)行量化,采用定長(zhǎng)存儲(chǔ)等方式解決;另一方面,可針對(duì)存儲(chǔ)后的模型參數(shù)文件進(jìn)行壓縮,或在對(duì)模型性能影響不大的前提下刪減部分參數(shù).后續(xù)將針對(duì)該問題進(jìn)一步研究.
從實(shí)驗(yàn)結(jié)果可以看出:由于數(shù)據(jù)類型轉(zhuǎn)換所造成的時(shí)間延遲,對(duì)任務(wù)整體處理時(shí)間影響較大.其主要原因在于實(shí)現(xiàn)語(yǔ)言及框架限制,該部分時(shí)間延遲主要來(lái)自深度學(xué)習(xí)框架下的數(shù)據(jù)類型向基礎(chǔ)數(shù)據(jù)類型的轉(zhuǎn)換時(shí)間,以及將信息打包和解析所造成的時(shí)間延遲.終端僅進(jìn)行預(yù)處理操作時(shí),特征數(shù)據(jù)總的傳輸開銷與傳輸數(shù)據(jù)大小、數(shù)據(jù)轉(zhuǎn)換以及傳輸框架密切相關(guān).實(shí)驗(yàn)中,采用json 進(jìn)行數(shù)據(jù)打包和解析,采用python requests 庫(kù)進(jìn)行HTTP 連接和數(shù)據(jù)傳輸.由于json 僅支持有限的數(shù)據(jù)格式,因此需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換進(jìn)行適配.采用json 對(duì)數(shù)據(jù)進(jìn)行打包和解析時(shí)間較長(zhǎng),該部分時(shí)間開銷與工程實(shí)現(xiàn)方式密切相關(guān),可進(jìn)一步優(yōu)化改進(jìn).在后續(xù)優(yōu)化中,將改寫其他傳輸框架,以解決該問題.
針對(duì)傳輸數(shù)據(jù)的類型和大小,可采用模型參數(shù)量化的方式進(jìn)一步降低數(shù)據(jù)大小.為避免修改原始網(wǎng)絡(luò),在下一步工作中,嘗試訓(xùn)練額外的小型神經(jīng)網(wǎng)絡(luò)進(jìn)行中間特征圖譜的編碼量化.此外,考慮到追蹤任務(wù)在判斷目標(biāo)位置時(shí),僅與最終響應(yīng)圖中最大值位置有關(guān),因此若保證最大值位置不變,則其他位置信息損失并不會(huì)對(duì)模型性能造成影響.嘗試通過小型神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)一個(gè)近似的特征圖譜(或矩陣),該矩陣具有可分解性質(zhì),傳輸數(shù)據(jù)為分解后的兩個(gè)向量.如圖21 所示,邊緣云通過對(duì)接收到的向量進(jìn)行運(yùn)算以恢復(fù)原始特征圖.此外,考慮是否可以采用傳統(tǒng)方法對(duì)特征圖進(jìn)行處理,或采用其他數(shù)學(xué)方式進(jìn)行近似,以避免添加的網(wǎng)絡(luò)模型對(duì)本地節(jié)點(diǎn)產(chǎn)生計(jì)算壓力.
對(duì)于不搭載圖形處理單元的終端設(shè)備,神經(jīng)網(wǎng)絡(luò)模型的計(jì)算壓力成為整體計(jì)算任務(wù)的主要瓶頸.對(duì)于搭載輕量級(jí)GPU 或NPU 的移動(dòng)終端設(shè)備,將神經(jīng)網(wǎng)絡(luò)模型繼續(xù)拆分,將部分計(jì)算任務(wù)本地計(jì)算,從而避開當(dāng)前網(wǎng)絡(luò)高延遲時(shí)段,仍是值得考慮的部署策略.針對(duì)網(wǎng)絡(luò)傳輸延遲,對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行優(yōu)化設(shè)計(jì),或根據(jù)模型具體結(jié)構(gòu),從神經(jīng)網(wǎng)絡(luò)輸出數(shù)據(jù)量較小的位置進(jìn)行拆分,如將神經(jīng)網(wǎng)絡(luò)模型在升維前后進(jìn)行拆分等,可能獲得更優(yōu)的處理時(shí)間.此外,對(duì)于搭載異構(gòu)處理單元的設(shè)備,根據(jù)不同處理單元計(jì)算性能及優(yōu)勢(shì),訓(xùn)練多個(gè)小模型以部署在不同處理單元,最后對(duì)多個(gè)模型進(jìn)行集成,或?qū)唧w算法模型拆分,分配不同處理單元計(jì)算以進(jìn)一步優(yōu)化等,在今后的研究工作中,會(huì)進(jìn)行更多探索嘗試.
由于目標(biāo)追蹤任務(wù)對(duì)于實(shí)時(shí)性的嚴(yán)苛要求,使得移動(dòng)嵌入式設(shè)備難以部署計(jì)算壓力較大的算法模型.本文結(jié)合邊緣計(jì)算技術(shù),提出一種研究面向邊緣計(jì)算的目標(biāo)追蹤應(yīng)用部署策略,通過任務(wù)分割策略對(duì)計(jì)算任務(wù)進(jìn)行劃分,并將其合理分配至邊緣云端及本地終端節(jié)點(diǎn)進(jìn)行處理,通過協(xié)同處理等方式,提高資源的整體利用率,降低任務(wù)響應(yīng)時(shí)間.此外,采用響應(yīng)圖重建策略降低信息傳輸時(shí)間,并結(jié)合運(yùn)動(dòng)檢測(cè)算法,進(jìn)一步降低終端節(jié)點(diǎn)計(jì)算壓力,避免不必要計(jì)算資源浪費(fèi),降低終端節(jié)點(diǎn)功耗.最后,通過實(shí)驗(yàn)驗(yàn)證該部署策略的有效性.實(shí)驗(yàn)結(jié)果表明,該部署策略有效降低了相同計(jì)算任務(wù)處理時(shí)間.
結(jié)合目前邊緣計(jì)算和目標(biāo)追蹤的發(fā)展現(xiàn)狀,可從以下幾個(gè)方面進(jìn)一步研究.
(1) 針對(duì)特定應(yīng)用場(chǎng)景,對(duì)邊緣云架構(gòu)進(jìn)行優(yōu)化設(shè)計(jì),將本地計(jì)算能力較強(qiáng)的節(jié)點(diǎn)上移邊緣云層,以降低較差網(wǎng)絡(luò)環(huán)境對(duì)任務(wù)的影響.此時(shí),任務(wù)卸載問題轉(zhuǎn)換為多邊緣情況,由此添加針對(duì)多邊緣場(chǎng)景下的任務(wù)卸載策略研究;
(2) 針對(duì)目前移動(dòng)嵌入式設(shè)備多搭載多核異構(gòu)處理器的現(xiàn)狀,將本地計(jì)算任務(wù)進(jìn)一步細(xì)分,以充分利用本地計(jì)算資源,如FPGA,ARM,GPU 等.結(jié)合多核異構(gòu)處理器的調(diào)度策略,進(jìn)一步優(yōu)化本地資源分配;
(3) 添加多維度約束條件,如功耗、模型性能等,對(duì)多約束條件下的資源優(yōu)化分配問題進(jìn)行建模,對(duì)任務(wù)分割策略進(jìn)行更深入的研究;
(4) 結(jié)合模型壓縮思想,通過參數(shù)量化、模型剪枝等策略,降低終端節(jié)點(diǎn)與邊緣云之間的信息傳輸量,進(jìn)而降低計(jì)算任務(wù)的響應(yīng)時(shí)間.