王 征,張 科,張赫林,潘紅光
(西安科技大學 電氣與控制工程學院,陜西 西安 710054)
應國家對大型煤礦的生產(chǎn)安全及環(huán)保要求,煤礦事故的預防已經(jīng)成為生產(chǎn)環(huán)節(jié)中極其重要的一個環(huán)節(jié)?,F(xiàn)階段造成煤礦安全事故的因素頗多,包括生產(chǎn)設備老化、煤塵瓦斯等濃度超標、機械化程度較低、從業(yè)人員素質較低等[1]。其中人為因素導致的煤礦事故難以預測、難以防治,礦工的工作情緒以及精神狀態(tài)會直接影響到其工作質量,甚至做出誤操作引起安全事故發(fā)生[2]。文中擬設計礦工面部表情識別系統(tǒng),使用計算機對礦工面部表情特征進行提取和分析,有助于監(jiān)視和掌握礦工人員的工作狀態(tài)與工作情緒信息,對情緒異常的礦工進行預警,從而預防人為事故的發(fā)生,降低安全事故概率。
近年來,諸多學者相繼提出人臉表情識別算法,如劉帥師等提出Gabor與分塊直方圖相融合的算法提取人臉特征,該算法解決了Gabor算法缺乏全局特征表征能力的不足,并有效降低了人臉特征數(shù)據(jù)的冗余[3];劉偉鋒等提出了一種基于局部二值模式的人臉表情識別方法,該方法能夠增加人臉特征的集中性、準確性和有效性,并較好地提取特征點區(qū)域的局部特征[4];蔡則蘇等結合了主成分分析法與哈希K近鄰算法有效解決了驚訝與恐懼表情相互錯分的問題[5];唐浩等基于卷積神經(jīng)網(wǎng)絡融合了負面表情特征,訓練出分類性能更強的分類器,并在JAFFE,GENKI和CK+數(shù)據(jù)庫上取得了較好的廣泛性和魯棒性[6];齊梅等利用韋伯梯度編碼描述人臉表情特征,并采用自動優(yōu)化參數(shù)的支持向量機完成表情分類[7];馮楊等基于卷積神經(jīng)網(wǎng)絡在表情特征提取部分采用多層小尺度核卷積代替大卷積核,所得模型有效提高算法的識別率[8]。以上學者的研究從網(wǎng)絡的層級結構、特征描述以及分類方法等各個角度對算法模型進行了修正,使得網(wǎng)絡模型的迭代速率與識別準確率都得到了提升,但由于煤礦環(huán)境中光照條件較差,可見度較低,圖像或影像中人臉區(qū)域與背景區(qū)域對比度較低,另礦工臉部顏色較深,因此使用人工特征的分類器和結構簡單的卷積神經(jīng)網(wǎng)絡難以實現(xiàn)對礦工面部表情的特征提取。
因此,基于深度可分離卷積神經(jīng)網(wǎng)絡miniXception搭建礦工面部表情識別模型,對其核心部分的殘差模塊進行改進,其殘差連接中融合多個標準卷積和輕量化上下采樣,提出Exp-FReLU激活函數(shù),完成礦工表情圖像的特征提取。然后應用礦工表情圖像樣本數(shù)據(jù)進行實驗仿真,分析改進miniXception網(wǎng)絡與simpleCNN,ResNet,Xception,CNN+RNN,miniXception網(wǎng)絡的識別性能,從訓練時間、精確度、召回率、F1分數(shù)以及參數(shù)數(shù)量5個評價指標對改進miniXception網(wǎng)絡進行合理的評估,最后通過損失函數(shù)曲線和混淆矩陣證明改進miniXception網(wǎng)絡在礦工表情識別任務上的可行性。
煤礦內職位眾多,主要的一線崗位人員包括采煤專業(yè)、掘進專業(yè)、機電專業(yè)、輔助運輸專業(yè)以及其他專業(yè)人員。由于煤礦深處工作的機器大多數(shù)為采煤機、乳化液泵站、刮板輸送機、綜掘機以及注漿機等大型特種工作車,因此這類工作車司機員的工作以及情緒狀態(tài)對采煤效率和采煤安全起決定性作用[9];此外各個專業(yè)的檢修人員諸如采煤機檢修工、支架檢修工、電氣檢修工以及泵站檢修工等,該類人員的工作情緒會間接影響到工作設備是否工作在安全狀態(tài);其他輔助類崗位如支架工、排水工、爆破工以及運料工等工作人員的工作狀態(tài)會直接影響到工作面和其他生產(chǎn)環(huán)境的整體安全[10]。因此,有必要對各個一線崗位人員的情緒狀況加強監(jiān)視和分析,通過分析礦工的情緒并結合其他管理措施有利于提高煤礦的生產(chǎn)效率,更有助于提高生產(chǎn)環(huán)節(jié)的整體安全系數(shù)。
通過煤礦特種工作車車內攝像頭、工作面固定攝像頭以及現(xiàn)場拍攝等方式獲取礦工表情數(shù)據(jù)集,采集到的原始數(shù)據(jù)圖像共1210張,按礦工表情分為7類:生氣、厭惡、恐懼、高興、沮喪、驚訝和中性,圖像皆為RGB三通道圖像。數(shù)據(jù)集的優(yōu)劣影響著網(wǎng)絡模型學習結果的好壞,由于煤礦井下光照條件較差,可見度低,礦工面部顏色較為灰暗、難以識別,導致該實驗使用的訓練集圖像數(shù)量不足以使網(wǎng)絡學習到很好的表情特征,因此考慮對訓練集進行預處理和數(shù)據(jù)擴增。
圖像預處理采用全局直方圖均衡化[11]對圖像的紅、綠、藍三通道直方圖進行均衡化處理,預處理后的圖像如圖1所示,RGB 3個通道值取為均衡值,使得處理后的圖像色彩更加鮮明,對比度得到增強;對預處理后的圖像進行擴充的方法有翻轉、顏色變化、放大和縮小。文中采用圖像旋轉和翻轉的方式對訓練集進行增強,如圖2所示,圖2(a)為原圖像,圖2(b)為水平翻轉結果圖,圖2(c)(d)分別為逆時針旋轉20°和340°后的結果圖。
圖1 礦工表情圖像直方圖均衡化處理結果Fig.1 Miner expression image histogram equalization results
圖2 圖像旋轉、翻轉結果Fig.2 Image rotation and flipping results
經(jīng)過旋轉、翻轉處理后的數(shù)據(jù)情況見表1,礦工表情圖像數(shù)量由原來的1 210多張圖像擴充至4 840張。其中90%作為訓練集,10%作為測試集,擴充后的數(shù)據(jù)集能夠幫助網(wǎng)絡提高對表情特征的學習能力。上述自制數(shù)據(jù)集僅為小樣本數(shù)據(jù)集,對于實際網(wǎng)絡訓練要求,樣本數(shù)量遠遠不足,因此實際所使用的真實數(shù)據(jù)集為自制數(shù)據(jù)集與MMA[12]面部表情圖像公共數(shù)據(jù)集的合并數(shù)據(jù)集。其中MMA中包含7類表情,與自制數(shù)據(jù)集分類相對應,圖像數(shù)量為12.8萬張。訓練方法采用遷移學習,即先使用MMA數(shù)據(jù)集對miniXception網(wǎng)絡進行初步預訓練得到預訓練模型,在此預訓練模型基礎上再添加自制數(shù)據(jù)集使得網(wǎng)絡訓練得到更符合文中研究對象的訓練模型。通過該操作可以使網(wǎng)絡在有限的數(shù)據(jù)集上盡可能得到更好的學習效果,從而提升礦工表情識別精度。
表1 數(shù)據(jù)參數(shù)
表情識別模型采用深度可分離卷積層,深度可分離卷積層[13-15]與普通的卷積層相比較,其不采用普通卷積中大小為n×n×3的卷積核,而是將每個卷積核拆分為3個n×n×1的過濾器。如圖3所示,深度可分離卷積可分為2步:步驟1,將H×W×C的表情圖像通過每一個過濾器卷積得到(H-n+1)×(W-n+1)×1映射圖,再將映射圖堆疊成(H-n+1)×(W-n+1)×3的表情特征圖作為該卷積層的輸出圖像;步驟2,采用m個大小為1×1×3的過濾器對步驟1得到輸出圖像進行卷積以擴展輸出深度,最終得到m個通道的表情特征圖。普通卷積與深度可分離卷積過程中產(chǎn)生的參數(shù)量見式(1)~式(2)
Wn=m×n×n×C×(H-n+1)×(W-n+1)
(1)
Wd=(n×n+m)×C×(H-n+1)×(W-n+1)
(2)
圖3 深度可分離卷積過程Fig.3 Deepwise separable convolution process
式中Wn為普通卷積產(chǎn)生的參數(shù)數(shù)量;Wd為深度可分離卷積產(chǎn)生的參數(shù)數(shù)量;W,H和C分別代表輸入圖像的寬、高和通道數(shù);n為卷積核尺寸大??;m為卷積核個數(shù)。相繼可計算2種卷積方式參數(shù)數(shù)量比
(3)
Chollet提出的Xception[16]網(wǎng)絡結構采用了上述深度可分離卷積結構,即將GoogleNet[17]中的傳統(tǒng)卷積層替換為多個Inception V3[18]結構。如圖4所示,表情識別模型的核心部分采用“極致”版本的Inception[19]結構,借鑒深度可分離卷積網(wǎng)絡層的思想,將表情圖像的所有通道看做一個可分離卷積,但與深度可分離卷積層在結構上存在2點不同:①順序不同,即深度可分離卷積先對表情圖像的每個通道進行3×3卷積,然后加入1×1卷積。而“極致”版Inception結構先對表情圖像進行1×1卷積,再逐通道進行3×3卷積;②深度可分離卷積中2個卷積層之間不進行激活操作,而“極致”版Inception結構在1×1卷積后連接了一個ReLU非線性激活函數(shù)。同時,Xception網(wǎng)絡結構結合了ResNet[20-21]模型思想,在網(wǎng)絡結構中添加與ResNet中類似殘差連接的連接形式以及其他常規(guī)子模塊以提高正確率。
圖4 “極致”版Inception模塊Fig.4 An “extreme” version of Inception module
最終搭建的表情識別模型使用含有“極致”版本Inception模塊的改進miniXception[22-23]網(wǎng)絡結構,原始miniXception網(wǎng)絡的特征提取部分由多個殘差網(wǎng)絡組成,該殘差網(wǎng)絡中的殘差連接模式比較簡單,對于礦工表情語義信息的學習能力有待提升。因此文中對該網(wǎng)絡的特征提取部分進行改進,如圖5所示。
fExp-FReLU(xc,i,j)=max(xc,i,j,T(xc,i,j))
(4)
(5)
綜上所述,改進miniXception網(wǎng)絡特征提取部分包含3個深度可分離殘差塊,每個殘差塊中都進行批量歸一化操作、Exp-FReLU激活以及加入了輕量化上下采樣的殘差連接,最后一層使用全局平均池化和softmax激活函數(shù)以生成礦工面部表情預測值,最終該網(wǎng)絡中的訓練參數(shù)數(shù)量由22.8 M降低至5.80 M。
圖5 改進miniXception特征提取網(wǎng)絡Fig.5 Improved miniXception feature extraction network
實驗環(huán)境為Windows 10操作系統(tǒng),使用Intel(R)Core(TM)i7-7700HQ的處理器,內存16 GB,深度學習框架為Keras,軟件編程環(huán)境為Python 3.7,GPU是NVIDIA GeForce GTX 1070。
首先,為觀察改進miniXception網(wǎng)絡對礦工面部表情特征的學習能力,實驗對改進前后miniXception的第3個殘差模塊的輸出特征圖進行可視化對比,可視化結果如圖6所示。其中圖6(a)為輸入圖像;圖6(b)為改進前miniXception得到的特征,該圖中礦工面部以外多余的區(qū)域都被網(wǎng)絡過多學習,如礦工的安全帽、工作服以及其他安全設備的輪廓部分,另外網(wǎng)絡對礦工面部的描述表現(xiàn)模糊,對于五官和面部之間的學習能力相近;圖6(c)為改進后miniXception得到的特征圖,該圖中網(wǎng)絡對面部以外區(qū)域的關注度明顯下降,面部和五官輪廓與面部其他區(qū)域顏色對比度變高,說明改進后的miniXception網(wǎng)絡對表情特征的學習能力得到加強,更加關注五官和面部輪廓的特征,并且對圖像多余的地方減少了特征描述。
圖6 miniXception特征圖可視化Fig.6 Visualization of miniXception feature map
其次,針對改進miniXception網(wǎng)絡對每類表情的識別結果進行實驗。圖7展示每組表情圖片的識別結果,結果的顯示采用概率分布的方式,可視化每張測試圖片下每個類別所占的比例,占比最高的類別將被視為測試圖片的分類而輸出。其中改進miniXception網(wǎng)絡對高興和驚訝表情的識別正確率最高,分別達到97.71%和96.03%,對于厭惡和沮喪的識別正確率最低,分別為54.54%和60.69%。該結果與所測圖片礦工表情的明顯程度相關,也取決于數(shù)據(jù)集的優(yōu)良程度。
圖7 每類表情的識別結果Fig.7 Recognition results of each kind of expression
研究對simpleCNN,ResNet,Xception,CNN+RNN[25],miniXception以及改進miniXception 6種網(wǎng)絡進行訓練,simpleCNN網(wǎng)絡為實驗搭建的簡單CNN網(wǎng)絡,CNN+RNN網(wǎng)絡以CNN提取特征并級聯(lián)RNN做序列特征分類的網(wǎng)絡。為分析各個網(wǎng)絡礦工表情識別性能的優(yōu)劣,使用訓練時間、精確度、召回率、F1分數(shù)以及參數(shù)數(shù)量5個評價指標作為實驗分析內容,評價指標對比見表2。
表2 網(wǎng)絡評價指標對比
改進miniXception網(wǎng)絡的精確度、召回率以及F1分數(shù)值均為最高,說明該網(wǎng)絡對礦工表情識別性能最好。雖然從訓練時間上,CNN+RNN優(yōu)于改進miniXception,且其精確度和參數(shù)數(shù)量都與改進miniXception相接近,但其召回率與F1分數(shù)卻大幅度落后改進miniXception。其次改進miniXception相對于改進前的網(wǎng)絡,其訓練時間和參數(shù)沒有明顯變化,但在精確度、召回率和F1分數(shù)3個指標上都得到了提升,這說明改進miniXception在精確度與召回率之間的平衡性最好,網(wǎng)絡整體質量更優(yōu)。
其次,試驗記錄了6個網(wǎng)絡訓練過程中的損失函數(shù)數(shù)值(此處采用二值交叉熵損失函數(shù),每2次訓練記錄1次數(shù)值),仿真結果如圖8所示。從圖8分析可知,改進miniXception初始損失值較小,收斂速度最快,經(jīng)過100次訓練最先趨于平穩(wěn)狀態(tài),并且其穩(wěn)定后的損失值相對最小,最小均值趨于0.086,說明該網(wǎng)絡作為表情識別模型性能最優(yōu)。
圖8 多個網(wǎng)絡的損失曲線對比Fig.8 Comparison of multiple network loss curves
為測試改進miniXception對包含多個礦工的圖像表情識別效果,實驗整理了一套多礦工圖像數(shù)據(jù)集,并對比分析改進miniXception與Xception在多目標復雜背景圖像數(shù)據(jù)集上的識別結果。如圖9所示,第1行為Xception網(wǎng)絡的識別結果,第2行為改進miniXception網(wǎng)絡的識別結果。在圖9(a)中,Xception在復雜背景圖像中存在漏檢情況,圖9(b)中Xception出現(xiàn)錯誤識別,表情類型應為高興,而Xception 識別為中性,反觀改進miniXception在2幅圖中未出現(xiàn)異常情況。對比可以看出,改進miniXception在識別結果上優(yōu)于Xception,可以識別更多的目標人臉,對于多目標圖像中礦工表情識別的效果較好。
圖9 多目標圖像礦工表情識別效果對比Fig.9 Comparison of multi-objective image classification effects
研究使用混淆矩陣作為衡量各模型識別效果的指標,混淆矩陣可以一定程度上反映各組表情之間混分的情況,如圖10所示。每個網(wǎng)絡對高興一組表情的識別正確率分別為73%,70%,85%,88%,92%以及97%,為正確率最高的一組表情。在圖10(a)中,simpleCNN對厭惡、恐懼以及驚訝3組表情的識別能力較差,預測標簽為恐懼的一列數(shù)值顯示這3種表情的預測結果相持平,難以被區(qū)分;圖10(b)中ResNet對厭惡一組表情無法進行識別,并且對生氣一組表情進行了錯誤識別,其預測值中厭惡的正確率大于生氣;圖10(c)中Xception對所有表情都正確地進行分類,而且對于厭惡一組表情其預測值沒有其他標簽的預測傾向;圖10(d)中CNN+RNN的識別結果也相對較好,識別結果與Xception類似,且各個表情識別的正確率相對較高;圖10(e)為原始miniXception網(wǎng)絡混淆矩陣,恐懼與沮喪2組表情識別率低于70%,生氣、厭惡、驚訝和中性的識別率均在70%至90%,對高興一組的識別率最高,大于90%,其中厭惡和中性2組表情識別率與改進后的miniXception對應相等,但其他表情類別識別率均低于改進miniXception網(wǎng)絡;圖10(f)中所采用的改進miniXception網(wǎng)絡,其混淆矩陣顯示各組表情正確率都高于其他網(wǎng)絡,識別正確率率達到97%。同時生氣、厭惡、驚訝以及中性這4組表情識別正確率分別達到86%,76%,88%,72%,識別結果較好。而恐懼和沮喪2組表情的正確率只有67%和63%,一方面是因為現(xiàn)實生活中這2種表情具有一定的相似性,易于混淆;另一方面是因為這2組表情的訓練圖片數(shù)量過少,使得網(wǎng)絡對2種表情的圖像特征學習不夠充分,最后是由于負面樣本數(shù)據(jù)有限,致使網(wǎng)絡無法很好學習到錯誤樣本與正確樣本之間的區(qū)別,從而對于易混淆的多種表情難以得到較高的識別正確率。
圖10 混淆矩陣對比Fig.10 Comparison of confusion matrix
1)改進miniXception能夠學習到具有代表性的面部表情特征,如眉毛、眼睛、鼻子以及嘴等,增強了對五官特征的關注度、削弱了對多余區(qū)域的關注度;改進miniXception得到的混淆矩陣中生氣、恐懼、高興、沮喪以及驚訝這4組表情的識別率都高于其他網(wǎng)絡,其中對高興一組表情識別率最高,同時該網(wǎng)絡的損失曲線也相較其他網(wǎng)絡收斂更快、損失值最低。
2)改進miniXception通過訓練對礦工面部表情能夠提取到合適的特征,表情識別結果較好,網(wǎng)絡整體準確率相較其他網(wǎng)絡最高,其精確度與召回率之間的平衡性最好,說明通過改進miniXception搭建的礦工面部表情識別模型具備很好的實用性。
3)井內工作環(huán)境復雜,長期與外界環(huán)境相阻隔,礦工很容易焦慮疲憊,通過監(jiān)視礦工的面部表情信息能夠實時掌握每個礦工的工作以及情緒狀態(tài),可及時對身心疲憊的礦工進行調休,有利于礦井內的人性化管理;通過該系統(tǒng)也可以預防并杜絕由于礦工個人情緒原因所造成的煤礦事故,從而提升礦井作業(yè)的安全等級。