国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式平臺人眼疲勞檢測終端的設(shè)計與實現(xiàn)

2017-01-19 14:26李春杰王春王全虎
現(xiàn)代電子技術(shù) 2016年24期

李春杰+王春+王全虎

摘 要: 設(shè)計并實現(xiàn)一套基于Android平臺的人眼疲勞檢測終端。從攝像頭中獲取駕駛員的臉部圖像數(shù)據(jù),快速識別并定位到人臉部。再進行人眼部的定位,利用最大類間法Otsu對人眼進行目標(biāo)提取以及Robert Cross邊緣檢測獲得人眼的輪廓,從而進行人眼狀態(tài)分析;利用PERCLOS原理進行疲勞的狀態(tài)判斷,并且借助開源視覺庫Android?OpenCV提高了系統(tǒng)的開發(fā)效率。在室內(nèi)環(huán)境的實驗結(jié)果表明該終端的表現(xiàn)良好。

關(guān)鍵詞: 人眼疲勞檢測; 人眼狀態(tài)分析; 人臉定位; 人眼輪廓獲?。?Android

中圖分類號: TN911.23?34; TP391 文獻標(biāo)識碼: A 文章編號: 1004?373X(2016)24?0006?03

Design and implementation of human?eye fatigue detection terminal based on

Android platform

LI Chunjie, WANG Chun, WANG Quanhu

(School of Software Engineering of USTC, Suzhou 215123, China)

Abstract: A human?eye fatigue detection terminal based on Android platform was designed and implemented. It can acquire the driver′s face image data from the camera, recognize and locate quickly the face, and then locate the eyes. The Otsu is used to extract the human?eye target and the Robert Cross edge detection is used to acquire the outline of the human?eye to analyze the eye status. The PERCLOS principle is adopted to judge the fatigue status of human?eye. The development efficiency of the system is improved by means of the open?source vision library Android?OpenCV. The results of experiment in the indoor environment show that the terminal behaves well.

Keywords: human?eye fatigue detection; human?eye state analysis; face location; human?eye outline acquisition; Android

隨著汽車的不斷普及,交通事故也隨之增多,全球每年約有1 800萬人在交通事故中受傷或者喪生,經(jīng)濟的損失更是高達千億美元計,交通安全事故極大地威脅著社會公眾的安全和財產(chǎn)。僅2011年,我國交通事故發(fā)生總數(shù)超過210 000起,共造成62 000多人死亡,統(tǒng)計表明,疲勞駕駛造成的交通事故占總數(shù)的8%左右,因此開發(fā)一套實時的駕駛員疲勞檢測系統(tǒng)具有深刻的社會意義和經(jīng)濟價值。

1 系統(tǒng)方案設(shè)計

1.1 系統(tǒng)層次框圖

本文設(shè)計并實現(xiàn)的人眼疲勞檢測系統(tǒng)是基于Android操作系統(tǒng),采用開源的Android?OpenCV庫進行的,其系統(tǒng)層次框圖如圖1所示。

1.2 疲勞判斷原理

PERCLOS(Percentage of Eyelid Closure Over the Pupil Time)指眼睛閉合時間占某一特定時間的百分比[1?4],其數(shù)據(jù)能真正估計出疲勞,是疲勞評估測定的最好方法之一,其包含三種評價標(biāo)準(zhǔn)[5?8]:P70,P80以及EM,其中又以P80標(biāo)準(zhǔn)最優(yōu)[5,7?8],P80標(biāo)準(zhǔn):當(dāng)人眼部瞳孔面積閉合超過80%作為判定閉合的標(biāo)準(zhǔn)。其示意圖如圖2所示。

圖2中t1表示最大睜開到閉合20%所用的時間,t2表示最大睜開到閉合80%所用時間,t3表示最大睜開到睜開20%所用時間,t4表明最大睜開到睜開80%所用的時間。PERCLOS值的計算公式如下:

1.3 人眼狀態(tài)判斷

