王廷銀,郭 威,吳允平
1(福建師范大學 光電與信息工程學院,福州 350007)
2(數字福建環境監測物聯網實驗室,福州 350117)
3(福建省光電傳感應用工程技術研究中心,福州 350007)
電梯是現代人類出行活動最后50 米的交通工具[1],它方便人們的生活,使得人們對電梯使用的需求也日益劇增.截至2019年,我國電梯的保有量已達到709 萬臺,位居世界第一,但其中也包括大量的老舊電梯.電梯作為特種設備的一種,其信息化水平與乘梯的安全性直接掛鉤,由于老舊電梯的信息化水平普遍不足以及我國電梯的使用呈現負載高、運量大、隨機性強等特點,使得電梯事故時有發生[2].當遇到電梯事故時,如何準確了解到轎廂人員情況,是電梯安全監測系統研究工作中重要的一環,它有助于快速展開救援工作避免不必要的生命財產損失.有的學者在電梯監測系統中應用紅外傳感器來檢測識別電梯事故時是否有乘客[3],但由于紅外傳感器易受噪聲影響而導致誤檢的情況發生[4].為此,一些學者們通過機器視覺中傳統人臉檢測算法如Haar-like[5]、HOG[6]識別電梯乘客,避免紅外傳感易誤檢的問題,例如,2015年,王瀟宇提出HOG 人臉檢測算法應用于電梯乘客識別,該方法在簡單實驗環境下有較好的效果,但實際應用情況不太理想[7];2016年,Kumar 利用Haar-like 人臉檢測算法進行轎廂人員的檢測,但是利用傳統算法所提取的人臉特征難以充分反映真實的人臉特征,導致在實際應用中檢測的精度不高[8].
這些年,隨著深度學習的發展[9],基于卷積神經網絡(Convolutional Neural Networks,CNN)的模型層出不窮,如Faster R-CNN (Faster Region- Convolutional Neural Networks)、SSD (Single Shot multibox Detector)、YOLO (You Only Look Once)、MTCNN (Multi-Task Convolutional Neural Network),它們在人臉檢測的精度上比傳統算法高,從而被應用到無人機、地鐵、安全監控多個領域中,2018年,Shen 等將MTCNN 的人臉檢測應用到無人機監控系統中,克服了傳統檢測算法檢測效果不想理的情況,提高了無人機對人員檢測的精度[10];胡玲玲將MTCNN和anchor 機制結合提高網絡檢測的精度同時引入奇異值分解提高網絡在移動端的檢測速度[11].2019年,周慧娟等應用YOLO 對地鐵乘客進行人臉檢測實現進站客流量統計,避免傳統人臉檢測算法在實際客流量統計中精度不理想的問題,有利于站管人員根據客流情況做出相應措施,保障人流安全[12];同年9月,易詩等針對目前視頻監控球機識別、跟蹤效果不佳等問題,運用SSD 網絡人臉檢測功能提升對目標識別的精度[13];同年10月,Halawa 等面對停車場的人為監控效果不理想的情況,在閉路監控中應用Faster R-CNN 進行人臉檢測,并利用Inception結構優化網絡,保障對停車場人員高精度監控[14].
相較于Faster R-CNN、YOLO、SSD 等卷積神經網絡,多任務級聯卷積神經網絡算法(MTCNN)具有計算較快、模型較小的優點[15].綜上,將MTCNN 人臉檢測算法應用于電梯乘客識別,并對其網絡結構進行改進,實現高精度檢測,避免因紅外傳感容易受噪聲影響導致乘客的誤檢和傳統人臉檢測算法檢測精度低的問題的同時,還能與電梯運行狀態分析相融合,對電梯運行進行安全評估,當遇到電梯事故時,有助于救援工作的開展.
MTCNN是一種深層次的多任務級聯卷積神經網絡框架[16],由3 個簡單的卷積神經網絡級聯組成,通過由粗略到精細的方式檢測人臉以及關鍵點的回歸.檢測過程如圖1所示,首先對輸入的圖像進行尺度變換,得到圖像金字塔,然后把圖像金字塔輸入到第1 級網絡P-Net (Proposal Network)中,生成多尺度的人臉候選框,通過邊框回歸校準候選框,并采用非極大抑制(NMS)合并重疊的候選框,將候選框圖輸入到第2 級網絡R-Net (Refine Network)中;R-Net 網絡使用邊框回歸和NMS 來剔除大部分錯誤的候選框,將精確后的候選框圖輸入到第3 級網絡O-Net (Output Network)中;O-Net 對候選框進行再次精選得到最終人臉框圖以及人臉關鍵點.

