楊 歡,陳小強,雷嘉瑩,王 英
(1.蘭州交通大學 自動化與電氣工程學院,甘肅 蘭州 730070;2.光電技術與智能控制教育部重點實驗室,甘肅 蘭州 730070)
隨著我國高速鐵路的快速發(fā)展,列車司機作業(yè)由傳統(tǒng)的列車操縱型,轉變?yōu)閷α熊噷崟r運行信息的長時間監(jiān)控[1]。長時間單調駕駛會導致駕駛員疲勞與嗜睡程度顯著增加,在列車事故的發(fā)生原因中,列車司機疲勞駕駛所占比例最大。因此,如何減少由疲勞駕駛造成的列車事故,提高列車司機駕駛的安全性尤為重要。
國內外對疲勞駕駛檢測方法的研究主要有三種:基于面部表現的疲勞檢測方法[2-10]、基于生理指標的接觸式測量方法[11]和基于駕駛行為特性的疲勞檢測方法[12]。基于生理指標的檢測方法需要駕駛員佩戴檢測設備,會影響駕駛舒適度;基于駕駛行為特性的檢測方法受駕駛員操作習慣和路況等因素的影響,檢測效果受到限制;基于面部表現的檢測方法易操作、成本低,無需穿戴特殊設備,但要求較高的實時性和魯棒性,是近年來的研究熱點。
通過機器視覺相關算法提取駕駛員面部特征來判斷疲勞程度是基于機器視覺疲勞檢測的主要方法。文獻[2]將人臉圖像進行Gabor變換并提取特征模型,再結合隱馬爾可夫模型進行疲勞檢測。文獻[3]采用自商圖弱化光照影響,建立全局形狀模型,以適應大角度頭部姿態(tài)變化。文獻[4-5]提出了基于主動形狀模型人臉特征定位算法,提高了疲勞檢測的準確性和魯棒性。文獻[6-7]使用近紅外照明方法,分別獲得暗瞳圖像和亮瞳圖像并進行差分,從而準確定位瞳孔位置。文獻[8-9]分別基于膚色特征和紋理特征,采用灰度投影獲得投影曲線并結合有關人臉的先驗知識定位眼睛位置。文獻[10]通過模板匹配定位眼睛位置,提取眼睛位置的灰度特征進行眼睛狀態(tài)判別。文獻[2]采用機器學習的方法進行眼睛定位,提高了疲勞檢測的準確性和魯棒性,但要求臉部正視攝像頭,多視角情況下難以準確測量眼睛的特征參數。文獻[3-5]解決了多視角變化時面部特征定位困難的問題,但多視角情況下疲勞特征參數會隨著頭部姿態(tài)的不同發(fā)生變化。雖然文獻[6-7]基于近紅外照明的方法可以較好地定位眼睛位置,但該類方法需要穩(wěn)定光源且環(huán)境光強度變化較小。由于眼眉和眼瞼的影響,難以準確定位特征區(qū)域,因此文獻[8-10]適用于人眼粗定位。
由于上述方法未考慮駕駛員頭部姿態(tài)變化對眼睛特征參數的影響,因此本文深入分析了列車司機頭部姿態(tài)變化和凝視方向對眼睛特征參數的影響,結合監(jiān)督下降法SDM和頭部姿態(tài)估計POSIT,提出了采用逆投影變換和凝視修正的眼睛疲勞特征參數提取算法,實現了眼睛特征參數的準確提取,減小了頭部姿態(tài)變化對眼睛特征參數的影響。
疲勞檢測流程如圖1所示。輸入采集的駕駛員臉部圖像,通過人臉檢測算法和特征點定位算法獲得感興趣的參數——投影眼睛開合度和頭部姿態(tài)角度。后續(xù)算法通過這些參數對原始眼睛開合度進行修正。首先,利用頭部姿態(tài)角度分別計算逆投影修正因子p1和凝視修正因子p2。再利用兩個修正因子對投影眼睛開合度進行修正。最后使用修正后的眼睛開合度進行疲勞檢測。
圖1 疲勞檢測算法流程
為了解決駕駛員頭部姿態(tài)變化導致人臉檢測和特征點定位的困難,采用基于Adaboost的人臉檢測算法搜索人臉區(qū)域,在人臉區(qū)域中運用SDM算法定位人臉特征點,根據眼睛特征點的分布計算眼睛疲勞特征參數。
由于SDM算法收斂到人臉特征點前,需要獲得人臉區(qū)域,再從該區(qū)域定位初始位置進行迭代計算。因此,人臉檢測的定位直接影響SDM算法的準確性和收斂穩(wěn)定性。此外,人臉檢測的速度會影響疲勞檢測的實時性,是疲勞檢測算法能否快速做出反應的重要因素。Viola快速人臉檢測算法[13]使用簡單的Haar特征構成大量弱分類器,Adaboost算法從眾多的弱分類器中挑選出分類能力最強的若干弱分類器,并將其“串聯(lián)”為一個強分類器。為了提高效率和準確率,使用積分圖加快了Haar特征的計算速度,且將不同復雜度的強分類器“串聯(lián)”形成最后的人臉檢測器。
SDM算法是一種比較新的人臉對齊算法[14],從非線性最小二乘函數在不同點的采樣值出發(fā),試圖尋找一個函數值下降的方向序列,即{R}和。由于SDM 算法無需目標函數二次可導,也不需要計算Jacobian和Hessian矩陣,因此具有廣泛的應用領域。其訓練步驟如下:
步驟2最小化損失函數。SDM算法采用平方誤差函數作為損失函數,評估預測的特征點坐標與真實坐標的差距。設xk為第k次迭代后的特征點位置,φk為xk處的SIFT特征??傻?/p>
( 1 )
( 2 )
求解式( 2 )可以得到Rk和bk。
xk+1=xk+Rkφk+bk
( 3 )
從而獲得新的特征點位置xk+1。經過若干次迭代,直到收斂至x*。整個過程中產生一系列{R}和的值,這些參數可進行人臉特征點定位的預測。人臉檢測與特征點定位結果如圖2所示。
圖2 人臉檢測與特征點定位結果
為了不增加成本,避免駕駛員穿戴額外設備,采用軟件估算頭部姿態(tài)角度。如圖3所示,任意多視角頭部姿態(tài)可由圖3中表示的3種基本頭部姿態(tài)(分別稱為Pitch、Roll和Yaw)疊加而成。采用頭部姿態(tài)評估算法POSIT[15-16]計算這3種基本頭部姿態(tài)角度。
圖3 多視角分解示意圖
頭部姿態(tài)估計分為兩步:
步驟1用解線性方程組的方法求解旋轉矩陣R和平移向量T。
R=Rx(α)Ry(β)Rz(γ)
( 4 )
( 5 )
Rx(α)、Ry(β)和Rz(γ)分別為
( 6 )
( 7 )
( 8 )
式中:α、β和γ分別表示繞x、y和z軸旋轉的角度。
步驟2利用旋轉矩陣和平移向量,更新比例系數,再由比例系數更新所有點,迭代求解。
( 9 )
式中:n為人臉特征點個數;qi為第i個待測人臉特征點;pi為第i個標準模型特征點;C為伸縮因子;R為旋轉矩陣;T為平移矩陣。
臉部疲勞信息中最明顯且最重要的判斷依據是眼睛開合度。駕駛員在清醒時眼睛是處于自然睜開狀態(tài);若駕駛員處于中度疲勞時,會頻繁眨眼且閉眼時間加長;若駕駛員處于疲勞狀態(tài),眼睛則處于閉合狀態(tài)。因此,在基于機器視覺的疲勞檢測方法中,以眼睛的開合度表征駕駛員的疲勞程度最為直接。如圖4所示,眼睛的特征參數是通過計算其寬高比獲得的,即
(10)
式中:h和w分別表示眼睛的高度和寬度。
圖4 眼睛特征參數提取方法
由于駕駛員在駕駛過程中較難保持某一姿態(tài)不變,其頭部姿態(tài)的變化也難以得到預測。因此,傳統(tǒng)的基于機器視覺的疲勞檢測方法往往因駕駛員頭部變化而產生干擾,在駕駛員低頭時會發(fā)生誤檢。研究發(fā)現,引起誤檢主要有兩方面原因:頭部姿態(tài)變化導致眼睛的特征參數在攝像機感光平面上投影的變化;由于凝視方向導致眼瞼位置發(fā)生變化。
在不眨眼和凝視方向固定的情況下,眼睛的開合度不受頭部姿態(tài)變化影響。但頭部姿態(tài)的不同,會影響眼睛在成像平面的投影形狀。表1列出了不同狀態(tài)和不同頭部姿態(tài)下眼睛的開合度均值,其中Pitch旋轉和Yaw對眼睛開合度影響較大。
表1 不同狀態(tài)和不同頭部姿態(tài)下眼睛的開合度均值
圖5 眼睛開合度參數建模
如圖5所示,假設成像平面與xoy平面平行。在成像平面上,眼睛的寬度和高度的投影與原來眼睛的寬度和高度比較,發(fā)生了不同程度的變化,直接計算眼睛開合度無法反映真實的眼睛狀態(tài)。任意眼睛的空間方向可以看作是標準眼睛位置在3個坐標軸上的旋轉結果。設眼睛的高度和寬度分別為向量H和向量W的模長。眼睛在空間中的旋轉可視為H和W在空間中的旋轉。設H=[0h0],W=[w0 0],繞坐標軸旋轉的角度分別為α、β和γ,根據羅德里格旋轉公式可計算出旋轉后的向量為
H′=h[sinαsinβcosγ-cosαsinγ,sinαsinβsinγ-cosαcosγ,sinαsinβ]
(11)
W′=w[cosβcosγ,cosβsinγ,-αsinβ]
(12)
其在xoy平面的投影向量為
Hp=h[sinαsinβcosγ-cosαsinγ,sinαsinβsinγ-cosαcosγ,0]
(13)
Wp=w[cosβcosγ,cosβsinγ,0]
(14)
投影向量的模長分別為
(15)
(16)
將式(15)與式(16)相除可得
(17)
式(17)左邊為眼睛在投影面的開合度,式(17)右邊為眼睛的真實開合度乘以一個比例系數。將式(17)代入式(10)可得
(18)
rt=rp×P1
(19)
式中:P1為逆投影修正系數。
研究發(fā)現,凝視方向與頭部姿態(tài)有關,且凝視方向對判斷疲勞程度具有較大影響,其中向下凝視對眼睛特征參數的影響較大,向上凝視對眼睛特征的影響較小。實驗分別測定了5組向下凝視0°、5°、10°、15°、20°、25°、30°時眼瞼的位置,實驗數據見表2,在向下凝視0°時認為眼睛無閉合。部分實驗結果如圖6所示。
表2 凝視方向與眼睛開合度實驗數據
(a)向下凝視0°(b)向下凝視5°(c)向下凝視10°(d)向下凝視15°(e)向下凝視20°(f)向下凝視25°
(g)向下凝視30°圖6 凝視與眼瞼關系實驗結果
使用最小二乘法將實驗數據進行擬合,擬合結果見表3,三次多項式擬合誤差最小,因此采用三次多項式作為擬合函數。
表3 凝視修正因子擬合誤差
設基于凝視修正的眼睛特征修正系數p2=1-f(θ),其中f為三次擬合函數,其修正公式為
(20)
結合式(19)和式(20),綜合兩次修正方法可得
(21)
CMU研究所經過實驗和論證,提出了度量疲勞/瞌睡物理量的PERCLOS準則,目前該方法是公認最有效的疲勞評測方法。PERCLOS原理為單位時間內眼睛閉合一定時間所占的比例,若該值大于設定的閾值就認為產生了疲勞狀態(tài)[17]。
(22)
視頻中每幀的時間固定,將檢測周期時間和眼睛閉合時間改為檢測周期幀數和眼睛閉合幀數,且閾值設定為0.4時,檢測效果最好,因此式(22)可以修改為
(23)
PERCLOS方法中有EM、P70和P80三種不同的疲勞判斷標準,分別表示眼睛閉合了50%、70%和80%。其中P80標準判斷疲勞程度效果最好,因此根據P80定義眼睛狀態(tài),如式(24)所示,當眼睛的開合度小于閾值T時,認為眼睛閉合了80%。通過反復測定眼睛在正常和疲勞狀態(tài)下的開合度,設定閾值T=0.18。
(24)
由于疲勞檢測缺乏公用測試數據庫,因此本文采用自行拍攝視頻對算法進行實驗驗證,使用web攝像機,分辨率為640×480,每秒15幀。在實驗室環(huán)境下拍攝了兩段視頻,每段10 s。光源采用人工光照且光線均勻,實驗人員無佩戴墨鏡和口罩。實驗環(huán)境,CPU為Intel E3-1231 v3四核 3.4 GHz;內存為8 G。考慮檢測的靈敏性,PERCLOS檢測周期設定為30幀。
圖7的實驗數據中無疲勞狀態(tài)產生。如圖7(a)和圖7(b)所示,由于駕駛員頭部姿態(tài)變化的影響,眼睛開合度修正效果較明顯。當Pitch值增大時,眼睛的開合度逐漸減小。第100~110幀眼睛開合度過大是檢測誤差所致。如圖7(c)所示,修正后的眼睛特征參數不會觸發(fā)疲勞警戒條件。
(a)眼睛開合度對比
(b)頭部運動變化
(c) Perclos值對比圖7 有頭部姿態(tài)變化(Pitch、Yaw)檢測結果
圖8的實驗數據中出現三次疲勞狀態(tài)。分析圖8(a)與圖8(b),疲勞狀態(tài)下駕駛員的頭部姿態(tài)基本不變且閉眼時間加長。圖8(a)說明疲勞狀態(tài)下修正因子對眼睛開合度幾乎無影響,第84幀未檢測到人臉,眼睛開合度為0。圖8(c)為修正前后Perclos值對比,修正后相比修正前有略微延遲,延遲時間不超過0.6 s。
(a)眼睛開合度對比
(b)頭部運動變化
(c)疲勞狀態(tài)下Perclos值對比圖8 無頭部姿態(tài)變化檢測結果
表4為本文方法與文獻[5]方法在頭部姿態(tài)變化情況下疲勞檢測率與疲勞誤檢率實驗對比數據。在檢測率方面,文獻[5]較高,但在誤檢率方面,本文算法較低。原因如下:文獻[5]采用多疲勞特征,對疲勞狀態(tài)的判斷更加細膩且準確;本文算法考慮了頭部姿態(tài)對疲勞特征參數的影響,因此具有較低的誤檢率。文獻[5]算法無法識別駕駛員頭部運動狀態(tài),因此駕駛員低頭動作被視為點頭動作,判斷為“疲勞”狀態(tài)。
表4 頭部姿態(tài)變化情況下疲勞檢測準確率對比 %
圖9 疲勞檢測實驗結果對比
圖9為兩種算法在同一實驗中的對比結果。該實驗分為兩個階段:疲勞程度逐漸增加再逐漸減?。活^部姿態(tài)變化但無疲勞狀態(tài)。從圖9可以看出,第一階段時文獻[5]與本文算法基本一致,可以準確識別疲勞狀態(tài);第二階段由于頭部姿態(tài)變化,本文方法與實際疲勞狀態(tài)較接近。從實驗對比可以看出,本文的疲勞檢測方法在保證疲勞檢測準確率的同時,也可以在駕駛員頭部姿態(tài)變化的情況下,降低誤檢率。
本文研究傳統(tǒng)列車駕駛員疲勞檢測算法的不足之處,并提出基于逆投影修正和凝視修正的疲勞檢測方法。實驗結果表明:該方法有效修正了因頭部姿態(tài)變化引起的眼睛疲勞特征參數變化,從而為疲勞檢測算法提供了更可靠的眼睛疲勞特征參數,使得疲勞檢測算法魯棒性更高。
由于SDM算法和頭部姿態(tài)估計算法本身的限制,檢測范圍在-30°~30°之間(Pitch)和-45°~45°之間 (Yaw)變化,但由于抬頭對檢測影響較小,因此重點檢測0°~30°(Pitch)和-45°~45°(Yaw)。由于頭部姿態(tài)和凝視方向的共同影響,駕駛員低頭至10°~14°時,傳統(tǒng)的攝像機位置無法反映眼睛的真實狀態(tài)。因此攝像頭的安裝位置應在10°~14°為最佳。
下一步考慮多視角多特征綜合疲勞檢測。由于疲勞是駕駛員生理和心理共同作用的結果,因此駕駛員操作特征、生理特征等其他重要特征也值得深入研究。
參考文獻:
[1]郭孜政,潘毅潤,吳志敏,等.疲勞對高鐵司機持續(xù)性注意影響機制的ERP試驗研究[J].中國安全科學學報,2015,25(8):81-86.
GUO Zizheng, PAN Yirun,WU Zhimin,et al. ERP-based Study on Influencing Mechanism of Fatigue on High-speed Railway Drivers’ Sustained Attention[J]. China Safety Science Journal, 2015,25(8):81-86.
[2]楊海燕,蔣新華,王雷.一種基于人臉序列模式的機車駕駛員疲勞檢測方法[J].鐵道學報, 2012,34(5):53-58.
YANG Haiyan, JIANG Xinhua, WANG Lei. A Fatigue Detection Method for Vehicle Drivers Based on Face Image Sequence Pattern[J]. Journal of the China Railway Society,2012,34(5):53-58.
[3]張偉,成波,張波.駕駛人眼睛區(qū)域的魯棒性定位算法研究[J].物理學報,2012,61(6):104-112.
ZHANG Wei,CHENG Bo,ZHANG Bo. Research on Eye Location Algorithm Robust to Driver’s Pose and Illumination[J]. Acta Physica Sinica,2012,61(6):104-112.
[4]白中浩,焦英豪,白芳華.基于主動形狀模型及模糊推理的駕駛疲勞檢測[J].儀器儀表學報, 2015,36(4):768-775.
BAI Zhonghao, JIAO Yinghao, BAI Fanghua. Driving Fatigue Detection Based on Active Shape Model and Fuzzy Inference[J]. Chinese Journal of Scientific Instrument, 2015,36(4):768-775.
[5]白中浩,劉瀏,焦英豪,等.基于ASM的多特征融合駕駛員疲勞檢測方法[J].電子測量與儀器學報,2016,30(12):1877-1883.
BAI Zhonghao, LIU Liu, JIAO Yinghao, et al. Driving Fatigue Detection Based on ASM and Fusion of Multi-clues[J]. Journal of Electronic Measurement and Instrumentation,2016,30(12): 1877-1883.
[6]郭永彩,蘇渝維,高潮.基于FPGA的紅外圖像實時采集系統(tǒng)設計與實現[J].儀器儀表學報, 2011,32(3):514-519.
GUO Yongcai, SU Yuwei, GAO Chao. Design and Implementation of Real Time Infrared Image Collection System Based on FPGA[J]. Chinese Journal of Scientific Instrument, 2011,32(3): 514-519.
[7]GU H, JI Q, ZHU Z. Active Facial Tracking for Fatigue Detection[C]//Applications of Computer Vision.New York:IEEE, 2002:137-142.
[8]徐國慶.在線融合特征的眼睛狀態(tài)識別算法[J].計算機應用,2015,35(7):2062-2066.
XU Guoqing. Eye State Recognition Algorithm Based on Online Features[J]. Journal of Computer Applications,2015,35(7):2062-2066.
[9]KE L, KANG J. Eye Location Method Based on Haar Features[C]//2010 3rd International Congress on Image and Signal Processing (CISP). New York:IEEE, 2010,2: 925-929.
[10]李強.基于PERCLOS的列車司機駕駛疲勞檢測研究[D].北京:北京交通大學, 2014.
[11]白金蓬,黃英,江宜舟,等.駕駛狀態(tài)實時監(jiān)測系統(tǒng)設計[J].電子測量與儀器學報,2014,28(9):965-973.
BAI Jinpeng, HUANG Ying, JIANG Yizhou, et al. Design of Driving State Real-time Monitoring System[J]. Journal of Electronic Measurement and Instrumentation, 2014,28(9):965-973.
[12]吳超仲,張暉,毛喆,等.基于駕駛操作行為的駕駛員疲勞狀態(tài)識模型研究[J].中國安全科學學報,2007,17(4):162-165,177.
WU Chaozhong, ZHANG Hui, MAO Zhe, et al. A Model for Identifying Fatigue Status of Vehicle Drivers Based on Driving Operation[J]. China Safety Science Journal, 2007,17(4):162-165,177.
[13]VIOLA P, JONES M J. Robust Real-time Face Detection[J]. International Journal of Computer Vision,2004,57(2): 137-154.
[14]XIONG X, DE LA TORRE F. Supervised Descent Method and Its Applications to Face Alignment[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York:IEEE,2013: 532-539.
[15]MURPHY-CHUTORIAN E, TRIVEDI M M. Head Pose Estimation in Computer Vision: A Survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,31(4):607-626.
[16]歷艷琨,毛建旭,劉仁明.基于特征點的3D人臉姿態(tài)跟蹤[J].電子測量與儀器學報,2016,30(4):605-612.
LI Yankun, MAO Jianxu, LIU Renming. 3D Face Pose Tracking Based on Feature Matching[J]. Journal of Electronic Measurement and Instrumentation,2016,30(4): 605-612.
[17]DINGES D F, GRACE R. PERCLOS: A Valid Psychophysiological Measure of Alertness as Assessed by Psychomotor Vigilance[R].Report No. FHWA-MCRT-98-006. Washington DC: Federal Highway Administration, 1998.