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