黃永平



摘要:疲勞駕駛已然成為了交通事故的主要原因,但我國的疲勞駕駛研究起步較晚,產品仍未廣泛應用。為此,本文通過對人臉的特征點檢測為核心設計疲勞檢測系統,研究的思路主要是首先檢測人臉特征點,然后提取人眼特征點,通過人眼特征點位置判斷司機是否疲勞。
關鍵詞:疲勞檢測;特征點檢測;疲勞駕駛
中圖分類號:TP391.4 文獻標識碼:A 文章編號:1007-9416(2019)03-0101-02
0 引言
在疲勞狀態駕駛車輛,駕駛員會感到困倦瞌睡,以致于注意力不能集中、判斷能力下降,甚至出現精神恍惚或瞬間記憶消失的情況,存在大量安全隱患,極易發生道路交通事故。由于大多數人對疲勞駕駛的重視程度不夠,因此疲勞駕駛所造成的交通事故往往多于酒駕。尤其當今社會生活節奏偏快,人們工作壓力增加,以致精神和體力長期處于疲勞的狀態,但我國目前還未投用針對疲勞駕駛檢測的設備,由此疲勞駕駛仍是造成交通事故的主要原因之一且比例逐年呈上升趨勢。雖然疲勞駕駛檢測過程復雜,且檢測方法不易掌握,但基于疲勞與眼睛狀態兩者的相關性,加上愈加便捷的攝像機和相機采集手段,通過駕駛員眼睛閉眼情況來判別其疲勞情況正漸漸演變為一個研宄的重要方向。本文得出了一種簡單可行的疲勞駕駛檢測技術,研究的思路主要是首先檢測人臉特征點,然后提取人眼特征點,通過人眼特征點位置判斷司機是否疲勞。
1 人臉識別及人眼定位算法設計
首先我們使用了opencv里自帶的人臉識別和人眼定位功能,即haarcascades包,但是效果并不理想,在光澤比較好而且眼睛睜開的幅度比較大,用opencv自帶功能可以識別出人臉和人眼。但是在人眼比較小且閉合比較大時人眼定位并不準確,有時候甚至連人臉都不能識別出來,可見這個haarcascades包的識別功能太弱。
由于haarcascades包的識別功能太弱,我們選擇了使用dlib包進行人眼檢測和人眼定位。dlib是一個現代化的C ++工具箱,其中包含用于在C ++中創建復雜軟件以解決實際問題的機器學習算法和工具。它廣泛應用于工業界和學術界,包括機器人,嵌入式設備,移動電話和大型高性能計算環境。dlib能夠對人臉特征點進行檢測,選取其中的68個特征點進行使用,其中36-47為左右眼的特征點,如圖1。
本章主要講述了我們在實驗過程使用過的方法,最后確定的方法以及各自的成功率。在基于計算機視覺的司機駕駛疲勞檢測系統中,人臉識別是非常重要的一環,只有正確定位人臉,我們才能對人眼區域進行更好更精準的預處理,才能提高疲勞駕駛檢測的可信度。
2 眼部疲勞識別算法
2.1 算法現實依據
目前對疲勞駕駛的定義,主要基于連續駕駛時間。而現實生活中,年齡,性別,當前時間等因素,對司機是否疲勞的影響是很大的。
疲勞駕駛一般有一下幾種表現:
(1)注意力不集中。(2)駕駛動作僵硬。(3)眨眼頻繁。(4)閉眼或瞇眼時間過長。(5)打哈欠,流眼淚等。(6)反應時間過長。
本章主要集中于人眼狀態,通過對人眼不同行為分析,判斷司機是否處于疲勞狀態,降低性別,年齡等因素的影響。
2.2 基于眼部狀態的疲勞駕駛檢測算法
一般的情況,睜眼時眼睛區域上下特征點距離較大,閉眼時上下特征點的距離較小。在得到眼部特征點后,利用眼部特征點的距離求出眼睛的高度和寬度,計算眼睛的縱橫比即EAR值,用來描述眼睛的張開程度,且EAR值對攝像頭和眼睛的距離不敏感。左右兩只眼睛的張開程度分別表示為EAR1和EAR2,一般來說兩只眼睛的張開程度是同步的,所以EAR取兩只眼睛張開程度的平均值。
每個人眼睛的長寬比在眼睛開著時幾乎恒定,但當眨眼發生時,眼睛的寬度會迅速下降到零,因此可以通過眼睛長寬比率判斷閉眼情況,根據閉眼的時間和頻率進而判斷駕駛員是否打疲勞駕駛,如圖2。
2.3 本章小結
本章我們設計了疲勞駕駛檢測系統中最重要的算法-疲勞檢測算法。該算法在人臉識別人眼定位的基礎上,對視頻流進行預處理,通過EAR值判斷人眼狀態,通過人眼狀態判斷是否疲勞。我們還在不同的環境中檢測該算法的可信度,在現實中的各種干擾下,該檢測系統均得到了預計范圍內的可信度。
3 疲勞駕駛檢測系統
3.1 疲勞駕駛檢測流程
(1)將視頻幀轉化為灰度圖。
(2)加載dlib人臉檢測器和人臉特征點檢測器。
(3)檢測視頻幀的人臉,并用檢測器生成面部特征點集合。
(4)提取人眼區域特征點,并計算EAR的值。
(5)將EAR與閉眼閾值進行比較,如果小于閾值則計數器加一,否則計數器清零。
(6)當計數器大于疲勞閾值時即連續幀EAR小于閉眼閾值的數量大于疲勞閾值時對司機進行疲勞警告,否則循環繼續。
3.2 總體設計圖(如圖3)
3.3 接口設計(如圖4)
3.4 本章小結
本章給出了疲勞駕駛檢測系統的總體流程圖,總體設計,接口與硬件設計。
4 結語
本文在人的生理特征參數上,依靠當前較為先進的圖像處理技術和視覺分析軟件,對圖像及視頻流中司機的眼部區域進行處理,對人眼定位并分析人眼狀態,通過我們預先設定的標準進行判斷。本文采用實用性高,較為精準的dlib包進行人臉識別及人眼定位追蹤,通過EAR值進行人眼狀態分析。在算法設計完成后,我們在不同的環境在進行的大量的實驗,并證實了該系統在大部分狀態下,能保證較為良好的成功率。
但是我們所有的理論研究與實驗,均在實驗室中進行,此時成功率均在我們預估范圍內。但在現實操控中,由于道路的復雜性,光線的變化,正側面等因素,以及實驗條件的局限性,該算法必然存在諸多不足。我們希望,在今后的研究中,系統能夠更好,更準確的應用于實際生活。
參考文獻
[1] 盧陽.疲勞駕駛檢測系統的設計及FPGA實現[D].重慶:重慶大學,2013.
[2] 陳明初.基于人眼狀態的駕駛員疲勞檢測技術研究[D].重慶:重慶大學,2012.
[3] 李延楓.基于眼部識別的疲勞駕駛檢測系統設計[D].四川:成都理工大學,2017.
[4] 王曉婷.基于深度學習的駕駛疲勞檢測應用的設計與實現[D].遼寧:大連海事大學,2017.
[5] 陳興劼.基于面部圖像的列車司機疲勞駕駛檢測與實現[D].四川:西南交通大學,2017.
Driver Driving Fatigue Detection System Based on Computer Vision
HUANG Yong-ping
(College of Computer Science and Technology, Jilin University,Changchun Jilin? 130012)
Abstract:Fatigue driving has become the main cause of traffic accidents, but the research on fatigue driving in China started late and the products have not been widely used. Therefore, this paper designs a fatigue detection system based on face feature point detection. The main idea of the research is to detect face feature points first, then extract eye feature points, and judge whether the driver is tired by the position of eye feature points.
Key words:fatigue detection;feature point detection;fatigue driving