趙羽,楊潔,劉淼,孫金龍,桂冠
(南京郵電大學通信與信息工程學院,江蘇 南京 210003)
由于物聯(lián)網技術[1]、云計算技術[2]以及第五代移動通信技術[3-4]的推動,全球數(shù)據(jù)量呈指數(shù)級增長。由中國信息通信研究院發(fā)表的《大數(shù)據(jù)白皮書》指出,全球數(shù)據(jù)量將于2020 年年底達到50 ZB(1 ZB=240GB)。面對如此龐大的數(shù)據(jù)量,傳統(tǒng)的以云計算技術為核心的集中式數(shù)據(jù)處理方式逐漸顯現(xiàn)出瓶頸。與此同時,隨著邊緣端硬件設備數(shù)據(jù)處理能力不斷增強,以邊緣計算技術[5-6]為核心的分布式數(shù)據(jù)處理方式應運而生。
視頻監(jiān)控作為物聯(lián)網技術中的一環(huán)越來越受到人們的重視,它廣泛應用于交通[7]、安防[8]等各個領域。早年間,人們通過建立專門的監(jiān)控室來觀測監(jiān)控視頻,這樣做不但人力成本昂貴,而且不能及時捕捉關鍵信息。近些年,深度學習在目標檢測領域快速發(fā)展,使智能視頻監(jiān)控系統(tǒng)在各個領域得以落地。但是面對海量的視頻數(shù)據(jù),傳統(tǒng)的集中式云計算處理方式能力有限,主要體現(xiàn)在以下3 個方面。
1) 實時問題。隨著邊緣攝像頭數(shù)量的不斷增加,將在網絡邊緣產生大量的實時數(shù)據(jù)。把數(shù)據(jù)從邊緣設備傳輸至云計算中心占用大量的網絡帶寬,造成網絡時延。
2) 效率問題。在海量視頻數(shù)據(jù)中,只有少部分數(shù)據(jù)具有信息價值,直接傳送視頻數(shù)據(jù)占用大量網絡資源?;谏疃葘W習的視頻分析方法需要強大的計算能力支持,不經過處理的視頻數(shù)據(jù)會給云計算中心帶來計算負擔。
3) 隱私問題。視頻數(shù)據(jù)中攜帶有大量的個人隱私,將這些視頻數(shù)據(jù)直接上傳云計算中心增加了泄露用戶隱私的風險。
近些年,為了解決深度學習過度依賴硬件資源的問題,研究者提出了多種輕量級神經網絡模型。Zhang 等[9]提出分組卷積和通道隨機組合操作對神經網絡進行壓縮,Howard 等[10]提出深度可分離卷積來減少標準卷積的運算量,Tan 等[11]提出自動神經網絡結構體系搜索方法來構建輕量級神經網絡。這些方法使神經網絡可以在移動終端或者嵌入式設備中運行。呂華章等[12]介紹了近些年邊緣計算標準化進展情況,張佳樂等[13]探究了邊緣計算數(shù)據(jù)安全與隱私保護現(xiàn)狀。大量參考文獻表明,邊緣計算可以有效突破云計算當前瓶頸,是大勢所趨。
基于上述考慮,本文提出一種基于聯(lián)邦學習(FL,federated learning)的分布式邊緣計算模型,并將其應用于視頻監(jiān)控系統(tǒng),該方法僅傳輸神經網絡模型權重,免于視頻數(shù)據(jù)的傳輸。經實驗發(fā)現(xiàn),本文提出的分布式邊緣計算模型可以針對不同場景實現(xiàn)單獨訓練,以提高目標檢測的準確性。聯(lián)邦學習的引入不僅可以保證邊緣端用戶隱私不會泄露,還可以減少神經網絡模型的訓練時間。
圖1 是傳統(tǒng)的集中式云計算模型。在當前行情下,不同企業(yè)擁有不同數(shù)據(jù)格式的視頻數(shù)據(jù)庫,集中式云計算模型需要將這些數(shù)據(jù)統(tǒng)一上傳至云端服務器,經過數(shù)據(jù)清洗和數(shù)據(jù)格式統(tǒng)一后訓練出一個通用的神經網絡檢測模型。在完成神經網絡模型的建立后,各企業(yè)需將待檢測的視頻上傳至云端服務器統(tǒng)一檢測,服務器再將檢測結果逐一下發(fā)。這樣會占用大量的網絡資源,且難以滿足一些對實時性要求較高的應用場景。各個企業(yè)之間存在數(shù)據(jù)壁壘,將數(shù)據(jù)上傳至云端服務器存在數(shù)據(jù)泄露的風險。除此之外,由于各企業(yè)數(shù)據(jù)量不同,通用的神經網絡模型對于數(shù)據(jù)量較少的企業(yè)不友好,檢測效果較差。
針對以上問題,微眾銀行[14]提出如圖2 所示的聯(lián)邦學習模型。在聯(lián)邦學習模型中,各企業(yè)只需將神經網絡模型下載到本地,利用本地的數(shù)據(jù)進行訓練,最后將訓練完成的權重參數(shù)上傳。云端服務器根據(jù)各企業(yè)上傳的權重參數(shù)聯(lián)合優(yōu)化神經網絡模型。視頻的檢測與分析都在數(shù)據(jù)庫本地進行,既保證了數(shù)據(jù)的安全性,也保證了數(shù)據(jù)處理的實時性。
本文結合云計算模型與聯(lián)邦學習模型,提出基于聯(lián)邦學習的邊緣計算視頻監(jiān)控模型,如圖3 所示。該模型由4 個部分組成,分別是云端服務器、企業(yè)服務器、邊緣開發(fā)板和攝像頭。云端服務器負責存儲公共數(shù)據(jù)集和訓練通用神經網絡模型,并將網絡模型分發(fā)給企業(yè)服務器;企業(yè)服務器針對不同場景根據(jù)本地數(shù)據(jù)庫訓練與更新神經網絡模型,并將算法部署于邊緣開發(fā)板NVIDIA TX2 上;邊緣開發(fā)板NVIDIA TX2 負責實時分析視頻數(shù)據(jù),并將處理后的視頻數(shù)據(jù)上傳至企業(yè)服務器統(tǒng)一管理;攝像頭負責實時采集視頻。企業(yè)服務器完成神經網絡模型訓練后,將網絡權重上傳至云端服務器,云端服務器聯(lián)合處理各企業(yè)的網絡權重,用于更新通用神經網絡模型。
圖1 傳統(tǒng)的集中式云計算模型
圖2 聯(lián)邦學習模型
圖3 基于聯(lián)邦學習的邊緣計算視頻監(jiān)控模型
本文以智能安全帽檢測系統(tǒng)為例來驗證基于聯(lián)邦學習的邊緣計算視頻監(jiān)控模型。為了提高神經網絡在邊緣開發(fā)板上的檢測速度,本文采用改進YOLOv3[15]神經網絡檢測模型。
在基于深度學習的目標檢測領域,根據(jù)檢測方式的不同,檢測方法大體可以分為兩類:基于候選區(qū)域的兩步目標檢測算法和基于端到端的一步目標檢測算法。其中,基于端到端的一步目標檢測算法以其檢測速度快著稱。本文選取基于端到端的目標檢測算法YOLOv3,并在其基礎上進行改進,使其能夠在計算能力受限的邊緣設備NVIDAI TX2 上快速運行。
YOLOv3 的檢測原理為將輸入的圖像人為地劃分為T2個方格,每小方格產生A個邊界框,若待檢測物體的中心位置位于某個小方格中,則由該小方格負責預測該物體。改進YOLOv3 神經網絡結構如圖4 所示。
改進YOLOv3 神經網絡結構主要分為4 個部分:輸入層、主網絡框架、多尺度檢測模塊和非極大值抑制模塊。主網絡框架由卷積層組合而成,用于提取圖像特征。與YOLOv3 不同的是,本文采用文獻[10]提出的深度可分離卷積層代替標準卷積層,通過將標準卷積分解為深度卷積和逐點卷積,從而降低了神經網絡的浮點數(shù)運算量,其結構對比如圖5 所示。多尺度檢測模塊從3 個不同尺度的特征圖上檢測物體,其中大尺度的特征圖含有更多特征信息,負責檢測小物體;小尺度的特征圖含有更多全局信息,負責檢測大物體。非極大值抑制模塊用于獲取局部最大值,從而抑制神經網絡產生多余的候選框。
圖4 改進YOLOV3 神經網絡結構
圖5 標準卷積與深度可分離卷積結構對比
改進YOLOv3 的損失函數(shù)如式(1)所示,主要由中心坐標損失losscenter、邊界框大小損失lossscale、置信度損失lossconf以及分類損失lossclass這4 個部分組成。losscenter和lossscale采用和方差的計算方式,如式(2)和式(3)所示;lossconf和lossclass采用交叉熵的計算方式,如式(4)和式(5)所示。
表1 YOLOv3 與改進YOLOv3 對比
考慮到邊緣端數(shù)據(jù)集數(shù)據(jù)量較小的問題,為了防止神經網絡模型過擬合,采用遷移學習[16]的方式訓練。企業(yè)服務器在接收到來自云端服務器的通用神經網絡模型后,固定主網絡框架的權重,根據(jù)本地數(shù)據(jù)集微調模型即可,這樣可以極大地縮短神經網絡模型的訓練時間。
在本實驗中,企業(yè)服務器采用的圖形處理單元(GPU,graphics processing unit)為NVIDIA GTX 1080Ti,邊緣開發(fā)板為NVIDIA TX2,操作系統(tǒng)為Ubuntu 16.04,編程語言為Python,深度學習框架為TensorFlow。表2 為企業(yè)服務器與NVIDIA TX2的性能、功耗、成本對比。
表2 企業(yè)服務器與NVIDIA TX2 的性能、功耗、成本對比
在云端服務器側,本實驗通過網絡爬蟲以及人工標注的方式,結合通用安全帽佩戴檢測數(shù)據(jù)集(SHWD,safety helmet wearing detect dataset)制作了包含15 093 幅圖像的數(shù)據(jù)集,用于訓練通用神經網絡。在企業(yè)服務側,根據(jù)攝像頭角度以及距離遠近,本實驗制作了3 組不同場景的數(shù)據(jù)集,每組數(shù)據(jù)集包含2 000 多幅圖像,通過遷移學習的方式驗證不同場景下基于聯(lián)邦學習的邊緣計算視頻監(jiān)控系統(tǒng)的檢測準確度。為了豐富數(shù)據(jù)集,提高檢測效果,在訓練神經網絡模型之前,本實驗采用了數(shù)據(jù)增強技術。除了常見的翻轉、按比例縮放、隨機裁剪、移位以及添加高斯噪聲等數(shù)據(jù)增強方法,本實驗還采用了Mixup[17]數(shù)據(jù)增強方法。
Mixup 原理如圖6 所示。將2 幅圖像縮放至同一大小后逐像素相加并按比例融合,2 幅圖像的標簽組合成新的標簽。在計算損失函數(shù)時,需按照融合時的比例分別計算損失函數(shù)再相加。此種方式通過人為地引入遮擋來提高目標檢測的準確性,尤其適用于安全帽檢測這種含有目標遮擋的場景。
圖6 Mixup 原理
在多分類目標檢測任務中,神經網絡檢測模型的好壞并不能單純由精準率來衡量,需要綜合評定模型的分類和定位性能。在目標檢測領域,定位性能依靠交并比(IoU,intersection over union)來衡量,即預測邊界框與真實邊界框的交集和并集的比值。在本實驗中,當IoU≥0.5 時判定為正確檢測。對于某一特定類別,根據(jù)IoU 以及置信度閾值可以計算出精準率與召回率,并進一步計算平均精度(AP,average precision),最后計算各類別AP 的平均值即為mAP。
圖7 為3 個不同場景數(shù)據(jù)集訓練改進YOLOv3與MobileNet-SSD[10]時的損失值與mAP 對比,其中mAP 每遍歷一次數(shù)據(jù)集計算一次,損失值取值為遍歷數(shù)據(jù)集時每次神經網絡權重更新時的平均值。由于改進YOLOv3 與MobileNet-SSD 兩者的損失函數(shù)定義不同,無法從損失值直接觀察出模型的檢測準確度,但可以得出,兩者均需要遍歷160 次左右數(shù)據(jù)集來完成模型訓練,它們的mAP 對比如表3 所示。
實驗發(fā)現(xiàn),若采用集中式云計算模型,僅訓練一個云端通用神經網絡,測得3 個數(shù)據(jù)集的mAP分別為71.98%、68.32%和73.05%。除此之外,在實際應用中,企業(yè)服務器處理每幀圖像的時間為19 ms,若采用集中式云計算模型,系統(tǒng)無法同時處理多路攝像頭的視頻數(shù)據(jù),大量的待檢測視頻數(shù)據(jù)會導致系統(tǒng)內存崩潰。通過遷移學習的方式分場景訓練,改進YOLOv3 神經網絡較云端通用神經網絡mAP平均提升18%,并且由于本地數(shù)據(jù)集數(shù)據(jù)量較少,神經網絡的訓練時間大大減少。企業(yè)服務器在完成神經網絡模型的訓練后將算法部署于邊緣開發(fā)板NVIDIA TX2 上,從而實現(xiàn)視頻數(shù)據(jù)的本地化實時處理。NVIDA TX2 支持統(tǒng)一計算設備架構(CUDA,compute unified device architecture)與TensorFlow深度學習框架,不需要模型轉換即可直接運行神經網絡模型,檢測速度可達18 frame/s,其硬件成本僅為企業(yè)服務器的十分之一。最后,企業(yè)服務器上傳神經網絡權重至云端服務器用于更新通用神經網絡。圖8 為安全帽檢測實際效果。
圖7 改進YOLOv3 與MobileNet-SSD 的損失值與mAP
表3 改進YOLOv3 與MobileNet-SSD 的mAP 對比
圖8 安全帽檢測實際效果
現(xiàn)有的集中式云計算處理視頻監(jiān)控的方式網絡數(shù)據(jù)傳輸量大,系統(tǒng)時延高且可能泄露用戶隱私。針對這些問題,本文提出基于聯(lián)邦學習的邊緣計算視頻監(jiān)控系統(tǒng),采用輕量級神經網絡模型,將視頻的分析處理分布于邊緣開發(fā)板中,神經網絡模型的訓練分布于企業(yè)服務器中,有效地緩解云端服務器的計算與存儲負擔,免去視頻數(shù)據(jù)的傳輸,并且在打破數(shù)據(jù)孤島的同時保護用戶隱私。除此之外,本文所提的基于聯(lián)邦學習的邊緣計算視頻監(jiān)控系統(tǒng)相較于傳統(tǒng)系統(tǒng)節(jié)約了硬件成本以及運行功耗,更有利于實際項目的部署。未來工作將繼續(xù)研究聯(lián)邦學習算法,優(yōu)化通用神經網絡權重的更新方式,進一步提升檢測效果,引入神經網絡壓縮與加速算法,使系統(tǒng)達到實時要求。