基于神經(jīng)網(wǎng)絡的聲測法車輛類型辨識的應用研究
隨著我國高速公路和汽車技術的迅猛發(fā)展,汽車行駛速度越來越高,極需一種更有效的交通管理系統(tǒng)。這種系統(tǒng)應能自動識別汽車,并能準確判斷出汽車類型。20世紀50年代以來,點測式設備如環(huán)形線圈檢測器,主要用于十字路口的交通控制和交通數(shù)據(jù)收集。這種探測系統(tǒng)通常利用埋置于路面下的電感線圈,通過電磁感應識別汽車,但這種系統(tǒng)存在著鋪設費用昂貴、維護困難、不能將汽車分類等缺陷。利用聲測法,并將此經(jīng)過神經(jīng)網(wǎng)絡的訓練,能夠有效地識別路面上通過的汽車的類型。
1 聲測法汽車類型識別系統(tǒng)
聲測法汽車類型識別系統(tǒng)工作原理框圖如圖1所示。
聲測法汽車類型識別系統(tǒng)的工作原理是:當汽車通過時,麥克風將其產(chǎn)生的聲波的聲壓信號通過連接器傳到分類系統(tǒng),通過A/D轉換器將聲壓信號轉化為一系列離散的數(shù)字信號,并在頻譜分析儀中進行頻譜轉換(FFT轉換)。
神經(jīng)網(wǎng)絡為衰減器接受到的每個矢量提供一個分類指示器。每個矢量顯示一個預定的間歇時間,即允許產(chǎn)生聲音的物體有一個短暫的時間間隔(如0.1秒)。這樣,神經(jīng)網(wǎng)絡每隔0.1秒為每種聲音產(chǎn)生一個分類指示器,獨立地為每個矢量分類。時間積算器是經(jīng)神經(jīng)網(wǎng)絡分析后的一種分類指示器流量的處理器,即時間積算器經(jīng)多次與運算結果結合,產(chǎn)生整個系統(tǒng)輸出的最后分類結果。
基于神經(jīng)網(wǎng)絡的聲測法汽車類型識別系統(tǒng)采用低廉的傳感器材,對汽車的類型識別有很好的效果,而且應用的覆蓋范圍更廣,不受天氣和光線的影響。
2 神經(jīng)網(wǎng)絡學習訓練算法
對原始噪聲進行預處理之后,余下的識別工作就由神經(jīng)網(wǎng)絡來實現(xiàn)。本文所設計的網(wǎng)絡是三層前饋網(wǎng)絡,其結構為:輸入層有n個節(jié)點,n=Np×N;隱含層有P個節(jié)點,輸出層有q個節(jié)點。q個輸出節(jié)點分別對應q種車型,輸入層采用的輸入值為傅立葉變換后的值,隱含層和輸出層的活化函數(shù)為Sigmoid函數(shù)。訓練完畢后,當輸出層的第i個節(jié)點輸出值大于0.99而其它節(jié)點的輸出值小于0.11時,就認為本次識別的車型為第i號車。網(wǎng)絡結構如圖2所示。
采用的訓練算法是BP算法,該算法中的誤差函數(shù)是:
其中,dk和rk分別是網(wǎng)絡的希望輸出矢量和實際輸出矢量,M為訓練樣本對。
BP算法的一個突出缺點是學習速度慢,原因是多方面的,如與網(wǎng)絡的結構有關,與學習算法本身存在的缺點有關。當利用上述誤差函數(shù)來調整權重時,從推導知道權重調整量總包含下面的因子:
從上式可以看出,當輸出層單元i的實際輸出ri接近于0或1時,誤差信號中的因子式ri(1-ri)使得誤差信號變得很小,這時如果輸出層單元i的實際輸出ri與期望輸出值di相差很大時,沒有產(chǎn)生強的誤差來修正權重,從而延長了學習過程。另外由于激勵函數(shù)f(x)=(1+e-x)-1是一個飽和函數(shù),當它趨于飽和狀態(tài)時,導數(shù)就接近于零,從而造成收斂速度減慢。由此可以考慮將因子ri(1-ri)從誤差函數(shù)對權重偏微分的結果中去除,于是可把BP算法的誤差函數(shù)改進為:
因為0i=f(sumi)<1且di的取值為0或1,從而sk>0,sumi=-∑ωij·bj。下面對這種誤差修正方法的收斂性作簡要的分析。
利用鏈式微分規(guī)則得:
右端第一項表示輸出矢量中第i個分量對偏差的影響,第二項則表示權系數(shù)對輸出分量的影響。根據(jù)式(4)計算第一項的偏微分:
其中,bj>0為上隱含層的輸出;式(9)就是在ωij空間中sk響應曲面上的負梯度方向。
這樣,對權矩陣[W]中的任一元素ωij有:
這可以看出對權值的修正和梯度下降方法之間的關系,由此說明這種誤差修正方法對權值的調整是收斂的。利用誤差函數(shù)為(3)式的改進,BP算法確實把ri(1-ri)因子從誤差函數(shù)對權重偏微分的結果中消除了。從實際的訓練來看,利用本算法對權值修正時,能很快地收斂。
把論文中的BP算法和改進BP算法分別進行了網(wǎng)絡訓練(選取了4種車型,即q=4),并用到實際交通線路上進行檢驗。每種車型的樣本為實際應用中不同情況下的4套樣本(小型車、中型車、重型車、超重型車),這樣用16套噪聲作為訓練樣本,并且設定隱含層的節(jié)點為p=16。網(wǎng)絡學習過程流程圖如圖3所示。
在網(wǎng)絡結構完全一樣的情況下,采用(1)式的誤差函數(shù)進行訓練,需要交叉訓練2萬次后,才可以在實際中運用,可使輸出精度達到0.99;而采用改進后的誤差函數(shù)(3)式進行訓練,只需200次,就可以達到同樣的精度,并能投入到交通線上在線識別汽車類型。試驗結果如表1所示。
從試驗結果來看,利用改進BP算法可以使網(wǎng)絡的學習速度加快,能很方便地運用于實際生產(chǎn)線。即使有新的車型出現(xiàn)在交通線上,也可以很快完成網(wǎng)絡的訓練。試驗結果測得識別錯誤率小于1%,并且對汽車的識別效果比統(tǒng)計的方法好。利用改進BP算法后,提高了學習速度,為神經(jīng)網(wǎng)絡識別投入實際應用特別是運用到車流量很大的交通線上,提供了一種有效的方法。從實際應用來看,用神經(jīng)網(wǎng)絡識別比用特征統(tǒng)計識別的容錯性要高一些,也優(yōu)于特征統(tǒng)計方法。在實際中如果有新的車型要增加,只要把網(wǎng)絡的結構稍作改進就可以了。