趙羽,楊潔,劉淼,孫金龍,桂冠
(南京郵電大學通信與信息工程學院,江蘇 南京 210003)
由于物聯網技術[1]、云計算技術[2]以及第五代移動通信技術[3-4]的推動,全球數據量呈指數級增長。由中國信息通信研究院發表的《大數據白皮書》指出,全球數據量將于2020 年年底達到50 ZB(1 ZB=240GB)。面對如此龐大的數據量,傳統的以云計算技術為核心的集中式數據處理方式逐漸顯現出瓶頸。與此同時,隨著邊緣端硬件設備數據處理能力不斷增強,以邊緣計算技術[5-6]為核心的分布式數據處理方式應運而生。
視頻監控作為物聯網技術中的一環越來越受到人們的重視,它廣泛應用于交通[7]、安防[8]等各個領域。早年間,人們通過建立專門的監控室來觀測監控視頻,這樣做不但人力成本昂貴,而且不能及時捕捉關鍵信息。近些年,深度學習在目標檢測領域快速發展,使智能視頻監控系統在各個領域得以落地。但是面對海量的視頻數據,傳統的集中式云計算處理方式能力有限,主要體現在以下3 個方面。
1) 實時問題。隨著邊緣攝像頭數量的不斷增加,將在網絡邊緣產生大量的實時數據。把數據從邊緣設備傳輸至云計算中心占用大量的網絡帶寬,造成網絡時延。
2) 效率問題。在海量視頻數據中,只有少部分數據具有信息價值,直接傳送視頻數據占用大量網絡資源。基于深度學習的視頻分析方法需要強大的計算能力支持,不經過處理的視頻數據會給云計算中心帶來計算負擔。
3) 隱私問題。視頻數據中攜帶有大量的個人隱私,將這些視頻數據直接上傳云計算中心增加了泄露用戶隱私的風險。
近些年,為了解決深度學習過度依賴硬件資源的問題,研究者提出了多種輕量級神經網絡模型。Zhang 等[9]提出分組卷積和通道隨機組合操作對神經網絡進行壓縮,Howard 等[10]提出深度可分離卷積來減少標準卷積的運算量,Tan 等[11]提出自動神經網絡結構體系搜索方法來構建輕量級神經網絡。這些方法使神經網絡可以在移動終端或者嵌入式設備中運行。呂華章等[12]介紹了近些年邊緣計算標準化進展情況,張佳樂等[13]探究了邊緣計算數據安全與隱私保護現狀。大量參考文獻表明,邊緣計算可以有效突破云計算當前瓶頸,是大勢所趨。
基于上述考慮,本文提出一種基于聯邦學習(FL,federated learning)的分布式邊緣計算模型,并將其應用于視頻監控系統,該方法僅傳輸神經網絡模型權重,免于視頻數據的傳輸。經實驗發現,本文提出的分布式邊緣計算模型可以針對不同場景實現單獨訓練,以提高目標檢測的準確性。聯邦學習的引入不僅可以保證邊緣端用戶隱私不會泄露,還可以減少神經網絡模型的訓練時間。
圖1 是傳統的集中式云計算模型。在當前行情下,不同企業擁有不同數據格式的視頻數據庫,集中式云計算模型需要將這些數據統一上傳至云端服務器,經過數據清洗和數據格式統一后訓練出一個通用的神經網絡檢測模型。在完成神經網絡模型的建立后,各企業需將待檢測的視頻上傳至云端服務器統一檢測,服務器再將檢測結果逐一下發。這樣會占用大量的網絡資源,且難以滿足一些對實時性要求較高的應用場景。各個企業之間存在數據壁壘,將數據上傳至云端服務器存在數據泄露的風險。除此之外,由于各企業數據量不同,通用的神經網絡模型對于數據量較少的企業不友好,檢測效果較差。
針對以上問題,微眾銀行[14]提出如圖2 所示的聯邦學習模型。在聯邦學習模型中,各企業只需將神經網絡模型下載到本地,利用本地的數據進行訓練,最后將訓練完成的權重參數上傳。云端服務器根據各企業上傳的權重參數聯合優化神經網絡模型。視頻的檢測與分析都在數據庫本地進行,既保證了數據的安全性,也保證了數據處理的實時性。
本文結合云計算模型與聯邦學習模型,提出基于聯邦學習的邊緣計算視頻監控模型,如圖3 所示。該模型由4 個部分組成,分別是云端服務器、企業服務器、邊緣開發板和攝像頭。云端服務器負責存儲公共數據集和訓練通用神經網絡模型,并將網絡模型分發給企業服務器;企業服務器針對不同場景根據本地數據庫訓練與更新神經網絡模型,并將算法部署于邊緣開發板NVIDIA TX2 上;邊緣開發板NVIDIA TX2 負責實時分析視頻數據,并將處理后的視頻數據上傳至企業服務器統一管理;攝像頭負責實時采集視頻。企業服務器完成神經網絡模型訓練后,將網絡權重上傳至云端服務器,云端服務器聯合處理各企業的網絡權重,用于更新通用神經網絡模型。

