劉紫馨
(中國傳媒大學信息與通信工程學院,北京 100024)
2020年初,“新冠”疫情爆發,為有效阻止疫情的傳播與蔓延,國家衛生健康委規定大家日常出行均須佩戴口罩。疫情初期,市民自覺佩戴口罩的意識較弱,曾多次出現人員聚集性感染現象。隨著秋冬季節的來臨,以及防止境外病例輸入帶來的影響,在人流密度較大的公共場所,均應設有工作人員對行人進行體溫檢測以及口罩佩戴的監督提醒工作。由于人工檢測存在人力資源浪費、效率低下等問題,可以使用口罩佩戴識別技術,自動識別行人的口罩佩戴情況,實現高效無接觸式檢測。
口罩佩戴識別技術是由基于特征融合和分割監督的目標檢測以及口罩屬性類別識別兩大模塊組成的。目標檢測是神經網絡中較為重要的一門領域,卷積網絡本身具有的權值共享的特點可以降低時間復雜度,提高識別速度。
現階段深度學習的主要實現方式是在 GPU平臺上完成,由于 GPU具有高帶寬以及高效率的浮點運算單元等特點,通常被用于進行卷積神經網絡的分類和訓練。但在實際應用中,仍然面臨著高端 GPU價格昂貴、體積巨大、位置固定且僅能在服務器上安裝等問題,極大地限制了算法的應用場景;而嵌入式平臺體積較小,可拓展性強,部署方便,可接入平臺多,具有良好的硬件適應性,方便移植,可以針對特定應用靈活設計。
本文設計的口罩佩戴檢測儀可以實現對行人是否佩戴口罩的實時檢測,具有實時性、便攜性、可拓展性強、識別準確度高等特點。系統前端采用深度相機進行視頻流的采集,同時選擇嵌入式設備作為硬件平臺,并在此基礎上搭載卷積神經網絡作為基礎核心算法,是基于深度學習對圖像圖形的處理方式和方法。
本系統的工作流程為:由前端攝像頭采集目標對象視頻流,接著由 Open CV算法對視頻流進行處理,并將處理后的圖片幀輸入到網絡中進行識 別,當返回的識別結果顯示有人未佩戴口罩時,系統將作出警報、禁止通行等反應。
在研究過程中對目標對象的檢測和定位的相關技術進行分析,合理選擇適合于口罩佩戴識別系統的算法框架。針對現有開源數據集存在的問題進行修正補充,創建新的數據集,對數據集進行訓練,并對訓練所得模型進行相關的性能評估。考慮到GPU體積巨大、位置固定、不易移動等問題,選擇適宜的嵌入式平臺對算法進行移植。
本文將研究并實現基于嵌入式系統的口罩佩戴識別系統,選擇卷積神經網絡作為核心理論算法。對算法的基本原理進行分析,構建口罩佩戴檢測數據集,在初始算法的基礎上進行修改優化,并將算法移植于嵌入式系統中來解決應用場景受限等問題。
現階段深度學習的主要實現方式以 GPU為主,口罩佩戴識別系統往往應用于人流量密度較大的公共場所,而傳統主機由于存在體積大、移動不方便等缺點,極大地限制了算法的應用場景。而嵌入式平臺體積小、擴展性強、便于部署,可以實現并行計算的需要,更加滿足對系統的整體要求。
在本次研究中嵌入式平臺的作用是完成處理視覺系統采集到的圖片,并輸出檢測結果的任務,其中嵌入式平臺的 CPU和GPU性能將極大地決定主機的圖像處理性能??紤]到口罩佩戴識別系統需要對輸入的圖片或視頻進行實時的檢測和反饋,所以選擇在 NVDIA Jetson TX2平臺上實現。
NVDIA Jetson TX2是一臺基于 NVIDIA Pascal架構嵌入式設備,模型外形小巧,節能高效,長寬87 mm×50 mm,其功耗也僅約為 7.5 W,在大多數場合下都可以實現超長的待機,適用于對帶寬和延遲要求高的應用的實時處理過程。 Jetson TX2平臺在此基礎上具有強大的計算能力,在處理 720 p彩色圖像時的每秒幀數可達 30幀以上。
由于口罩佩戴識別系統主要應用于視頻目標檢測,TX2額外提供的高級高清視頻編碼器和 1.4 Gpix/s的高級圖像信號處理器,可以通過硬件加速靜止圖像和視頻捕獲路徑,更有利于對動態目標的檢測。
由于口罩佩戴識別系統對檢測的實時性要求較高,因此處理速度快,計算精度準是在選擇合理的算法框架時主要的評價指標?,F階段基于深度學習技術的目標檢測算法分為兩類:一類是雙階段目標檢測算法,另一類是單階段目標檢測算法。其中,雙階段目標檢測算法在對特征進行提取的基礎上,需要有額外的網絡產生候選區域來確定目標所在的具體位置,處理時間較長,不滿足對實時性檢測的要求,而單階段目標檢測算法則可以在產生候選區域的同時進行分類和回歸。所以在本次研究中選用單階段目標檢測算法。
本系統采用的 YOLOv3是一種以 Darknet-53結構為基礎的網絡,通過 FPN(Feature Pyramid Network)進行多尺度特征融合的端到端目標檢測方法。其中,Darknet-53結構是用來對輸入圖像進行特征提取的,Darknet網絡由 C語言實現,沒有依賴項,容易安裝,便于移植,十分適合在嵌入式系統中使用。
目標檢測需要完成目標識別和目標定位兩個任務,為了評價預測的準確程度,YOLOv3的損失函數包括置信度損失函數,中心坐標損失函數,寬高大小損失函數和類別損失函數。
初始的口罩佩戴識別數據集來自于網絡爬蟲,共6,120張圖片。通過對人臉口罩佩戴照片的觀察發現,圍巾、頭紗、手等對于面部的遮擋情況和口罩類似,圖片所處環境的光照和明暗變化都容易對預測結果產生相應的干擾,所以額外添加 1,000張圖片針對遮擋和光照情況對現有的開源數據集進行相應的補充,累計共 7,120張圖片。利用圖片標注工具對圖片進行標注,利用矩形框將人臉標出,并標注類別:wear(佩戴口罩)、 unwear(未佩戴口罩)。將數據集圖片拷貝到 JPEG Images目錄下,將標注好的數據集拷貝到 Annotations目錄下。

