葉永雪,馬鴻雁*,2,3
(1. 北京建筑大學電氣與信息工程學院,北京 100044;2. 建筑大數據智能處理方法研究北京市重點實驗室,北京 100044;3. 智慧城市國家級虛擬仿真實驗教學中心,北京 100044)
自2019年末新型冠狀病毒肺炎以來,疫情飛速蔓延至全球。在疫情常態化的當下,正確佩戴口罩可以簡單并有效的減少飛沫傳播,切斷病毒傳播途徑,減緩疫情[1]。但在某些場合,存在口罩佩戴不嚴謹且無法檢測的問題[2]。隨著計算機視覺技術的快速發展,目標檢測在近幾十年得到了高速發展。有效的口罩佩戴檢測系統對于公眾防范新型冠狀病毒感染,降低感染風險具有十分重要的意義[2]。時下針對口罩等小目標的檢測算法主要包含兩類:基于機器學習的算法以及基于遷移學習的算法[3]。基于機器學習的算法包含單階段檢測算法與雙階段檢測算法[5],有檢測精度高,檢測速度快等優勢,但需要大量的數據作為算法支撐。而基于遷移學習的算法則可以彌補基于大數據和深度學習的物體檢測方法的不足[4]。
機器學習的單階段口罩檢測算法以YOLO系列為主[5]。J R等基于YOLO算法,設計出高檢測速度的YOLO目標檢測系統。但是該系統存在檢測邊框不穩定等問題[6]。在此之上,J R通過擴展數據類型,提出YOLO v2算法。該算法可以檢測多達9000個目標類別,但對口罩等小物體檢測敏感度低[7]。A K等人對YOLO的各類變種算法進行實驗,實驗結果顯示,YOLO v3在口罩等小目標檢測中有較高的精確性,但是該算法需大量的算力,不適合嵌入式或移動設備推廣[8]。葉子勛等通過替換YOLO v4算法的主干特征提取網絡,有效的提高了該算法的魯棒性,該算法考慮到光照的影響。但該算法的泛化能力較差,時效性也較低[10]。談世磊通過將YOLO v5網絡模型用于口罩佩戴檢測,在保證較高的準確率的同時,大幅度的提高了幀頻速度,解決了口罩佩戴檢測速度較低下的問題。但該研究僅完成前期算法測試,后期算法部署仍存有局限性[11]。
遷移學習在農業病理圖像識別中取得了不錯的應用成果。張德軍等人基于GoogLeNet網絡進行遷移學習,采用圖像增強,區域填充等圖像處理手段,有效的檢測出芒果的各類病狀[12]。趙立新等利用遷移學習算法并輔以數據增強技術,將Plant Village領域的知識遷移到棉花病蟲害領域,解決了棉花葉部病蟲害圖像識別問題[13]。許景輝等提出基于遷移學習的卷積神經網絡玉米病害識別模型,并開發圖形用戶界面,可實現田間玉米大斑病與銹病圖像的智能識別[14]。黎振等針對番茄病理葉片存在背景干擾問題,提出基于遷移學習和k-means分割的方法對番茄病害葉片進行識別。可以有效的辨別出白粉病、早疫病、葉霉病、斑點病、黃花曲葉病等[15]。
在新冠疫情的大環境下,口罩正確佩戴檢測研究是計算機視覺和模式識別中備受青睞的熱點[16]。許德剛認為,如何在不影響檢測速度的前提下提高口罩佩戴檢測精度是未來發展的趨勢[17]。而基于機器學習的單階段口罩佩戴檢測精度低,雙階段口罩佩戴檢測速度慢,使其難以產品化[18]。遷移學習擁有低數據基礎、高檢出率等優點[19],使得其產品化較為容易。本文基于領域自適應遷移學習建立口罩佩戴檢測模型,并將該模型嵌入到手持攝像頭中。
遷移學習(Transfer learning)是將已訓練好的模型即預訓練模型的參數遷移到新的模型來幫助新模型進行訓練[20]。具體的遷移學習過程見圖1所示。常見的遷移學習包括在領域自適應遷移學習、線遷移學習、終身遷移學習、異構遷移學習、深度遷移學習、強化遷移學習、對抗遷移學習等。

圖1 遷移學習過程
領域自適應遷移學習是目前較為實用的遷移學習。領域自適應遷移學習將不同源領域的數據及特征映射到相同特征空間,增強目標領域的訓練,可以達到更好的訓練效果。綜上本文基于領域自適應遷移學習建立口罩佩戴檢測模型。圖2為基于領域自適應遷移學習口罩佩戴檢測流程圖,該流程主要由三大部分組成。

