蔣鵬民 李海標 黃名柏 時君
(桂林電子科技大學(xué),桂林 541004)
主題詞:駕駛員 疲勞檢測 轉(zhuǎn)向盤圖像 支持向量機
統(tǒng)計數(shù)據(jù)表明,我國每年因疲勞駕駛引起的交通事故占交通事故總數(shù)的20%左右,占特大交通事故的40%以上[1]。如果能在駕駛員疲勞產(chǎn)生的初期給予安全提醒,將會最大程度地避免交通事故,所以實時疲勞檢測系統(tǒng)的設(shè)計研究對道路交通安全意義重大。現(xiàn)有駕駛員的疲勞檢測方法主要依靠人臉面部特征進行判別[2],這種檢測方法所采用的算法較復(fù)雜,實時效果較差,受個人特征影響較大。
研究發(fā)現(xiàn),轉(zhuǎn)向盤轉(zhuǎn)角數(shù)據(jù)能實時反映駕駛員的操作狀態(tài),通過檢測轉(zhuǎn)向盤轉(zhuǎn)角的實時變化即可判斷駕駛員的疲勞狀態(tài),其中關(guān)鍵是對轉(zhuǎn)向盤轉(zhuǎn)角的測量。目前國內(nèi)外主要采用轉(zhuǎn)角測試儀或轉(zhuǎn)角傳感器[3]對轉(zhuǎn)向盤轉(zhuǎn)角進行測量,但這些儀器安裝困難,不便于拆卸移動。為此,本文提出基于轉(zhuǎn)向盤圖像的駕駛員疲勞檢測方法,并建立了駕駛員的疲勞判別模型,通過試驗驗證了判別模型的有效性。
基于轉(zhuǎn)向盤圖像的駕駛員疲勞檢測流程如圖1所示。首先,由攝像頭實時采集轉(zhuǎn)向盤圖像并進行預(yù)處理,通過對預(yù)處理后的轉(zhuǎn)向盤圖像進行特征點的檢測和跟蹤,進而計算出轉(zhuǎn)向盤的轉(zhuǎn)角;其次,根據(jù)轉(zhuǎn)向盤轉(zhuǎn)角計算出與疲勞最相關(guān)的兩個指標,即零速百分比PNS和角度標準差σ;最后,采用支持向量機(SVM)算法建立駕駛員的疲勞判別模型,利用該模型對試驗數(shù)據(jù)進行判別。

圖1 基于轉(zhuǎn)向盤圖像的駕駛員疲勞檢測流程
2.2.1 轉(zhuǎn)向盤轉(zhuǎn)角計算方法
2.2.1.1 轉(zhuǎn)向盤圓心位置確定
通常情況下轉(zhuǎn)向盤形狀可視為圓形,但由于攝像頭的安裝位置不一定在轉(zhuǎn)向盤中心的正上方,為增強算法的魯棒性,采集過程中的轉(zhuǎn)向盤形狀一般按橢圓來處理。
首先利用安裝于駕駛室車頂位置的攝像頭拍攝一張白色背景的轉(zhuǎn)向盤圖像作為初始圖像(圖2),然后利用OpenCV庫中findContours()函數(shù)對初始圖像進行處理,通過設(shè)置一些約束參數(shù)得到轉(zhuǎn)向盤圖像的最外輪廓。為快速找到轉(zhuǎn)向盤圓心位置,在OpenCV中利用圖像矩moments()函數(shù)[4]計算圖像中所有的矩,進而計算出轉(zhuǎn)向盤圓心位置坐標O(x0,y0)。

圖2 轉(zhuǎn)向盤初始圖像
2.2.1.2 特征點的檢測與跟蹤
特征點(也稱角點)常被定義為兩條邊的交點,更嚴格地說,特征點的局部領(lǐng)域應(yīng)該具有兩個不同區(qū)域的不同方向的邊界。
如圖3所示,攝像頭拍攝到的橢圓形轉(zhuǎn)向盤上特征點位置坐標為m(xm,ym),而實際特征點位置坐標為M(xM,yM),跟蹤點m計算出的轉(zhuǎn)角與實際轉(zhuǎn)角(由點M計算出的轉(zhuǎn)角)存在一定的偏差。m(xm,ym)與M(xM,yM)之間的對應(yīng)關(guān)系為:

