王 昕,寇云峰,辛 浪,宋 滔
(中國電子科技網(wǎng)絡(luò)信息安全有限公司,四川 成都 610041)
人工神經(jīng)網(wǎng)絡(luò)是抽象人類大腦結(jié)構(gòu)和對外界刺激響應(yīng)機制,模擬人類神經(jīng)系統(tǒng)對復(fù)雜信息處理機制的一套模型,涉及生物仿生學(xué)、數(shù)學(xué)、物理學(xué)、統(tǒng)計學(xué)、計算機科學(xué)、軟硬件工程學(xué)等科學(xué)和技術(shù)領(lǐng)域。目前在圖像檢索[1]、字符識別[2]、筆跡識別[3]等領(lǐng)域中已得到廣泛應(yīng)用。
其基本由三個部分組成:輸入層、隱藏層、輸出層。輸入層接收外部信息,輸出層得到該網(wǎng)絡(luò)處理后的結(jié)果,隱藏層則處于兩者之間。層與層之間由大量神經(jīng)元相互聯(lián)接。神經(jīng)元的作用是對輸入的數(shù)據(jù)進行加權(quán)求和并應(yīng)用于激活函數(shù),處理后將輸出數(shù)據(jù)傳遞給下一個神經(jīng)元。神經(jīng)網(wǎng)絡(luò)輸入層接收到外部信息后,輸出結(jié)果可靠性的高低主要取決于神經(jīng)網(wǎng)絡(luò)隱藏層結(jié)構(gòu)優(yōu)劣。對現(xiàn)有神經(jīng)網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)的優(yōu)化是突破類似手機攝像頭這種小目標物體實時識別瓶頸的關(guān)鍵點。
識別系統(tǒng)如圖1 所示。輸入采集模塊通過攝像頭實時抓取一定范圍內(nèi)的圖像,由智能識別模塊識別該圖像中是否存在手機拍攝行為。如果存在則將識別結(jié)果傳遞給輸出控制模塊,輸出控制模塊根據(jù)識別結(jié)果控制屏幕供電電路。若存在違規(guī)行為,則關(guān)閉顯示并報警,實現(xiàn)智能防御功能,保障信息安全。
搭建人工神經(jīng)網(wǎng)絡(luò)框架PyTorch,通過深度學(xué)習(xí)訓(xùn)練形成模型。使用該模型結(jié)合OpenCV 圖像識別技術(shù)對手機拍攝行為進行識別檢測。
圖1 智能識別系統(tǒng)示意圖
(1)采集各種品牌手機和從不同角度、不同距離手機拍攝行為的圖片建立大數(shù)據(jù)樣本庫。將樣本庫劃分為訓(xùn)練集和測試集。
(2)使用圖像處理軟件對樣本庫中的圖片進行預(yù)處理,如圖2 所示。保證圖片格式符合要求,手機特征明顯。加入類似手機的負樣本,降低誤識別率,提高模型的泛化能力。
(3)使用標注軟件Labelimg 將手機部分標注為cellphone,攝像頭部分標注為phonecamera.如圖3所示。將標注好的圖片保存在樣本庫中。
圖2 樣本預(yù)處理
圖3 手機特征標注
將標注后的樣本加載到人工神經(jīng)網(wǎng)絡(luò)中進行深度學(xué)習(xí),形成訓(xùn)練結(jié)果模型。人工神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)原理如圖4 所示。智能識別系統(tǒng)將在第一層網(wǎng)絡(luò)中初步識別是否存在具有手機簡單特征的目標。如果初步識別結(jié)果為存在,則在第二層網(wǎng)絡(luò)中進一步精確識別該目標符合手機特征的可能性。如果該可能性超過預(yù)設(shè)的閾值,則判斷目標為手機。
圖4 深度學(xué)習(xí)原理圖
系統(tǒng)核心算法的關(guān)鍵點是在復(fù)雜場景中實時識別出小物體手機,確保在手機拍攝行為完成前關(guān)閉屏幕。在保證識別精度的前提下對神經(jīng)網(wǎng)絡(luò)識別速度有很高要求。經(jīng)過測試,識別時間不能超過500ms。這就需要在速度和精度上進行折中。
保證mAP(Mean Average Precision,總體平均精度)指標,要選擇一個圖像特征提取能力較強的主干網(wǎng)絡(luò),并且不能太大,否則會影響檢測識別速度。如果采用R-CNN 算法[4],第一步是提取候選區(qū)域,第二步是修正候選區(qū)域的邊框位置并對候選區(qū)域識別。雖然精度很高,但需要先提取候選區(qū)域,然后才能在該候選區(qū)域內(nèi)識別,速度上不能滿足需求。因此,選擇能夠直接預(yù)測出圖像中目標的位置,不需要先進行候選區(qū)域的計算的One stage 算法。
YOLO 是One stage 目標檢測的一種,全名為You only look once。它將目標識別定義為一個直接回歸問題,在預(yù)測時使用一整張圖像的全局信息作為輸入,直接由全圖就能預(yù)測其中目標的邊界框及所屬類別的概率。整個檢測是一個網(wǎng)絡(luò),可以直接對其檢測性能進行端到端的優(yōu)化,在保持高平均精度的同時實時做識別檢測[5]。因此,實現(xiàn)相同精度顯著地比其他檢測方法快,得到的目標特征更容易泛化,更有利于在不同場景下實時智能識別出手機的拍攝行為。選擇YOLOv4-Tiny 作為核心算法,它是YOLOv4 的簡化版,在精度損失不大的前提下提升了速度,更適合識別系統(tǒng)集成于嵌入式設(shè)備的特點。
YOLOv4-Tiny 主干特征提取網(wǎng)絡(luò)為CSPDarknet 53-Tiny。網(wǎng)絡(luò)采用CSPnet 結(jié)構(gòu),其結(jié)構(gòu)如圖5 所示。殘差塊的堆疊被拆分成左右兩個部分,右邊部分繼續(xù)進行原來殘差塊的堆疊,左邊部分可以認為是一個殘差邊經(jīng)少量處理直接聯(lián)系到最后。
圖5 CSPnet 結(jié)構(gòu)圖
YOLOv4-Tiny 的原型主干特征提取網(wǎng)絡(luò)只有13×13×512、26×26×256 兩個有效特征層。在此基礎(chǔ)上增加一個52×52×128 有效特征層來優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),其結(jié)構(gòu)圖如圖6 所示。增加的有效特征層能更加精確地識別出手機攝像頭這種小目標。
輸入為416×416×3的圖像通過CSPDarknet53-Tiny 的主干特征提取網(wǎng)絡(luò)得到52×52×128、26×26×256、13×13×512 三個有效特征層,然后傳入加強特征提取網(wǎng)絡(luò)中進行FPN(Feature Pyramid Networks,特征金字塔)構(gòu)建。FPN 會將13×13×512 有效特征層卷積后進行上采樣與26×26×256 有效特征層堆疊;將26×26×256 有效特征卷積后進行上采樣與52×52×128 有效特征層堆疊。這樣就在輸出層形成了三個預(yù)測特征的YOLO head。
將數(shù)據(jù)樣本訓(xùn)練集中圖像為608×608,416×416 的樣本載入PyTorch 人工神經(jīng)網(wǎng)絡(luò)框架中進行多尺度深度學(xué)習(xí)訓(xùn)練,GPU 使用Nvidia RTX6400,訓(xùn)練的迭代次數(shù)為15000 次。如表1、表2 所示。最后,通過訓(xùn)練后生成的模型檢測測試集中像素為320×320、608×608、416×416 的樣本。
圖6 416×416 特征網(wǎng)絡(luò)結(jié)構(gòu)
表1 訓(xùn)練輸入:608x608 GPU:Nvidia RTX6400迭代:15000 次
表2 訓(xùn)練輸入:416x416 GPU:Nvidia RTX6400迭代:15000 次
根據(jù)圖7、圖8 的數(shù)據(jù)可以看出優(yōu)化后的YOLOv4-Tiny 對手機和攝像頭的特征識別得到了較高的mAP(總體平均精度)和較低的Loss(損失)值,取得了較好的訓(xùn)練效果。
使用訓(xùn)練后的模型對不同場景下手機拍攝行為進行檢測,模型三個特征提取層分別將整幅輸入圖像分成13×13、26×26、52×52 的網(wǎng)格。每個網(wǎng)格負責一個區(qū)域的檢測,網(wǎng)格數(shù)越多的特征提取層對物體細節(jié)特征的檢測越精確。13×13、26×26 主要負責檢測輸入圖像中的手機,52×52 主要負責檢測輸入圖像中的攝像頭。如圖9所示,通過檢測比較,對橫置攝像頭的識別度需加強。
圖7 訓(xùn)練608×608 樣本
圖8 訓(xùn)練416×416 樣本
圖9 識別檢測結(jié)果
本文介紹了一種基于人工神經(jīng)網(wǎng)絡(luò)的實時智能識別系統(tǒng)。分析并部署了該產(chǎn)品神經(jīng)網(wǎng)絡(luò)在具體應(yīng)用中的優(yōu)化方案。經(jīng)過驗證實現(xiàn)了利用人工智能深度學(xué)習(xí)和圖像識別技術(shù)對手機拍攝行為實時的智能識別和防御報警,保障了信息安全。后續(xù)還需加強對小目標和遠距離目標的識別能力,提高集成在嵌入式設(shè)備中人工神經(jīng)網(wǎng)絡(luò)的性能。此外,對于人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和算法的優(yōu)化是繼續(xù)探索的方向,也將推動人工智能與各行業(yè)的高度融合。