根據(jù)攝像頭采集的人臉部圖像進行實時處理,首先需要進行人臉部的檢測和定位;隨后將該區(qū)域設(shè)置成為感興趣區(qū)域進行人眼部的定位,根據(jù)圖像分割技術(shù)進行人眼的形狀分離,二值化處理主要是將目標(biāo)從背景中分離出來,而邊緣檢測是為了檢測出圖像的邊緣信息,根據(jù)分離出的形狀判斷眼睛是否處于閉合狀態(tài)。該過程的示意過程如圖3所示。

1.4 系統(tǒng)實現(xiàn)流程圖

根據(jù)以上的分析,系統(tǒng)通過攝像頭采集圖像,對每一幀的圖像進行分析。其主要解決兩個問題:一是人眼的狀態(tài)判斷;二是疲勞的狀態(tài)判斷。當(dāng)PERCLOS值大于固定的閾值時,系統(tǒng)發(fā)出預(yù)警提示。整個過程的實現(xiàn)流圖如圖4所示。

2 系統(tǒng)實現(xiàn)過程

2.1 預(yù)處理階段

在正常的駕駛條件下,由于諸多因素的影響,通過攝像頭采集的圖像可能包含噪聲或者由于分辨率、背景突變等原因?qū)罄m(xù)的圖像運算帶來干擾,為了消除這些影響,需要對圖像進行預(yù)處理:包含了去噪處理和直方圖均衡化。Android?OpenCV中對應(yīng)的接口分別是:Imgproc.medianBlur(Mat src,Mat des,int ksize)以及Imgproc.equalizeHist(Mat src,Mat des)。

2.2 人眼的狀態(tài)判斷

系統(tǒng)的人眼狀態(tài)判斷實現(xiàn)包含了人臉檢測過程、人眼定位過程、人眼分離過程(二值化處理和邊緣檢測)。

2.2.1 人臉檢測

傳統(tǒng)的檢測人臉方法有很多種:基于膚色的分離、基于統(tǒng)計模型、PCA方法,但是這些方法識別的時間較長,并且準(zhǔn)確率不高。在本文中,采用的是OpenCV中非常成功的基于Haar?Like特征的Adaboost算法。人臉檢測分成兩步:首先訓(xùn)練過程產(chǎn)生分類器文件;再利用分類器進行人臉檢測過程[9]。訓(xùn)練過程:準(zhǔn)備正負樣本,正樣本是需要檢測的目標(biāo)(正臉),負樣本是不含正樣本特征的任何目標(biāo);利用CreatSample程序準(zhǔn)備正樣本集;利用Haar?Training程序訓(xùn)練得到分類器特征XML文件。檢測過程:利用Android?OpenCV中的分類器構(gòu)建函數(shù)去加載該特征XML文件,利用分類器本身的成員函數(shù)[9?10]:detectMultiScale(Mat image,List objects,double scaleFactor,int minNeighbors,int flags,Size minSize)對指定的image進行檢測。其函數(shù)各參數(shù)的意義為:Image,需要進行目標(biāo)檢測的區(qū)域;Object,將檢測到的目標(biāo)標(biāo)記在矩形框中;scaleFactor,代表圖像的縮放因子;Minneighbors,指定每個候選矩陣至少包含的鄰近元素個數(shù);Flag,標(biāo)志位,默認為0;Minsize,最小的檢測窗口,如果該值設(shè)置過小,將會導(dǎo)致圖像的計算量較大。

2.2.2 人眼定位

同樣的,人臉的檢測和定位同樣采用該Adaboost算法,加載的分類器文件為自帶的haarcascade_mcs_eyepair_big.xml,其檢測的成功率達到95%以上。關(guān)于人臉和人眼的檢測效果圖如圖5所示。

2.2.3 基于Otsu的灰度二值化