式中,Xo為圓心位置橫坐標;半徑R為橢圓長半軸(等于轉(zhuǎn)向盤最外輪廓半徑),且R的長度不變。

圖3 檢測到的特征點位置與實際位置示意
為了使檢測到的特征點坐標更精確,采用OpenCV庫中亞像素級特征點檢測函數(shù)cornerSubPix()[5]得到當(dāng)前幀轉(zhuǎn)向盤圖像上特征點位置坐標A0(xm01,ym01)和B0(xm02,ym02),經(jīng)式(1)和式(2)換算后得到當(dāng)前幀轉(zhuǎn)向盤實際位置坐標A0(xM01,yM01)和B0(xM02,yM02,)如圖4所示。

圖4 轉(zhuǎn)向盤上特征點位置示意
在圖像處理領(lǐng)域可設(shè)置感興趣區(qū)域(ROI),也就是從圖像中選擇一個分析所關(guān)注的重點區(qū)域,在此區(qū)域內(nèi)用鼠標點擊即可檢測出此區(qū)域內(nèi)的特征點,以提高特征點的檢測速度。
如果對每幀轉(zhuǎn)向盤圖像都要進行特征點檢測則算法較復(fù)雜,同時考慮到在實際行車過程中駕駛員手臂可能會遮擋部分轉(zhuǎn)向盤,為此,采用KLT跟蹤算法[6]對特征點進行實時跟蹤。
KLT跟蹤算法的原理為:假設(shè)相鄰兩幀圖像的亮度恒定、時間連續(xù)和空間一致性,簡單的說,通過迭代尋找上一幀中轉(zhuǎn)向盤圖像中的特征點在當(dāng)前幀中的位置。KLT跟蹤算法的具體實現(xiàn)過程被寫成了庫函數(shù)CalcOpticalFlowPyrLK(),把上一幀特征點位置坐標A0(xM01,yM01)和輸入到CalcOpticalFlowPyrLK()函數(shù)中,函數(shù)輸出當(dāng)前幀特征點位置坐標A1(xM11,yM11)和
2.2.1.3 轉(zhuǎn)向盤轉(zhuǎn)動角度θ的計算
當(dāng)轉(zhuǎn)向盤轉(zhuǎn)動角度θ后,當(dāng)前幀的特征點位置為如圖5所示,最終轉(zhuǎn)向盤轉(zhuǎn)動角度θ為特征點A0和B0轉(zhuǎn)動角度的平均值,即


由兩點間距離公式計算出:
同理可算出 |OA1|、 |A0A1|、|OB0|、 |OB1|和 |B0B1|。

式中,NPSi為第i幀的零速百分比;Ni為第i幀前50 s內(nèi)角速度的總采樣點數(shù);ni為第i幀前50 s內(nèi)角速度在±0.1°/s內(nèi)的點數(shù)。
另外利用角度標準差σ表征所選時間段內(nèi)轉(zhuǎn)向盤轉(zhuǎn)角波動的大小,角度標準差計算式為:

