摘 要: 針對(duì)汽車駕駛員疲勞駕駛檢測(cè)的要求,設(shè)計(jì)了一種基于圖像處理DSP芯片DM6437的疲勞駕駛視覺檢測(cè)系統(tǒng)。通過DSP的GPIO口用軟件控制攝像頭軸上和軸外的兩種不同波長(zhǎng)的近紅外光源(850 nm/950 nn)交替采集駕駛員圖像,根據(jù)亮瞳效應(yīng)兩幀圖像差分后粗定位人眼,用模板檢測(cè)提取人眼的邊界,根據(jù)PERCLOS值方法判斷駕駛員是否疲勞。根據(jù)人眼的不同狀態(tài)分別處理,用蜂鳴器作為報(bào)警系統(tǒng)提醒駕駛員。實(shí)驗(yàn)表明,該系統(tǒng)簡(jiǎn)單實(shí)用,而且能夠全天候準(zhǔn)確快速地判斷駕駛員是否疲勞。
關(guān)鍵詞: 疲勞檢測(cè); DSP; 亮瞳效應(yīng); PERCLOS
疲勞駕駛是造成交通事故的主要原因之一,根據(jù)公安部交通管理局發(fā)布的2009年全國(guó)道路交通事故情況顯示,2009年,全國(guó)共發(fā)生道路交通事故238 351起,造成67 759人死亡、275 125人受傷,直接財(cái)產(chǎn)損失9.1億元,其中疲勞駕駛造成的事故占一定比重。減少疲勞駕駛可以降低公共財(cái)產(chǎn)和個(gè)人人身財(cái)產(chǎn)損失,因此研究防疲勞駕駛系統(tǒng)具有重要的意義。
國(guó)內(nèi)外有許多研究防疲勞駕駛監(jiān)測(cè)系統(tǒng),就目前來看,防疲勞監(jiān)測(cè)系統(tǒng)并沒有實(shí)現(xiàn)市場(chǎng)化原因有兩點(diǎn):一是各種方法都有一定的缺陷,比如用膚色變換提取人臉定位人眼的方法和灰度圖像積分投影的方法因受光照影響,定位不準(zhǔn)確;二是運(yùn)行時(shí)間慢,達(dá)不到實(shí)時(shí)監(jiān)測(cè)。針對(duì)此兩點(diǎn)不足設(shè)計(jì)了本系統(tǒng)。
本系統(tǒng)用軸上和軸外的不同波長(zhǎng)的近紅外光采集圖像,根據(jù)亮瞳效應(yīng)分別能得到亮瞳孔圖像和暗瞳孔圖像,差分后快速定位人眼,用模板檢測(cè)提取人眼邊界,判斷疲勞狀態(tài)。系統(tǒng)的創(chuàng)新點(diǎn)是人眼定位方法簡(jiǎn)單準(zhǔn)確,疲勞判斷標(biāo)準(zhǔn)全面快速。
1 疲勞狀態(tài)檢測(cè)原理
1.1 人眼睜開程度檢測(cè)原理
人的眼睛是一個(gè)精巧的光學(xué)成像系統(tǒng),可以簡(jiǎn)單地把人眼抽象成一個(gè)光學(xué)模型,晶狀體等效為一個(gè)凸透鏡,視網(wǎng)膜看做一個(gè)光屏。進(jìn)入人眼的光線是通過晶狀體后成像于視網(wǎng)膜上,并且光線能被視網(wǎng)膜反射出去。根據(jù)人眼的特性,設(shè)計(jì)出有效的光源使采集到的圖像出現(xiàn)亮瞳孔和暗瞳孔。
亮瞳效應(yīng)(bright eye effect)[1]是美國(guó)著名的學(xué)者Hutchinson在眼睛運(yùn)動(dòng)檢測(cè)專利中提出的,當(dāng)靠近攝像頭光軸的紅外光源照射到人臉時(shí),視網(wǎng)膜反射光會(huì)使瞳孔顯得很亮就是所謂的亮瞳效應(yīng),當(dāng)然眼角膜也會(huì)反射光,會(huì)在眼球上出現(xiàn)比較小的亮點(diǎn)(glint)[2],如圖1所示。經(jīng)過試驗(yàn)發(fā)現(xiàn),出現(xiàn)亮瞳孔的亮度主要跟三個(gè)因素有關(guān):離攝像頭光軸的距離、光源的波長(zhǎng)、光照強(qiáng)度。距離攝像頭光軸的距離越近,反射光就越多進(jìn)入攝像頭,瞳孔就會(huì)顯得越亮。人眼瞳孔對(duì)近紅外光有較高的透射率,而人眼視網(wǎng)膜對(duì)不同的波長(zhǎng)的光具有不同的反射量,對(duì)850 nm的紅外光能把90%的入射光反射回去,對(duì)950 nm的紅外光能把40%的入射光反射回去[3]。因此靠近攝像頭軸上的光源選擇850 nm的紅外光較好,容易產(chǎn)生亮瞳孔,軸外的光源選擇950 nm的紅外光較好,會(huì)出現(xiàn)暗瞳孔。由于外界可見光會(huì)影響到亮瞳效應(yīng),因此在攝像頭上會(huì)加上近紅外濾光片,考慮到成本和使用效果用830 nm的高通濾光片就可以了。結(jié)合光源的光照強(qiáng)度和攝像頭的視角,本系統(tǒng)的使用范圍在40 cm~1 m之間,經(jīng)過測(cè)試可以滿足在汽車中的使用。
1.2 人眼疲勞狀況監(jiān)測(cè)原理
系統(tǒng)主要是靠人眼的閉合程度和持續(xù)的時(shí)間來判斷駕駛員是否疲勞,采集到的圖像人眼只會(huì)存在三個(gè)狀態(tài)分別是:完全閉合、正常睜開、半睜半閉(瞇眼的情況)。系統(tǒng)必須根據(jù)不同狀態(tài)出現(xiàn)的時(shí)間來判定疲勞狀態(tài)。
當(dāng)眼睛完全閉合時(shí),采集的兩幀圖像并沒有亮瞳孔和暗瞳孔之分,不好定位人眼,這時(shí)將檢測(cè)不到人眼作為一個(gè)特征來處理。連續(xù)5次都檢測(cè)不到人眼說明人眼一直處于閉合狀態(tài),證明駕駛員疲勞了,這時(shí)啟動(dòng)報(bào)警系統(tǒng)提醒駕駛員。
大多數(shù)情況下,采集到的圖像都是人眼睜開的狀態(tài)(包括正常睜開和瞇眼),采用PERCLOS法判斷駕駛員的疲勞狀態(tài)。到目前為止PERCLOS法是判斷眼部疲勞狀態(tài)的最有效的方法[4],PERCLOS是單位時(shí)間內(nèi)眼睛閉合所占時(shí)間的百分比[5],比較科學(xué)的就是P80,即眼睛閉合80%所占時(shí)間的百分比。由于每個(gè)人的眼睛大小都不一樣,不能用同一閾值去判斷眼睛是否閉合了80%,通過圖像處理得到的參數(shù)是眼睛的高寬比h(t),設(shè)定每次系統(tǒng)啟動(dòng)后把前10次得到的參數(shù)h(t)都存到一個(gè)數(shù)組A[10]中,然后在數(shù)組A[10]中找到最大的Amax存儲(chǔ)到一個(gè)固定的地址中,以后每次得到一個(gè)高寬比h(t),人眼閉合程度p(t)就可以如式(1)求出:
在此系統(tǒng)中PERCLOS定義為5 s人眼閉合80%以上的幀數(shù)占圖像總幀數(shù)的百分比。當(dāng)PERCLOS大于40%時(shí)判定駕駛員疲勞,啟動(dòng)報(bào)警系統(tǒng)提醒駕駛員。
2 駕駛員疲勞狀況監(jiān)測(cè)系統(tǒng)的研制
2.1 硬件系統(tǒng)
設(shè)置在駕駛員前方的攝像機(jī)實(shí)時(shí)獲取駕駛員臉部視頻圖像,經(jīng)過視頻解碼器轉(zhuǎn)換成數(shù)字圖像,經(jīng)微處理器送入數(shù)據(jù)存儲(chǔ)器。本系統(tǒng)通過控制電源轉(zhuǎn)換開關(guān),從而獲取兩種不同波長(zhǎng)光源照射的臉部圖像,通過軟件處理能夠快速確定人眼位置。為本系統(tǒng)編寫的應(yīng)用程序存放在程序存儲(chǔ)器中,系統(tǒng)上電時(shí),通過引導(dǎo)程序?qū)⒋娣旁诔绦虼鎯?chǔ)器中的應(yīng)用程序自動(dòng)引導(dǎo)至微處理器中的數(shù)據(jù)存儲(chǔ)區(qū)。當(dāng)系統(tǒng)判定駕駛員處于駕駛疲勞狀態(tài)時(shí),通過蜂鳴器給予警示。該系統(tǒng)功能框圖如圖2所示。
2.2 軟件系統(tǒng)
軟件系統(tǒng)流程圖如圖3所示,利用亮瞳效應(yīng),軸上和軸外不同波長(zhǎng)的交替使用會(huì)得到兩幀瞳孔亮度差距很大的圖像,由于采集兩幀圖像的時(shí)間間隔非常短,只有20 ms,基本上駕駛員的位置沒有什么變化,所以兩幀圖像除瞳孔外,別的地方亮度差距不大。先對(duì)兩幀圖像中值濾波后,再差分,會(huì)得到瞳孔位置很突出的差分圖像,粗定位眼睛的位置,根據(jù)眼睛的特征設(shè)置模板,提取出人眼的邊界,最后計(jì)算PERCLOS值判斷駕駛員的疲勞狀態(tài),當(dāng)差分后找不到一對(duì)瞳孔時(shí)說明采集的兩幀圖像人眼都是完全閉合的,出現(xiàn)這種狀況時(shí)把找不到瞳孔作為一個(gè)特征來處理,連續(xù)出現(xiàn)找不到瞳孔時(shí)系統(tǒng)判定人眼一直閉合,判定駕駛員已經(jīng)疲勞,啟動(dòng)蜂鳴器提醒駕駛員。
2.3 系統(tǒng)模塊
本系統(tǒng)分為4個(gè)模塊,分別為:圖像采集模塊、圖像處理模塊、疲勞判斷模塊和報(bào)警系統(tǒng)模塊。
2.3.1 圖像采集模塊
根據(jù)亮暗瞳孔的形成原理,要想產(chǎn)生亮暗交替的瞳孔圖像,需要在同一平面內(nèi)放置兩組近紅外光源,一組放在攝像頭光軸上,另一組置于軸外。當(dāng)只打開軸上光源時(shí),就可獲得亮瞳孔圖像;當(dāng)只打開軸外光源時(shí),就可獲得暗瞳孔圖像。由于半導(dǎo)體發(fā)光二極管(LED)具有效率高、體積小、壽命長(zhǎng),易于制造成各種特定形狀和容易實(shí)現(xiàn)不同照射角度等優(yōu)點(diǎn),故光源結(jié)構(gòu)中都采用LED作為發(fā)光元件。光源設(shè)計(jì)如圖4。
2.3.2圖像處理模塊
由于采集的過程中肯定會(huì)存在噪聲,所以先用一個(gè)3×3的模板對(duì)采集到的圖像進(jìn)行中值濾波,減少噪聲對(duì)圖像處理的干擾。圖5是中值濾波后的亮瞳孔圖像和暗瞳孔圖像。
因?yàn)椴杉瘍蓭瑘D像的時(shí)間間隔非常短,兩幀圖像的位置基本上沒什么變化,由于一幀圖像瞳孔位置是亮點(diǎn),另一幀圖像瞳孔位置亮度小,而兩幀圖像別的區(qū)域亮度值變化不大,所以差分后的圖像瞳孔位置應(yīng)該是最亮的區(qū)域。通過觀察差分圖像,也能發(fā)現(xiàn)差分后瞳孔位置基本上是圖像上最亮的部位,可以根據(jù)這個(gè)特征粗定位人眼。在應(yīng)用上駕駛員臉部區(qū)域離攝像頭鏡頭位置距離在40 cm~1 m之間,連續(xù)采集圖像時(shí),眼睛小區(qū)域的面積差別不是很大,在差分圖像上找到最亮點(diǎn)Imax1,通過這個(gè)亮點(diǎn)找到一個(gè)小區(qū)域,把這個(gè)小區(qū)域的亮度值都設(shè)定為零后再在差分圖像上找到另外一個(gè)最亮點(diǎn)Imax2,根據(jù)這個(gè)亮點(diǎn)再擴(kuò)展一個(gè)小區(qū)域,這兩個(gè)小區(qū)域就是駕駛員左右眼的區(qū)域,如圖6所示。這種方法的優(yōu)點(diǎn)是粗定位速度快而且可以避免閾值的設(shè)定。
目前,用于提取人眼邊界的方法有很多種,包括各種算子的邊緣提取和灰度圖像積分投影等等。在此系統(tǒng)中,可以根據(jù)粗定位后圖像的特征來提取人眼邊界。在粗定位圖像中,通過觀察發(fā)現(xiàn),上眼瞼的邊界有一特征,就是上面的灰度值比下面的灰度值大;同理,下眼瞼的邊界特征是:下面的灰度值比上面的大。定義一個(gè)模板分兩次在粗定位圖像上搜索,分別找到滿足這兩個(gè)特征的點(diǎn),如圖7(b)。在掃描過程中找到上眼瞼的最高點(diǎn)M(x3,y3)、下眼瞼的最低點(diǎn)N(x4,y4),左臨界點(diǎn)L(x5,y5)、右臨界點(diǎn)R(x6,y6)。得到與眼睛邊界相切的矩形框如圖7(c)。
人眼的高寬比h(t)可以求出如式(2):
2.3.3 疲勞狀態(tài)判斷
在前面圖像處理時(shí),差分圖像后會(huì)找到兩個(gè)點(diǎn)Imax1(x1,y1)、Imax2(x2,y2)。人眼睜開情況下,這兩個(gè)點(diǎn)應(yīng)該在左右瞳孔里,由于左右瞳孔是對(duì)稱的兩個(gè)區(qū)域,通過實(shí)驗(yàn)測(cè)試亮點(diǎn)的垂直坐標(biāo)距離在[0,10]區(qū)間里并且水平坐標(biāo)距離在[25,50]區(qū)間里,依此作為依據(jù)判斷是否檢測(cè)到人眼。設(shè)定一個(gè)計(jì)數(shù)函數(shù),如果連續(xù)五次檢測(cè)都沒有檢測(cè)到對(duì)稱的雙瞳孔說明人眼完全閉合了,軟件通過GPIO口啟動(dòng)蜂鳴器提醒駕駛員。
在能定位人眼時(shí)根據(jù)PERCLOS值來判斷疲勞狀態(tài),如前面原理描述一樣處理。
2.3.4報(bào)警系統(tǒng)
報(bào)警系統(tǒng)采用價(jià)格便宜的蜂鳴器,用DSP的GPIO口控制蜂鳴器的啟動(dòng)與停止。
3 實(shí)驗(yàn)結(jié)果及分析
利用實(shí)驗(yàn)室的設(shè)備制作光源,將DSP開發(fā)板與光源和仿真器連接,通過仿真器連接PC機(jī)和開發(fā)板,在CCS3.3環(huán)境下調(diào)試該系統(tǒng),最后把程序嵌入到開發(fā)板中。連續(xù)采集兩幀圖像的時(shí)間間隔為20 ms,為了盡量加快圖像處理時(shí)間并且滿足系統(tǒng)需要,圖像大小設(shè)定為360×384。測(cè)試結(jié)果如表1所示。
檢測(cè)失誤的原因是:雖然安裝了近紅外高通濾光片,但白天陽光強(qiáng)烈時(shí)陽光中的近紅外光也很多,影響光源的光照強(qiáng)度,因考慮到成本,濾光片的效果一般,影響了系統(tǒng)的試驗(yàn)結(jié)果。另外出現(xiàn)判斷失誤的原因是,測(cè)試人員頭部左右擺動(dòng)幅度太大,攝像頭采集圖像時(shí)采集不到人眼圖像。
此系統(tǒng)的主要優(yōu)點(diǎn)是定位方法簡(jiǎn)單并且實(shí)用,針對(duì)人眼的不同狀態(tài),系統(tǒng)分別采用不同的判斷疲勞標(biāo)準(zhǔn),這種方法減小了誤判率,縮短了系統(tǒng)處理時(shí)間,但有一些缺陷還需要改進(jìn)。首先,利用亮瞳效應(yīng)定位人眼,當(dāng)駕駛員戴眼鏡時(shí)會(huì)出現(xiàn)亮斑再用此方法定位人眼就會(huì)出現(xiàn)錯(cuò)誤定位。其次,通過研究表明紅外光長(zhǎng)期照射人眼不健康,以后可以嘗試減少紅外光的照射時(shí)間,用可見光和紅外光混合使用。
參考文獻(xiàn)
[1] HUCHINSION T E. Eye movement detector with improved calibration and speed. United States, 4 950 069[P]. 1990-08-21.
[2] JI Q, YANG X. Real-time eye ,gaze, and face pose tracking for monitoring driver vigilance[J]. Real-Time Imaging, 2002(8), 357-377.
[3] 劉志強(qiáng),秦洪懋,汪澎,等.駕駛疲勞監(jiān)測(cè)系統(tǒng)DDDS設(shè)計(jì)方法[J].江蘇大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,29(1):25-28.
[4] BISHOP R. Survey of intelligent Vehicle Applications Worldwide[C].Proceedings of the IEEE intelligent Vehicles symposium 2000:25-30.
[5] DINGES D F, GRACE R.PETCLOS: A Valid Psycho physiological Measure of Alertness as Assessed by Psychomotor vigilance[R]. Washington: Federal Highway Administration, Office of Motor Carriers, 1998.