當(dāng)系統(tǒng)成功標(biāo)記處人眼部的區(qū)域后,需要進行二值化處理,從而實現(xiàn)眼部提取。但是由于圖像的灰度值對光線很敏感,固定的閾值勢必?zé)o法滿足要求,本文采用的是基于Otsu算法的二值化處理。Otsu算法,又被稱為最大類間法,是一種自適應(yīng)的圖像分割技術(shù)。它是根據(jù)最小二乘原理推導(dǎo)出來的,根據(jù)光線強度的不同,閾值會隨之變化,能得到最優(yōu)的閾值[11]。其基本原理為:將直方圖在某一閾值分割成兩組,稱為“前景”和“背景”,當(dāng)被分成的兩組的方差最大時,該閾值就是最佳分割閾值。方差是灰度均勻分布的一種度量,值越大說明構(gòu)成圖像兩部分的差別越大,當(dāng)部分“前景”錯分為“背景”或者“背景”錯分為“前景”時,都會導(dǎo)致方差變小,因此最大類間法意味著錯分的概率最小。對于圖像直方圖,不妨假設(shè)其灰度級為0~m,像素點個數(shù)為N,針對某一個分割閾值t,那么整個圖像被分割成兩部分,0~t稱為“前景”,而t+1~m稱為“背景”?!扒熬啊钡臋?quán)重為[Wf],均值設(shè)為[Mf],方差為[Df],“背景”的權(quán)重為[Wb],均值設(shè)為[Mb],方差為[Db]。圖像的整體的方差公式如下:

[D=Wf*Df+Wb*Db] (2)

Otsu的最終目的就是要求出D的最大值來,從而得到最優(yōu)的分割閾值。

2.2.4 基于Robert Cross 的邊緣檢測

邊緣是圖像灰度值變化劇烈的位置,因此包含了大量的有用信息,常用的邊緣檢測包含很多,比如:Robert Cross邊緣檢測、Canny邊緣檢測、Prewitt邊緣檢測、Sobel檢測。但是這些方法中惟有Robert Cross計算方便簡單、快速,容易在實時系統(tǒng)中實現(xiàn),本系統(tǒng)中采用的就是該檢測方法,根據(jù)任意一對互相垂直方向上像素點的差分來計算梯度的原理[12?13],采用對角線方向相鄰像素灰度差,如下:

式中:G是計算之后的灰度值;f是原始圖像的灰度值。雖然Robert檢測速度很快,但是其缺點也是很明顯的,對噪聲敏感,并且邊緣不是很光滑。當(dāng)成功提取出邊緣輪廓之后,根據(jù)邊緣的最大垂直距離,進行眼睛的狀態(tài)判斷,多次試驗結(jié)果表明,該系統(tǒng)中當(dāng)最大的垂直邊緣距離小于眼睛標(biāo)記矩形區(qū)域高度的40%的時候,判斷是閉合狀態(tài)。對于眼睛的提取在不同光線下的效果圖如圖6~圖8所示。

2.3 疲勞狀態(tài)判斷

系統(tǒng)采用的是PERCLOS原理進行疲勞的判斷,當(dāng)PERCLOS值大于40%之后將會進行疲勞判定,并且會進行預(yù)警提示。針對每一幀圖像的人眼邊緣信息,可以判斷出人眼的閉合狀態(tài)。本文中對幀狀態(tài)Ni的設(shè)置:當(dāng)人眼處于閉合狀態(tài)時,Ni的值為1,睜開狀態(tài)Ni的值為0。因此PERCLOS的計算公式可以轉(zhuǎn)換為:

[PERCLOS=i=0NNiN] (4)

對連續(xù)的N=30幀進行檢測,當(dāng)PERCLOS的值大于40%的時候表明駕駛員處于疲勞狀態(tài),進行預(yù)警提示。

3 系統(tǒng)實驗

