陳佳林 和青 李云波 潘志松
(中國(guó)人民解放軍陸軍工程大學(xué)指揮控制工程學(xué)院 江蘇省南京市 210007)
工業(yè)園區(qū)的視頻監(jiān)控是保證園區(qū)開(kāi)展安全生產(chǎn)的重要組成部分。大部分情況下,需要布設(shè)多個(gè)攝像頭全方位覆蓋園區(qū)內(nèi)的各條道路以全方位的進(jìn)行監(jiān)控。采用人工方式對(duì)圖像進(jìn)行判別的可信度較高,但是需要耗費(fèi)人力資源。隨著深度學(xué)習(xí)問(wèn)世以來(lái),人工智能領(lǐng)域發(fā)展迅速,也給視頻目標(biāo)檢測(cè)領(lǐng)帶來(lái)了新的突破,文獻(xiàn)[1]提出基于TensorFlow 的輸電線(xiàn)異物識(shí)別方法。運(yùn)用人工智能中目標(biāo)檢測(cè)的方法可以代替人工進(jìn)行目標(biāo)檢測(cè)同時(shí)也能取得較高的精度。但不便于在硬件有限的情況下部署。
對(duì)于園區(qū)內(nèi)的行人和車(chē)輛進(jìn)行檢測(cè)屬于目標(biāo)檢測(cè)任務(wù)。傳統(tǒng)的目標(biāo)檢測(cè)通過(guò)構(gòu)建詞袋模型并結(jié)合分類(lèi)算法對(duì)圖片進(jìn)行分類(lèi)和目標(biāo)檢測(cè)?;舅枷胧菍D片切分為許多細(xì)小的圖片塊并將其作為特征,計(jì)算統(tǒng)計(jì)特點(diǎn)作為分類(lèi)依據(jù)。文獻(xiàn)[2]提出了基于HOG 特征的圖片分類(lèi)算法。文獻(xiàn)[3]采用幀間差法構(gòu)建了運(yùn)動(dòng)目標(biāo)的檢測(cè)方法。
采用深度學(xué)習(xí)的目標(biāo)檢測(cè)算法利用深度卷積提取圖片特征代替手工特征。文獻(xiàn)[4-6]采用多步目標(biāo)檢測(cè)算法對(duì)每個(gè)推薦窗口檢測(cè),精度較高但效率底下。文獻(xiàn)[7]在目標(biāo)檢測(cè)推理中加入了候選框?qū)崿F(xiàn)了端到端的檢測(cè)方式,但其復(fù)雜度較高。近年來(lái)邊緣計(jì)算發(fā)展迅猛,文獻(xiàn)[8]探索了在集成開(kāi)發(fā)板上部署邊緣檢測(cè)算法以分辨無(wú)人機(jī)拍攝的電線(xiàn)電纜異物圖片,但其硬件成本較高。
本文首先采用輕量化的卷積網(wǎng)絡(luò)代替端到端目標(biāo)檢測(cè)網(wǎng)絡(luò)中特征提取的主干網(wǎng)絡(luò),然后采用多線(xiàn)程的編程方式將視頻輸入后的圖像與目標(biāo)檢測(cè)框繪制分流處理,有效提高了硬件資源緊張條件下的利用效率。
邊緣計(jì)算可以有效解決監(jiān)控視頻難存儲(chǔ)、難檢索、難識(shí)別的問(wèn)題。本文提出的基于邊緣計(jì)算和深度學(xué)習(xí)的園區(qū)目標(biāo)檢測(cè)系統(tǒng)的結(jié)構(gòu)如圖1所示。
系統(tǒng)整體運(yùn)行分為三個(gè)部分,分別是前端的邊緣設(shè)備,中心機(jī)房以及目標(biāo)樣本庫(kù)。
邊緣設(shè)備硬件由攝像頭和邊緣服務(wù)節(jié)點(diǎn)兩部分組成,若圖像上存在滿(mǎn)足預(yù)設(shè)條件的目標(biāo),則邊緣服務(wù)節(jié)點(diǎn)將存儲(chǔ)目標(biāo)出現(xiàn)的圖片,并將實(shí)時(shí)檢測(cè)到的目標(biāo)視頻和圖像傳輸回核心節(jié)點(diǎn)。
中心機(jī)房在接收到邊緣設(shè)備傳回的目標(biāo)圖片或視頻后會(huì)出發(fā)消息服務(wù)向管理人員發(fā)出消息提醒。中心機(jī)房存儲(chǔ)包含目標(biāo)的視頻片段和圖像。目標(biāo)樣本庫(kù)中村為人工標(biāo)注樣本,新目標(biāo)獲準(zhǔn)進(jìn)入園區(qū)后會(huì)加入目標(biāo)樣本庫(kù)中并獲得專(zhuān)用的標(biāo)簽訓(xùn)練。
圖1:邊緣檢測(cè)系統(tǒng)整體結(jié)構(gòu)
圖2:卷積核對(duì)比
圖3:輕量化目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)
在硬件成本受限的條件下邊緣服務(wù)節(jié)點(diǎn)內(nèi)存和計(jì)算能力都受到極大限制,在對(duì)檢測(cè)精度有較高要求的情況下使用輕量化的深度卷積網(wǎng)絡(luò)節(jié)約內(nèi)存和計(jì)算復(fù)雜度。
常規(guī)的卷積核的高度與輸入通道數(shù)需要保持一致,這就帶來(lái)了較大的內(nèi)存開(kāi)銷(xiāo)。深度可分離卷積核與常規(guī)目標(biāo)檢測(cè)網(wǎng)絡(luò)的卷積核結(jié)構(gòu)對(duì)比如圖2所示。
對(duì)于輸入圖像大小描述為H×W×C,其中H 為輸入圖像的高度,W 為輸入圖像的寬度,C 為輸入圖像的通道數(shù),原始圖像的輸入通道一般為三個(gè)通道。則使用常規(guī)卷積核得到數(shù)量為N 的特征圖需要N 個(gè)卷積核,每個(gè)卷積核的感受野大小為D×D,通道數(shù)于原始圖像保持一致,單個(gè)卷積核的大小可描述為D×D×C,對(duì)于一次卷積得到N 個(gè)特征圖而言,使用常規(guī)卷積核所需的參數(shù)個(gè)數(shù)可表示為:
計(jì)算量復(fù)雜度為:
深度可分離卷積主要由兩部分構(gòu)成,第一部分使用D×D×1 大小的卷積核對(duì)每個(gè)通道單獨(dú)進(jìn)行卷積。第二部分使用N 個(gè)1×1×C的卷積核心對(duì)第一部分得到的卷積結(jié)果再次計(jì)算卷積。對(duì)于得到N個(gè)特征圖而言,使用深度可分離卷積所需的參數(shù)個(gè)數(shù)可表示為:
計(jì)算量復(fù)雜度可表示為:
相比常規(guī)卷積核進(jìn)行卷積計(jì)算,使用深度可分類(lèi)卷積進(jìn)行計(jì)算在空間復(fù)雜度上降低了:
在計(jì)算復(fù)雜度上,使用深度可分離卷積核常規(guī)卷積之比為:
從整體上看,深度可分離卷積核能夠在極大減小參數(shù)量的情況下較為全面地提取圖片的信息。
本文采用了類(lèi)似文獻(xiàn)[9]中MobileNet 的網(wǎng)絡(luò)結(jié)構(gòu)作為目標(biāo)檢測(cè)網(wǎng)絡(luò)的主干網(wǎng)絡(luò),并在其基礎(chǔ)之上引入了包含深度可分離卷積核的功能模塊。本文從網(wǎng)絡(luò)末端的四個(gè)卷積層分別抽取圖像特征。目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
本文采用的輕量化目標(biāo)檢測(cè)網(wǎng)絡(luò)分別從第11、13、14 和15 層的卷積結(jié)構(gòu)抽取特征圖,以擴(kuò)大提取特征的尺度范圍。損失函數(shù)由坐標(biāo)回歸損失和標(biāo)簽預(yù)測(cè)損失兩部分構(gòu)成。損失函數(shù)可以寫(xiě)為:
其中x 為類(lèi)別置信度;α 為均衡因子;l 為預(yù)測(cè)框位置;g 為標(biāo)簽框位置。標(biāo)簽預(yù)測(cè)損失采用交叉熵?fù)p失,坐標(biāo)回歸損失采用多元回歸損失。
本文的模型訓(xùn)練采用了Image 標(biāo)準(zhǔn)數(shù)據(jù)集,并自主收集了200張園區(qū)內(nèi)的車(chē)輛、行人圖片。采用RMSProp 的訓(xùn)練方式進(jìn)行訓(xùn)練;初始學(xué)習(xí)率為0.001;訓(xùn)練epoch 為30000。取驗(yàn)證集最損失最小的模型用于部署。
本文使用目標(biāo)樣本庫(kù)中的圖片訓(xùn)練模型,使用的深度學(xué)習(xí)計(jì)算框架為Caffe,在帶有GPU 的主機(jī)上完成訓(xùn)練后將網(wǎng)絡(luò)模型編譯為graph 格式。模型訓(xùn)練及部署的整體流程如圖4所示。
圖4:整體流程
圖5:多線(xiàn)程目標(biāo)檢測(cè)分流處理示意圖
圖6:目標(biāo)檢測(cè)實(shí)驗(yàn)結(jié)果
Movidius 二代神經(jīng)計(jì)算棒(Neural Computational Stick,NCS)。其內(nèi)置的VPU 單元能夠支持Caffe 框架下深度學(xué)習(xí)目標(biāo)檢測(cè)模型。下載OpenVINO toolkit for Raspbian 并修改樹(shù)莓派環(huán)境變量后即完成Movidius 二代神經(jīng)計(jì)算棒的搭載工作。
采用多線(xiàn)程的方式將攝像頭輸入視頻和目標(biāo)檢測(cè)計(jì)算分流處理。其結(jié)構(gòu)示意如圖5所示。
線(xiàn)程二中增加了檢測(cè)框繪制的預(yù)設(shè)條件,可以根據(jù)實(shí)際狀況判斷是否要在輸出幀上繪制檢測(cè)框。
實(shí)驗(yàn)使用平均每幅圖像誤檢率文獻(xiàn)[10]提出的FPPI 作為評(píng)價(jià)指標(biāo),計(jì)算公式如下:
其中FP 代表檢測(cè)錯(cuò)誤圖像總數(shù),N 為測(cè)試樣本總數(shù)。分別將將本文提出的目標(biāo)檢測(cè)算法模型和檢測(cè)系統(tǒng)與其他多種模型和現(xiàn)有的監(jiān)控視頻目標(biāo)檢測(cè)方法進(jìn)行比較得出以下結(jié)果(如表1所示)。
實(shí)驗(yàn)結(jié)果表明本文提出的方法可以有效降低網(wǎng)絡(luò)帶寬和存儲(chǔ)空間占用,在硬件成本較低的同時(shí)可以滿(mǎn)足實(shí)時(shí)園區(qū)監(jiān)控目標(biāo)檢測(cè)任務(wù)。
園區(qū)內(nèi)目標(biāo)檢測(cè)、計(jì)數(shù)的實(shí)驗(yàn)效果如圖6所示。
表1:各類(lèi)指標(biāo)對(duì)比
圖片選取了同一個(gè)邊緣服務(wù)節(jié)點(diǎn)記錄的三個(gè)連續(xù)的檢測(cè)幀。目標(biāo)出現(xiàn)在畫(huà)面時(shí)即開(kāi)始檢測(cè)目標(biāo)位置;在計(jì)數(shù)線(xiàn)附件時(shí)繪制檢測(cè)框;當(dāng)目標(biāo)跨越計(jì)數(shù)線(xiàn)時(shí)計(jì)數(shù)值加一,同時(shí)中心機(jī)房收到消息提醒。
本文通過(guò)在樹(shù)莓派上搭載部署神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測(cè)算法,在檢測(cè)精度與效率之間探索了平衡的方式,對(duì)低成本大規(guī)模的邊緣計(jì)算部署具有參考意義。
此后還可在幾個(gè)方面進(jìn)一步改進(jìn):
(1)以紅外光條件下的園區(qū)目標(biāo)作為樣本訓(xùn)練模型,降低對(duì)可見(jiàn)光源的依賴(lài)并減少輸入通道。
(2)搭建遠(yuǎn)程更新模塊高效地更新維護(hù)邊緣數(shù)據(jù)節(jié)點(diǎn)。