萬子平, 馬麗莎, 李星宇, 劉小旭, 龍哲
(1.長沙機(jī)電產(chǎn)品研究開發(fā)中心,長沙 410100;2.國防科學(xué)技術(shù)大學(xué);3.上海工程技術(shù)大學(xué))
BP神經(jīng)網(wǎng)絡(luò)的內(nèi)場駕考電子教練系統(tǒng)設(shè)計(jì)
萬子平1,2, 馬麗莎3, 李星宇2, 劉小旭1, 龍哲1
(1.長沙機(jī)電產(chǎn)品研究開發(fā)中心,長沙 410100;2.國防科學(xué)技術(shù)大學(xué);3.上海工程技術(shù)大學(xué))
針對駕考人員在??挤矫嬗?xùn)練時(shí)間、場地大小的不足以及自考方面缺乏合理指導(dǎo)的問題,設(shè)計(jì)了基于BP神經(jīng)網(wǎng)絡(luò)的內(nèi)場駕考電子教練系統(tǒng),該系統(tǒng)以S3C2440微處理器為核心硬件平臺(tái),介紹了采集(視覺模塊和速度模塊)、處理(Canny算子、單目攝像頭測距算法和Harris算子)、分析判定(BP神經(jīng)網(wǎng)絡(luò)算法)、結(jié)果輸出(語音模塊)的流程化方法。最后,結(jié)合各模塊算法和C-Free5軟件對核心控制算法進(jìn)行了仿真,得到了滿足駕駛考試中觸邊、啟停和夾角分析等相關(guān)設(shè)定的實(shí)驗(yàn)結(jié)果。
內(nèi)場駕考電子教練系統(tǒng);S3C2440微處理器;BP神經(jīng)網(wǎng)絡(luò)算法;ARM;嵌入式技術(shù)
中國的車輛基數(shù)龐大,交管部對駕駛?cè)藛T駕駛資格管控嚴(yán)格,而駕照的獲取需通過車管所主辦的駕駛資格考試。目前駕校練車有場地、訓(xùn)練時(shí)間點(diǎn)、訓(xùn)練時(shí)間量等諸多限制,因此各種輔助訓(xùn)練設(shè)備逐步誕生。駕駛模擬器目前成為駕考訓(xùn)練設(shè)備的主流,該設(shè)備可以較好起到初步的指導(dǎo)作用,但存在諸多的缺陷,如非真實(shí)駕車環(huán)境、體積大、造價(jià)高、維護(hù)性差和自用性差等。隨著直考政策提出,內(nèi)場駕考電子教練系統(tǒng)的必要性和優(yōu)越性體現(xiàn)出來。系統(tǒng)基于嵌入式技術(shù)和神經(jīng)網(wǎng)絡(luò)算法,從功能搭建、硬件選型、軟件設(shè)計(jì)和系統(tǒng)開發(fā)進(jìn)行研發(fā),具有可移植性好的突出優(yōu)點(diǎn)。
系統(tǒng)工作環(huán)境為真實(shí)駕車環(huán)境,應(yīng)用于自學(xué)訓(xùn)練相對安全的科目二考試項(xiàng)目中??荚図?xiàng)目包括側(cè)方位停車、坡道定點(diǎn)停車與起步、直角轉(zhuǎn)彎、S彎行駛和倒車入庫5個(gè)判定標(biāo)準(zhǔn)皆是邊界觸碰和停車過速的項(xiàng)目。在整車布局中,4個(gè)攝像頭分別安裝于機(jī)動(dòng)車的4個(gè)車角點(diǎn),用于捕捉邊界圖像;霍爾傳感器的磁鋼安裝于驅(qū)動(dòng)輪轂處,用于發(fā)出霍爾信號(hào);揚(yáng)聲器則安裝于駕駛室內(nèi),用于播放觸邊警告和糾錯(cuò)方案。
系統(tǒng)在速度控制方面會(huì)遇到速度過快超速和速度過慢停車兩種狀態(tài)。在超速和慢速過程中可量化出兩條語音指令,比如速度超過15碼,請減慢速度行駛。系統(tǒng)在觸及邊界方面會(huì)遇到各種觸邊情況,但具體歸類起來分為:①前進(jìn)過程中的前輪單輪觸邊、前輪雙輪觸邊和同側(cè)雙輪觸邊;②倒車過程中的后輪單輪觸邊、后輪雙輪觸邊和同側(cè)雙輪觸邊。在直行過程中,前輪雙輪觸邊和后輪雙輪觸邊可通過預(yù)先停車指令保證訓(xùn)練合格,而在轉(zhuǎn)彎過程中前輪單輪觸邊、同側(cè)雙輪觸邊和后輪單輪觸邊則可以歸納出一個(gè)共性,即一側(cè)車輪即將觸邊,方向適量反向轉(zhuǎn)動(dòng)。這可以量化出8條語音指令,比如右前輪即將觸邊,方向盤適量左轉(zhuǎn);系統(tǒng)工作在細(xì)節(jié)方面會(huì)遇到操作不當(dāng)?shù)那闆r,在啟動(dòng)系統(tǒng)時(shí),可量化出各種語音指令,比如發(fā)動(dòng)機(jī)啟動(dòng)前系好安全帶。系統(tǒng)工作在判定方面會(huì)遇到合格與不合格兩種情況,合格的情況出現(xiàn)于順利完成項(xiàng)目和項(xiàng)目訓(xùn)練后機(jī)動(dòng)車處于合理位置時(shí),不需要發(fā)出指令;當(dāng)發(fā)現(xiàn)車角觸邊和車邊夾角與邊界距離不可調(diào)兩種情況時(shí),系統(tǒng)可發(fā)出不合格指令,比如訓(xùn)練不合格,請重新開始。系統(tǒng)布局如圖1所示。
圖1 系統(tǒng)布局及應(yīng)用過程示意圖
本系統(tǒng)以機(jī)動(dòng)車為載體,由中央處理器模塊(S3C2440微處理器)、視覺傳感器模塊(OV9650型號(hào)CMOS攝像頭)[1]、速度傳感器模塊(A3144開關(guān)型霍爾傳感器、STC12C52021AD速度芯片)、語音播報(bào)模塊(ISD4004語音芯片、揚(yáng)聲器)和電源(20C2200 mAh的航模鋰電池、LM117穩(wěn)壓器)組成。視覺傳感器模塊采集到的邊界信號(hào)和速度傳感器模塊采集到的速度信號(hào)通過串口通信傳輸給中央處理器模塊進(jìn)行快速處理,中央處理器模塊利用SDRAM進(jìn)行臨時(shí)數(shù)據(jù)緩存,并實(shí)時(shí)更新狀態(tài)。中央處理器模塊將處理好的數(shù)據(jù)通過串口通信傳輸給語音播報(bào)系統(tǒng),然后通過揚(yáng)聲器進(jìn)行語音播報(bào)。內(nèi)場駕考電子教練硬件結(jié)構(gòu)如圖2所示。
圖2 內(nèi)場駕考電子教練硬件結(jié)構(gòu)框圖
圖3 視覺傳感器模塊接口
中央處理器模塊為三星公司開發(fā)的S3C2440微處理器,具備體積小、成本低、功耗低、資源多等特點(diǎn)[2]。視覺傳感器模塊為OmniVision公司開發(fā)的OV9650型號(hào)CMOS攝像頭,具有低功耗、低成本、高整合度等特點(diǎn)[3][OV9650中的各引腳(如像素時(shí)鐘PCLK、幀同步VSYNC等)分別與S3C2440中的各相應(yīng)引腳直接相連]。速度傳感器模塊為基于STC12C52021AD速度芯片的開關(guān)型霍爾傳感器A3144,具有對磁場敏感、頻率響應(yīng)寬,工作溫度范圍廣等特點(diǎn)[A3144的I/O接口引腳直接與STC12C52021AD的引腳(外部中斷輸入INT X1)連接,STC12C52021AD與S3C2440中的信號(hào)傳輸需通過光耦合器實(shí)現(xiàn)[4],光耦合器的ARM-XD和ARM-RXD兩個(gè)引腳與S3C2440相連]。語音電路模塊可采用ISD4004語音芯片,其多電平直接模擬量存儲(chǔ)技術(shù)可以有效避免量化噪聲和金屬聲。S3C2440的SOUT引腳提供SPI接口的時(shí)鐘脈沖到ISD4004的SCLK引腳。ISD4004音頻輸入信號(hào)從AIN+、AIN-引入,音頻輸出信號(hào)由ADUOUT引出,經(jīng)過功放電路LM386輸出到揚(yáng)聲器[5]。電源模塊以20C2200 mAh的航模鋰電池作為供電主電源,提供+12 V電壓。可設(shè)計(jì)穩(wěn)壓電路提供各個(gè)模塊中所需的+5 V電源、+3.3 V 電源,+2.5 V電源以及+1.8V電源[電源模塊可通過穩(wěn)壓電路直接與各模塊的I/O電源輸入端相連]。傳感器模塊接口圖如圖3、圖4所示。
圖4 速度傳感器模塊接口
內(nèi)場駕考電子教練系統(tǒng)軟件由數(shù)據(jù)采集、數(shù)據(jù)處理以及數(shù)據(jù)發(fā)布3個(gè)環(huán)節(jié)組成。數(shù)據(jù)處理是基于PC機(jī).net 2005的編程,其余兩個(gè)環(huán)節(jié)是基于嵌入式操作系統(tǒng)WinCE的編程,用EVC作為編程工具,內(nèi)場駕考電子教練軟件結(jié)構(gòu)如圖5所示。
圖5 內(nèi)場駕考電子教練軟件結(jié)構(gòu)框圖
數(shù)據(jù)采集模塊以ARM(S3C2440)為主控制器。由于ARM與采集視覺以及速度信息的傳感器直接通過串口傳輸數(shù)據(jù),因此可用OpenPort()函數(shù)打開串口,用CreateEvent()函數(shù)創(chuàng)建串口接收線程[6],將接收的視覺和速度信息存儲(chǔ)在預(yù)先設(shè)定的文件中。然后,調(diào)用OnSend()函數(shù)以讀寫方式進(jìn)行數(shù)據(jù)的傳輸[7],數(shù)據(jù)發(fā)布模塊的程序與采集類似。中央控制模塊主要用BP算法將各個(gè)傳感器模塊采集的實(shí)時(shí)數(shù)據(jù)作為輸入,并對輸出指令進(jìn)行合理的預(yù)測,最后將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(SQL SERVER 2005)[8]中。
3.1 控制算法
內(nèi)場駕考電子教練系統(tǒng)控制算法基于BP神經(jīng)網(wǎng)絡(luò)的非線性分類器預(yù)測算法,根據(jù)BP算法理論,樣本庫越大、樣本數(shù)據(jù)越精確,則預(yù)測結(jié)果越準(zhǔn)確。采用的方法是,建立樣本庫,把每次采集到的信息和控制結(jié)果都放進(jìn)樣本庫,對科目二各項(xiàng)目練習(xí)過程進(jìn)行控制??刂扑惴ㄔO(shè)計(jì)分為三個(gè)步驟:
① 歸一化處理。為避免數(shù)據(jù)過大造成網(wǎng)絡(luò)麻痹,使用神經(jīng)網(wǎng)絡(luò)預(yù)測前需對原始數(shù)據(jù)進(jìn)行歸一化處理。在歸一化處理的過程中,必須保持原數(shù)據(jù)的特性[9]。歸一化算法如下:
(1)
其中,Max和Min分別表示這段時(shí)間該原始數(shù)據(jù)的最大值和最小值。
② 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)主要包括網(wǎng)絡(luò)層數(shù)、輸入層節(jié)點(diǎn)數(shù)以及隱層節(jié)點(diǎn)數(shù)的確定[10]。本系統(tǒng)選擇單隱層的三層神經(jīng)網(wǎng)絡(luò),輸入為邊界距離X1、車邊夾角為X2、當(dāng)前速度為X3,觸邊車腳為X4和偏置單元(調(diào)節(jié)點(diǎn)),用試湊法確定駕考電子教練神經(jīng)網(wǎng)絡(luò)隱層神經(jīng)元數(shù)目。在反復(fù)訓(xùn)練中,當(dāng)網(wǎng)絡(luò)隱層節(jié)點(diǎn)數(shù)為3加偏置單元時(shí),收斂速度較快,可以在較短時(shí)間內(nèi)達(dá)到目標(biāo)。BP網(wǎng)絡(luò)的輸出層為5個(gè)神經(jīng)元,分別為啟動(dòng)停止Y1、前后行進(jìn)Y2、左右轉(zhuǎn)向Y3、速度快慢Y4和合格失敗Y5。
③ 確定激勵(lì)函數(shù)。激勵(lì)函數(shù)的核心是決定神經(jīng)元運(yùn)動(dòng)功能的神經(jīng)元[11]。在本方法中,選擇常用的Sigmoid函數(shù):
(2)
神經(jīng)網(wǎng)絡(luò)預(yù)測系統(tǒng)的性能評價(jià)指標(biāo)(誤差平方和SEE)為:
(3)
其中,SEE取0.01,學(xué)習(xí)系數(shù)為0.1,允許最大學(xué)習(xí)次數(shù)為3 000,實(shí)際值為(X1,X2,...,Xn),預(yù)測值為(Y1,Y2,...,Yn)。駕考電子教練的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖如圖6所示。
圖6 駕考電子教練神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
3.2 邊緣檢測、測定距離算法和邊車夾角檢測算法
內(nèi)場駕考電子教練系統(tǒng)邊緣距離算法基于固定攝像頭單目測距算法。算法步驟如下:
首先,將攝像頭鏡頭固定到可行的高度尺寸H,并通過攝像頭對地面進(jìn)行垂直拍攝。通過2α視角拍攝的整個(gè)畫面計(jì)算出半個(gè)視角中長度尺寸M。
(4)
然后,將M分成N個(gè)等長的像素集合,長度越短越好,每個(gè)長度等于L。
(5)
最后,通過邊界目標(biāo)直線所處的第N1個(gè)像素集合位置計(jì)算出機(jī)動(dòng)車的邊界距離S。
(6)
內(nèi)場駕考電子教練系統(tǒng)邊車夾角檢測算法基于Harris角度檢測算法[13]。算法步驟如下:首先,在CMOS攝像頭的加裝存儲(chǔ)器中存入標(biāo)尺線程序,然后將標(biāo)尺線程序安放于攝像頭采集四方圖像最外界,利用標(biāo)尺線與車身平行的原理,進(jìn)行標(biāo)尺線與目標(biāo)邊線直觀夾角的提取與計(jì)算。角度運(yùn)算公式如下:
(7)
其中,w(x,y)表示移動(dòng)窗口,I(x,y)表示像素灰度值強(qiáng)度,范圍為0~255。根據(jù)泰勒級(jí)數(shù)計(jì)算一階到N階的偏導(dǎo)數(shù),得到一個(gè)Harris矩陣:
(8)
根據(jù)Harris矩陣計(jì)算特征值λ1、λ2,然后計(jì)算Harris角度響應(yīng)值:
(9)
其中,k為系數(shù)值,取值范圍為0.04~0.06。
4.1 系統(tǒng)軟件流程
系統(tǒng)主要應(yīng)用了嵌入式WinCE開發(fā)環(huán)境。在WinCE模擬器上和實(shí)際目標(biāo)平臺(tái)上編譯和運(yùn)行程序,同時(shí)可以通過ActiveSync在設(shè)備上調(diào)試程序[14]。系統(tǒng)運(yùn)行過程為:啟動(dòng)程序,中央處理器模塊(S3C2440)初始化;中央處理器模塊(S3C2440)對接收視覺傳感器所采集圖像信號(hào)和速度傳感器所采集速度信號(hào)進(jìn)行分析,并判斷車輛位置是否合格,若合格,則直接結(jié)束,若不合格,則形成相關(guān)指令通過串口編碼后發(fā)送給語音播報(bào)模塊;語音播報(bào)模塊(ISD4004)通過對處理器發(fā)出的指令進(jìn)行相應(yīng)的語音匹配,形成相關(guān)指令發(fā)送到揚(yáng)聲器,對駕車人員進(jìn)行提醒。
4.2 仿真實(shí)驗(yàn)結(jié)果分析
因?yàn)橛布O(shè)備限制且算法應(yīng)用相對成熟,所以本文僅對控制算法部分進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境的操作系統(tǒng)為Win7旗艦版,運(yùn)行內(nèi)存為2.0GB,硬盤大小為320GB,軟件版本為C-Free5[15]。為了驗(yàn)證駕考電子教練輸出結(jié)果的正確性,本文進(jìn)行了1000次實(shí)驗(yàn),下面列出部分實(shí)驗(yàn)結(jié)果,如表1所列。
表1 仿真實(shí)驗(yàn)部分結(jié)果
基于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測控制算法的駕考電子教練三種情況下的輸出結(jié)果如圖7所示[16]。
圖7 程序運(yùn)行結(jié)果
從圖7中可以看出,當(dāng)學(xué)習(xí)次數(shù)為878次時(shí),誤差值為0.0099,小于允許的最大誤差值0.01,可以認(rèn)為駕考電子教練系統(tǒng)完成了特定訓(xùn)練情況下的正確輸出。此外,在允許的最大學(xué)習(xí)次數(shù)為1000次和反復(fù)實(shí)驗(yàn)次數(shù)為1000次時(shí),輸出結(jié)果失敗率為9.2%,雖然并不能保證系統(tǒng)輸出的完全正確,但是能夠縮短程序的運(yùn)行時(shí)間,這對大樣本、多模式輸入有重要意義。當(dāng)允許最大學(xué)習(xí)次數(shù)增大為3000次和反復(fù)實(shí)驗(yàn)次數(shù)為1000次時(shí),輸出結(jié)果失敗率為0.0%,系統(tǒng)輸出完全正確。
[1] 張瑩.基于嵌入式技術(shù)的導(dǎo)盲機(jī)器人設(shè)計(jì)[D].杭州:浙江工業(yè)大學(xué),2011.
[2] 付衍輝,陳新.基于ARM9的嵌入式網(wǎng)絡(luò)語音終端系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(10):49-52.
[3] 胡哲光.基于S3C2440與OV9650的嵌入式監(jiān)控設(shè)計(jì)[J].輕工機(jī)械,2012,30(2):50-53.
[4] 李文,張建澤.基于S3C2440的嵌入式Linux系統(tǒng)移植[J].化工自動(dòng)化及儀表,2010,37(9):88-92.
[5] 宋曉梅,秦啟云,張瑜,等.ISD4004系列語音芯片批量拷貝的設(shè)計(jì)[J].電聲技術(shù),2011,35(10):51-54.
[6] 羅旋,程廣河,孫祥,等.基于ARM嵌入式系統(tǒng)的一體化PLC研究與開發(fā)[J].電子制作,2014(14):47-48.
[7] 陳宇.基于S3C2440和Windows CE6.0圖像信息采集手持系統(tǒng)設(shè)計(jì)[D].桂林:廣西師范大學(xué),2012.
[8] 黃興榮,李昌領(lǐng).基于SQL Server 2005的數(shù)據(jù)挖掘的研究[J].計(jì)算機(jī)與現(xiàn)代化,2010(5):195-198.
[9] 柳小桐.BP神經(jīng)網(wǎng)絡(luò)輸入層數(shù)據(jù)歸一化研究[J].機(jī)械工程與自動(dòng)化,2010(3):122- 123.
[10] 鄧萬宇,鄭慶華,陳琳,等.神經(jīng)網(wǎng)絡(luò)極速學(xué)習(xí)方法研究[J].計(jì)算機(jī)學(xué)報(bào),2010,33(2):279 -287.
[11] 許楠,劉麗杰,徐耀群,等.高斯激勵(lì)混沌神經(jīng)元系統(tǒng)及其應(yīng)用[J].哈爾濱商業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2014(5):599-603.
[12] 唐路路,張啟燦,胡松,等.一種自適應(yīng)閾值的Canny邊緣檢測算法[J].光電工程,2011,38(5):127-132.
[13] 趙呈,吳錫生.基于Harris算法的圖像角度計(jì)算方法[J].計(jì)算機(jī)工程,2013,39(12):167-170.
[14] 葉子,許家昌.嵌入式WinCE多線程編程研究與實(shí)現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2010(1):45-46.
[15] 邴守東,李國林.不完全微分PID控制算法研究與仿真實(shí)驗(yàn)[J].電子工業(yè)專用設(shè)備,2013,42(1):46-50.
[16] 謝宇希,黃順,陳列尊,等.基于項(xiàng)目化教學(xué)的單片機(jī)應(yīng)用技術(shù)課程的“駕考模式”考核評價(jià)探索[J].價(jià)值工程,2016,35(7):224-225.
萬子平(助理工程師),研究方向?yàn)樾畔@取、處理與電路實(shí)現(xiàn)技術(shù)和智能機(jī)械與數(shù)字化設(shè)計(jì)。
[8] 王予彬,王人衛(wèi).運(yùn)動(dòng)創(chuàng)傷學(xué)[M].北京:北京人民軍醫(yī)出版社,2006:172-174.
[9] 孫小康.頸椎病的預(yù)防與健康教育[J].基層醫(yī)學(xué)論壇,2012,16(2):268.
[10] 王宇澄,房緯,張瑋.頸椎生理曲度在青少年頸椎病復(fù)發(fā)階段與Northwick Park頸痛量表的相關(guān)性研究[J].天津中醫(yī)藥,2013,30(4):212-213.
[11] 全曉彬,木榮華,曹大成,等.正骨推拿治療青少年頸椎病及頸曲與癥狀相關(guān)性分析[J].山東中醫(yī)藥大學(xué)學(xué)報(bào),2012,36(1):38-39.
[12] 盧潭城,劉鵬,高翔,等.基于AD8232芯片的便攜式信電監(jiān)護(hù)儀設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(3):114.
[13] 崔陽,張維華,白云峰.一種基于Arduino的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2014,40(4):123-124.
[14] 付久強(qiáng).基于Arduino平臺(tái)的智能硬件設(shè)計(jì)研究[J].包裝工程,2015,36(10):77.
[15] 李戈琦,張燕,向倫倫.基于Arduino的土壤濕度遠(yuǎn)程檢測系統(tǒng)設(shè)計(jì)[J].湖北農(nóng)業(yè)科學(xué),2015,54(16):4060-4062.
鄧開連(碩士),主要研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì)與應(yīng)用、現(xiàn)代電子技術(shù)與系統(tǒng)、實(shí)驗(yàn)室管理與實(shí)驗(yàn)教學(xué)研究。
(責(zé)任編輯:楊迪娜 收稿日期:2017-02-09)
Driving Test Electronic Training System Based on BP Neural Network
Wan Ziping1,2,Ma Lisha3,Li Xingyu2,Liu Xiaoxu1,Long Zhe1
(1.Research and Development Center of Mechanical and Electrical Products in Changsha,Changsha 410100,China;2.National University of Defense Technology;3.Shanghai University of Engineering Science)
Aiming at the problems such as the lack of training time and space in school examination and the limitation of reasonable guidance in college examination for the self-taught,the driving test electronic training system based on BP neural network is designed,which adopts the S3C2440 microprocessor as the core hardware platform.The procedural approaches are introduced such as the collection(visual module and speed module),the processing(Canny operator,monocular camera ranging algorithm and Harris operator),the analysis and judgement (BP neural network algorithm) and the result output(voice module).Finally,the algorithm for each module and C-Free5 software are combined to simulate core control algorithm,the results of rim,the starting and stopping as well as the angle analysis in driving test are got.
driving test electronic coach system;S3C2440 microprocessor;BP neural network algorithm;ARM;embedded technology
TN98
A
?士然
2017-02-20)