圖2 領域自適應遷移學習口罩佩戴檢測流程
1)數據處理:將采集的數據集進行人體關鍵點檢測-人臉分割,去除圖像背景及人體姿態的影響;然后對分割后的圖像進行預處理;最后利用數據增強技術擴充數據樣本的數量。
2)模型建立:將處理后的圖像數據按照8:2的比例分為訓練集和測試集。利用訓練級的圖像數據訓練基于領域自適應遷移學習口罩模型,并以混淆矩陣的方式檢測模型的精準率與召回率。
3)模型輸出與重利用:將輸出的模型嵌入到手持攝像頭中,以實現口罩佩戴檢測的硬件部署部署。
2.3.1 精準率與召回率
精準率與召回率是口罩佩戴檢測模型好壞的重要的判斷標準。精確率表示檢測為正的樣本中有多少是真正的正樣本。召回率表示樣本中的正類有多少被檢測正確。本文正確佩戴口罩(mask)為正類,未佩戴口罩(face)、錯誤佩戴口罩(mistake)為負類。則精準率P與召回率R如式(1)所示

(1)
式中:TP—正類檢測為正類數;
FN—正類檢測為負類數;
FP—負類檢測為正類數;
TN—負類檢測為負類數。
2.3.2 混淆矩陣
混淆矩陣用于描繪樣本數據的真實屬性與識別結果類型之間的關系。表1顯示口罩佩戴檢測模型中各個類別檢測的結果。

表1 口罩佩戴檢測模型混淆矩陣
在表1口罩佩戴檢測模型混淆矩陣中,X1%表示正確佩戴口罩(mask)數據中模型檢測正確的百分比。Y1%表示正確佩戴口罩(mask)數據中模型檢測錯誤,即檢測為未佩戴口罩(face)的百分比。同理,Y3%表示不正確佩戴口罩(mistake)數據中模型檢測錯誤,即檢測為正確佩戴口罩(mask)的百分比。該模型希望X1%,X2%,X3%趨近于100%。
2.3.3 基于混淆矩陣的模型準確率
基于混淆矩陣的分類準確率用于反映模型對不同類別目標檢測的準確性。該模型的數據集類別分為3類:正確佩戴口罩(mask)類,未佩戴口罩(face)類、錯誤佩戴口罩(mistake)類。在口罩佩戴檢測的混淆矩陣中,模型準確率H計算見式(2)。

(2)
式中:Xi—表1中的X1%,X2%,X3%;
hi—類別數據對應數據集中的占比。
3.1.1 數據圖像采集裝置
本文通過懸掛式攝像頭采集人臉是否佩戴口罩圖像數據。攝像頭具體參數如下:支持Windows操作系統,有效像素為210萬,信噪比大于50dB,鏡頭焦距為3.6mm,采用標準USB2.0接口,兼容USB3.0接口,最大分辨率為1280×720,視頻輸出格式為AVI,圖片輸出格式為JPG。視頻輸出大小為YUY2(640×480),輸出圖像質量滿足Skype &Lynx要求。攝像頭如圖3所示

圖3 數據圖像采集攝像頭
3.1.2 數據圖像采集類別
采集的數據圖像包括三大類:正確佩戴口罩(mask)類,共采集數據圖像3548張;未佩戴口罩(face)類,共采集數據圖像1156張;錯誤佩戴口罩(mistake)類,共采集數據圖像1352張。采集的數據圖像總計超6000張。
正確佩戴口罩(mask)類數據為正類,該數據在采集過程中考慮到人臉配飾的遮擋與否的情況,即考慮到被采集人員的性別,是否佩戴帽子,是否佩戴眼鏡以及佩戴口罩的顏色等情況。詳見表2正確佩戴口罩類采集情況。

表2 正確佩戴口罩類采集情況
錯誤佩戴口罩(mistake)類為負類,主要包含三大類別:mis1-口罩佩戴未遮住鼻腔類,mis2-口罩佩戴未遮住口鼻類,mis3-口罩未完全佩戴類。詳見圖4 錯誤佩戴口罩(mistake)類示例圖。

圖4 錯誤佩戴口罩(mistake)類示例圖
人體關鍵點檢測技術有兩種較為準確的方案,即自下而上檢測和自上而下檢測。本文采用的Open Pose算法屬于典型的自下而上的檢測算法。具有大幅縮短檢測周期的優勢。Open Pose將輸入的圖像樣本,經過VGG19卷積網絡提取相關特征;使用CNN網絡通過兩個方向上分別提取置信度和關聯度;將上述兩個信息使用偶匹配的方法求出其關聯,將同人的關鍵點連接起來,合并成整體骨架。原理見圖5人體關鍵點檢測Open Pose實現原理。