一般情況下,需要求兩個特征點動角度的平均值作為最后的轉(zhuǎn)角數(shù)據(jù),但是汽車實際行駛過程中駕駛員可能會遮擋一個特征點,這時另外一個特征點的轉(zhuǎn)角可作為最終的轉(zhuǎn)角數(shù)據(jù)。
2.2.2 特征提取
研究發(fā)現(xiàn),當(dāng)駕駛員處于疲勞狀態(tài)時,其對轉(zhuǎn)向盤的修正頻度減少,轉(zhuǎn)向盤靜止不動的時間增多。本文采用零速百分比PNS來表征所選時間段內(nèi)轉(zhuǎn)向盤靜止不動的程度[7],取時間段為50 s,采樣頻率為10幀/s,則零速百分比PNS計算式為:
式中,θj為第j幀對應(yīng)的轉(zhuǎn)向盤轉(zhuǎn)角;μ為第M幀內(nèi)平均每幀轉(zhuǎn)向盤轉(zhuǎn)角。
2.2.3 疲勞狀態(tài)判別算法
綜合所得的零速百分比PNS和角度標準差σ,采用支持向量機(SVM)分類算法建立駕駛員疲勞判別模型[8]。
支持向量機分類算法先訓(xùn)練樣本集S,在樣本空間中找到一個劃分不同類的超平面,該超平面對應(yīng)的模型為ωTx+b=0,模型參數(shù)ω為法向量、b為位移項、T為轉(zhuǎn)置為零速百分比和角度標準差組成的自變量。
支持向量機分類算法實現(xiàn)步驟如下。
a.訓(xùn)練樣本的采集。選擇擁有5年以上駕齡的5名駕駛員,每位駕駛員隨機挑選一部車況良好的車輛,采集不同行駛狀況下的100個訓(xùn)練樣本,樣本情況如表1所列。

表1 不同行駛狀況下采集的樣本數(shù)量
b.參數(shù)的求解。找到一個超平面將訓(xùn)練樣本分開,且滿足兩類支持向量(滿足ωTx+b=±1的樣本點)到超平面的距離之和最大,也就是找到約束模型ωTx+b=0的參數(shù)ω和b,使得間隔最大,即

以上就是支持向量機融合算法的基本模型,式(10)本身是凸二次規(guī)劃問題,可以直接用現(xiàn)成的優(yōu)化方法來計算,但是可以采用更高效的方法,就是使用拉格朗日乘子法得到其對偶問題:

式中,xt1、xt2、yt1、yt2為樣本參數(shù);α為拉格朗日常數(shù)。
以上是一般線性SVM分類原理,對于疲勞駕駛行為決策模型,屬于非線性可分問題,則需在上式中引入實現(xiàn)線性映射的核函數(shù)K(xt1,xt2),則

支持向量機(SVM)融合算法的模型參數(shù)設(shè)置如表2所示。
本文基于4重交叉檢驗法對疲勞駕駛的檢測模型做出準確率的評價,利用網(wǎng)格尋優(yōu)法搜尋最優(yōu)變量組合其搜尋結(jié)果如圖6所示。由圖6可知,當(dāng)交叉檢驗準確率為87%時,模型參數(shù)達到最優(yōu),此時,C=4,γ=32。

表2 SVM訓(xùn)練參數(shù)的設(shè)置

圖6 網(wǎng)格尋優(yōu)法搜尋最優(yōu)變量組合3D視圖
在實際的機動車行駛環(huán)境下對建立的疲勞判別模型進行了試驗驗證。試驗時間段為上午9時至12時和下午2時至4時,地點為桂林市中山路的主干道。選取100個測試樣本,其中清醒狀態(tài)樣本80個,疲勞狀態(tài)樣本20個,測試樣本狀態(tài)是由人工主觀察所得,模型判別結(jié)果與實際狀態(tài)一致視為判別正確,否則為誤判。結(jié)果如表3所列。

表3 判別結(jié)果
由表3可知,疲勞判別模型正確識別率為85%,出現(xiàn)誤判的原因為:有時光線不佳會造成特征點跟蹤失敗;有些司機受個人駕駛習(xí)慣影響,其對轉(zhuǎn)向盤操作的行為與一般規(guī)律性不符。
本文提出一種基于轉(zhuǎn)向盤圖像的駕駛員疲勞檢測方法。首先采用基于轉(zhuǎn)向盤圖像來計算轉(zhuǎn)角,進而提取出與疲勞相關(guān)的零速百分比和角度標準差兩個指標,最后采用處理非線性問題較好的支持向量機融合算法建立了駕駛員的疲勞判別模型。試驗結(jié)果表明,該模型的檢測正確率達85%,檢測方法具有操作簡單、實用性強、移植性好以及對駕駛員不造成干擾等優(yōu)點。