?

基于面部特征的疲勞駕駛檢測方法研究

2021-12-24 01:43汪洪濤謝牡丹
關鍵詞:多任務級聯卷積

汪洪濤 謝牡丹 潘 昊*

(武漢理工大學網絡信息中心1) 武漢 430070) (武漢理工大學計算機與人工智能學院2) 武漢 430070)

0 引 言

疲勞駕駛是造成交通事故的重要原因之一.在中國,每年有30%以上的公路交通事故與疲勞駕駛有關[1].目前,疲勞駕駛的檢測方法主要有基于心電圖、腦電圖等生理特征的疲勞檢測方法;基于車道偏移、轉向盤角度、車速等車輛行為特征的疲勞檢測方法;以及基于駕駛員眼睛、嘴巴等面部特征的疲勞檢測方法[2].

其中基于面部特征的疲勞檢測方法具有非接觸、低成本等優點逐漸成為研究熱點.近年來,采用卷積神經網絡的面部檢測算法已經逐步成為了主流[3].Zhang等[4]提出了一種簡單而有效的特征聚集網絡(FANet)框架,用以構建一種新型的單極面部檢測系統,框架的核心思想是利用一個卷積神經網絡固有的多尺度特性聚合高級語義特征映射的不同尺度的上下文線索.Triantafyllidou等[5]提出了一種基于面部檢測的輕量級深度卷積神經網絡.然而,由于面部表情存在表情夸張、姿態變化、面部遮擋等客觀不可控的因素,僅依靠單一的結構模型進行檢測很難產生良好的泛化能力,使得模型在實際應用中的魯棒性較差.為了克服這一不足,近年來出現了一系列改進的深度學習方法,其中級聯CNN采用級聯結構可以在訓練大量樣本的過程中捕捉到面部區域中各種復雜多變的情況[6].

文中提出了一種基于面部特征和多指標融合的方法,生成對抗網絡的弱光增加網絡[7],對駕駛員圖像進行預處理,通過多任務級聯卷積神經網絡檢測視頻數據集中的面部,定位關鍵點,再將整張面部圖像送入到FSR-Net(fatigue super-resolution network)多任務疲勞狀態識別網絡,同時檢測眼部和嘴部狀態,通過PERCLOS等多個指標進行疲勞駕駛判斷.

1 基于生成對抗網絡的弱光增強

疲勞駕駛檢測主要是根據面部特征信息來進行判斷,由于車輛在低光照或夜間行駛時,采集到的視頻圖像對比度低、能見度差、ISO噪聲高,這大大影響了測試的精度.為了解決這些問題,研究人員提出了大量的算法,從基于直方圖或基于認知的算法[8-9]到基于機器學習或深度學習的算法[10-11].本文提出一種基于生成對抗網絡的弱光增強算法對駕駛員弱光圖像進行增強.

1.1 EnhenceGAN網絡結構設計

為了突破成對訓練數據集以及真實圖像監督標簽的限制,設計了EnhenceGAN網絡結構,提出了一個針對圖像全局和局部的雙鑒別器進行微光增強的機制,以及一種自正則化感知損失的方法來約束微光輸入圖像與其增強后的圖像之間的特征距離,并結合對抗性損失進行訓練,見圖1.

圖1 EnhenceGAN整體架構

由圖1可知:EnhenceGAN網絡包含一個注意力引導的U-Net[12]生成器和一個雙鑒別器,U-Net生成器是一個帶有殘差的編解碼網絡,由8個卷積塊實現,每個卷積塊由兩個3×3的卷積層組成,并加入attention模塊.雙鑒別器是對全局和局部信息進行定向.對于全局鑒別器,通過引入相對論鑒別器函數,并用Leat square GAN(LSGAN) 損失代替相對論鑒別器中的sigmoid函數,生成全局鑒別器D和生成器G的損失函數,為

