陳天宇,楚程錢,萬思遠,萬永菁,孫 靜
(1.華東理工大學 信息科學與工程學院,上海 200237;2.上海卓希智能科技有限公司 研發(fā)部,上海 201611)
機場作為重要的公共交通樞紐,保證其安全運行是一項重要的任務。2017 年10 月,國家民航總局頒布了《民用運輸機場安全保衛(wèi)設(shè)施》新標準。新標準增加了二類機場周界應設(shè)置入侵報警系統(tǒng)和視頻監(jiān)控系統(tǒng)的要求,并規(guī)定周界視頻監(jiān)控系統(tǒng)的監(jiān)控范圍應覆蓋圍界內(nèi)外5 m 寬警戒區(qū)域。[1]
機場周界具有總距離長、距離核心區(qū)遠等特點,因此需要使用大量的監(jiān)控攝像頭進行覆蓋,需要攝像頭在采集監(jiān)控視頻的同時完成入侵檢測,以構(gòu)建嵌入式入侵檢測系統(tǒng)。
視頻入侵檢測算法將視頻視為連續(xù)的圖像,對視頻的每一幀圖像進行目標檢測。傳統(tǒng)的特征建模方法使用尺度不變特征變換[2]、方向梯度直方圖[3]等進行特征提取,或通過幀差法[4]、高斯混合模型[5]、ViBe 算法[6]等方法對環(huán)境進行建模檢測。傳統(tǒng)特征建模的入侵檢測算法速度快,但是在檢測精度上存在一定的缺陷:幀差法只能提取移動物體的邊界信息,容易造成目標空洞、檢測困難等問題;高斯混合模型面對鏡頭突入情況會導致模型失效等。
R-CNN 算法[7]將深度學習引入目標識別領(lǐng)域,先提取目標候選區(qū)域,再進行分類檢測,在PASCAL VOC 2012 數(shù)據(jù)集上的正確率為53.7%。Faster R-CNN[8]直接對整張圖像計算特征,訓練速度相比R-CNN 提高了9 倍,正確率提高至68.4%。Mask R-CNN[9]在此基礎(chǔ)上增加了mask head,使網(wǎng)絡(luò)能夠進行語義分割。針對兩階段目標檢測算法不能進行實時處理的問題,文獻[10]提出了單階段目標檢測算法,不再預先生成候選區(qū),而是直接通過一個神經(jīng)網(wǎng)絡(luò)完成目標位置與類別的識別,在正確率與R-CNN 持平的情況下運算速度提升了42 倍,由此YOLO 系列[11-12]迅速發(fā)展并不斷優(yōu)化。SSD[13]針對YOLO 中錨點設(shè)置過于粗糙的問題設(shè)計了新的單階段檢測器,使檢測正確率提高了14%。RetinaNet[14]通過設(shè)計Focal loss 解決類別不平衡問題,使單階段算法性能超過雙階段算法。
基于深度學習的入侵檢測算法精確度較高,但模型體積及計算量大,只能應用于GPU 服務器場景,無法進行嵌入式部署,即使是模型剪裁優(yōu)化的PP-YOLOE[15]、YOLOV7[16]等網(wǎng)絡(luò),在輸入 圖片為640×640 像素的情況下,實時計算的模型體積為54.58 MB,計算仍需115.77×109幀/s。
本文將傳統(tǒng)背景建模與機器學習的方法相結(jié)合,使用基于圖像信息熵的高斯混合模型進行前景提取,得到疑似入侵目標,接著使用基于條件計算和混合感受野卷積核的輕量級神經(jīng)網(wǎng)絡(luò)對疑似目標進行篩選,找出入侵目標。本文算法在保證目標檢測精度的同時,減少了神經(jīng)網(wǎng)絡(luò)的參數(shù)和計算量,為實現(xiàn)算法的嵌入式移植提供了堅實的基礎(chǔ)[17]。
入侵檢測算法流程如圖1 所示。
圖1 入侵檢測算法流程Fig.1 Procedure of intrusion detection algorithm
入侵檢測算法流程包括:
1)通過非制冷紅外熱成像攝像機采集監(jiān)控視頻,將視頻的每一幀圖像作為算法的輸入,并將其歸一化。
2)使用基于圖像信息熵的高斯混合模型進行前景提取,提取圖像中待檢測的運動前景部分。
3)使用基于條件計算、混合感受野的深度可分離卷積以及網(wǎng)絡(luò)壓縮方法構(gòu)建輕量級神經(jīng)網(wǎng)絡(luò),對候選運動目標進行檢測,判斷是否為入侵目標。
針對高斯混合模型面對鏡頭突變時模型失效的問題,提出基于圖像信息熵的自適應高斯混合模型進行前景提取。
高斯混合模型對圖像中每個像素點使用3個高斯模型來表征像素點的歷史分布特征。每個高斯模型包含權(quán)重wi(x,y,f)、均值ui(x,y,f)、方差σ2i(x,y,f) 3 個參數(shù)。其中:i=1,2,3 表示模型的個數(shù)[5];x,y,f分別表示輸入圖像第x行、第y列、第f幀時的模型數(shù)據(jù)。
每次新一幀圖像I輸入后分別與每個像素點中的每個模型判斷屬于背景或是屬于運動前景部分,如果像素點屬于某一個模型的背景,則該模型權(quán)重wi、均值ui、方差σ2i分別按如下公式進行更新:
其中:α表示學習因子,取值范圍為[0,1]。
由式(1)~式(3)可知,α越大,表示高斯混合模型的更新速度越快,當α為0 時,表示模型不更新;當α為1 時,表示模型逐幀更新。根據(jù)文獻[18]的結(jié)論,模型建立時沒有先驗模型可以參考,因此需要較大的學習因子進行學習,此時的學習因子一般為0.02;在模型穩(wěn)定后,只需要維持對環(huán)境光等緩慢變化的背景進行學習,因此可以使用較小的學習因子進行學習,使模型具有更高的穩(wěn)定性,從而提高精度,此時學習因子一般為0.001。如果像素點不屬于任何一個模型的背景,則屬于運動前景,此時應刪除權(quán)重最小的模型,并將權(quán)重初始化為0.001,均值初始化為當前像素值,方差初始化為30。
權(quán)重、均值、方差更新后,根據(jù)式(4)歸一化權(quán)重。
其中:f表示當前幀數(shù);t0(f)表示f時刻上一個鏡頭突入幀位置。由式(5)可知,隨著幀數(shù)的推移,學習因子會從初始狀態(tài)先逐漸增加至模型建立狀態(tài)后逐漸降低,并最終達到穩(wěn)定狀態(tài)。
為了解決鏡頭突入時模型失效的問題,本文使用相鄰兩幀圖像信息熵的差值對t0(f)進行更新。第f幀時上一個鏡頭突入幀位置t0(f)與前一幀f-1時上一個鏡頭突入幀位置t0(f-1)的關(guān)系如式(6)所示:
其中:ΔTE表示相鄰兩幀信息熵差值的閾值。當畫面因鏡頭突入等情況造成相鄰幀圖像信息熵差值超過閾值ΔTE,導致模型遭到破壞時,學習因子會重置為初始值,并重新學習背景分布情況直至模型穩(wěn)定。在第f幀時信息熵E(f)的計算公式如下:
其中:P(Xj,f)表示第f幀時圖像中灰度值為j的像素點數(shù)占總像素點數(shù)的比例,計算式如式(8)所示:
其中:W與H分別表示圖像像素點的行數(shù)、列數(shù);運算符表示向下取整;G(I(N×x,N×y,f),j)用于計算f時刻圖像I的第N×x行;第N×y列的灰度值是否為j,計算式如式(9)所示;N表示抽取因子,表示按1∶N的比例抽取圖像中的像素點進行計算。
其中:I(x,y,f)表示圖像I的第x行、第y列在f幀時的灰度值。
通過高斯混合模型得到圖像的前景運動部分與背景部分,將其轉(zhuǎn)換為二值圖像,使用形態(tài)學開運算去除孤立噪聲點后將剩余的前景部分作為待檢測目標,在保持長寬比不變的情況下通過輕量級神經(jīng)網(wǎng)絡(luò)進行識別,前景運動提取流程示意圖如圖2 所示。
圖2 前景運動目標提取流程示意圖Fig.2 Schematic diagram of the procedure of foreground moving target extraction
主干網(wǎng)絡(luò)(Main Network)使用ResNeXt 作為結(jié)構(gòu)框架,在每一個殘差塊(Residual Block)中使用混合感受野的深度可分離卷積作為卷積核,主干網(wǎng)絡(luò)的架構(gòu)圖如圖3 所示。
圖3 殘差模塊示意圖Fig.3 Schematic diagram of the residual block
基于條件計算的輕量級神經(jīng)網(wǎng)絡(luò)使用通道及層數(shù)壓縮的ResNeXt[19]作為主干輕量級網(wǎng)絡(luò),使用混合感受野的深度可分離卷積[20]作為卷積核組成瓶頸結(jié)構(gòu)(bottleneck),并結(jié)合使用條件計算作為策略網(wǎng)絡(luò)[21],降低網(wǎng)絡(luò)計算量?;跅l件計算的輕量級神經(jīng)網(wǎng)絡(luò)示意圖如圖4 所示。
圖4 輕量級神經(jīng)網(wǎng)絡(luò)示意圖Fig.4 Schematic diagram of lightweight neural network
1.3.1 主干網(wǎng)絡(luò)
主干網(wǎng)絡(luò)以ResNeXt 為基礎(chǔ),采用多個殘差塊串聯(lián)堆疊,在每個殘差塊中采用分割-變換-聚合的思路,將輸入交由不同的通路分別提取特征后融合。主干網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖4 左側(cè)虛線框所示。
如圖3 所示,對于n維輸入的特征,殘差塊分別輸入4 個通路,每一個通路先使用深度可分離卷積(Depthwise Convolution,DW)進行特征提取,再使用逐點卷積(Pointwise Convolution,PW)進行特征通道融合。各通道融合后進行拼接,再次使用逐點卷積進行通路特征融合及維度變換,得到m維輸出特征。
令Fk×k(Χ),Χ?RH,W,C表示長、寬、通道數(shù)分別為H、W和C的輸入特征Χ經(jīng)過卷積核大小為k×k的深度可分離卷積,輸出特征Χ'的長、寬、通道數(shù)仍為H、W和C,即Χ'?RH,W,C;令Fn'(Χ),Χ?RH,W,C表示輸 入特征Χ經(jīng)過卷積核大小為1×1 的逐點卷積,輸出特征為Χ'?RH,W,n。則殘差塊前向網(wǎng)絡(luò)運算公式如下:
其中:Χ'''?RH,W,m為輸出特征向量;Χ''?RH,W,n為對應通道相加后的特征向量;Χ'?RH,W,n為通道拼接后的特征向量;Χ?RH,W,n為輸入特征向量;“+”運算符表示兩個特征向量對應位置的元素直接相加;concat運算符表示各個特征在通道維度上進行疊加融合。
混合感受野的深度可分離卷積核中不同大小深度可分離卷積核的分配按指數(shù)比例進行分配,對于3×3、5×5 和7×7 的卷積核,分配比例為2∶1∶1。將殘差模塊分為4 個相似的模塊,雖然卷積核的大小不一致會導致4 個子卷積核組在拓撲結(jié)構(gòu)上不完全一致,但是固定的分配比例決定了該網(wǎng)絡(luò)結(jié)構(gòu)與ResNeXt 一樣不會產(chǎn)生新的超參數(shù)。
參數(shù)量與傳統(tǒng)卷積相比,減少的比例如式(13)所示:
其中:Cin、Cout、H和W分別表示輸入通道數(shù)、輸出通道數(shù)、輸入特征的長度與寬度。
針對目標識別時只需要區(qū)分是否是入侵物體,且由于輸入網(wǎng)絡(luò)的圖片尺寸相對較小的特點,因此對模型在通道數(shù)和網(wǎng)絡(luò)深度上都進行了壓縮,壓縮后的網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示,其中,DConv表示使用深度可分類卷積。
表1 壓縮后的網(wǎng)絡(luò)結(jié)構(gòu)Table 1 Structure of compressed network
1.3.2 策略網(wǎng)絡(luò)
本文選用ResNet作為策略網(wǎng)絡(luò)(Policy Network),該ResNet 擁有1 個輸入層、3 個殘差模塊及1 個全連接層,如圖4 右邊虛線框所示。
策略網(wǎng)絡(luò)輸出6 個參數(shù)作為策略向量,每一個參數(shù)均為[0,1]之間的實數(shù),6 個參數(shù)與表1 中6 個殘差卷積塊一一對應。策略網(wǎng)絡(luò)的參數(shù)更新、獎勵計算方法與文獻[21]一致,如果輸出參數(shù)的值小于0.5,則主干網(wǎng)絡(luò)對應殘差塊執(zhí)行丟棄(Drop)操作,直接由殘差塊的捷徑(Shortcut)支路進行輸出。跳過深度可分離卷積部分,此時殘差塊的前向運算公式如下所示:
其 中:X?RH,W,n、X''?RH,W,n均為輸 入特征向量;X'''?RH,W,m為輸出特征向量。
如果參數(shù)值大于0.5,則執(zhí)行保留操作,前向網(wǎng)絡(luò)運算式如式(10)~式(12)所示。
使用紅外熱像儀采集監(jiān)控視頻共8段,每段時長約10 min,涵蓋白天、夜晚、晴天、雨天等多種天氣情況。
將視頻按10 幀為間隔進行抽取,結(jié)合高斯混合模型的檢測結(jié)果,從抽取的圖片中提取運動目標作為分類網(wǎng)絡(luò)的數(shù)據(jù)集,包含入侵目標13 039 個,包括行人,非機動車、汽車;非入侵目標8 952 個,包括動物、植被樹木。
模型評價指標共分為2 個部分。
針對前景目標提取及總體算法,使用誤檢率(False Detection,F(xiàn)D)、漏檢率(Miss Detection,MD)以及幀率(Frames Per Second,F(xiàn)PS)作為評價指標。誤檢率的定義是將非入侵目標識別為入侵目標占所有識別為入侵目標的比例。漏檢率的定義為入侵目標被檢測出的幀數(shù)低于該目標出現(xiàn)在監(jiān)控畫面中總幀數(shù)的比例低于50%的入侵目標占所有入侵目標的比例。幀率在本文中表示一臺CPU 為AMD Ryzen 5 5600U 的筆記本電腦每秒能夠處理的監(jiān)控視頻幀數(shù),即僅使用CPU 進行前景提取與使用輕量級神經(jīng)網(wǎng)絡(luò)完成入侵檢測時每秒能處理的幀數(shù)。
針對輕量級神經(jīng)網(wǎng)絡(luò),使用準確率(Accuracy,Acc)、模型體積(Size)、浮點運算量(Floating-Point Operations,F(xiàn)LOPs)作為評價指標。準確率表示正確識別的目標占所有待識別目標的比例。模型體積表示神經(jīng)網(wǎng)絡(luò)模型需要占用計算機內(nèi)存的空間大小,浮點運算量表示使用神經(jīng)網(wǎng)絡(luò)進行一次推理所需要的浮點運算次數(shù)。
首先確定第1.2 節(jié)基于信息熵的自適應高斯混合模型前景提取中的幀差信息熵閾值及信息熵抽取比例。計算10 個視頻中所有幀圖像的信息熵與相鄰兩幀信息熵的差值,并做統(tǒng)計圖,如圖5 所示。由圖5 可知,信息熵相鄰幀差值的絕對值分布呈現(xiàn)兩個聚集區(qū),聚集區(qū)的中心分別在0 和0.1 的周圍,且兩個聚集區(qū)清晰可以分辨。通過對比畫面可知,這兩個聚集區(qū)分別對應畫面平穩(wěn)階段與鏡頭突入階段,因此可以將鏡頭突入閾值設(shè)定為0.05。
圖5 信息熵幀差值分布統(tǒng)計圖Fig.5 Statistical diagram of information entropy frame difference distribution
接著確定信息熵抽取比例的閾值,在行和列上均按照1∶2~1∶20 的比例進行抽取,重新計算信息熵,并與原始信息熵隨時間的曲線計算相似度,原始信息熵隨時間的序列Eorigin(f)與抽取后重新計算信息熵隨時間的序列Eafter(f)的相似度S的計算式如式(16)所示:
其中:length(Eorigin(f))表示序列Eorigin(f)的長度;分別表示序列Eorigin(f)及序列Eafter(f)的均值。
不同抽取比例的信息熵與原始信息熵的相似度如表2 所示。
表2 不同抽取比例的信息熵與原始信息熵的相似度關(guān)系Table 2 The similarity relationship between the information entropy of different extraction ratios and the original information entropy
由表2 可知,當抽取比例小于等于1∶5 時,相似度大于0.99 與原始信號較為相似;當抽取比例超過1∶5 時,相似度小于0.99,與原始信號有一定差距,因此本文選用1∶5 作為抽取比例。
最后確定上升段與下降段幀數(shù)的參數(shù)fup與fdown,分別采用不同的fup與fdown對視頻中出現(xiàn)鏡頭突入的部分鏡頭進行計算,得到不同參數(shù)選擇時模型恢復所需要的幀數(shù),不同上升段與下降段幀數(shù)的參數(shù)取值與模型恢復幀數(shù)的關(guān)系如表3 所示。
表3 上升段與下降段幀數(shù)的值對應的模型恢復幀數(shù)Table 3 The number of model recovery frames corresponding to the values of the frame number of the ascending segment and the descending segment 單位:幀
由表3 可知,當上升段幀數(shù)為8、下降段幀數(shù)為10時,模型從鏡頭突入模型失效的狀態(tài)中恢復速度最快,平均需要4.23 幀。使用相鄰幀信息熵差值的絕對值為0.05、抽取比例1∶5、上升段幀數(shù)為8、下降段幀數(shù)為10 作為參數(shù),將該高斯混合模型與幀差法、光流法等傳統(tǒng)前景提取算法進行比較,結(jié)果如表4 所示。
表4 不同前景提取算法的檢測精度對比Table 4 Comparison of detection accuracy of different foreground extraction algorithms
對比表4 中各個算法可知,本文算法在使用信息熵解決模型破壞問題后,前景提取效果相較原始的高斯混合模型得到了顯著的提升,同時,在擁有較好檢測效果的情況下,使模型能夠滿足實時性要求。
將第1.3 節(jié)中設(shè)計的神經(jīng)網(wǎng)絡(luò)分別應用在運動目標入侵檢測數(shù)據(jù)集、CIFAR-10 數(shù)據(jù)集、CIFAR-100數(shù)據(jù)集上,將最近幾年較為流行的幾種輕量級神經(jīng)網(wǎng)絡(luò)架構(gòu)按表1 所示的結(jié)構(gòu)搭建網(wǎng)絡(luò)。所有模型均使用學習率0.1,每50 輪迭代后學習率降為原先的0.1 倍,總迭代輪次300,使用Adam 優(yōu)化算法、批處理大小為16 的參數(shù)進行訓練,并進行對比,模型參數(shù)量對比如表5 所示,模型正確率指標對比如表6 所示,表中加粗數(shù)字表示該組數(shù)據(jù)較佳值。
表5 輕量級神經(jīng)網(wǎng)絡(luò)模型的參數(shù)量指標對比Table 5 Comparison of parameter quantity indicators of lightweight neural network models
表6 輕量級神經(jīng)網(wǎng)絡(luò)算法模型的正確率指標對比Table 6 Comparison of accuracy indicators of lightweight neural network models
對比表5、表6 可知,本文模型在進行模型剪裁后,在公共數(shù)據(jù)集、入侵檢測數(shù)據(jù)集上的正確率均優(yōu)于常見的輕量級神經(jīng)網(wǎng)絡(luò)模型。同時,模型的參數(shù)量、推理復雜度上與其他模型相當,占用內(nèi)存空間均為MB 級別,因此本文模型總體性能優(yōu)于其他模型。
將本文算法應用于整體的入侵檢測識別任務,并將識別效果與傳統(tǒng)的視頻入侵檢測算法進行對比,在采集的監(jiān)控視頻數(shù)據(jù)集上的結(jié)果如表7 所示,表中加粗數(shù)字表示該組數(shù)據(jù)較佳值。
表7 監(jiān)控視頻數(shù)據(jù)集上不同算法的入侵檢測效果對比Table 7 Comparison of intrusion detection effects of different algorithms on surveillance video data sets
對比表4 與表7 可知,引入輕量級神經(jīng)網(wǎng)絡(luò)后,算法的誤檢率FD 下降而漏檢率MD 持平,即在相同漏檢水平的情況下誤報警率更低,模型的檢測性能得到提升。雖然運算速度FPS 下降,仍滿足實時入侵檢測所需的24 幀/s 的最低要求,因此在滿足實時檢測的基礎(chǔ)上模型性能得到提升,為嵌入式系統(tǒng)移植提供了基礎(chǔ)。
為了驗證算法的泛化性,將本文算法在OTB100數(shù)據(jù)集上進行測試,測試各算法在面對檢測物體關(guān)照變化、尺度變化、被遮擋等各類情形下的檢測效果,實驗結(jié)果如表8 所示,表中加粗數(shù)字表示該組數(shù)據(jù)較佳值。
表8 OTB100 數(shù)據(jù)集上不同算法的入侵檢測效果對比Table 8 Comparison of intrusion detection effects of different algorithms on OTB100 data set
由表8 可知,在OTB100 數(shù)據(jù)集下,本文算法的漏檢率仍優(yōu)于其他算法,誤檢率與最佳算法相差0.4 個百分點。同時,算法運行速度大幅優(yōu)于其他算法,表明本文算法在不同數(shù)據(jù)集上均有較好的檢測效果,具有良好的泛化性。
本文提出一種結(jié)合高斯混合模型與輕量級神經(jīng)網(wǎng)絡(luò)的監(jiān)控視頻入侵檢測算法,并針對入侵目標檢測的特點進行優(yōu)化,使用輕量級神經(jīng)網(wǎng)絡(luò)模型、模型剪裁、條件計算等方法減小模型體積。實驗結(jié)果表明,本文算法在監(jiān)控視頻數(shù)據(jù)集和OTB100 數(shù)據(jù)集上的誤檢率分別為4.4%、9.2%,漏檢率分別為2.3%、9.8%,幀率分別為45 幀/s、51 幀/s。下一步將針對嵌入式芯片的硬件算法、系統(tǒng)調(diào)度等進行優(yōu)化,以達到更好的嵌入式應用效果。