圖1 MTCNN 算法檢測圖
MTCNN 各級的網絡結構圖,如圖2所示.它們從內容上看起來很相似,但是各自的作用還是有所不同的[17].P-Net 的網絡結構如圖2(a)所示,P-Net是3 個網絡中深度最淺的,且是一個全卷積神經網絡,它主要的任務是獲得大量人臉區域候選框.圖2(b)是R-Net 的網絡結構圖,它的任務是過濾錯誤的候選框,在結構上比P-Net 新增一層池化層與全連接層,使得R-Net 網絡的學習能力更強,進而可以較好地抑制錯誤的候選框.圖2(c)是O-Net 的網絡結構圖,它比R-Net 增加一層卷積層與池化層,在結構上更加的復雜,從而更嚴格地抑制錯誤的候選框,輸出最終人臉候選框和5 個面部關鍵點.

圖2 MTCNN 各級網絡結構圖
MTCNN 中的每級網絡都需要進行人臉分類、邊框回歸、關鍵點回歸3 個任務的訓練.
人臉分類屬于二分類任務,通過交叉熵損失函數計算每個樣本Xi的損失值,如式(1)所示.

其中,pi表示網絡預測樣本屬于人臉的概率,∈{0,1}屬于樣本標簽,0是非人臉,1是人臉.
邊框回歸是回歸問題.邊框包含了左上角坐標(X,Y)以及邊框的寬和高4 個數值,通過解算網絡預測邊框坐標與真實標注邊框坐標的歐幾里德損失值糾正坐標位置,如式(2)所示.

關鍵點回歸也是屬于回歸問題.關鍵點包含左右眼、鼻子、左右嘴角5 個坐標,共10 個數值,通過解算網絡預測的臉部關鍵點坐標和真實臉部關鍵點坐標的歐幾里德損失值從而修正坐標位置,如式(3)所示.

在訓練時,各個網絡的總損失函數通過上述3 種損失函數以加權形式表示,如式(4)所示.

其中,N表示訓練樣本數量,αj是各任務權重系數,表示該任務在網絡中的重要程度,βij∈{0,1}表示樣本類型標簽,在計算各個網絡的損失值時,根據網絡對各個任務的注重程度不同來設置權重系數[18].
本文通過引入Inception 模塊和BN 算法進行MTCNN 算法的改進優化研究.
由于不同大小的卷積核對圖片處理能力不同,Szegedy等因此而設計Inception 模塊并應用在GoogLeNet中[19],其特點是并行使用多個大小不同的卷積核,增強整體網絡的特征提取能力,圖3就是典型的Inception模塊結構圖.由于轎廂人員的人臉在圖片中的比例大小不固定,在卷積神經網絡中使用固定大小的卷積核會影響人臉檢測的準確率,所以將GoogLeNet 中Inception 模塊的思想與MTCNN 網絡結合,增強網絡多尺度特征提取的能力,進而提高人臉檢測的準確性.

圖3 Inception 模塊結構圖
在訓練卷積神經網絡的時候,各參數的初始化設置會影響到訓練的結果.而BN (Batch Normalization)算法可以避免此影響[20],有效加快收斂過程,同時,BN 算法還具有正則化的作用可增強網絡分類效果,所以在MTCNN 網絡中加入BN 層.BN 算法的傳導過程如圖4所示,其中①是對數據進行標準正態分布處理,加快收斂;②是進行線性變換處理,恢復數據特征,避免標準正態分布對數據特性以及網絡表達能力的影響.

圖4 BN 算法傳導過程圖
改進后的MTCNN 網絡結構圖如圖5所示,通過并行不同大小的卷積核來對特征圖進行處理,并在每個卷積層后面添加BN 層,增加網絡的寬度和深度,同時也增強網絡的分類能力.