Exf~Pfake[DRa((xf,xr)2]

(1)

Er~Preat[DRa(xr,xf)2]

(2)

對于局部鑒別器,每次從輸出和真實圖像中隨機裁剪5個圖像塊,采用LSGAN作為對抗性損失,為

Ex~Pfake-patches[(Dxf-1)2]

(3)

(4)

利用感知損失方法限制低光輸入和增強正常光輸出之間的VGG-feature距離,構建感知損失與對抗損失進對抗的損失函數LSFP,為

(5)

式中:IL為輸入低光圖像;G(IL)為生成器的增強輸出;φi,j為在ImageNet上預訓練VGG-16模型中提取的特征映射;i為第i個最大池化層;j為第i個最大化池化層后的第j個卷積層;Wi,j,Hi,j為提取的特征圖的維數.式中強調了其自正則化的作用,即在增強前后圖像內容特征保持不變,從而約束了圖像除光照以外的特征信息.

EnhenceGAN弱光增強的具體步驟為:

步驟1取輸入RGB圖像的亮度分量I,將其標準化至[0,1].

步驟2對編碼器中的特征圖用1-I進行加權,得到attention map.

步驟3將attention map大小調整到對應的特征圖大小.

步驟4將attention map與解碼器中的特征圖進行加權.

步驟5將attention與U-Net轉換中各部分的特征進行逐元素相乘.

步驟6網絡輸出的部分和attention map相乘得到一個殘差.

步驟7殘差和原圖相加,得到最終的增強后圖像.

1.2 實驗及結果

建立一個非配對的含2 500張低光圖像和1 000張正常圖像的數據集,最開始從0訓練100次迭代,學習率為1×10-4,再訓練100次迭代,學習率線性衰減為0.

對實驗結果采用自然圖像質量評估器(NIQE)進行定量比較,通過五種方法在五個公共數據集上的NIQE進行比較,結果見表1.

表1 五種方法在五個數據集上的NIQE值

由表1可知:EnhenceGAN在弱光圖像增強方面總體上優于其他方法.

2 基于改進的多任務級聯卷積神經網絡的面部檢測

2.1 基本網絡架構改進

改進后的MTCNN網絡結構圖見圖2.P-Net以大小為12×12×3的圖像為輸入,可以有效地從輸入圖像中獲取粗糙的面部窗口.P-net中的C1、C2和C3是卷積層,內核大小為3×3.

圖2 IMP-MTCNN網絡結構

Relu、池化和歸一化在每個卷積階段的輸出之后進行. O-Net的詳細參數見表2,由8層組成.O-Net以大小為48×48×3的圖像為輸入,可以有效預測相應的面部地標定位和邊界盒回歸.

表2 IMP-MTCNN網絡層參數

前六層是卷積層,后兩層是內積層.該方法中卷積和全連接層的非線性激活函數采用ReLU函數.通過對比實驗,選擇了固定核尺寸和濾波器尺寸三種卷積層的參數,全連接層和softmax輸出層分別將輸出卷積特征映射為256-d和16-d特征向量.最后softmax輸出層有16個神經元,預測相應的面部地標定位和邊界盒回歸.與O-Net相同,P-Net和R-Net中的參數是根據P-Net中相同策略下的可比實驗設置的,目的是得到相應的精確輸出.

該層網絡的輸入特征更為豐富,在網絡結構的最后是一個更大的256的全連接層,保留了更多的圖像特征,同時再進行面部判別、面部區域邊框回歸和面部特征定位,最終輸出面部區域的左上角坐標和右下角坐標與面部區域的五個特征點.O-Net擁有特征更多的輸入和更復雜的網絡結構,具有更好的性能,這一層的輸出作為最終的網絡模型輸出.

2.2 損失函數

IMP-MTCNN的聯合訓練是一個多任務的訓練過程,包含:人臉非人臉分類、邊界框回歸以及面部關鍵點定位.IMP-MTCNN中有一個指標值,通過該值確定是否需要計算其中某一項的損失,最終的IMP-MTCNN損失函數為

(2)

2.3 在線困難樣本挖掘

為了使學習到的網絡模型有更強的泛化能力,在網絡訓練過程中,采用的是在線困難樣本挖掘(online hard example mining,OHEM)算法.選取前70%作為困難樣本,計算出相應的梯度用于反向傳播過程,OHEM算法為:

輸入 ground truth標簽序列gt_label,預測標簽列pred_label

步驟1初始化 ratio←0.0, break point←0

步驟2loss←CrossEntropyLoss

步驟3sorted←loss/sum

步驟4For i, v in sorted[0] do

步驟5If ratio≥0.7

步驟6break

步驟7Ratio+=v

步驟8End for

步驟9bp←sorted[1][:break point]

步驟10topK←loss[bp]

步驟11End

輸出 前70%困難樣本的梯度針對在線困難樣本挖掘方法的效果評估,在O-Net中訓練了另一個不使用該策略的模型,并比較了相應的損失曲線.這兩個模型的結構和參數是相同的,結果見圖3.

圖3 損失曲線

由圖3可知,OHEM損失曲線低于不使用該策略的模型,即驗證了困難樣本挖掘有助于提高方法的性能.

2.4 實驗結果與分析

實驗中所使用數據的是江蘇省公安廳構建的PSD-HIGHROAD數據庫作為數據集,包含了不同交通車輛在不同光照條件下大約15 000張駕駛員的圖像.該數據集涵蓋了江蘇省大部分高速公路上的車輛圖像,隨機選取10 000張圖像訓練IMP-MTCNN模型.

不同車輛行駛過程中IMP-MTCNN與級聯CNN的測試效果對比見圖4.

圖4 不同環境下的測試實例

由圖4可知,第一列為PSD-HIGHROAD數據集中的原圖,第二列為級聯CNN的面部檢測結果,第三列為級聯CNN面部檢測結果放大圖,第四列為IMP-MTCNN面部檢測結果,最后一列為IMP-MTCNN面部檢測結果放大圖.IMP-MTCNN不管是在白天還是黑夜都能很準確地檢測到駕駛員的臉部并且精確定位出面部關鍵點,相比于級聯CNN,本文的IMP-MTCNN有著更高的精確度以及更低的誤檢率,在復雜的駕駛環境中能夠保持良好的性能.

IMP-MTCNN與原始MTCNN、YOLOv3、級聯CNN和聯合級聯的檢測性能見表3.

表3 檢測性能比較 單位:%

由表3可知:IMP-MTCNN模型在正樣本上的檢測精確度達到了91.87%,負樣本上為80.26%,均比原始MTCNN、YOLOv3 等方法的檢測精確度高.并且 IMP-MTCNN平均誤檢率僅為1.91%,與其他幾種方法相比,誤檢率明顯降低.

3 基于FSR-Net的多任務疲勞狀態檢測

3.1 VGG網絡

VGG網絡是由牛津大學計算機視覺組(visual geometry group)與Google DeepMind公司共同研發出來的一種新的深度卷積神經網絡.VGG網絡是一個16~19層深的卷積神經網絡,深層的結構使得網絡性能大幅提高,同時拓展性、泛化性也非常好,適合用來提取圖像特征.

VGG結構簡單,由五個卷積層和池化層的組合、三層全連接層、一個Softmax輸出層構成,所有隱層都采用非線性修正ReLU激活函數.輸入為224×224的RGB圖像,唯一做的預處理是歸一化處理,再經過5層卷積層,卷積層中卷積核的大小為3×3,部分卷積核為1×1,卷積層步長設為一個像素.每個卷積層后都有一個池化層,池化窗口大小為2×2,步長為2.接著是三個全連接層,通道數分別為4 096,4 096,1 000.最后一層是用來分類的softmax層.

VGG網絡具有小卷積和深網絡的特點,這樣使用參數的減少了,同時還產生更豐富的非線性映射.訓練時,先訓練級別簡單,層數較少的VGG的A級網絡,再初始化后面的復雜模型,加快了訓練的收斂速度,同時采用多尺度的方法,增加了訓練數據,提高了準確率.

3.2 改進的多任務疲勞狀態檢測網絡FSR-Net

為了更準確地判斷駕駛員是否疲勞駕駛,通過對VGG的網絡結構進行改進,設計了一種多任務卷積神經網絡結構FSR-Net,見圖5.

圖5 FSR-Net網絡結構示意圖

構造的FSR-Net網絡模型是一個9層的大型總面積神經網絡,由三個SE_module模塊、一個卷積層、一個最大池化層、一個全局平均池化層、兩個全連接層、一個多任務輸出層組成.在卷積層結構中連續插入了三個SE模塊,從空間維度上簡化網絡學習,對特征通道之間的內在聯系進行建模,自適應地重新校準通道方向的相應特征,從而提升了網絡性能.

FSR-Net網絡模型中,相關參數見表4~5.

表4 FSR-Net網絡層參數

在實際駕駛環境中,采集到的面部圖像尺寸大小不一,先統一調尺寸為112×112,再送入到FSR-Net網絡中進行檢測.其中三個SE_module模塊輸入特征通道數分別為32、64、128,輸出圖像尺寸分別為56×56×64、28×28×128、14×14×256.

卷積層的卷積核為3*3,步長為1,填充方式

表5 SE_module_1網絡層參數

為“SAME”,用0填充邊界,輸出圖像尺寸為14×14×512,并將圖像送入到最大池化層,pool_size為(2,2),對鄰域內特征點取最大.在全局平均池化則直接把整幅特征圖進行平均池化,整合全局特征,防止過擬合.經過最大池化層和全局平均池化層,輸出特征圖尺寸為1×1×512.兩個全連接層dense_1、dense_2的節點個數分別為2 048、1 000.通過全連接,把卷積提取的局部特征重新通過權值矩陣組裝成完整的圖像.

3.3 多指標整合的疲勞駕駛判斷

當駕駛員出現疲勞時,會出現打哈欠、眼睛長時間閉合等現象,如果單一地對眼部或嘴部進行檢測出現誤判的可能性較大.在檢測模型中同時對眼睛和嘴巴進行多指標檢測,將大大提高檢測的精度.

3.3.1眼部疲勞狀態判斷

目前權威的疲勞駕駛判斷指標為美國聯邦公路管理局和美國國家公路交通安全管理局提出的PERCLOS(眼瞼閉合度).

當人出現疲勞時,眨眼頻率會增加,通過駕駛員眼睛閉合幀數占總幀數的比例來近似計算PERCLOS,為

(3)

正常狀態下,Ep值在(0~0.15),當Ep>0.4時,表示該駕駛員當前已經是疲勞狀態.

人在疲勞狀態時,除了眨眼頻率增加,閉眼時間也會延長,持續閉眼時間也可以作為疲勞駕駛的判斷指標.對連續幀圖像中眼部狀態進行識別分類,當識別結果為閉合時,記錄此時幀圖像的序列號為F0,統計眼睛持續閉合幀數,直到眼睛睜開,T0表示采集每一幀圖像所占的時間間隔.持續閉眼時間定義為

ET=(Fn-F0)×T0

(4)

正常人平均每次眨眼時間為0.2~0.4 s,若閉眼時間超過1 s,無論是否疲勞都屬于危險駕駛.本研究將Ep閾值設為1 s.

將眨眼頻率和持續閉眼時間同時作為判斷指標,能有效減少誤判.

3.3.2嘴部疲勞狀態判斷

人處在疲勞狀態時,還會伴隨著打哈欠,因此對嘴部狀態的檢查也是判斷疲勞駕駛的有效補充.

駕駛員在說話時,嘴巴的狀態也是不斷變化的,但是張合的時間不像打哈欠那樣持續較長,有關研究表明,一次打哈欠的時間大約為3 s.通過選取嘴部持續張開時間能很好地與說話狀態分開.嘴部的持續張開時間的定義為

MT=(MN-M0)×T0

(5)

式中:M0為嘴部持續張開幀的首位圖像幀序列號;MN為持續幀數;T0為每一幀圖像的時間間隔.若持續時間超過3 s則此時為打哈欠狀態.當人疲勞時,會持續打哈欠,根據某段時間內打哈欠的次數可以判斷疲勞狀態.研究中,選取2 min作為檢測時長,在某時間段內打哈欠次數Nyawn大于3,則判斷駕駛員為疲勞狀態.

3.4 FSR-Net實驗及結果

實驗數據集來自公開的YawDD[13]視頻,包含不同性別、不同種族的駕駛員在不同光照環境下拍攝的駕駛視頻.通過將選取的視頻數據集轉換成幀圖像,利用IMP-MTCNN算法檢測出人臉,并截取駕駛員的面部圖像,制成包含46 652張面部圖像的數據集.在訓練過程中,將數據集按比例分成包含40 909張圖像的訓練集,包含4 730張圖像的測試集,以及包含1 013張圖像的驗證集.訓練采用小批量梯度下降的方式,以keras的ReduceLROnPlateau學習率適應方法,初始學習率設置為0.01,若數據無進步,自動減少學習率,學習率的下邊界設置為0.000 01.訓練結果見圖6~7.

圖6 訓練損失曲線

圖7 準確率曲線

由圖5可知,在訓練開始階段損失值下降幅度很大,說明學習率合適且進行梯度下降過程,在學習到一定階段后,損失曲線趨于平穩.由圖6可知,隨著時間推移,眼睛和嘴巴的識別準確度在上升,達到一定程度后,兩者準確度相差不大,說明模型狀況良好.

利用設計的FSR-Net網絡及疲勞駕駛判斷指標,對YawDD中六段視頻進行了測試,測試結果見表6.

表6 疲勞駕駛判斷算法測試結果

測試結果最終的判斷準確率達到了97.4%,實驗結果表明,基于FSR-Net網絡以及疲勞駕駛判斷指標,針對復雜多變的實際駕駛環境也有著較高的疲勞檢出率.

4 結 束 語

針對在光照不好的條件下面部圖像對比度低、ISO噪聲高的問題,采用生成對抗網絡EnhenceGAN對圖像進行弱光增強,從而獲取到較清晰的面部圖像.提出了一個改進的正則化算法的多任務級聯卷積神經網絡IMP-MTCNN,解決了面部檢測速度慢以及關鍵點定位不準確的問題.提出一種基于VGG網絡改進的多任務疲勞狀態識別網絡FSR-Net,同時對眼部和嘴部狀態進行檢測,實現多任務分類,解決了單特征檢測率低以及多個神經網絡檢測多個面部特征效率低的問題.提高了檢測的精確度,但是由于實際駕駛場景復雜多變,存在著駕駛員戴口罩及墨鏡等面部遮擋、IMP-MTCNN定位關鍵點耗時較長、公開的疲勞駕駛數據集樣本較少以及缺少頭部姿態和眼睛視線等更多的疲勞指標等實際情況,以及對疲勞駕駛檢測算法的優化,是后續研究的重點.

猜你喜歡
多任務級聯卷積
鈾濃縮廠級聯系統核安全分析
結合自監督學習的多任務文本語義匹配方法
基于3D-Winograd的快速卷積算法設計及FPGA實現
卷積神經網絡的分析與設計
基于中心化自動加權多任務學習的早期輕度認知障礙診斷
從濾波器理解卷積
富集中間組分同位素的級聯
—— “T”級聯
基于傅里葉域卷積表示的目標跟蹤算法
基于判別性局部聯合稀疏模型的多任務跟蹤
基于級聯MUSIC的面陣中的二維DOA估計算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合