基于ARM的非接觸式安全駕駛預警系統方案設計
0引言
本文引用地址:http://www.104case.com/article/265857.htm隨著居民汽車擁有量的逐年增加以及人們生活節奏的加快,因疲勞駕駛導致的交通事故數也逐年增加。全世界每年因交通事故而導致的死亡人數達60萬,直接經濟損失約125億美元,這些事故中57%的災難性事故與駕駛員疲勞駕駛有關。因此,研究和開發一套非接觸式疲勞駕駛監測系統有著非常大的社會現實意義。
1系統硬件設計
本預警系統主要由微控制器、圖像數據采集模塊、LED預警模塊、通信接口以及電源模塊五大部分組成,如圖1所示。根據處理速度和精度的要求,采用32位ARM處理器。為了減小對駕駛員的影響,更好地實現非接觸式,本文選用了300萬像素的CMOS攝像頭OV3640模塊,與CCD相比,CMOS具有靈敏度高、分辨率高、低功耗以及成本低廉等優勢。

圖1 系統硬件組成

圖2 LED原理圖

圖3 蜂蜜器原理圖
由于Rea16410開發板上沒有蜂鳴器等發聲的裝置,并且蜂鳴器發聲和LED發光的原理類似,所以本文使用LED發光報警。圖2是開發板內LED的原理圖。只要給后面的引腳一個低電平就能使LED發出耀眼的紅光,從而報警。在這里再簡單介紹下蜂鳴器發聲的原理,原理圖如圖3所示給P1引腳低電平就能使蜂鳴器發聲。
2系統軟件設計
2.1開發環境的搭建
如果說系統硬件是骨架和軀體,那么軟件算法就是思想。編寫程序之前需要先建立好軟件開發環境。軟件開發環境的搭建流程圖如圖4所示。

圖4 開發環境搭建流程圖

圖5 人臉示范圖
2.2 Adaboost算法
Adaboost算法的基本思想就是利用大量的分類能力一般的弱分類器(weak classifier)通過一定的方法疊加起來構成一個具有很強分類能力的強分類器(strong classifier)。
Adaboost算法的實現,采用的是輸入圖像的矩形特征,也叫Haar特征。臉部的一些特征可以由矩形特征簡單地描繪。用圖5示范。
上圖中兩個矩形特征,表示出人臉的某些特征。比如中間一幅表示眼睛區域的顏色比臉頰區域的顏色深,右邊一幅表示鼻梁兩側比鼻梁的顏色要深。同樣,其他目標,如眼睛等,為了得到眼睛圖像的信息,必須進行眼睛定位?,F有的眼睛定位方法很多,基于膚色模型的方法、灰度投影法、基于模板的方法、基于神經網絡的方法、基于特征提取等。本系統利用Adaboost算法構造一個基于類Haar特征的層疊式分類器來進行人眼定位。類Haar特征通常由2~4個矩形組成,如圖6所示。

圖6 類Haar特征圖
2.3使用Haar識別人眼
人臉的Haar特征分類器是一個XML文件,該文件中會描述人臉的Haar特征值。Haar特征還可以描述眼睛嘴唇或其他物體。
OpenCV已經自帶了人臉的Haar特征分類器。在/usr/locaI/Opencv-2.4.3/data/haarcascades下。haarcascade_frontalface_al t.xml與haarcascade frontalface alt2.xml都是用來檢測人臉的Haar分類器,haarcascade_eve.xm l與haarcascade eye tree eyegla sses.xml都是用來檢測人眼的Haar分類器,這個haarcascades目錄下還有人的全身,嘴唇的Haar分類器。圖7是檢測到的人臉。

圖7 人臉識別圖

圖8 人眼閾值檢測圖
2.4用閾值法判斷疲勞狀態
由上述算法定位眼睛并截取下來,使用sobel實現邊緣檢測再進行二值化處理,將二值化的圖像暫存在臨時文件夾中,調用臨時文件夾中的圖片,for循環遍歷圖片像素點,比較黑色像素點坐標并得到上下最大落差值,據此給定相應的高度閾值。當檢測到的眼睛高度值等于或小于設定的眼睛高度閾值就記錄下來,若連續五幀眼睛的高度值等于或小于閾值,則系統判定駕駛員處于疲勞狀態。整個系統流程如圖9所示。

圖9 眼睛處理流程圖
蜂鳴器相關文章:蜂鳴器原理
評論