陳佳林 和青 李云波 潘志松
(中國人民解放軍陸軍工程大學指揮控制工程學院 江蘇省南京市 210007)
工業園區的視頻監控是保證園區開展安全生產的重要組成部分。大部分情況下,需要布設多個攝像頭全方位覆蓋園區內的各條道路以全方位的進行監控。采用人工方式對圖像進行判別的可信度較高,但是需要耗費人力資源。隨著深度學習問世以來,人工智能領域發展迅速,也給視頻目標檢測領帶來了新的突破,文獻[1]提出基于TensorFlow 的輸電線異物識別方法。運用人工智能中目標檢測的方法可以代替人工進行目標檢測同時也能取得較高的精度。但不便于在硬件有限的情況下部署。
對于園區內的行人和車輛進行檢測屬于目標檢測任務。傳統的目標檢測通過構建詞袋模型并結合分類算法對圖片進行分類和目標檢測?;舅枷胧菍D片切分為許多細小的圖片塊并將其作為特征,計算統計特點作為分類依據。文獻[2]提出了基于HOG 特征的圖片分類算法。文獻[3]采用幀間差法構建了運動目標的檢測方法。
采用深度學習的目標檢測算法利用深度卷積提取圖片特征代替手工特征。文獻[4-6]采用多步目標檢測算法對每個推薦窗口檢測,精度較高但效率底下。文獻[7]在目標檢測推理中加入了候選框實現了端到端的檢測方式,但其復雜度較高。近年來邊緣計算發展迅猛,文獻[8]探索了在集成開發板上部署邊緣檢測算法以分辨無人機拍攝的電線電纜異物圖片,但其硬件成本較高。
本文首先采用輕量化的卷積網絡代替端到端目標檢測網絡中特征提取的主干網絡,然后采用多線程的編程方式將視頻輸入后的圖像與目標檢測框繪制分流處理,有效提高了硬件資源緊張條件下的利用效率。
邊緣計算可以有效解決監控視頻難存儲、難檢索、難識別的問題。本文提出的基于邊緣計算和深度學習的園區目標檢測系統的結構如圖1所示。
系統整體運行分為三個部分,分別是前端的邊緣設備,中心機房以及目標樣本庫。
邊緣設備硬件由攝像頭和邊緣服務節點兩部分組成,若圖像上存在滿足預設條件的目標,則邊緣服務節點將存儲目標出現的圖片,并將實時檢測到的目標視頻和圖像傳輸回核心節點。
中心機房在接收到邊緣設備傳回的目標圖片或視頻后會出發消息服務向管理人員發出消息提醒。中心機房存儲包含目標的視頻片段和圖像。目標樣本庫中村為人工標注樣本,新目標獲準進入園區后會加入目標樣本庫中并獲得專用的標簽訓練。

圖1:邊緣檢測系統整體結構

圖2:卷積核對比

圖3:輕量化目標檢測網絡結構
在硬件成本受限的條件下邊緣服務節點內存和計算能力都受到極大限制,在對檢測精度有較高要求的情況下使用輕量化的深度卷積網絡節約內存和計算復雜度。
常規的卷積核的高度與輸入通道數需要保持一致,這就帶來了較大的內存開銷。深度可分離卷積核與常規目標檢測網絡的卷積核結構對比如圖2所示。
對于輸入圖像大小描述為H×W×C,其中H 為輸入圖像的高度,W 為輸入圖像的寬度,C 為輸入圖像的通道數,原始圖像的輸入通道一般為三個通道。則使用常規卷積核得到數量為N 的特征圖需要N 個卷積核,每個卷積核的感受野大小為D×D,通道數于原始圖像保持一致,單個卷積核的大小可描述為D×D×C,對于一次卷積得到N 個特征圖而言,使用常規卷積核所需的參數個數可表示為:

計算量復雜度為:

深度可分離卷積主要由兩部分構成,第一部分使用D×D×1 大小的卷積核對每個通道單獨進行卷積。第二部分使用N 個1×1×C的卷積核心對第一部分得到的卷積結果再次計算卷積。對于得到N個特征圖而言,使用深度可分離卷積所需的參數個數可表示為:

計算量復雜度可表示為:

相比常規卷積核進行卷積計算,使用深度可分類卷積進行計算在空間復雜度上降低了:

在計算復雜度上,使用深度可分離卷積核常規卷積之比為:

從整體上看,深度可分離卷積核能夠在極大減小參數量的情況下較為全面地提取圖片的信息。
本文采用了類似文獻[9]中MobileNet 的網絡結構作為目標檢測網絡的主干網絡,并在其基礎之上引入了包含深度可分離卷積核的功能模塊。本文從網絡末端的四個卷積層分別抽取圖像特征。目標檢測網絡結構如圖3所示。
本文采用的輕量化目標檢測網絡分別從第11、13、14 和15 層的卷積結構抽取特征圖,以擴大提取特征的尺度范圍。損失函數由坐標回歸損失和標簽預測損失兩部分構成。損失函數可以寫為:

其中x 為類別置信度;α 為均衡因子;l 為預測框位置;g 為標簽框位置。標簽預測損失采用交叉熵損失,坐標回歸損失采用多元回歸損失。
本文的模型訓練采用了Image 標準數據集,并自主收集了200張園區內的車輛、行人圖片。采用RMSProp 的訓練方式進行訓練;初始學習率為0.001;訓練epoch 為30000。取驗證集最損失最小的模型用于部署。
本文使用目標樣本庫中的圖片訓練模型,使用的深度學習計算框架為Caffe,在帶有GPU 的主機上完成訓練后將網絡模型編譯為graph 格式。模型訓練及部署的整體流程如圖4所示。

圖4:整體流程

圖5:多線程目標檢測分流處理示意圖

圖6:目標檢測實驗結果
Movidius 二代神經計算棒(Neural Computational Stick,NCS)。其內置的VPU 單元能夠支持Caffe 框架下深度學習目標檢測模型。下載OpenVINO toolkit for Raspbian 并修改樹莓派環境變量后即完成Movidius 二代神經計算棒的搭載工作。
采用多線程的方式將攝像頭輸入視頻和目標檢測計算分流處理。其結構示意如圖5所示。
線程二中增加了檢測框繪制的預設條件,可以根據實際狀況判斷是否要在輸出幀上繪制檢測框。
實驗使用平均每幅圖像誤檢率文獻[10]提出的FPPI 作為評價指標,計算公式如下:

其中FP 代表檢測錯誤圖像總數,N 為測試樣本總數。分別將將本文提出的目標檢測算法模型和檢測系統與其他多種模型和現有的監控視頻目標檢測方法進行比較得出以下結果(如表1所示)。
實驗結果表明本文提出的方法可以有效降低網絡帶寬和存儲空間占用,在硬件成本較低的同時可以滿足實時園區監控目標檢測任務。
園區內目標檢測、計數的實驗效果如圖6所示。

表1:各類指標對比
圖片選取了同一個邊緣服務節點記錄的三個連續的檢測幀。目標出現在畫面時即開始檢測目標位置;在計數線附件時繪制檢測框;當目標跨越計數線時計數值加一,同時中心機房收到消息提醒。
本文通過在樹莓派上搭載部署神經網絡目標檢測算法,在檢測精度與效率之間探索了平衡的方式,對低成本大規模的邊緣計算部署具有參考意義。
此后還可在幾個方面進一步改進:
(1)以紅外光條件下的園區目標作為樣本訓練模型,降低對可見光源的依賴并減少輸入通道。
(2)搭建遠程更新模塊高效地更新維護邊緣數據節點。