摘 要: 將ARM+DSP技術(shù)應(yīng)用于駕駛員的疲勞檢測(cè),使用S3C2440作為核心處理器,利用TMS320DM642作為視頻采集處理模塊,詳細(xì)討論了硬件平臺(tái)與接口的設(shè)計(jì)。提出了一種簡(jiǎn)單有效的基于眼部特征的疲勞駕駛檢測(cè)算法,結(jié)合單目機(jī)器視覺(jué)實(shí)現(xiàn)了駕駛員眼部睜閉狀態(tài)的有效判定和疲勞駕駛的實(shí)時(shí)檢測(cè)。在滬寧高速南京段的實(shí)驗(yàn)結(jié)果表明,該算法的實(shí)時(shí)性與精確性可以滿(mǎn)足安全行駛的要求。
關(guān)鍵詞: 疲勞駕駛檢測(cè);眼部特征;改進(jìn)積分投影;ARM+DSP
如何為駕駛員提供一個(gè)有效實(shí)用的安全輔助駕駛系統(tǒng)是車(chē)輛安全駕駛的一個(gè)重要課題?;跈C(jī)器視覺(jué)的疲勞駕駛檢測(cè)技術(shù)已在國(guó)內(nèi)外開(kāi)展了廣泛研究,其中以駕駛員眼部特征的檢測(cè)最為廣泛。
本文以低成本、低功耗、高實(shí)時(shí)性為設(shè)計(jì)原則,以ARM+DSP構(gòu)成硬件平臺(tái),并移植了嵌入式操作系統(tǒng)Windows CE 5.0,設(shè)計(jì)了一套基于駕駛員眼部特征的疲勞駕駛檢測(cè)算法,對(duì)駕駛員駕駛過(guò)程進(jìn)行實(shí)時(shí)檢測(cè)和報(bào)警,從而提高駕駛的安全性與舒適性。
1 硬件平臺(tái)設(shè)計(jì)
系統(tǒng)硬件平臺(tái)選用三星公司ARM9架構(gòu)的S3C2440作為核心處理器,利用TI公司的TMS320DM642作為視頻采集處理模塊,其結(jié)構(gòu)框圖如圖1所示。DSP平臺(tái)主要負(fù)責(zé)采集圖像、圖像算法處理,ARM平臺(tái)主要完成整個(gè)系統(tǒng)的控制處理,兩者之間通過(guò)網(wǎng)口實(shí)現(xiàn)通信和同步。在系統(tǒng)運(yùn)行過(guò)程中,ARM平臺(tái)可實(shí)時(shí)顯示采集到的視頻以及相應(yīng)眼部疲勞特征識(shí)別的結(jié)果,同時(shí)用戶(hù)可通過(guò)觸摸屏交互界面對(duì)系統(tǒng)進(jìn)行設(shè)置和控制。為保證系統(tǒng)平臺(tái)具有高的可靠性以實(shí)現(xiàn)復(fù)雜的系統(tǒng)調(diào)度,在設(shè)計(jì)過(guò)程中對(duì)本系統(tǒng)各平臺(tái)進(jìn)行了操作系統(tǒng)移植,DSP平臺(tái)移植了DSP/BIOS系統(tǒng),ARM平臺(tái)移植了Wince操作系統(tǒng)。
S3C2440是一款基于ARM92OT核的16/32 bit RSIC結(jié)構(gòu)的嵌入式微處理器,主頻為400 MHz,最高可達(dá)533 MHz;片內(nèi)外資源豐富,具有強(qiáng)大的處理能力。系統(tǒng)存儲(chǔ)擴(kuò)展了64 MB的NANDFlash、64 MB的SDRAM;另外還有2 MB的NORFalsh,用于存放系統(tǒng)引導(dǎo)加載程序[1]。
TMS320DM642芯片[2]能夠?qū)崟r(shí)高速地完成大數(shù)據(jù)量的數(shù)字視頻編解碼處理,是強(qiáng)大的高性能單片多媒體處理器,具有高質(zhì)量、多通道、優(yōu)越的視頻處理性能,以及完整的軟件可編程特性;基于C64x系列VelociTI.2DSP 架構(gòu)的設(shè)計(jì),與TI公司其他的C64x數(shù)字信號(hào)處理器代碼相兼容,擁有500/600 MHz時(shí)鐘頻率,性能高,其傳輸速率達(dá)4 000/4 800 MIPS;不僅具有C64x系列芯片的主要特征,還高度集成了音視頻等外部設(shè)備的接口,方便多媒體應(yīng)用開(kāi)發(fā)。
2 圖像識(shí)別算法
2.1 總體檢測(cè)流程
首先,根據(jù)臉部膚色的聚類(lèi)特性檢測(cè)駕駛員臉部位置,在人臉檢測(cè)的基礎(chǔ)上,根據(jù)眼睛在人臉上的幾何位置分布,確定眼睛的大概位置,縮小眼部檢測(cè)的區(qū)域范圍;其次,在縮小的眼部搜索區(qū)域范圍內(nèi),利用Sobel邊緣檢測(cè)算法對(duì)眼部區(qū)域進(jìn)行邊緣檢測(cè),提取眼部的邊緣信息,并對(duì)其進(jìn)行二值化處理;再對(duì)二值化后的眼部區(qū)域進(jìn)行連通成分分析,采用基于區(qū)域連通的二值圖像濾波方法去除眼部周?chē)鷪D像噪聲點(diǎn)的干擾;然后根據(jù)改進(jìn)的積分投影算法,計(jì)算左右眼角和上下眼瞼的距離,確定駕駛員眼睛的睜閉狀態(tài);最后,定義眨眼頻率,并據(jù)此實(shí)現(xiàn)疲勞駕駛的檢測(cè)。具體的算法流程如圖2所示。
2.2 基于膚色聚類(lèi)的人臉檢測(cè)
膚色對(duì)面部表情、頭部旋轉(zhuǎn)以及圖像尺度的變化不敏感,但是人臉檢測(cè)的一個(gè)重要特征。在HSV顏色空間,圖像的照度和色度是分離的,膚色聚類(lèi)更緊密,不易受周?chē)饩€(xiàn)的影響。因此,本文采用基于RGB和HSV顏色空間的膚色聚類(lèi)算法對(duì)駕駛員臉部進(jìn)行檢測(cè)。
其中,h、w分別為用水平和垂直投影求得的臉部區(qū)域的高度和寬度。
2.3 眼部感興趣區(qū)域確定
假設(shè)檢測(cè)出的人臉區(qū)域長(zhǎng)度為HF、寬度為WF,在豎直方向上,眼睛大概位于臉部二分之一以上、頭頂以下HF/5的區(qū)域。在水平方向上,眼部邊界區(qū)域被定位于距離臉部左邊界WF/8處開(kāi)始到距離臉部右邊界WF/8處的區(qū)域。根據(jù)上述原則,初始眼部檢測(cè)區(qū)域?yàn)槿鐖D3中所示的矩形EFGH區(qū)域。
2.4 基于Sobel算子的邊緣檢測(cè)
邊緣是圖像灰度變化劇烈的地方,在從皮膚到眼白再到瞳孔的變化過(guò)程中,包含了豐富的眼部圖像邊緣信息,因此可以用邊緣提取的方法將眼部邊緣提取出來(lái)作為人眼檢測(cè)和定位的基礎(chǔ)。利用Sobel邊緣算子對(duì)初始眼部檢測(cè)區(qū)域進(jìn)行邊緣檢測(cè),能夠有效地將眼部邊緣提取出來(lái)。
Sobel算子可用矩陣形式表示為:
2.5 改進(jìn)積分投影算法確定左右眼角和上下眼瞼的距離
對(duì)濾波后的二值圖像,首先將初始眼部檢測(cè)區(qū)域EFGH從水平方向的中線(xiàn)位置分成如圖3所示的左右兩個(gè)部分(即右眼檢測(cè)區(qū)域EMNH和左眼檢測(cè)區(qū)域MFGN),然后利用改進(jìn)積分投影算法分別在左右眼檢測(cè)區(qū)域內(nèi)確定左右眼的左右眼角距離及上下眼瞼距離。因左、右眼的參數(shù)確定方法類(lèi)似,故僅以右眼檢測(cè)區(qū)域EMNH為例說(shuō)明參數(shù)的確定過(guò)程。具體實(shí)現(xiàn)過(guò)程如下:
(1)為避免計(jì)算過(guò)程中眼睛上方眉毛對(duì)定位結(jié)果的影響,算法在確定上下眼瞼邊緣,從右眼檢測(cè)區(qū)域EMNH的最下方一行像素開(kāi)始向上搜索,逐行從左至右統(tǒng)計(jì)每行中灰度值等于1的像素個(gè)數(shù),并將第i行中灰度值為1的像素個(gè)數(shù)之和存放在數(shù)組Nc[i]中,規(guī)定右眼檢測(cè)區(qū)域EMNH的最下方一行為第0行,即i=0;每搜索統(tǒng)計(jì)完一行后i自動(dòng)加1。
(2)對(duì)當(dāng)前第i行中灰度值等于1的像素的個(gè)數(shù)之和進(jìn)行統(tǒng)計(jì)計(jì)算,如果:
(7)根據(jù)上下眼瞼邊緣和左右眼角邊緣,利用式(8)計(jì)算眼睛的睜閉度Re,根據(jù)Re的大小和預(yù)先設(shè)定的閾值TRe,判斷駕駛員眼睛是睜開(kāi)還是閉合。當(dāng)Re≥TRe時(shí),表明眼睛處于睜開(kāi)狀態(tài);否則,當(dāng)Re<TRe時(shí),眼睛處于閉合狀態(tài)。
Re=He/We (8)
2.6 眨眼頻率計(jì)算及疲勞狀態(tài)識(shí)別
研究表明,駕駛員在產(chǎn)生疲勞的時(shí)候,不僅眨眼次數(shù)增多,而且眨眼速度變慢,眼睛閉合持續(xù)的時(shí)間變長(zhǎng)。因此,本文將駕駛員在一定時(shí)間Te內(nèi)眼睛閉合的圖像幀數(shù)nec與總圖像幀數(shù)Net的比值定義為眨眼頻率Pe作為眼部疲勞特征參數(shù),以此來(lái)判斷是否有疲勞發(fā)生[5]。駕駛員眨眼的次數(shù)越多、眨眼速度越慢、眼睛閉合持續(xù)的時(shí)間越長(zhǎng),則Pe的值就越大,相應(yīng)地也表明駕駛員越疲勞。眨眼頻率Pe的求得:
Pe=nec/Net (9)
3 實(shí)驗(yàn)與分析
為驗(yàn)證眼睛疲勞特征檢測(cè)算法的有效性,在構(gòu)建的ARM+DSP系統(tǒng)上對(duì)采集到的視頻圖像進(jìn)行實(shí)驗(yàn)驗(yàn)證。在滬寧高速南京段的實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)將算法處理時(shí)間控制在50 ms以?xún)?nèi),取得了良好的實(shí)時(shí)效果,疲勞駕駛檢測(cè)正確率達(dá)97.6%。部分圖像的眼部區(qū)域檢測(cè)結(jié)果如圖4所示,其中,第一行為人臉檢測(cè)后的面部定位圖像,第二行為經(jīng)Sobel邊緣檢測(cè)后的眼部二值圖像,第三行為得到的眼部邊界定位圖像。
通過(guò)觀察發(fā)現(xiàn),通常情況下,駕駛員在睜眼和閉眼時(shí),左、右眼的睜閉情況是同步的,即同時(shí)睜開(kāi)或同時(shí)閉合。因此,在對(duì)眼睛睜閉狀態(tài)進(jìn)行判斷時(shí),為減少計(jì)算量,僅對(duì)左眼的睜閉情況進(jìn)行判斷。針對(duì)圖4所示的眼部區(qū)域檢測(cè)結(jié)果,利用式(8)計(jì)算其左眼睜閉度的大小,計(jì)算結(jié)果如表1所示。
由表1可知,圖4中第一列和第二列所示的眼睛閉合時(shí)的睜閉度值明顯小于第三列和第四列所示的眼睛睜開(kāi)時(shí)的睜閉度值。故只要選擇合適的閾值,根據(jù)眼睛睜閉度值的大小,就可對(duì)駕駛員眼睛的睜閉狀態(tài)進(jìn)行有效判斷。
本文在ARM+DSP系統(tǒng)上實(shí)現(xiàn)了基于眼部特征的疲勞駕駛檢測(cè)算法。利用基于膚色聚類(lèi)的臉部檢測(cè)算法確定臉部邊界,采用一種簡(jiǎn)單有效的改進(jìn)積分投影算法,實(shí)現(xiàn)了駕駛員眼部睜閉狀態(tài)的有效判定和疲勞駕駛的實(shí)時(shí)檢測(cè)。
參考文獻(xiàn)
[1] 楊忻愷,張為公,于兵,等.基于DSP的車(chē)載視頻監(jiān)控存儲(chǔ)系統(tǒng)的設(shè)計(jì)[J].電子器件,2009,32(4):805-808.
[2] 袁慶輝.基于TMS320DM 642的車(chē)道偏離預(yù)警系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,32(5):70-72.
[3] Li S H,Guo G Z.The application of improved HSV color space model in image processing[C].Proceedings of the 2010 International Conference on Future Computer and Communication,2010:210-213.
[4] LIN H J,WANG S Y,YEN S H,et al.Face detection based on skin color segmentation and neural network[C]. Proceedings of 2005 International Conference on Neural Networks and Brain Proceedings,2005:1144-1149.
[5] SUN W,ZHANG W G,LI X,et al.Driving fatigue fusion detection based on T-S fuzzy neural network evolved by subtractive clustering and particle swarm optimization[J]. Journal of Southeast University(English Edition),2009,25(3):356-361.