程淑紅, 馬曉菲, 張仕軍, 張 麗
(1.燕山大學 電氣工程學院, 河北 秦皇島 066004; 2.秦皇島技師學院, 河北 秦皇島 066004)
吸煙是危害人類身體健康的重要因素之一,二手煙造成的危害尤為嚴重。2014年,國家衛(wèi)生和計劃生育委員會起草了《公共場所控制吸煙條例(送審稿)》[1],明確所有室內(nèi)公共場所一律禁止吸煙。控制吸煙衛(wèi)生監(jiān)督管理工作一般的監(jiān)督措施是人力監(jiān)督或高精度的傳感器煙霧檢測設備,但存在人力財力大量流失以及實時性差、易受外界因素干擾等缺點?;谝曨l的吸煙檢測通過將光學攝像頭采集的圖像信息輸入計算機,根據(jù)事先預定的算法對序列圖像進行模式識別和信息處理判斷,更具實時性和高效性。文獻[2]提出將混合高斯模型與幀差法相結合根據(jù)煙霧特性分離動態(tài)煙霧區(qū)域的算法,雖靈敏度較高,但稀薄煙霧運動性不太明顯易受疑似煙霧物體的干擾;文獻[3]提出基于視頻序列中的運動信息與兩次膚色檢測相結合的分割方法,實時性較強,但在復雜背景中對手勢圖像的分割效果還不夠好;文獻[4]通過分析人臉和手部樣本之間的接觸時間、煙霧檢測和手持物體檢測這3個特征,利用決策樹對人的行為進行分類,能適用于多種復雜環(huán)境但不能單一地對吸煙行為進行檢測。吸煙行為期間香煙必須移動到嘴里,只識別嘴部范圍內(nèi)的相關信息,可以排除無用圖像數(shù)據(jù)的干擾,降低計算的復雜性,避免誤判。
本文提出了一種基于多任務分類的吸煙行為檢測算法,通過多任務卷積神經(jīng)網(wǎng)絡(multi-task convolution neural network, MTCNN)[5]判別人臉并獲得人臉區(qū)域[6,7],然后建立一個級聯(lián)的殘差回歸樹(GBDT)[8]回歸嘴部形狀從而定位感興趣區(qū)域(region of interest,ROI),在有效減少識別時間、提高檢測精度的基礎上通過殘差網(wǎng)絡[9]對ROI內(nèi)香煙特征學習來達到檢測吸煙行為的目的。同時,針對不同場景不同人員的吸煙行為進行檢測,并對比了支持向量機(SVM)[10]和殘差網(wǎng)絡對不同ROI香煙識別準確性,進而驗證了本文算法的有效性和可行性。
本文算法首先采用多任務卷積神經(jīng)網(wǎng)絡對采集到的圖像進行人臉的判斷和識別,然后在定位的人臉區(qū)域中利用級聯(lián)的殘差回歸樹方法,估計68個人臉特征點坐標,按照一定的規(guī)律框定嘴部ROI,最終通過殘差網(wǎng)絡獲取ROI吸煙特征并對有無吸煙行為做出判定。具體算法框圖如圖1所示。
圖1 算法框圖Fig.1 Algorithm block diagram
進行吸煙行為檢測,首先要判別并定位臉部區(qū)域。基于多任務框架的深度卷積網(wǎng)絡,采用3個深度卷積網(wǎng)絡級聯(lián)結構,通過將人臉判別、定位和面部標識定位同時作為網(wǎng)絡目標函數(shù),端到端地訓練整個深度卷積網(wǎng)絡。其結構如圖2所示。
圖2 多任務卷積神經(jīng)網(wǎng)絡結構Fig.2 Multitasking convolution neural network structure
利用3個任務來訓練此級聯(lián)的卷積神經(jīng)網(wǎng)絡:
1) 人臉判別:這是一個二分類問題。對于每個樣本,使用交叉熵損失函數(shù):
(1)
2) 人臉定位:對于每個候選框,學習目標被表述為一個回歸問題,預測它與最近的背景真實坐標在特征空間中的歐氏距離計算回歸損失:
(2)
3) 面部標識定位:將面部標識檢測表示為回歸問題,計算網(wǎng)絡預測的標識位置和真實標識的歐式距離,并使其最小化:
(3)
針對多個輸入源的訓練,總的訓練目標可以表述為:
(4)
為了定位更精確的ROI,要進行人臉對齊[11]。獲得人臉區(qū)域后,基于梯度提高學習的回歸樹方法(ERT級聯(lián)回歸算法)首先估計一個大致的特征點位置,然后采用梯度提升算法優(yōu)化損失函數(shù)和手工數(shù)據(jù)標點錯誤的總和,用最小二乘法來最小化誤差,得到每一級的級聯(lián)回歸因子。如式(5)所示。
(5)
圖3 基于人臉特征點的ROI定位Fig.3 Mouth region localization based on face feature points
利用人臉特征點定位ROI,定位規(guī)則為:
(6)
式中:w、h分別為特征點檢測中嘴部區(qū)域的長和寬,W、H分別為本文算法定位ROI的長和寬。
獲得ROI后,構建一個殘差網(wǎng)絡以獲得的ROI圖像作為輸入,自動學習圖像特征及數(shù)據(jù)內(nèi)部的隱含關系,利用全局平均池化(GAP)[12]取代全連接層(FC)[13]來融合學習的深度特征,實現(xiàn)有無吸煙行為的分類。
為了解決深層網(wǎng)絡優(yōu)化的問題,通過在輸入與輸出之間引入捷徑連接(shortcut connection),解決由于網(wǎng)絡很深出現(xiàn)梯度消失的問題,將網(wǎng)絡轉換為對應的殘差版本,即殘差網(wǎng)絡,定義如下:
y=F(x,{W}i)+Wsx
(7)
式中:x,y分別為殘差塊的輸入與輸出;F(x,{Wi})為要學習的殘差映射;當需要對輸入和輸出維數(shù)進行變化時,可以利用線性投影Ws來匹配大小。
圖4 殘差基本結構Fig.4 Residual block
殘差塊基本結構如圖4所示,表達式為:
y=F(x,{Wi})+x
(8)
式中:F(x)=W2σ(W1x),σ為非線性函數(shù)ReLU;W1為第一層連接權值;W2為第二層連接權值,為了簡化寫法忽略了偏置項,然后通過捷徑連接和第二個非線性函數(shù)ReLU得到殘差塊輸出y。
設H(x)作為幾個堆疊層(不必是整個網(wǎng)絡)期望的基礎映射,x表示這些層中第一層的輸入,殘差網(wǎng)絡學習的是殘差函數(shù)F(x)=H(x)-x(輸入輸出是相同維度),原始函數(shù)變?yōu)镕(x)+x。如果F(x)=0,添加的層就可以被構建為恒等映射,殘差函數(shù)更易擬合。
本文實驗數(shù)據(jù)來自于手動采集的Smoke數(shù)據(jù)集(不同室內(nèi)場景下吸煙/未吸煙圖片24 000張)、Test數(shù)據(jù)集(含8段視頻序列,分別由8名不同的測試人員在不同場景下進行采集,其中包括2名女性測試者和6名男性測試者,以30 幀/s的速度進行視頻采集,每段測試視頻序列約為20 s)。通過對本文算法ROI定位效果和吸煙行為檢測分類效果分析,驗證本文檢測算法的可行性與有效性。實驗中所有數(shù)據(jù)分析和結果均基于同一初始條件和實驗環(huán)境,實驗環(huán)境:Ubuntu14.04+python+opencv3.3+mxnet;intel i7-6700K處理器;GTX1080顯卡;8G運行內(nèi)存;HD720P攝像頭。
對Test數(shù)據(jù)集的視頻序列進行ROI定位實驗,將8段測試視頻進行抽幀分析。分別對每段視頻抽取200幀進行測試,定位準確幀為1 522幀,ROI定位準確率為95.13%,部分視頻幀定位ROI效果如圖5所示。
圖5 ROI定位效果Fig.5 Region of interest positioning effect
由圖5可知,本文所提出的算法對ROI效果較好。訓練過程最后生成的ROI權重在融合算法中進行調(diào)用并用于最終的吸煙行為檢測。
3.2.1 殘差網(wǎng)絡模型訓練效果
1) Smoke數(shù)據(jù)集預處理:由于圖像采集環(huán)境的不同,如光照明暗程度以及設備性能的優(yōu)劣等,手動采集的圖像往往存在有噪聲、對比度不夠等缺點,在進行模型訓練之前,對數(shù)據(jù)集進行包括圖像增強、灰度取值范圍相同、大小歸一化為等預處理,并對數(shù)據(jù)集進行Normal、Smoking類別標記,部分訓練樣本如圖6所示。對其順序進行打亂,生成含有圖像信息的數(shù)據(jù)文件。訓練和測試數(shù)據(jù)集比例為4:1。
圖6 數(shù)據(jù)集部分訓練樣本Fig.6 Some data set training samples
2) 吸煙數(shù)據(jù)模型訓練:為了使模型對吸煙有較好的檢測效果,經(jīng)過多次網(wǎng)絡訓練和調(diào)節(jié)參數(shù),參數(shù)設置:選用的樣本大小為32,標簽數(shù)為2,基準學習率為0.000 1,學習策略為隨機下降法,執(zhí)行回合為500。訓練結果如圖7、圖8所示。
圖7 訓練、驗證準確率Fig.7 Train, Validation accuracy
圖8 訓練、驗證損失函數(shù)Fig.8 Train, validation cross entropy
在訓練500回合后,訓練準確率達到99.13%,交叉驗證準確率達到98.44%。隨著迭代輪數(shù)的增加,損失函數(shù)逐漸減小,并最終控制在有效范圍之內(nèi)。這意味著預測值和真實值在特征空間中的距離越來越小,即模型分類效果越來越好。
3.2.2 吸煙行為檢測效果
針對本文所提出的吸煙行為檢測算法,對采集到的Test數(shù)據(jù)集中的視頻序列進行抽幀分析。
在實際應用中,混淆矩陣[14,15]可以有效地評估有監(jiān)督學習分類算法。將8段測試視頻的平均預測效果用可視化工具混淆矩陣表示如圖9,其中列是模型預測的分類結果,行是測試集的真實標簽??芍庇^地看出,將正常狀態(tài)做出“Smoking”判斷(假陽性)的概率為0.01,將吸煙行為做出“Normal”判斷(假陰性)的概率為0.16,混淆矩陣區(qū)分了假陽性和假陰性這2種不同的錯誤判斷。
將本文算法的平均測試評估指標與其它常見的目標物體檢測方法相比較,驗證本文算法的準確性。其中,算法1是應用多任務卷積神經(jīng)網(wǎng)絡和殘差網(wǎng)絡僅對人臉區(qū)域進行檢測,算法2是利用多任務卷積神經(jīng)網(wǎng)絡、級聯(lián)回歸和SVM對嘴部區(qū)域用傳統(tǒng)SVM分類器檢測。使用準確率(RAcc)、誤分類率(RE)、召回率(RCall)、命中率(RPPV)4個指標對模型分類效果的精確性進行度量。
(9)
式中:Pt為正確檢測到正常狀態(tài)的視頻幀數(shù),Nt為正確檢測到吸煙狀態(tài)的視頻幀數(shù),Nf為錯誤檢測為吸煙狀態(tài)的視頻幀數(shù),Pf為錯誤檢測為正常狀態(tài)的視頻幀數(shù),P為檢測到正常狀態(tài)的總幀數(shù),N為檢測到吸煙狀態(tài)的總幀數(shù)。結果如表1所示。
圖9 本文算法測試混淆矩陣Fig.9 This algorithm test Normalized confusion matrix
表1 不同算法平均測試評估指標
Tab.1 Different algorithms average test evaluation index
(%)
由表1可以看出,本文算法的分類效果較好。相較于算法1的評估指標,可以驗證,定位精確的ROI,可以更加準確地檢測到吸煙行為并做出狀態(tài)判斷;相較于算法2,可以驗證,在定位相同ROI的情況下,殘差網(wǎng)絡比L-SVM分類器的分類效果更好。
本文算法可以完成對吸煙行為的檢測,輸出幀率約為25幀/s,基本能完成實時性要求。綜上所述,本文算法能夠定位精確的目標區(qū)域并得到較好的檢測效果,可以實時檢測出吸煙者的行為并作出狀態(tài)的判斷,有較好的實時性與準確性。
為了響應控制吸煙衛(wèi)生監(jiān)督管理工作的開展,及時準確地發(fā)現(xiàn)吸煙行為,本文設計了一種基于多任務分類的吸煙行為檢測算法。該算法主要工作包括ROI定位和目標吸煙行為檢測,通過人臉識別和人臉對齊任務定位精確的ROI,大大縮短行為檢測的處理時間,提高狀態(tài)判斷檢測準確率,ROI定位準確率可達95.13%。
通過訓練帶有殘差結構的卷積神經(jīng)網(wǎng)絡可以解決隨著網(wǎng)絡加深梯度消失的問題,提高了訓練的速度和精度,使得網(wǎng)絡深層的構建和分類達到了更好的效果,分類模型驗證準確率可達98.44%。多算法的融合使得本文基于多任務分類的吸煙行為檢測算法有較好的實時性準確性,輸出約為25幀/s,準確率可達87.5%。后續(xù)研究將進一步提高算法在復雜場景下目標區(qū)域獲取以及通過更多的吸煙動作數(shù)據(jù)不斷優(yōu)化模型,提高識別率。