吳榮燎 王澤群 吳凱利 李政霆
摘 要:隨著經(jīng)濟(jì)的發(fā)展,人們對(duì)安全問題越來越重視,尤其是駕車出行安全問題。本論文中設(shè)計(jì)了一種駕駛員狀態(tài)檢測(cè)的裝置,運(yùn)用目前熱門的面部識(shí)別實(shí)時(shí)檢測(cè)駕駛員的精神狀態(tài),避免駕駛員的疲勞駕駛。該裝置基于OpenCV自帶的計(jì)算機(jī)視覺庫、Visual Studio 2015以及單片機(jī)來進(jìn)行模擬,重點(diǎn)闡述了視頻圖像的灰度化的預(yù)操作,通過Haar特征訓(xùn)練和face.xml進(jìn)行人臉檢測(cè)和識(shí)別眼睛,自動(dòng)判斷當(dāng)前駕駛員是否處于疲勞駕駛。
關(guān)鍵詞:人臉檢測(cè);疲勞駕駛;Haar特征訓(xùn)練;自動(dòng)判斷
目前,我國(guó)道路交通事故年死亡人數(shù)高居世界第二位。交通事故導(dǎo)致的人員死傷和財(cái)產(chǎn)損失數(shù)不勝數(shù),其中與疲勞有關(guān)的交通事故占事故總數(shù)的20%左右,占特大交通事故的40%以上人在疲勞駕駛時(shí)往往就是在高速公路,速度比平時(shí)的道路更快,只要精神稍微不集中,反應(yīng)一遲鈍,就會(huì)發(fā)生重大交通事故。相對(duì)來講,那些長(zhǎng)途客車和貨運(yùn)車的司機(jī)因其工作原因必須長(zhǎng)時(shí)間開車,如果沒有得到良好的休息就將引發(fā)交通事故,造成嚴(yán)重的人員傷亡和財(cái)產(chǎn)損失。司機(jī)往往意識(shí)不到自己已經(jīng)疲勞駕駛這就是疲勞駕駛最最危險(xiǎn)的地方,所以在司機(jī)處于疲勞駕駛狀態(tài)得到一個(gè)提醒和警示顯得十分重要?;谏鲜銮闆r,設(shè)計(jì)了一種駕駛員狀態(tài)檢測(cè)的裝置,用于檢測(cè)駕駛員的疲勞情況,給予提醒,避免出現(xiàn)疲勞駕駛導(dǎo)致的交通事故。
1 系統(tǒng)框架設(shè)計(jì)
人眼檢測(cè)就是將視頻中的每一幀變成單獨(dú)的圖片進(jìn)行操作,將攝像頭采集到人臉信息傳給電腦,電腦進(jìn)行人臉檢測(cè)和人眼檢測(cè),通過LBPH算法將人眼檢測(cè)結(jié)果傳給單片機(jī),由單片機(jī)進(jìn)行下一步操作,流程圖如圖1所示。
單單使用現(xiàn)成的人眼檢測(cè)算法會(huì)帶來很大的誤判率,先進(jìn)行人臉檢測(cè)后再通過坐標(biāo)的方式進(jìn)行區(qū)域劃分和人眼長(zhǎng)度與寬度的預(yù)測(cè)來確定人眼區(qū)域,使用這種方式大大提高了人臉人眼檢測(cè)的準(zhǔn)確率和效率[1]。
2 圖像灰度化
灰度表明圖像明暗的數(shù)值,是單通道的數(shù)據(jù),而我們平時(shí)攝像頭采集的一般都是彩色的圖像,用R(Red)G(Green)B(Blue)三通道的數(shù)據(jù)表示,我們?cè)谶M(jìn)行圖像操作前首先將三通道的RGB圖像轉(zhuǎn)化為單通道的灰度圖像。灰度化處理后圖像依然能夠保留原圖的大部分信息,但對(duì)于后續(xù)的算法執(zhí)行時(shí)間復(fù)雜度和空間復(fù)雜度大大降低[2]。在Visual Studio 2015中直接用cvtColor(src, dst, CV_BGR2GRAY)這個(gè)函數(shù)可以直接將彩色圖像轉(zhuǎn)變成灰度圖像,達(dá)到圖像的預(yù)操作。彩色圖的像素轉(zhuǎn)換為灰度圖的像素,轉(zhuǎn)換公式如下式2-1所示,GRAY 為灰度值。
3 系統(tǒng)設(shè)計(jì)原理
本系統(tǒng)中的人臉檢測(cè)使用Haar特征進(jìn)行AdaHoost分類器訓(xùn)練生成Haar分類器,尋找圖片中的ROI(region of interest)區(qū)域并進(jìn)行標(biāo)定。
3.1 Haar特征
Haar特征分為三類:邊緣特征、線性特征、中心特征和對(duì)角線特征,組合成特征模板。特征模板內(nèi)有白色和黑色兩種矩形,并定義該模板的特征值為白色矩形像素和減去黑色矩形像素和,Haar特征值反映了圖像的灰度變化情況[3]。例如:臉部的一些特征能由矩形特征簡(jiǎn)單的描述,如:眼睛要比臉頰顏色要深,鼻梁兩側(cè)比鼻梁顏色要深,嘴巴比周圍顏色要深等。Haar分類器可由多個(gè)強(qiáng)分類器進(jìn)行級(jí)聯(lián)組合,Haar分類器由Haar-like特征加積分圖加AdaHoost再加級(jí)聯(lián)構(gòu)成,具體強(qiáng)分類器的方式如下:
3.2 AdaBoost分類器
Haar特征只能取得圖像的灰度變化情況的大小,但是需要對(duì)比普通人臉的圖像灰度特征才能確定這張圖像是否為人臉,因此需要引入AdaBoost分類器,利用足夠多的正樣本和足夠多的負(fù)樣本進(jìn)行AdaBoost分類器訓(xùn)練,在開始訓(xùn)練時(shí)每一個(gè)樣本都是擁有相同的權(quán)值,之后再次進(jìn)行重新計(jì)算重復(fù)反饋權(quán)值的時(shí)候,將錯(cuò)誤樣本的權(quán)值提高,正確樣本的權(quán)值降低。弱分類器就是根據(jù)新的權(quán)值分配進(jìn)行重復(fù)的訓(xùn)練最后得到的[4]。級(jí)聯(lián)強(qiáng)分類器的目標(biāo)是,將若干個(gè)強(qiáng)分類器按一定順序排列,希望經(jīng)過訓(xùn)練使每個(gè)強(qiáng)分類器都有較高檢測(cè)率,而降低誤識(shí)別率,比如一個(gè)強(qiáng)分類器可以通過99%的人臉,但也可以通過50%的非人臉,這樣如果有20個(gè)強(qiáng)分類器級(jí)聯(lián),那么就能達(dá)到0.99^20約等于98%的總識(shí)別率,但是也僅只有約等于0.5^20 0.0001%的錯(cuò)誤識(shí)別率。這樣的結(jié)果是可以很好地滿足需求[5]。最終,通過將弱分類器重復(fù)反饋生成強(qiáng)分類器。最終將正確的結(jié)果輸出出來,級(jí)聯(lián)分類器示意圖如圖2。
4 系統(tǒng)工作實(shí)現(xiàn)
4.1 人臉識(shí)別過程
本文使用的是OpenCV自帶的haarcascade_frontalcatface.xml文件,里面包含OpenCV提供的人臉庫,使用這個(gè)文件就能迅速、準(zhǔn)確的識(shí)別出人臉,一旦檢測(cè)出人臉后,用矩形將人臉框出。畫出人臉的矩形后繼續(xù)在人臉矩形的范圍內(nèi)檢測(cè)人眼的位置,即將人臉區(qū)域作為ROI區(qū)域,接下去的操作只會(huì)在ROI區(qū)域內(nèi)處理。這個(gè)步驟可以運(yùn)行OpenCV自帶的haarcascade_eye.xml文件,檢測(cè)到眼睛后,同樣用矩形將眼睛框出。如果檢測(cè)到臉,但是沒有檢測(cè)到眼睛,說明駕駛員眼睛已經(jīng)閉上或者睜得很小,處于疲勞狀態(tài),此時(shí)若駕駛員眼睛閉上時(shí)間大于1秒或者眨眼頻率過快,我們即可判斷駕駛員需要休息,已經(jīng)不太適合繼續(xù)開車了,這時(shí)的電腦就會(huì)發(fā)送一個(gè)信號(hào)給單片機(jī),發(fā)出報(bào)警聲,來提醒駕駛員清醒或者停車休息。
4.2 實(shí)時(shí)傳輸
一旦系統(tǒng)檢測(cè)到駕駛員眼睛的變化情況,判定駕駛員處于疲勞狀態(tài),電腦會(huì)通過串口自動(dòng)發(fā)送一個(gè)信號(hào)給單片機(jī),實(shí)時(shí)監(jiān)測(cè),若在警報(bào)聲的提醒下駕駛員恢復(fù)精神,電腦又會(huì)發(fā)送一個(gè)信號(hào)給單片機(jī),令其停止警報(bào)。在這里我輸入的程序?yàn)榘l(fā)送數(shù)字1和數(shù)字0。OpenCV 提供的視覺處理算法非常豐富,加上其開源的特性,不需要添加新的外部支持也可以完整的編譯鏈接生成執(zhí)行程序,代碼經(jīng)過適當(dāng)改寫可以正常的運(yùn)行在ARM嵌入式系統(tǒng)中,是圖像處理十分重要的軟件支持。只需要在電腦和單片機(jī)雙方規(guī)定好通信協(xié)議,如波特率,奇偶校驗(yàn),數(shù)據(jù)字長(zhǎng),起始位,中止位等協(xié)議。
4.3 實(shí)驗(yàn)結(jié)果
將控制蜂鳴器和串口通信的代碼輸入進(jìn)單片機(jī),連接電腦,啟動(dòng)系統(tǒng),電腦會(huì)自動(dòng)打開攝像頭并且將圖像數(shù)據(jù)實(shí)時(shí)經(jīng)過分類器處理,畫出矩形框,正常狀態(tài)和疲勞狀態(tài)的圖像對(duì)比如圖3和圖4。當(dāng)系統(tǒng)檢測(cè)到圖3狀態(tài)時(shí),電腦通過串口輸出數(shù)字0給單片機(jī),單片機(jī)不行進(jìn)行下一步的操作,一旦系統(tǒng)檢測(cè)到圖4狀態(tài)時(shí),電腦通過串口輸出數(shù)字1給單片機(jī),單片機(jī)就會(huì)讓LED小燈閃爍并提供一個(gè)脈沖給蜂鳴器,令蜂鳴器發(fā)出響聲,以此來模擬當(dāng)駕駛員出現(xiàn)疲勞駕駛時(shí)的警報(bào)。
5 結(jié)語
本文介紹的系統(tǒng)主要運(yùn)用計(jì)算機(jī)視覺庫(OpenCV),軟件開發(fā)工具(Visual Studio 2015)以及下位機(jī)制作模擬了一套駕駛員檢測(cè)系統(tǒng),旨在解決目前眾多交通事故中由疲勞駕駛導(dǎo)致的交通事故。從實(shí)用角度看,如果每輛汽車上都裝有這種裝置,有利于減少人員傷亡和財(cái)產(chǎn)損失,為長(zhǎng)途出行的駕駛員提供了一份警示和安全保障,防止駕駛員不知不覺疲勞而導(dǎo)致意識(shí)模糊,反應(yīng)遲鈍,操作無力。經(jīng)過試驗(yàn),該系統(tǒng)性能穩(wěn)定,效果良好。其次,各部分算法還有待精進(jìn),比如需要完全閉眼時(shí)才能準(zhǔn)確檢測(cè)并報(bào)警,瞇眼會(huì)判定駕駛員精神狀態(tài)良好,這部分有待改進(jìn)。
參考文獻(xiàn):
[1]尚麗娜,石晴瑤,方健.基于OpenCV的人眼檢測(cè)及疲勞判斷[J].電子世界,2018(21):19-20+23.
[2]邱鵬瑞.基于OpenCV的視頻監(jiān)控與跟蹤系統(tǒng)研究[J].計(jì)算機(jī)與數(shù)字工程,2019,47(04):888-891.
[3]米羅西.圖像特征提取三大法寶:HOG特征,LBP特征,Haar特征[EB/OL].
[4]劉伍豐,何前磊,鄭維.基于HAAR特征與BP神經(jīng)網(wǎng)絡(luò)的車牌識(shí)別技術(shù)研究[J].電子測(cè)量技術(shù),2019,42(08):61-67.
[5]余建波.基于OpenCV的視頻人臉識(shí)別系統(tǒng)設(shè)計(jì)[J].信息通信,2018(12):40-42.
項(xiàng)目基金:江蘇省高等學(xué)校大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目
項(xiàng)目編號(hào):201913655008Y
作者簡(jiǎn)介:吳榮燎(1998-),男,浙江寧波人,本科在讀,研究方向:汽車電氣控制。