圖5 改進后的MTCNN 網絡結構圖
本實驗中軟件環境為:Python 2.7、VS 2015、OpenCV、Caffe、Android Studio;硬件環境為:NVIDIA960 顯卡的主機和RK3288 嵌入式開發板.
使用公開的WINDERFACE 人臉檢測數據集進行人臉分類任務和人臉邊框回歸任務訓練.WINDERFACE人臉數據集包含32 203 張圖片,共393 703 張人臉,具有各種尺度、姿勢、表情、光照等特征,非常匹配于電梯場景的乘客人臉情況,將其中16 106 張圖片(包含198 485 張人臉)有人臉標注的作為訓練集.使用文獻[21]提供的數據集進行人臉關鍵點回歸任務訓練,該數據集有13 466 張人臉圖像,每張人臉都標注5 個關鍵點,其中5590 張來自LFW 數據集,另外7876 張來自互聯網.使用FDDB 數據集對網絡進行測試評估,該數據集常用于人臉檢測算法的驗證,共有2485 張圖片,共5171 張人臉.
將訓練的數據集劃分成4 個不同類型的數據集用于對應任務的訓練,分別為正樣本集、負樣本集、半人臉樣本集、關鍵點樣本集.其中,負樣本集:與真實人臉框的重疊率IOU 小于0.3;正樣本集:與真實人臉框的重疊率IOU 大于0.65;半人臉樣本集:與真實人臉框的重疊率IOU 在0.3和0.65 之間;關鍵點樣本集:標注了人臉面部5 個關鍵點位置.其中,正樣本集和負樣本集用于訓練人臉分類任務,正樣本集和半人臉樣本集用于訓練人臉邊框回歸任務,關鍵點樣本集用于訓練人臉關鍵點回歸的任務.在訓練時,由于每個網絡對各個任務的注重程度不同,所以各個網絡損失函數的權重系數也有所差異,其中P-Net和R-Net 中人臉分類的任務更為重要,所以人臉分類任務、人臉邊框回歸任務、人臉關鍵點回歸任務三者權重比為1:0.5:0.5,而O-Net 增大了人臉關鍵點回歸的重要程度,3 個任務的權重比為1:0.5:1.
通過在各級網絡中加入Batch Normalization 算法對訓練過程進行優化,圖6中的3 個子圖分別是改進前后P-Net、R-Net 以及O-Net 的損失曲線對比圖.從圖中可以看出,改進后各網絡的收斂速度更快,訓練損失值更加的穩定,迭代步數也相對減少,從而減少不必要的訓練時間.

圖6 網絡改進前后損失曲線對比圖
通過在網絡中使用大小不同卷積核并行的方式,結合Batch Normalization 算法的優化策略,對各級網絡結構進行調整.表1是各級改進前后的網絡在訓練集上人臉檢測精度的對比結果.由表1可見,本文所述的優化改進方案對人臉檢測準確率有一定的提高.

表1 改進前后各個網絡訓練集上準確率對比(%)
在FDDB 數據集上使用ROC 曲線對改進前后算法、文獻[11]算法、Faster R-CNN、Haar-like 進行測試評估,如圖7所示,其中橫坐標假正例數FP(False Positives)表示的是誤檢數目,即把非人臉檢測為人臉,縱坐標真正例率TPR (True Positives Rate)為數據集中標注的人臉被檢測出的比例,圖中MTCNN 算法、本文算法、文獻[11]算法以及Faster R-CNN 算法它們的準確率都要遠高于傳統算法Haar-like,本文算法比MTCNN和文獻[11]算法有更好的檢測效果,雖然三者的準確率都低于Faster R-CNN,但是Faster R-CNN的網絡較深、模型較大,難以部署在移動端并實時檢測.

圖7 FDDB 數據集的ROC 曲線圖
對隨機拍攝到的100 張電梯人員人臉圖片,分別使用改進前后的MTCNN 算法進行檢測,將檢測的準確率和模型大小以及在基于嵌入式平臺開發的電梯信息終端上電梯乘客人臉檢測的速度進行綜合性能對比,如表2所示,雖然增大了模型但對檢測速度沒有造成過大的影響,而且改進后的模型檢測的準確率比原來高.圖8是兩種算法電梯乘客人臉檢測的效果對比圖,圖9是兩種算法是電梯乘客多人人臉檢測的效果對比圖,可見本文算法對電梯乘客識別效果更好.

圖8 電梯乘客人臉檢測的效果對比圖

圖9 電梯乘客多人人臉檢測的效果對比圖

表2 MTCNN 改進前后算法模型的性能綜合比對
在電梯安全監測系統中使用傳統人臉檢測算法識別電梯乘客,但檢測精度并不高難以滿足實際情況的應用,本文將MTCNN 人臉檢測算法應用于電梯人員檢測,并在此基礎上,結合Inception 模塊的設計思想,通過并行操作多個大小不同的卷積核,來加深加寬各級網絡的結構,增強各級網絡的表達能力,同時基于BN 算法能夠避免訓練時人工參數選擇的隨機性提高訓練的收斂速度以及BN 算法具有一定增強網絡的分類能力的優點,將二者引入到MTCNN 的網絡結構中,提高網絡對人臉檢測的準確率,使得改進后的MTCNN人臉檢測算法對電梯乘客的識別更加理想,在電梯安全監測系統應用中,能準確了解轎廂乘客具體情況,當電梯出現異常時,有利于救援工作的展開,進一步提高了乘梯安全.