圖5 人體關鍵點檢測Open Pose實現原理
人體面部包含6個關鍵點,即右耳、右目、鼻、左目、左耳以及頸。基于人體關鍵點的人臉面部分割:①以頸為基點,以平行于原始圖像下邊的為分割圖片的下邊;②以左耳為基點,以平行原始圖像左邊為分割圖像左邊;③以右耳為基點,以平行原始圖像右邊為分割圖像右邊;④以左、右目中較高的一個為基點,以平行原始圖像上邊為分割圖像上邊。詳見圖6基于人體關鍵點的圖像分割原理。分割后的圖像包含所有面部信息,可以有效的排除背景及人姿態的影響。將分割完后的圖像進行人體關鍵點去除,構造數據集。

圖6 基于人體關鍵點的圖像分割原理
3.3.1 圖像預處理
為平滑人臉圖像,并提高圖像數字化的視感質量。本文通過加入高斯噪聲,以空間域濾波法去除噪聲。去除噪聲后,將圖片數字化,數字化后數據集的類別特征如圖7所示。

圖7 圖像預處理后類別特征
3.3.2 圖像數據增強
基于領域自適應遷移學習可能存在過擬合問題,過擬合會導致口罩佩戴檢測模型泛化能力變差,在新的圖像數據集上不能檢測,會導致后期硬件部署后,出現無法檢測的問題。
為了防止出現過擬合問題,本研究采取數據增強的方法來防止模型過擬合。通過對圖像的隨機垂直翻轉、隨機水平轉、隨機縮放等操作,擴充原始口罩圖像數據集,可以使訓練更多的輪數,提高模型的準確度。對擴充后的人臉圖像數據集樣本以8:2的比例劃分為訓練集和測試集。
將6000張采集的圖像平均分為三組,每組數據集分別進行帶有人臉圖像分割、不帶人臉圖像分割的口罩佩戴檢測試驗。基于人臉圖像分割口罩佩戴檢測模型測試集結果如圖8所示。

圖8 基于圖像分割口罩佩戴檢測模型測試結果
圖8為基于圖像分割口罩佩戴檢測模型第二次實驗測試集結果3D顯示圖。從圖8可以看出,測試集總計395張圖像。其中face類圖像總計103張,mask類圖像總計184張,mistake類圖像總計108張;而face類識別錯誤1張,mask類識別錯誤3張,mistake類識別錯誤2張。該模型的具體準確率見表3。

表3 基于圖像分割口罩佩戴檢測模型第二次實驗測試集混淆矩陣
圖像數據占比為:mask:face:mistake=184:103:108。則該模型基于混淆矩陣的模型準確率H為98.48%,具體的計算如下所示

三次仿真結果見表4。從表4可以看出,帶有人臉圖像分割口罩佩戴檢測模型的平均準確率比不帶人臉圖像分割口罩佩戴檢測模型平均準確率高6%。

表4 三次實驗不同模型準確率對比
將訓練好的模型嵌入至Open Mv設備中,該設備如圖9所示。該設備的攝像頭焦距為2.8mm,光圈為F2.0。該設備的處理器主芯片型號為STM32H743II,芯片架構為ARM M7。

圖9 Open Mv手持設備
Open Mv設備采用Python語言,該硬件在處理嵌入式模型的具體情況見圖10硬件處理情況。從圖10中可以看出該設備在處理該模型時可達到4fps的幀率,且連續3次識別口罩未正確佩戴的概率均超過95%,這說明該嵌入式模型可以完成口罩佩戴檢測。

圖10 嵌入式程序硬件處理情況
基于圖像分割口罩佩戴檢測模型的準確率超98%,但在不同類別的檢測上,該模型的檢測的準確率也不相同。此外,模型在嵌入至硬件設備在,由于硬件攝像頭,主芯片處理情況等各類原因,導致模型的準確率下降。因此,在嵌入至移動端后,為防止誤判,采用連續檢測正確邏輯增加判斷準確率。具體的邏輯見圖11所示。通過連續檢測這一系統,口罩正確佩戴檢測不會產生誤檢測。

圖11 口罩佩戴連續檢測系統
本文提出基于人體關鍵點檢測的人臉圖像分割與遷移學習的口罩佩戴檢測算法,通過實驗對比并分析發現,不帶人臉圖像分割口罩佩戴檢測模型仿真平均準確率比帶人臉圖像分割口罩佩戴檢測模型仿真平均準確率低6%。這說明基于人體關鍵點檢測的人臉圖像分割技術在口罩佩戴檢測技術中有了較大的提升。
將基于人體關鍵點檢測與遷移學習的口罩佩戴檢測系統部署于Open Mv硬件中,在該硬件設備處理幀數快,模型識別率高。通過設計的口罩佩戴連續檢測系統,使得該模型在進行口罩佩戴檢測中表現良好。