吳燕菊,胡峰源,徐嶄,董岱豪
(陸軍工程大學(xué)指揮控制工程學(xué)院,江蘇南京 210001)
近年來,為加強涉密場所如值班室、實驗室等的安全管理,各級管理部門不僅出臺了一系列管理制度,還通過加裝監(jiān)控設(shè)備如攝像頭等進(jìn)行實時監(jiān)管。然而,在對視頻中違規(guī)行為進(jìn)行識別時,目前仍多采用安全泄密事件發(fā)生后的人工鑒別方式。
在監(jiān)控視頻中檢測違規(guī)行為,一方面需要耗費大量人力和精力。另一方面,依靠人工檢測的方式容易出現(xiàn)誤報和漏檢,同時也無法實現(xiàn)實時處置和預(yù)報。因此,如何從海量監(jiān)控視頻中提取有用信息并提高對違規(guī)行為的識別能力,對于加強涉密場所的安全管控具有重要的應(yīng)用價值。
目標(biāo)檢測提供了識別涉密場所敏感行為的一種方法。本文結(jié)合監(jiān)控設(shè)備中敏感行為的目標(biāo)特征,梳理了該領(lǐng)域存在的技術(shù)難點,并總結(jié)了傳統(tǒng)目標(biāo)檢測方法和深度學(xué)習(xí)檢測方法的基本流程。同時,提出了一種基于YOLOv5 的涉密場所敏感行為檢測方法,分析了采用的數(shù)據(jù)集及檢測結(jié)果,這些研究成果對未來涉密場所敏感行為檢測方面的研究具有重要參考價值和推動作用。
所謂涉密場所[1],即保密要害部位,是指集中制作、存放、保管國家涉密載體、涉密信息的專門場所。
敏感行為,是指有可能引發(fā)泄密或者危及涉密人員人身安全的行為。本文主要側(cè)重泄密行為,設(shè)定在涉密場所攜帶手機和滯留手機為敏感行為。
1)實際數(shù)據(jù)與訓(xùn)練數(shù)據(jù)差異性較大
訓(xùn)練數(shù)據(jù)上大部分來自網(wǎng)絡(luò),目標(biāo)多位于中央,光照條件好。實際涉密場所內(nèi)較昏暗,監(jiān)控攝像頭在采集視頻時畫質(zhì)較差,分辨率和像素低,不易從視頻中更好地提取特征,如若天氣糟糕時會進(jìn)一步惡化,影響著目標(biāo)檢測的質(zhì)量。
2)目標(biāo)尺度復(fù)雜多變
目標(biāo)處于移動狀態(tài),容易隨著角度和距離等參數(shù)發(fā)生相對變化。監(jiān)控攝像頭位置較高時,容易產(chǎn)生模糊目標(biāo)和小目標(biāo),二者較近時,容易產(chǎn)生目標(biāo)不全,或者大的目標(biāo)出現(xiàn);另外,不同的拍攝角度也會產(chǎn)生不同的效果,從而加大了檢測難度。
目標(biāo)檢測算法根據(jù)是否運用了深度神經(jīng)網(wǎng)絡(luò),將其分為傳統(tǒng)的目標(biāo)檢測算法和基于深度學(xué)習(xí)的目標(biāo)檢測算法。
2.1.1 傳統(tǒng)目標(biāo)檢測算法
傳統(tǒng)目標(biāo)檢測算法流程如圖1所示。
圖1 傳統(tǒng)目標(biāo)檢測算法流程
首先,在目標(biāo)圖像上利用滑動窗口依次選取以下候選區(qū)域,而后對這部分區(qū)域利用SIFT,HOG 等進(jìn)行特征提取,最后使用預(yù)先訓(xùn)練好的分類器,例如SVM進(jìn)行分類。就傳統(tǒng)目標(biāo)算法而言,存在兩大缺陷[2]:
1)滑動窗口選擇區(qū)域,選擇時針對性不強,時間復(fù)雜度高。
2)人工選擇設(shè)計的目標(biāo)多樣,魯棒性不足。
2.1.2 深度學(xué)習(xí)目標(biāo)檢測
深度學(xué)習(xí)目標(biāo)檢測算法是人工神經(jīng)網(wǎng)絡(luò)的改進(jìn),并且是一種常用的AI技術(shù)圖像目標(biāo)檢測算法,相比傳統(tǒng)目標(biāo)檢測算法在檢測性能和效果上獲得了明顯改善。文獻(xiàn)[3]中提到針對人群中檢測異常行為時存在的高算法復(fù)雜度和低精確度的問題,提出了基于改進(jìn)的SSD算法,該算法將特征提取網(wǎng)絡(luò)替換成了輕量級別網(wǎng)絡(luò),減少了模型內(nèi)參數(shù),加快了模型運行速度,從而能夠更加精確地檢測異常行為。文獻(xiàn)[4]提出了傳統(tǒng)目標(biāo)檢測算法在特征提取上存在不足,因此在YOLOv3 網(wǎng)絡(luò)中采取了合并歸一化到卷積層、修改損失參數(shù)、添加池化等方式以提升網(wǎng)絡(luò)的性能和檢測精度。然而該算法仍然存在運行速度慢、使用范圍小、靈活性差等問題。為提高涉密場所的安全性能,本文利用YOLOv5 模型來檢測敏感行為,該模型具有小尺度、低成本部署和高靈活性等優(yōu)點,檢測速度快[5]。
YOLOv5 是一種基于深度學(xué)習(xí)的目標(biāo)檢測算法,它是YOLO[6](You Only Look Once) 家族的代表算法。根據(jù)使用深度和寬度兩種參數(shù)控制4種結(jié)構(gòu),主要包括的結(jié)構(gòu)有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,深度上依次加深,寬度亦然,精度上雖在不斷提高,但是速度上不能互相匹配,在不斷降低。考慮到Y(jié)OLOv5s 是4 者中最輕量化且深度與寬度最小,因此本文采用YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行模型訓(xùn)練,其網(wǎng)絡(luò)主要可以分為4 部分:輸入端、骨干網(wǎng)絡(luò)、頭部網(wǎng)絡(luò)和輸出端[6]。
訓(xùn)練的具體流程如圖2所示。
圖2 目標(biāo)檢測算法處理流程圖
由于涉密場所的保密性,且存在實際數(shù)據(jù)與訓(xùn)練數(shù)據(jù)差異性較大的問題,所以本文通過自建數(shù)據(jù)集訓(xùn)練模型,主要來源于在模擬涉密場所環(huán)境以及各種天氣下拍攝的敏感行為視頻,并將視頻進(jìn)行分幀,如圖3所示。
圖3 部分?jǐn)?shù)據(jù)集展示
針對存在的目標(biāo)尺度復(fù)雜多變的問題,本文采用數(shù)據(jù)增強技術(shù)對樣本進(jìn)行隨機裁剪、縮放和旋轉(zhuǎn),以增加訓(xùn)練樣本的多樣性和豐富性,最終得到12 000張圖片,如圖4所示。
使用標(biāo)注軟件Labelimg[7]對原始數(shù)據(jù)進(jìn)行標(biāo)注,所有數(shù)據(jù)集采用YOLO 格式進(jìn)行標(biāo)注。圖片標(biāo)注過程如圖5所示,標(biāo)注結(jié)果以XML格式存儲,XML文件中包括圖像信息、目標(biāo)名稱、目標(biāo)所在位置等信息。
圖5 標(biāo)注圖片
將XML 文件轉(zhuǎn)換成YOLO v5s訓(xùn)練所需要的TXT文件,如圖6所示,并將數(shù)據(jù)集劃分為訓(xùn)練集和驗證集,其比例為4:1,如表1所示。
表1 數(shù)據(jù)集分類
圖6 部分TXT文檔展示
3.3.1 環(huán)境配置
本文采用深度學(xué)習(xí)框架PyTorch進(jìn)行YOLOv5s模型的訓(xùn)練,其余軟件環(huán)境和版本如表2所示。
表2 實驗環(huán)境配置
其中操作系統(tǒng)為Windows11,處理器為11th Gen Intel(R) Core(TM) i7-11370H,主頻為3.30Hz,使用本地GPU,輸入圖像大小為640 mm×640 mm;輸入通道數(shù)為2,選代次數(shù)設(shè)置為300 次,在Anaconda3 創(chuàng)建的虛擬環(huán)境中進(jìn)行訓(xùn)練其屬于一個開源的Python 發(fā)行版本,可以利用conda進(jìn)行package和environment的配置且包含Python 相關(guān)的配套工具,同時在CUDA 和CUDNN解決GPU在運行時的復(fù)雜問題。
3.3.2 數(shù)據(jù)集評價
在YOLOv5學(xué)習(xí)中,會使用精確度(Precision)和召回率(Recall)作為評估參數(shù)。精確度描述的是實際預(yù)測正確的數(shù)據(jù)在正樣本數(shù)據(jù)中的比例;召回率描述在數(shù)據(jù)集合中正類別被確切檢測出來的比值。兩者公式分別為式(1)和式(2)。
其中,NTP為預(yù)測正確的數(shù)據(jù)樣本數(shù)目,NFP為預(yù)測錯誤的數(shù)據(jù)樣本數(shù)目,NFN其中為出現(xiàn)錯漏的樣本數(shù)目。
平均精度均值(mean Average Precision,mAP)是精確度和召回率的綜合平均精度(average、precision)的平均值,如式(3)和式(4)所示:
其中,P、r分別為精確度和召回率,k表示種類,K表示實驗的種數(shù)總和。
3.3.3 算法訓(xùn)練
如圖7所示將搭建好的YOLOv5s的環(huán)境,根據(jù)硬件配置及逆行參數(shù)的設(shè)置,如圖7所示。
圖7 參數(shù)調(diào)試
如圖8所示,模型訓(xùn)練到200次時開始收斂,其中訓(xùn)練集的BOX是bounding box(邊界框)定位損失,可以看出模型預(yù)測框與真實框差值逐漸變小,準(zhǔn)確度越來越高;Objectness 為置信度損失,可以看出其損失越來越小,對于目標(biāo)的檢測準(zhǔn)確度越高;Classification 是分類損失,可以看出損失基本為0,分類上的準(zhǔn)確度越高。另外看出訓(xùn)練集中的損失函數(shù)變化總體已經(jīng)降到最低水平。Prection 和Recall 都處于逐步上升的趨勢,符合本實驗預(yù)期結(jié)果,對于兩者形成的面積,即為所求的測試集mAp_0.5值,其最大值可以達(dá)到95.2%。
圖8 訓(xùn)練結(jié)果
訓(xùn)練后的YOLOv5s最佳模型如圖9所示。
圖9 訓(xùn)練后的最佳模型
直接檢測圖片,完成一張640×384 mm 的目標(biāo)圖片,檢測大概需要0.1s,檢測速度較快,如圖10所示。
圖10 檢測識別過程
然后對攜帶手機和滯留手機的視頻進(jìn)行檢測識別,最終效果如圖11所示。
圖11 系統(tǒng)檢測效果圖
結(jié)合YOLOv5s 訓(xùn)練模型,將其運用到檢測系統(tǒng)中,具體流程如圖12所示。
圖12 系統(tǒng)檢測流程圖
將訓(xùn)練后所得的模型文件放于源代碼中,進(jìn)行系統(tǒng)的測試與實現(xiàn),本系統(tǒng)由羅技4K 高清攝像頭負(fù)責(zé)進(jìn)行實時拍攝,并自動上傳到軟件中進(jìn)行檢測,同時也支持由于特殊情況下的人工手動上傳。檢測效果如圖13所示。
圖13 系統(tǒng)檢測效果圖
從結(jié)果中可以看出。界面可劃分為以下5 個區(qū)域:
1)敏感行為留存區(qū):存在違規(guī)攜帶手機和使用手機進(jìn)行拍攝的行為會被捕獲出來。
2)風(fēng)險等級預(yù)警提示區(qū):發(fā)現(xiàn)敏感行為后會立即發(fā)出預(yù)警以及對應(yīng)風(fēng)險等級。
3)敏感行為次數(shù)統(tǒng)計區(qū):統(tǒng)計一天內(nèi)敏感行為的次數(shù)。
4)人員類別、相關(guān)地點、所屬單位等信息的歷史記錄區(qū),以便后期進(jìn)行相關(guān)的提醒教育處理。
5)視頻顯示區(qū):將實時視頻在界面中展示。
該系統(tǒng)能夠動態(tài)檢測敏感行為,識別出攜帶手機、拍照等行為,并提供實時報警和歷史記錄,為管理人員提供決策支持,從而提高了涉密場所的安全系數(shù)。
基于YOLOv5 的涉密場所敏感行為檢測系統(tǒng),通過自建數(shù)據(jù)集對YOLOv5s模型進(jìn)行訓(xùn)練,得到訓(xùn)練權(quán)重文件,對所需架構(gòu)進(jìn)行搭建,完成涉密場所敏感行為的檢測。提高對于涉密場所視頻監(jiān)控下的安全系數(shù),對后續(xù)涉密場所敏感行為檢測研究具有一定參考價值和推動作用。