圖1 標注圖片
在數據集中隨機選取 90%(6,408張)的圖片作為訓練集,10%(712張)的圖片作為測試集,生成 train.txt,val.txt,est.txt,trainval.txt共4個文件。訓練時安裝并編譯 darknet源碼,并加入已創建好的數據集進行訓練。訓練設置如下:學習率設置為 0.001,動因子設置為 0.9,重衰減正則系數設置為0.0005。
在19,000次迭代后,損失值基本保持穩定。使用20,000次迭代后的權重文件在測試集上進行測試。使用 TP表示正確檢測到是否佩戴口罩的人數,FP表示錯誤檢測是否佩戴口罩的人數,FN表示漏檢測行人的人數。引入準確率和召回率來對檢測結果進行評價,其中準確率用于評估預測的準確程度,召回率用于評估預測的全面程度。

圖2 識別結果
對于準確率 Precision與召回值 Recall的定義如下所示:

最終可以得出檢測準確率為 96.4%,召回率為95.8%,識別準確度較高,基本滿足對口罩佩戴的識別要求。
在對原始數據集進行相應的處理和補充后,通過與初始數據集的測試結果進行比對,有面部遮擋的易混淆圖片的檢測準確率有了明顯提高,對于照明環境較差,面部光線較暗的圖片在召回率上也有了明顯改善。
在TX2平臺上進行訓練,檢測精度與在傳統主機上的結果近似,能夠滿足在不損失精度的基礎上實現便攜式口罩佩戴識別系統的要求。同時實驗結果證明,在TX2平臺上的運行效率高于在傳統主機上的運行效率,能夠實現高效率高精度的佩戴檢測結果。而對于視頻內容的識別,也能夠更好地進行動態捕捉,適用于在人流量密度較大的公共場所進行快速準確的人臉口罩佩戴識別。
本文通過設計一款針對口罩進行檢測的系統,前期在對現有數據集的處理和補充后,改善了系統對于面部遮擋以及光線變化下的口罩佩戴識別的檢測效果。在算法上對 YOLOv3卷積神經網絡進行改進,在 TX2平臺上對修改后的數據集進行訓練,最終在檢測任務上取得了較為理想的檢測效果,說明此方法具有一定的實用價值。但是同時發現當處于復雜場景下,若同時出現多個目標且目標面積較小時,檢測的效果較差。未來將針對該場景進行下一步的改進,提升檢測精度。