新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于ARM的非接觸式安全駕駛預警系統

        基于ARM的非接觸式安全駕駛預警系統

        作者: 時間:2016-10-22 來源:網絡 收藏

        0 引言

        本文引用地址:http://www.104case.com/article/201610/309906.htm

        隨著居民汽車擁有量的逐年增加以及人們生活節奏的加快,因疲勞駕駛導致的交通事故數也逐年增加。全世界每年因交通事故而導致的死亡人數達60萬,直接經濟損失約125億美元,這些事故中57%的災難性事故與駕駛員疲勞駕駛有關。因此,研究和開發一套疲勞駕駛監測系統有著非常大的社會現實意義。

        1 系統硬件設計

        本預警系統主要由微控制器、圖像數據采集模塊、LED預警模塊、通信接口以及電源模塊五大部分組成,如圖1所示。根據處理速度和精度的要求,采用32位處理器。為了減小對駕駛員的影響,更好地實現,本文選用了300萬像素的CMOS攝像頭OV3640模塊,與CCD相比,CMOS具有靈敏度高、分辨率高、低功耗以及成本低廉等優勢。

        基于ARM的非接觸式安全駕駛預警系統

        由于Rea16410開發板上沒有蜂鳴器等發聲的裝置,并且蜂鳴器發聲和LED發光的原理類似,所以本文使用LED發光報警。圖2是開發板內LED的原理圖。只要給后面的引腳一個低電平就能使LED發出耀眼的紅光,從而報警。在這里再簡單介紹下蜂鳴器發聲的原理,原理圖如圖3所示給P1引腳低電平就能使蜂鳴器發聲。

        2 系統軟件設計

        2.1 開發環境的搭建

        如果說系統硬件是骨架和軀體,那么軟件算法就是思想。編寫程序之前需要先建立好軟件開發環境。軟件開發環境的搭建流程圖如圖4所示。

        基于ARM的非接觸式安全駕駛預警系統

        2.2 Adaboost算法

        Adaboost算法的基本思想就是利用大量的分類能力一般的弱分類器(weak classifier)通過一定的方法疊加起來構成一個具有很強分類能力的強分類器(strong classifier)。

        Adaboost算法的實現,采用的是輸入圖像的矩形特征,也叫Haar特征。臉部的一些特征可以由矩形特征簡單地描繪。用圖5示范。

        上圖中兩個矩形特征,表示出人臉的某些特征。比如中間一幅表示眼睛區域的顏色比臉頰區域的顏色深,右邊一幅表示鼻梁兩側比鼻梁的顏色要深。同樣,其他目標,如眼睛等,為了得到眼睛圖像的信息,必須進行眼睛定位。現有的眼睛定位方法很多,基于膚色模型的方法、灰度投影法、基于模板的方法、基于神經網絡的方法、基于特征提取等。本系統利用Adaboost算法構造一個基于類Haar特征的層疊式分類器來進行人眼定位。類Haar特征通常由2~4個矩形組成,如圖6所示。

        基于ARM的非接觸式安全駕駛預警系統

        2.3 使用Haar識別人眼

        人臉的是一個XML文件,該文件中會描述人臉的Haar特征值。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是檢測到的人臉。

        基于ARM的非接觸式安全駕駛預警系統

        2.4 用閾值法判斷疲勞狀態

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

        基于ARM的非接觸式安全駕駛預警系統

        3 系統整體設計方案

        3.1 系統設計流程

        整個系統設計流程:1)檢測攝像頭和開發板;2)獲取圖像。通過攝像頭實時地獲取駕駛員的頭像;3)搭建軟件開發環境。移植QpenCV到下,在下安裝;4)人眼方面的處理。首先使用里自帶的Haar分類器進行眼睛識別定位,然后將提取出來的眼睛區域圖像進行二值化處理,最后通過掃描二值化圖像的黑像素點,得到眼睛最高點和最低點兩個點的坐標,通過坐標差值計算出眼睛的高度值;5)判斷疲勞。當檢測到眼睛的高度值小于或等于設定的眼睛高度閾值,則記錄下來,若連續五幀眼睛的高度值都小于或等于閾值,則判定駕駛員處于疲勞狀態;6)報警。LED發光報警;7)編寫疲勞駕駛的。流程圖如圖10所示。

        基于ARM的非接觸式安全駕駛預警系統

        3.2 系統的設計

        在人和計算機的互動過程中,有一層面,即我們所說的界面(interface)。(Graphical User Interface)即圖形用戶界面,作為一種可視化的用戶界面,使用圖形界面代替正文界面。它的作用是實現用戶和計算機之間的良好的交互。

        應用程序的編譯環境是Qt Creator,使用疲勞預警系統時,剛打開會出現以下顯示begin的一個button,觸摸開始按鈕系統就會進入疲勞監測程序,監測結束判斷疲勞時開發板給led燈以示預警。結束預警系統時,只需輕觸界面的“close”鍵即可返回一開始的begin界面。如圖11所示。

        基于ARM的非接觸式安全駕駛預警系統

        輕觸eye系統進入主界面后,可以通過界面最下端的顯示區域觀察。當駕駛員閉眼時,系統最下端則會獲取到閉眼狀態的圖像,當連續五幀圖像都是閉眼時,系統就會報警。圖12系統界面。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 蒲江县| 营山县| 苏尼特左旗| 安平县| 筠连县| 东乌珠穆沁旗| 响水县| 防城港市| 嘉峪关市| 正蓝旗| 铜山县| 龙海市| 商水县| 兰考县| 秭归县| 怀化市| 清丰县| 丰城市| 赤城县| 阿克| 会同县| 新民市| 合水县| 昆明市| 抚远县| 和政县| 玉山县| 正宁县| 资溪县| 静宁县| 天门市| 泸水县| 辽阳县| 沅江市| 吴忠市| 江华| 体育| 襄垣县| 太谷县| 鄂托克旗| 丰县|