在實驗室的環(huán)境下,測試平臺為三星GT?9100G,邀請了同組的成員進行疲勞模擬,然后利用該系統(tǒng)進行疲勞檢測。一共進行了5組實驗,其中檢測出4組,未被檢測的那一組,原因在于其眼睛較小,張開和閉合的狀態(tài)不是很明顯,導(dǎo)致系統(tǒng)無法進行確切的識別。另外,還邀請2組同學(xué)帶著眼鏡進行測試,發(fā)現(xiàn)系統(tǒng)能有效地標(biāo)記出人眼,但是由于眼鏡的部分邊框也被標(biāo)記在了邊緣提取區(qū)域內(nèi),造成了邊緣的最大垂直距離較大,不能有效地判斷人眼狀態(tài),對PERCLOS值的計算造成了影響。圖9和圖10是其中一個同學(xué)的實驗效果圖。

4 結(jié) 語

本文實現(xiàn)的基于Android平臺的人眼疲勞檢測終端,在實驗室的環(huán)境下表現(xiàn)良好,從實驗結(jié)果可以看出:系統(tǒng)能快速地定位到人臉和人眼,采用的是攝像頭進行圖像采集,能有效地避免和監(jiān)測者的接觸,提高了監(jiān)測系統(tǒng)的適用性,適合駕駛條件下的疲勞檢測。Otsu二值化方法和Robert Cross邊緣檢測相結(jié)合的人眼分割技術(shù)能有效地使系統(tǒng)不受光線強弱的變化,快速提取出人眼的形狀和邊緣分布,提高了PERCLOS值的計算精度。系統(tǒng)目前也同樣存在一些限制:實時性不是很好,目前僅能做到7 f/s的處理水平,因為嵌入式平臺本身的限制和開發(fā)環(huán)境本身的原因,以及各類算法優(yōu)化程度不夠造成圖像的處理速度不夠;不能有效地排除眼鏡邊框造成的邊緣信息提取,需要進一步地提高眼睛的定位精度。這些都是后續(xù)要對系統(tǒng)進行改進的方向。

參考文獻

[1] 劉洪榛.基于機器視覺的疲勞駕駛檢測算法研究[D].廣州:華南理工大學(xué),2012.

[2] 趙團.基于機器視覺的駕駛員疲勞檢測技術(shù)的研究與實現(xiàn)[D].遼寧:東北大學(xué),2010.

[3] 焦波波.基于眼睛狀態(tài)的駕駛?cè)似跈z測技術(shù)的研究[D].長沙:中南大學(xué),2012.

[4] 倪小鵬.基于視覺的駕駛員疲勞狀態(tài)檢測方法研究[D].上海:華東理工大學(xué),2012.

[5] 吳康華.基PERCLOS的駕駛疲勞檢測系統(tǒng)設(shè)計[D].杭州:浙江大學(xué),2008.

[6] 夏芹,宋義偉,朱學(xué)峰.基于PERCLOS的駕駛疲勞監(jiān)控方法進展[J].自動化技術(shù)與應(yīng)用,2008,27(6):43?46.

[7] 郭永彩,李文濤,高潮.基于PERCLOS的駕駛員疲勞檢測算法[J].計算機系統(tǒng)應(yīng)用,2009,18(8):54?57.

[8] 劉江偉.基于人眼檢測的駕駛員疲勞狀態(tài)識別技術(shù)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2008.

[9] 劉瑞禎.OpenCV教程?基礎(chǔ)版[M].北京:北京航天航空大學(xué)出版社,2007.

[10] 王宏彬,李燈熬,趙菊敏,等.利用OpenCV實現(xiàn)在Android系統(tǒng)下的人臉檢測[J].軟件工程與技術(shù),2011,32(12):4?7.

[11] 曹亮.基于Otsu理論的圖像分割算法研究[D].武漢:武漢理工大學(xué),2008.

[12] 趙芳,欒曉明,孫越.數(shù)字圖像幾種邊緣檢測算子檢測比較[J].自動化技術(shù)與應(yīng)用,2009,28(3):68.

[13] 管宏蕊,丁輝.圖像邊緣檢測經(jīng)典算法研究綜述[J].首都師范大學(xué)學(xué)報(自然科學(xué)版),2009(z1):66?69.