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