程榮標(biāo),方向堯,曾思偉,姜大志
基于Adaboost和回歸樹集合技術(shù)的疲勞識別研究
程榮標(biāo),方向堯,曾思偉,姜大志
VDT(Visual Display Terminal)作業(yè)是指用計算機視覺顯示終端進行各類信息處理工作的總稱.VDT作業(yè)人群的疲勞識別是維護工作健康的重要手段.本文使用普通攝像頭獲取人臉數(shù)據(jù),用Adaboost人臉識別與基于回歸樹集合的人臉特征標(biāo)記準(zhǔn)確定位眼睛和嘴部,最后用統(tǒng)計學(xué)的方法對用戶的工作狀態(tài)進行實時識別.與傳統(tǒng)方法相比,本文提出的方法在準(zhǔn)確度和實時性方面有了較大的提升,為疲勞診斷提供一條可借鑒的方案.
VDT,疲勞監(jiān)測,Adaboost,回歸樹集合
VDT(Visual Display Terminal)作業(yè)是指用計算機視覺顯示終端進行各類信息處理工作的總稱.VDT的作業(yè)方式雖大幅提升生產(chǎn)效率,但易激增工作壓力,誘發(fā)過度疲勞,甚至過勞死.《中國青年報》報道:我國每年過勞死人數(shù)達60萬人,位列全球第一,每天約超過1 600人因勞累引發(fā)疾病而死亡.對VDT作業(yè)者的疲勞狀態(tài)進行識別,從而進行及時的干預(yù)與調(diào)節(jié),避免過度疲勞,具有良好的理論與應(yīng)用價值.
國內(nèi)對疲勞識領(lǐng)域取得不少的成果.例如,趙琳采用基于積分投影變換的方法定位眼睛和嘴部位置,然后進行駕駛員的疲勞駕駛識別[1].申琳采用人臉的結(jié)構(gòu)特征和經(jīng)驗知識提取眼睛和嘴巴的位置塊圖像[2].朱婧采用積分投影函數(shù)與混合投影函數(shù)相結(jié)合的方法來定位眼睛位置[3].提取出眼睛和嘴部位置后再對眼睛和嘴巴的狀態(tài)進行疲勞判斷.
從上述的研究來看,對疲勞狀態(tài)的研究一般都面向疲勞駕駛研究,而對疲勞狀態(tài)的檢測,則取決于人的眼睛和嘴部信息.這就給后續(xù)的研究帶來兩點,其實,一是拓展疲勞檢測的外延,二是提升技術(shù)手段,提高眼睛與嘴部識別的效率.本文拓展疲勞檢測的外延,通過攝像頭采集VDT作業(yè)者的眼睛與嘴部的信息,分析其狀態(tài)變化從而對VDT作業(yè)者的疲勞狀態(tài)作出判斷.具體方式是:首先是通過Adaboost算法對人臉進行檢測,然后通過Vahid Kazemi和Josephine Sullivan提出的基于回歸樹集合的方法獲得出眼睛和嘴部的標(biāo)記點[4].通過標(biāo)記點計算出眼瞼的高度和嘴部的大小,采取PERCLOS方法[5]對VDT作業(yè)者進行疲勞判定.
面向VDT作業(yè)者的疲勞實時識別系統(tǒng)的實現(xiàn),對算法的運行效率提出了更高的要求,本文采取的方法是對攝像頭采集到的圖像進行壓縮,在保證檢測人臉的精確度下提升人臉的檢測速度來達到實時的目的,對整個系統(tǒng)的實時性、可用性來說具有重要的意義.本文融合Adaboost和回歸樹集合技術(shù),提出一種新的混合算法,對眼睛和嘴巴的定位準(zhǔn)確,具有較好的魯棒性和實時性,可以快速而準(zhǔn)確地提取眼睛和嘴部信息,同時能適應(yīng)一定的環(huán)境復(fù)雜度.
因為Adaboost和回歸樹集合算法在識別率和處理速度方面能夠很好地滿足本系統(tǒng)對識別正確率和實時性的要求,所以本系統(tǒng)分別采用這兩個算法進行人臉和人臉關(guān)鍵點檢測.
1.1 Adaboost算法
Schapire提出了Boosting算法,它是一種用來提高弱分類算法準(zhǔn)確度的方法[6].后來,F(xiàn)reund和Robert E.Schapire根據(jù)Boosting算法,提出了Adaboost算法,它是自適應(yīng)的Boosting算法[7].其基本思想是利用大量的分類能力一般的弱分類器,通過某種方法疊加起來,形成一個分類能力比較強的強分類器.之后再將這些強分類器進行級聯(lián),形成級聯(lián)分類器.
理論上,如果弱分類器的分類正確率要比隨機判斷的正確率要高,當(dāng)弱分類器的個數(shù)無窮多時,強分類器的正確率將趨于100%.在人臉識別方面,Adaboost算法正是因為這點而有著很高的識別率.除此之外,此算法使用了積分圖對人臉特征進行計算以及使用級聯(lián)的思想構(gòu)造分類器,這有效提高識別的速率.
Adaboost算法流程如下:
(1)初始化,給每個訓(xùn)練樣本賦予相同的權(quán)值:1/N
(2)迭代,循環(huán)下面4個步驟,m=1,2,…,n(m表示迭代的次數(shù))
1)基本分類器:
2)計算訓(xùn)練數(shù)據(jù)集上的分類誤差率:
3)計算基本分類器在最終分類器中所占的權(quán)重:
4)計算樣本的新的權(quán)值分步,用于下一輪迭代:
1.2 回歸樹集合算法
Vahid Kazemi和Josephine Sullivan提出了一種用于人臉關(guān)鍵點檢測算法,Ensemble of Regression Trees(這里稱作回歸樹集合).該算法的處理速度極快(單人人臉關(guān)鍵點檢測需時約為1ms),在實時性和高質(zhì)量檢測方面具有很大的優(yōu)勢.除此之外,它還能處理訓(xùn)練集中部分關(guān)鍵點標(biāo)定缺失的情況.回歸樹集合算法是一種基于樹的級聯(lián)回歸器,其主要思想描述如下:
(1)級聯(lián)的回歸器
假設(shè)S(shape)是圖像I中包含p個面部標(biāo)記的坐標(biāo)矢量,t是級聯(lián)序號,是S的現(xiàn)行估計值,對于每個回歸器rt(·,·),下一級的估計值為S?(t+1),則:
(2)訓(xùn)練級聯(lián)回歸器
1)初始化
(3)基于樹的回歸器
回歸函數(shù)rt的核心是在梯度上升的過程中適應(yīng)殘余目標(biāo).其過程如下:
1)形狀不變分割試驗
假設(shè)u和v分別是圖像中兩個像素的位置,ku是mean shape中離u最近的面部標(biāo)記,定義其到u的偏移為:
在mean shape中u的近似值為
其中si和Ri是用于將shape轉(zhuǎn)化為mean shape的矩陣,目的是使下面的值最小化:
v的偏移v′也是同樣的定義.
2)選擇分割結(jié)點
對于每棵回歸樹,隨機生成候選分割集θ′s,然后采用貪心策略選擇θ*,通過候選分割集,可以最小化平方誤差.如果 是一個節(jié)點的候選值,這相當(dāng)于最小化
3)特征選取
這里提供一種指數(shù)級的優(yōu)先選取法使距離更接近的點更容易選?。?/p>
(4)處理關(guān)鍵點標(biāo)定缺失
式(20)可以更新為
其中Wi是一個含有向量(wi1,wi1,wi2,wi2,…,wip,wip)T的對角矩陣.如果wi,p為0,代表面部標(biāo)記缺失,如果wi,p為1,代表存在.
2.1 實驗描述
本文采用的硬件設(shè)備為:英特爾第三代酷睿i5-3230M,@2.60GHz雙核處理器,Nvidia GeForce GT 740M顯卡,12G內(nèi)存.為了檢驗Adaboost和回歸樹集合算法相結(jié)合之后的準(zhǔn)確性和實時性,本研究使用由丹麥技術(shù)大學(xué)所提供的人臉數(shù)據(jù)庫對不同的算法進行眼睛和嘴部的精確度測試,隨后使用相應(yīng)的算法對單位視頻流進行疲勞判別.實驗程序的總體流程圖如圖1所示,該實驗先從攝像頭獲取的視頻流中進行幀提取,然后對每一幀圖像進行預(yù)處理、人臉識別和特征提取,最后根據(jù)提取的特征進行疲勞判別并作出疲勞預(yù)警.實驗結(jié)果表明,使用Adaboost和回歸樹集合算法對眼睛和嘴部進行精確定位計算,不但擁有單獨使用回歸樹集合算法對眼睛和嘴部進行精確定位計算的準(zhǔn)確性,而且擁有單獨使用Adaboost的實時性,從而為疲勞判別的準(zhǔn)確性和實時性提供了進一步保障.
2.2 眼睛和嘴部的疲勞信息提取
2.2.1 PERCLOS值原理
PERCLOS是 PercentEye Closure的縮寫,指在一段時間內(nèi)眼睛閉合所占時間的百分比.該方法是卡內(nèi)基梅隆大學(xué)經(jīng)過大量的實驗和反復(fù)的研究后提出的,通過計算PERCLOS值的方法來檢測疲勞狀態(tài)[6].
對于眼睛閉合的判斷,通常有三種標(biāo)準(zhǔn):
(1)P70:以眼瞼遮住瞳孔的面積至少超過70%計為眼睛閉合,統(tǒng)計閉合時間的百分比作為標(biāo)準(zhǔn);(2)P80:以眼瞼遮住瞳孔的面積至少超過80%計為眼睛閉合,統(tǒng)計閉合時間的百分比作為標(biāo)準(zhǔn);(3)EM:以眼瞼遮住瞳孔的面積至少超過一半計為眼睛閉合,統(tǒng)計閉合時間的百分比作為標(biāo)準(zhǔn);
根據(jù)美國高速公路安全管理局(National Highway Traffic Safety Administration,NHTSA)的實驗顯示,P80最能夠接近于真實的疲勞發(fā)展?fàn)顟B(tài).本文采用P80作為眼睛閉合的判斷.
圖1 實驗總體流程圖
下列公式(22)給出了PERCLOS的計算方法:
在公式中:fp表示PERCLOS值;t1表示眼睛睜開程度減小到80%的時刻;t2表示眼睛睜開程度減小到20%的時刻;t3是眼睛再次睜開到20%的時刻;t4是眼睛再次睜開到80%的時刻.
在圖像視頻序列中,幀數(shù)與時間相對應(yīng),故將時間比換算為幀數(shù)的百分比:
在公式(23)中,h代表眼睛閉合幀數(shù),H代表總幀數(shù).
2.2.2 打哈欠次數(shù)
在一般情況下,VDT工作者的嘴部處于閉合狀態(tài);當(dāng)VDT工作者交談時,其嘴部處于半張開狀態(tài),而不會一直處于大幅度張開的狀態(tài).如果VDT工作者出現(xiàn)疲勞并開始打哈欠時,嘴部會在一定時間內(nèi)處于大幅度的張開狀態(tài),并不斷重復(fù)這個過程.如果嘴部處在大幅度的張開狀態(tài)一段時間,我們可以認(rèn)為VDT工作者打了一個哈欠.
因為在圖像視頻序列中,幀數(shù)和時間相對應(yīng).所以在實驗當(dāng)中,我們記錄VDT工作者的嘴部張開狀態(tài)的最大程度M,然后在規(guī)定時間內(nèi),通過檢測嘴部張開程度超過80%M的幀數(shù)來記錄一次打哈欠的情況.
2.2.3 眨眼頻率
眨眼頻率即單位時間內(nèi)的眨眼次數(shù),在正常情況下,人的眨眼次數(shù)為15~20次/分鐘,每次眨眼耗時0.25~0.3 s.VDT工作者在疲勞時,眨眼的頻率會發(fā)生變化.
在實驗中,實時記錄1 min內(nèi)眼睛高度的極大值和極小值,一次極大值和極小值的出現(xiàn)記為一次眨眼.設(shè)Sblink為1 min內(nèi)的眨眼次數(shù),則眨眼頻率為(單位:次/s):
當(dāng)VDT工作者的眨眼頻率大于或小于一定閾值時,可視為進入疲勞狀態(tài).
2.3 疲勞判別
2.3.1 測眨眼原理
本文計算作業(yè)者眼瞼高度,眨眼時眼瞼高度呈現(xiàn)大-小-大的變化,即在一幀視頻的前后鄰域表現(xiàn)為極小值,在眼瞼高度為平均高度的80%以下時判斷.而鄰域的取值基于:人眼平均眨眼時間為0.2~0.3 s內(nèi),視頻幀率為25/s,所以取整后可取5或6幀作為一次眨眼過程.
2.3.2 疲勞判別過程
疲勞判定流程如圖2所示,首先收集30 s為一段分析視頻,判斷PERCLOS值是否大于30%,如果是,則判斷為疲勞.若PERCLOS小于30%,則看眨眼頻率是否大于15次/30 s,如果是,則判斷為疲勞.若眨眼頻率小于15次/30 s,則看平均眼瞼高度是否為眼睛最大高度的80%,如果是,則判斷為疲勞,若否,則視為清醒.
3.1 疲勞判別結(jié)果
表1所示為其中10段視頻的實驗結(jié)果,分別計算fp值、fblink值、平均眼瞼高度以此來判斷實驗者的疲勞狀態(tài),同時與實驗者的
實際疲勞狀態(tài)進行對比.實驗結(jié)果表明,本疲勞判斷方法的準(zhǔn)確率為90%.
表1 疲勞判別實驗結(jié)果表
3.2 特征數(shù)據(jù)集分析與對比
為了驗證本文提出的算法對人眼睛和嘴巴部分識別的準(zhǔn)確性,本文使用不同的算法對丹麥大學(xué)所提供的人臉數(shù)據(jù)庫(http://www2.imm.dtu.dk/~aam/)中40個人的6種不同角度共240張圖片提取人眼高度和嘴部面積,其中算法包括單獨使用Adaboost、單獨使用回歸樹集合、Adaboost+回歸樹集合算法.然后將3種算法所測出來的特征數(shù)據(jù)和人臉數(shù)據(jù)庫的準(zhǔn)確數(shù)據(jù)進行對比.另外,在3種算法運行過程中,記錄其計算每一幀所耗費的時間,然后對比3種算法的運行時間.
圖3為用折線圖的方式繪制出了丹麥技術(shù)大學(xué)人臉數(shù)據(jù)庫的準(zhǔn)確數(shù)據(jù)和分別使用3種算法對其測試的結(jié)果.從折線圖可以看出,單獨使用Adaboost算法可以定位到眼睛,但是幾乎無法精確刻畫出眼睛的高度;單獨使用回歸樹集合算法可以定位到眼睛,同時可以準(zhǔn)確刻畫出眼睛的高度,總體平均準(zhǔn)確率達84.17%;而使用Adaboost結(jié)合回歸樹集合算法,不但可以定位到眼睛,而且刻畫眼睛高度的總體平均準(zhǔn)確率可達到84.24%.
圖4為分別使用3種算法計算丹麥技術(shù)大學(xué)人臉數(shù)據(jù)庫每張人臉圖片的嘴部面積后繪制的折線圖.從圖中可以發(fā)現(xiàn),單獨使用Adaboost算法雖然定位到了嘴部區(qū)域,但是無法精確刻畫出嘴部面積;單獨使用回歸樹集合算法可以定位到嘴部區(qū)域,其刻畫嘴部面積的準(zhǔn)確率可達到76.13%;而使用Adaboost算法結(jié)合回歸樹集合算法,不但可以定位到嘴部區(qū)域,而且其刻畫嘴部面積的準(zhǔn)確率可到達81.20%.
圖3 眼睛高度圖
圖5為記錄分別使用3種算法對丹麥技術(shù)大學(xué)人臉數(shù)據(jù)庫的每張人臉圖片計算眼睛高度和嘴部面積所耗費的時間.由結(jié)果可以發(fā)現(xiàn),單獨使用回歸樹集合算法計算每張人臉圖片所花費的時間平均約為322.08 ms;單獨使用Adaboost算法每張耗費的時間平均約為266.29 ms;而使用Adaboost算法結(jié)合回歸樹集合算法,其計算每張圖片所花費的時間平均約為176.88 ms.
從實驗的結(jié)果表明,使用Adaboost結(jié)合回歸樹集合算法,其測試眼睛高度和嘴部面積的準(zhǔn)確率可以達到單獨使用回歸樹集合算法的精度,甚至更高.另外,其檢測一張圖片所花費的時間最短,比單獨使用Adaboost算法每張圖片少約89.41 ms,比單獨使用回歸樹集合算法每張圖片少約145.20 ms.可以說明,使用Adaboost結(jié)合回歸樹集合算法檢測人臉眼睛高度和嘴部面積,不但比單獨使用Adaboost算法具有更好的實時性,而且準(zhǔn)確性可以與單獨使用回歸樹集合算法相媲美.
圖4 嘴部面積圖
圖5 運行時間圖
本研究針對VDT工作者的工作環(huán)境特點,提取工作者眼睛和嘴部的特征進行疲勞識別.因此,眼睛和嘴部識別的精確度決定了疲勞識別的準(zhǔn)確性.基于這種環(huán)境下,算法不但必須具有實時性,而且需要較高的準(zhǔn)確性.本文采用Adaboost算法和回歸樹集合算法相結(jié)合.使對VDT工作者進行疲勞判別的過程中,不但具有Adaboost算法的實時性,而且還具有回歸樹集合算法的準(zhǔn)確性.實驗結(jié)果表明,將Adaboost算法和回歸樹集合算法相結(jié)合來進行疲勞判別,是可行、有效的.不足之處在于我們只對眼睛和嘴部信息進行判別,那么難免會產(chǎn)生誤差.有機會我們將與醫(yī)學(xué)界人士一起進一步探究出引起人疲勞的真正原因,這將給疲勞預(yù)測帶來新機.
隨著科技的進步和人們對自已的身體健康的更加注重,相信疲勞識別的準(zhǔn)確度和實時性會在將來有不少的提高.單靠眼睛和嘴部的信息也存在準(zhǔn)確率不高的缺點,所以我們還將尋找其他有效的非接觸特征進行實驗研究,比如VDT作業(yè)者的心率變化等.
參考文獻
[1]趙琳.基于人臉識別的疲勞駕駛監(jiān)控方法研究[D].長春:長春工業(yè)大學(xué),2015.
[2]申琳.基于視頻圖像的駕駛員疲勞檢測[D].天津:天津大學(xué),2012.
[3]朱婧.基于視頻圖像信息提取的疲勞駕駛檢測技術(shù)研究[D].南京:南京理工大學(xué),2009.
[4]KAZEMI V,SULLIVAN J.One millisecond face alignment with an ensemble of regression trees[C]//IEEE Conference on Computer Vision and Pattern Reagnitirn.IEEE,2014:1867-1874.
[5]苑瑋琦,滕紅艷.眼睛疲勞程度判定方法研究[J].計算機工程與應(yīng)用,2013,49(17):199-203.
[6]SCHAPIRE R E.The strength ofweak learnability[J].Machine Learning,1990,5(2):197-227.
[7]FREUND Y,SCHAPIRE R E.A decision-theoretic generalization of on-line learning and an application to boosting[C]//European Conference on Computational Learning Theory.Springer-Verlag,1995:119-139.
Research on Fatigue Identification Based on Adaboost and Ensemble of Regression Trees
CHENG Rongbiao,FANG Xiangyao,ZENG Siwei,JIANG Dazhi
(Department of Computer,Shantou University,Shantou 515063,Guangdong,China)
VDT(Visual Display Terminal)operation is the general term that describes the use of computer visual display terminal to do different kinds of information processing works.Fatigue recognition is an important means of maintaining a healthy work for VDT workers.In this paper, an ordinary camera is used to acquire the image information and the Adaboost algorithm is used for face recognition.A method based on ensemble of regression trees is applied to find out the accurate coordinates of eyes and mouth.The job status of worker in real time can be identified. Compared with traditional methods,the new method significantly improves accuracy and real-time performance,and provides a reference for the diagnosis of fatigue.
VDT;fatigue recognition;Adaboost;ensemble of regression trees
TP 391.4
A
2016-08-22
姜大志(1982—),男,江蘇南京人,博士,副教授.研究方向:智能計算.E-mail:dzjiang@stu.edu.cu.
國家自然科學(xué)基金項目(61502291);廣東省高等學(xué)校優(yōu)秀青年教師培養(yǎng)計劃項目(YQ2015070);廣東省普通高校特色創(chuàng)新項目(2015KTSCX039,2016WTSCX035);廣東省教育科學(xué)研究教育科研項目(2015GXJK037);廣東大學(xué)生科技創(chuàng)新重點項目(pdjh2016b0192);汕頭大學(xué)國家基金培育項目(NFC15005).
1001-4217(2017)02-0066-09