圖1 傳統的集中式云計算模型

圖2 聯邦學習模型

圖3 基于聯邦學習的邊緣計算視頻監控模型
本文以智能安全帽檢測系統為例來驗證基于聯邦學習的邊緣計算視頻監控模型。為了提高神經網絡在邊緣開發板上的檢測速度,本文采用改進YOLOv3[15]神經網絡檢測模型。
在基于深度學習的目標檢測領域,根據檢測方式的不同,檢測方法大體可以分為兩類:基于候選區域的兩步目標檢測算法和基于端到端的一步目標檢測算法。其中,基于端到端的一步目標檢測算法以其檢測速度快著稱。本文選取基于端到端的目標檢測算法YOLOv3,并在其基礎上進行改進,使其能夠在計算能力受限的邊緣設備NVIDAI TX2 上快速運行。
YOLOv3 的檢測原理為將輸入的圖像人為地劃分為T2個方格,每小方格產生A個邊界框,若待檢測物體的中心位置位于某個小方格中,則由該小方格負責預測該物體。改進YOLOv3 神經網絡結構如圖4 所示。
改進YOLOv3 神經網絡結構主要分為4 個部分:輸入層、主網絡框架、多尺度檢測模塊和非極大值抑制模塊。主網絡框架由卷積層組合而成,用于提取圖像特征。與YOLOv3 不同的是,本文采用文獻[10]提出的深度可分離卷積層代替標準卷積層,通過將標準卷積分解為深度卷積和逐點卷積,從而降低了神經網絡的浮點數運算量,其結構對比如圖5 所示。多尺度檢測模塊從3 個不同尺度的特征圖上檢測物體,其中大尺度的特征圖含有更多特征信息,負責檢測小物體;小尺度的特征圖含有更多全局信息,負責檢測大物體。非極大值抑制模塊用于獲取局部最大值,從而抑制神經網絡產生多余的候選框。

圖4 改進YOLOV3 神經網絡結構

圖5 標準卷積與深度可分離卷積結構對比
改進YOLOv3 的損失函數如式(1)所示,主要由中心坐標損失losscenter、邊界框大小損失lossscale、置信度損失lossconf以及分類損失lossclass這4 個部分組成。losscenter和lossscale采用和方差的計算方式,如式(2)和式(3)所示;lossconf和lossclass采用交叉熵的計算方式,如式(4)和式(5)所示。



表1 YOLOv3 與改進YOLOv3 對比


考慮到邊緣端數據集數據量較小的問題,為了防止神經網絡模型過擬合,采用遷移學習[16]的方式訓練。企業服務器在接收到來自云端服務器的通用神經網絡模型后,固定主網絡框架的權重,根據本地數據集微調模型即可,這樣可以極大地縮短神經網絡模型的訓練時間。
在本實驗中,企業服務器采用的圖形處理單元(GPU,graphics processing unit)為NVIDIA GTX 1080Ti,邊緣開發板為NVIDIA TX2,操作系統為Ubuntu 16.04,編程語言為Python,深度學習框架為TensorFlow。表2 為企業服務器與NVIDIA TX2的性能、功耗、成本對比。

