基于DSP的疲勞駕駛檢測系統(tǒng)的研究
摘 要: 針對汽車駕駛員疲勞駕駛檢測的要求,設計了一種基于圖像處理DSP芯片DM6437的疲勞駕駛視覺檢測系統(tǒng)。通過DSP的GPIO口用軟件控制攝像頭軸上和軸外的兩種不同波長的近紅外光源(850 nm/950 nn)交替采集駕駛員圖像,根據(jù)亮瞳效應兩幀圖像差分后粗定位人眼,用模板檢測提取人眼的邊界,根據(jù)PERCLOS值方法判斷駕駛員是否疲勞。根據(jù)人眼的不同狀態(tài)分別處理,用蜂鳴器作為報警系統(tǒng)提醒駕駛員。實驗表明,該系統(tǒng)簡單實用,而且能夠全天候準確快速地判斷駕駛員是否疲勞。
關鍵詞: 疲勞檢測; DSP; 亮瞳效應; PERCLOS
疲勞駕駛是造成交通事故的主要原因之一,根據(jù)公安部交通管理局發(fā)布的2009年全國道路交通事故情況顯示,2009年,全國共發(fā)生道路交通事故238 351起,造成67 759人死亡、275 125人受傷,直接財產(chǎn)損失9.1億元,其中疲勞駕駛造成的事故占一定比重。減少疲勞駕駛可以降低公共財產(chǎn)和個人人身財產(chǎn)損失,因此研究防疲勞駕駛系統(tǒng)具有重要的意義。
國內外有許多研究防疲勞駕駛監(jiān)測系統(tǒng),就目前來看,防疲勞監(jiān)測系統(tǒng)并沒有實現(xiàn)市場化原因有兩點:一是各種方法都有一定的缺陷,比如用膚色變換提取人臉定位人眼的方法和灰度圖像積分投影的方法因受光照影響,定位不準確;二是運行時間慢,達不到實時監(jiān)測。針對此兩點不足設計了本系統(tǒng)。
本系統(tǒng)用軸上和軸外的不同波長的近紅外光采集圖像,根據(jù)亮瞳效應分別能得到亮瞳孔圖像和暗瞳孔圖像,差分后快速定位人眼,用模板檢測提取人眼邊界,判斷疲勞狀態(tài)。系統(tǒng)的創(chuàng)新點是人眼定位方法簡單準確,疲勞判斷標準全面快速。
1 疲勞狀態(tài)檢測原理
1.1 人眼睜開程度檢測原理
人的眼睛是一個精巧的光學成像系統(tǒng),可以簡單地把人眼抽象成一個光學模型,晶狀體等效為一個凸透鏡,視網(wǎng)膜看做一個光屏。進入人眼的光線是通過晶狀體后成像于視網(wǎng)膜上,并且光線能被視網(wǎng)膜反射出去。根據(jù)人眼的特性,設計出有效的光源使采集到的圖像出現(xiàn)亮瞳孔和暗瞳孔。
亮瞳效應(bright eye effect)[1]是美國著名的學者Hutchinson在眼睛運動檢測專利中提出的,當靠近攝像頭光軸的紅外光源照射到人臉時,視網(wǎng)膜反射光會使瞳孔顯得很亮就是所謂的亮瞳效應,當然眼角膜也會反射光,會在眼球上出現(xiàn)比較小的亮點(glint)[2],如圖1所示。經(jīng)過試驗發(fā)現(xiàn),出現(xiàn)亮瞳孔的亮度主要跟三個因素有關:離攝像頭光軸的距離、光源的波長、光照強度。距離攝像頭光軸的距離越近,反射光就越多進入攝像頭,瞳孔就會顯得越亮。人眼瞳孔對近紅外光有較高的透射率,而人眼視網(wǎng)膜對不同的波長的光具有不同的反射量,對850 nm的紅外光能把90%的入射光反射回去,對950 nm的紅外光能把40%的入射光反射回去[3]。因此靠近攝像頭軸上的光源選擇850 nm的紅外光較好,容易產(chǎn)生亮瞳孔,軸外的光源選擇950 nm的紅外光較好,會出現(xiàn)暗瞳孔。由于外界可見光會影響到亮瞳效應,因此在攝像頭上會加上近紅外濾光片,考慮到成本和使用效果用830 nm的高通濾光片就可以了。結合光源的光照強度和攝像頭的視角,本系統(tǒng)的使用范圍在40 cm~1 m之間,經(jīng)過測試可以滿足在汽車中的使用。
1.2 人眼疲勞狀況監(jiān)測原理
系統(tǒng)主要是靠人眼的閉合程度和持續(xù)的時間來判斷駕駛員是否疲勞,采集到的圖像人眼只會存在三個狀態(tài)分別是:完全閉合、正常睜開、半睜半閉(瞇眼的情況)。系統(tǒng)必須根據(jù)不同狀態(tài)出現(xiàn)的時間來判定疲勞狀態(tài)。
當眼睛完全閉合時,采集的兩幀圖像并沒有亮瞳孔和暗瞳孔之分,不好定位人眼,這時將檢測不到人眼作為一個特征來處理。連續(xù)5次都檢測不到人眼說明人眼一直處于閉合狀態(tài),證明駕駛員疲勞了,這時啟動報警系統(tǒng)提醒駕駛員。
大多數(shù)情況下,采集到的圖像都是人眼睜開的狀態(tài)(包括正常睜開和瞇眼),采用PERCLOS法判斷駕駛員的疲勞狀態(tài)。到目前為止PERCLOS法是判斷眼部疲勞狀態(tài)的最有效的方法[4],PERCLOS是單位時間內眼睛閉合所占時間的百分比[5],比較科學的就是P80,即眼睛閉合80%所占時間的百分比。由于每個人的眼睛大小都不一樣,不能用同一閾值去判斷眼睛是否閉合了80%,通過圖像處理得到的參數(shù)是眼睛的高寬比h(t),設定每次系統(tǒng)啟動后把前10次得到的參數(shù)h(t)都存到一個數(shù)組A[10]中,然后在數(shù)組A[10]中找到最大的Amax存儲到一個固定的地址中,以后每次得到一個高寬比h(t),人眼閉合程度p(t)就可以如式(1)求出:
在此系統(tǒng)中PERCLOS定義為5 s人眼閉合80%以上的幀數(shù)占圖像總幀數(shù)的百分比。當PERCLOS大于40%時判定駕駛員疲勞,啟動報警系統(tǒng)提醒駕駛員。
2 駕駛員疲勞狀況監(jiān)測系統(tǒng)的研制
2.1 硬件系統(tǒng)
設置在駕駛員前方的攝像機實時獲取駕駛員臉部視頻圖像,經(jīng)過視頻解碼器轉換成數(shù)字圖像,經(jīng)微處理器送入數(shù)據(jù)存儲器。本系統(tǒng)通過控制電源轉換開關,從而獲取兩種不同波長光源照射的臉部圖像,通過軟件處理能夠快速確定人眼位置。為本系統(tǒng)編寫的應用程序存放在程序存儲器中,系統(tǒng)上電時,通過引導程序將存放在程序存儲器中的應用程序自動引導至微處理器中的數(shù)據(jù)存儲區(qū)。當系統(tǒng)判定駕駛員處于駕駛疲勞狀態(tài)時,通過蜂鳴器給予警示。該系統(tǒng)功能框圖如圖2所示。
2.2 軟件系統(tǒng)
軟件系統(tǒng)流程圖如圖3所示,利用亮瞳效應,軸上和軸外不同波長的交替使用會得到兩幀瞳孔亮度差距很大的圖像,由于采集兩幀圖像的時間間隔非常短,只有20 ms,基本上駕駛員的位置沒有什么變化,所以兩幀圖像除瞳孔外,別的地方亮度差距不大。先對兩幀圖像中值濾波后,再差分,會得到瞳孔位置很突出的差分圖像,粗定位眼睛的位置,根據(jù)眼睛的特征設置模板,提取出人眼的邊界,最后計算PERCLOS值判斷駕駛員的疲勞狀態(tài),當差分后找不到一對瞳孔時說明采集的兩幀圖像人眼都是完全閉合的,出現(xiàn)這種狀況時把找不到瞳孔作為一個特征來處理,連續(xù)出現(xiàn)找不到瞳孔時系統(tǒng)判定人眼一直閉合,判定駕駛員已經(jīng)疲勞,啟動蜂鳴器提醒駕駛員。
2.3 系統(tǒng)模塊
本系統(tǒng)分為4個模塊,分別為:圖像采集模塊、圖像處理模塊、疲勞判斷模塊和報警系統(tǒng)模塊。
評論