表2 企業服務器與NVIDIA TX2 的性能、功耗、成本對比
在云端服務器側,本實驗通過網絡爬蟲以及人工標注的方式,結合通用安全帽佩戴檢測數據集(SHWD,safety helmet wearing detect dataset)制作了包含15 093 幅圖像的數據集,用于訓練通用神經網絡。在企業服務側,根據攝像頭角度以及距離遠近,本實驗制作了3 組不同場景的數據集,每組數據集包含2 000 多幅圖像,通過遷移學習的方式驗證不同場景下基于聯邦學習的邊緣計算視頻監控系統的檢測準確度。為了豐富數據集,提高檢測效果,在訓練神經網絡模型之前,本實驗采用了數據增強技術。除了常見的翻轉、按比例縮放、隨機裁剪、移位以及添加高斯噪聲等數據增強方法,本實驗還采用了Mixup[17]數據增強方法。
Mixup 原理如圖6 所示。將2 幅圖像縮放至同一大小后逐像素相加并按比例融合,2 幅圖像的標簽組合成新的標簽。在計算損失函數時,需按照融合時的比例分別計算損失函數再相加。此種方式通過人為地引入遮擋來提高目標檢測的準確性,尤其適用于安全帽檢測這種含有目標遮擋的場景。

圖6 Mixup 原理
在多分類目標檢測任務中,神經網絡檢測模型的好壞并不能單純由精準率來衡量,需要綜合評定模型的分類和定位性能。在目標檢測領域,定位性能依靠交并比(IoU,intersection over union)來衡量,即預測邊界框與真實邊界框的交集和并集的比值。在本實驗中,當IoU≥0.5 時判定為正確檢測。對于某一特定類別,根據IoU 以及置信度閾值可以計算出精準率與召回率,并進一步計算平均精度(AP,average precision),最后計算各類別AP 的平均值即為mAP。
圖7 為3 個不同場景數據集訓練改進YOLOv3與MobileNet-SSD[10]時的損失值與mAP 對比,其中mAP 每遍歷一次數據集計算一次,損失值取值為遍歷數據集時每次神經網絡權重更新時的平均值。由于改進YOLOv3 與MobileNet-SSD 兩者的損失函數定義不同,無法從損失值直接觀察出模型的檢測準確度,但可以得出,兩者均需要遍歷160 次左右數據集來完成模型訓練,它們的mAP 對比如表3 所示。
實驗發現,若采用集中式云計算模型,僅訓練一個云端通用神經網絡,測得3 個數據集的mAP分別為71.98%、68.32%和73.05%。除此之外,在實際應用中,企業服務器處理每幀圖像的時間為19 ms,若采用集中式云計算模型,系統無法同時處理多路攝像頭的視頻數據,大量的待檢測視頻數據會導致系統內存崩潰。通過遷移學習的方式分場景訓練,改進YOLOv3 神經網絡較云端通用神經網絡mAP平均提升18%,并且由于本地數據集數據量較少,神經網絡的訓練時間大大減少。企業服務器在完成神經網絡模型的訓練后將算法部署于邊緣開發板NVIDIA TX2 上,從而實現視頻數據的本地化實時處理。NVIDA TX2 支持統一計算設備架構(CUDA,compute unified device architecture)與TensorFlow深度學習框架,不需要模型轉換即可直接運行神經網絡模型,檢測速度可達18 frame/s,其硬件成本僅為企業服務器的十分之一。最后,企業服務器上傳神經網絡權重至云端服務器用于更新通用神經網絡。圖8 為安全帽檢測實際效果。

圖7 改進YOLOv3 與MobileNet-SSD 的損失值與mAP

表3 改進YOLOv3 與MobileNet-SSD 的mAP 對比

圖8 安全帽檢測實際效果
現有的集中式云計算處理視頻監控的方式網絡數據傳輸量大,系統時延高且可能泄露用戶隱私。針對這些問題,本文提出基于聯邦學習的邊緣計算視頻監控系統,采用輕量級神經網絡模型,將視頻的分析處理分布于邊緣開發板中,神經網絡模型的訓練分布于企業服務器中,有效地緩解云端服務器的計算與存儲負擔,免去視頻數據的傳輸,并且在打破數據孤島的同時保護用戶隱私。除此之外,本文所提的基于聯邦學習的邊緣計算視頻監控系統相較于傳統系統節約了硬件成本以及運行功耗,更有利于實際項目的部署。未來工作將繼續研究聯邦學習算法,優化通用神經網絡權重的更新方式,進一步提升檢測效果,引入神經網絡壓縮與加速算法,使系統達到實時要求。