本發(fā)明屬于模式識別技術(shù)領(lǐng)域,更為具體地講,涉及一種基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)的車輛識別方法。
背景技術(shù):
車輛識別是智能交通領(lǐng)域的一個重要課題,設(shè)計一個可靠的車輛識別系統(tǒng)主要難點在于車輛間的差異性。深度學(xué)習(xí)網(wǎng)絡(luò)由于模擬人的大腦,相比傳統(tǒng)的方法對車輛部分遮擋有更強(qiáng)的識別魯棒性。
在現(xiàn)有技術(shù)中,常用的方法是通過深層結(jié)構(gòu)來提取抽象特征,再通過抽象特征對車輛進(jìn)行識別。然而在深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練過程中,常常有如下的問題:與訓(xùn)練傳統(tǒng)的三層神經(jīng)網(wǎng)絡(luò)相比,深度學(xué)習(xí)網(wǎng)絡(luò)由于計算量大以及需要更新的參數(shù)更多,導(dǎo)致時間成本增加。其次,深度學(xué)習(xí)網(wǎng)絡(luò)在輸出誤差變化不大時,訓(xùn)練過程會變慢,需要時間過長。
本發(fā)明針對上述問題,引入強(qiáng)化學(xué)習(xí)的相關(guān)技術(shù),克服這些缺點,實現(xiàn)更快速、更高準(zhǔn)確率的車輛識別。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)的車輛識別方法,通過加入基于錯分樣本學(xué)習(xí)的強(qiáng)化學(xué)習(xí)技術(shù),提升車輛識別的性能,同時也加快了網(wǎng)絡(luò)的訓(xùn)練速度
為實現(xiàn)上述發(fā)明目的,本發(fā)明一種基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)的車輛識別方法,其特征在于,包括以下步驟:
(1)、圖像預(yù)處理
從車輛樣本庫中提取車輛圖像樣本,再將提取的車輛圖像樣本轉(zhuǎn)換為灰度圖,并歸一化,再對歸一化后的每一幅車輛圖像樣本添加數(shù)值標(biāo)簽,即:不含車輛的圖像添加數(shù)值“0”、含小汽車的圖像添加數(shù)值“1”、含卡車的圖像添加數(shù)值“2”、含大巴車的圖像添加數(shù)值“3”;
(2)、計算第t個車輛圖像樣本的期望最大回報值
(2.1)、將第t個車輛圖像樣本按照原始像素值組成的行向量xt,對應(yīng)的數(shù)值標(biāo)簽表述為at,at∈[0,3];
(2.2)、按照Q-學(xué)習(xí)理論,計算出第t個車輛圖像樣本的未來回報rt為:
其中,T是車輛圖像樣本的總量,γt′-t表示第t個樣本對t′個樣本的獎勵折扣系數(shù);
(2.3)、利用最優(yōu)動作-值函數(shù)Q*(x,a)計算出第t個車輛圖像樣本的期望最大回報值;
Qt*(xt,at)=maxπE[rt|xt=x,at=a,π]
其中,x泛指車輛圖像樣本,a泛指數(shù)值標(biāo)簽,π是車輛圖像樣本和數(shù)值標(biāo)簽的映射函數(shù),通過選擇不同的數(shù)值標(biāo)簽at∈a來計算獎勵的期望,期望值最大時對應(yīng)的數(shù)值標(biāo)簽即為該車輛圖像樣本的數(shù)值標(biāo)簽;
(3)、構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值更新方程
(3.1)、計算第t個車輛圖像樣本的目標(biāo)輸出yt
其中,θt-1表示第t-1個圖像樣本時的權(quán)值參數(shù),γ為折扣系數(shù);
(3.2)、通過最小化損失函數(shù)Lt(θt)來更新深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值參數(shù)
其中,ρ(x,a)是圖像樣本x和標(biāo)簽a的概率分布,E[·]為求期望;
(3.3)、損失函數(shù)Lt(θt)對權(quán)重θt求導(dǎo),得到深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值更新方程,并更新權(quán)值
其中,表示括號內(nèi)式子對權(quán)重θt的求導(dǎo)數(shù);
(4)、訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)
(4.1)、將車輛樣本庫中的車輛圖像樣本作為訓(xùn)練樣本,將訓(xùn)練樣本分為N份,且每一個訓(xùn)練樣本均處理成行向量xt,并作為深度學(xué)習(xí)網(wǎng)絡(luò)的輸入,設(shè)置四個輸出神經(jīng)元;
(4.2)、根據(jù)先驗知識確定出訓(xùn)練樣本中車輛類別,再以第一份訓(xùn)練樣本的行向量xt為輸入,輸出分別為“1000”,樣本中不含車輛;輸出為“0100”,樣本中為小汽車;輸出為“0010”,樣本中為卡車;輸出為“0001”,樣本中為大巴車;通過權(quán)值更新方程調(diào)節(jié)深度學(xué)習(xí)網(wǎng)絡(luò)模型中的權(quán)值,第一次訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò);
(4.3)、找出第一份訓(xùn)練樣本中實際輸出與先驗知識不同的訓(xùn)練樣本,設(shè)共找出n個不同的訓(xùn)練樣本,再將該n個訓(xùn)練樣本分別進(jìn)行逆時針旋轉(zhuǎn)2°以及加入σ=0.2的高斯噪音;
(4.4)、在第二份訓(xùn)練樣本中隨機(jī)抽取出n個訓(xùn)練樣本,并用步驟(4.3)中處理后的n個訓(xùn)練樣本補(bǔ)齊到第二份訓(xùn)練樣本中,再用新得到的第二份訓(xùn)練樣本按照步驟(4.2)所述方法進(jìn)行第二次深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練;
(4.5)、以此類推,直到第N份訓(xùn)練樣本完成深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練,得到最終的深度學(xué)習(xí)網(wǎng)絡(luò);
(5)、利用訓(xùn)練好的深度學(xué)習(xí)網(wǎng)絡(luò)來識別車輛
將待檢測的車輛樣本圖像處理成行向量xt,再輸入到訓(xùn)練完畢的深度學(xué)習(xí)網(wǎng)絡(luò),根據(jù)深度學(xué)習(xí)網(wǎng)絡(luò)的輸出結(jié)果識別出圖像中的車輛情況。
本發(fā)明的發(fā)明目的是這樣實現(xiàn)的:
本發(fā)明一種基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)的車輛識別方法,在利用深度網(wǎng)絡(luò)的結(jié)構(gòu)特點上,提供一種深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)結(jié)合的方法,將強(qiáng)化學(xué)習(xí)中的Q-學(xué)習(xí)算法應(yīng)用到深度學(xué)習(xí)網(wǎng)絡(luò)中,訓(xùn)練過程仍然使用隨機(jī)梯度下降算法,提高了深度網(wǎng)絡(luò)對車輛的識別的能力;其次,加入了基于錯分樣本學(xué)習(xí)的強(qiáng)化學(xué)習(xí)技術(shù),克服了深度學(xué)習(xí)網(wǎng)絡(luò)在車輛識別領(lǐng)域現(xiàn)有的技術(shù)不足,提升車輛識別性能的同時,也提高了網(wǎng)絡(luò)的訓(xùn)練效率。
附圖說明
圖1是本發(fā)明基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)的車輛識別方法流程圖;
圖2是圖像預(yù)處理好的車輛樣本;
圖3是深度學(xué)習(xí)網(wǎng)絡(luò)的結(jié)構(gòu)模型;
圖4是對錯分樣的處理示意圖;
圖5是本發(fā)明方法與傳統(tǒng)三層網(wǎng)絡(luò)識別效果均方誤差對比曲線;
圖6是利用本發(fā)明進(jìn)行車輛識別實例圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計的詳細(xì)描述也許會淡化本發(fā)明的主要內(nèi)容時,這些描述在這里將被忽略。
實施例
圖1是本發(fā)明基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)的車輛識別方法流程圖。
在本實施例中,如圖1所示,本發(fā)明一種基于深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)的車輛識別方法,包括以下步驟:
(1)、圖像預(yù)處理
在本實施例中,車輛樣本庫中保存的車輛圖像樣本主要是使用數(shù)碼相機(jī)以及互聯(lián)網(wǎng)搜集兩種方法得來,采集的車輛圖像樣本包括多種類型車的不同視角圖像,其大小縮放為統(tǒng)一大小28×28。
從車輛樣本庫中提取的車輛圖像樣本轉(zhuǎn)換為灰度圖,并歸一化,再對歸一化后的每一幅車輛圖像樣本添加數(shù)值標(biāo)簽,即:不含車輛的圖像添加數(shù)值“0”、含小汽車的圖像添加數(shù)值“1”、含卡車的圖像添加數(shù)值“2”、含大巴車的圖像添加數(shù)值“3”;
如圖2所示,按上述方法處理制作好的車輛圖像樣本,圖中左側(cè)三列表示小汽車、卡車、大巴車的圖片;右側(cè)三列是不包含車輛的圖片;
(2)、計算第t個車輛圖像樣本的期望最大回報值
(2.1)、將第t個車輛圖像樣本按照原始像素值組成的行向量xt,對應(yīng)的數(shù)值標(biāo)簽表述為at,at∈[0,3];
(2.2)、按照Q-學(xué)習(xí)理論,計算出第t個車輛圖像樣本的未來回報rt為:
其中,T是車輛圖像樣本的總量,γt′-t表示第t個樣本對t′個樣本的獎勵折扣系數(shù);
(2.3)、利用最優(yōu)動作-值函數(shù)Q*(x,a)計算出第t個車輛圖像樣本的期望最大回報值;
其中,x泛指車輛圖像樣本,a泛指數(shù)值標(biāo)簽,π是車輛圖像樣本和數(shù)值標(biāo)簽的映射函數(shù);上面的式子為一個條件期望的計算,在某一圖像樣本x的條件下,通過選擇不同的數(shù)值標(biāo)簽at∈a來計算獎勵的期望,期望值最大時對應(yīng)的數(shù)值標(biāo)簽即為該車輛圖像樣本的數(shù)值標(biāo)簽;
(3)、構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值更新方程
(3.1)、計算第t個車輛圖像樣本的目標(biāo)輸出yt
其中,θt-1表示第t-1個圖像樣本時的權(quán)值參數(shù),γ為折扣系數(shù);
(3.2)、通過最小化損失函數(shù)Lt(θt)來更新深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值參數(shù)
其中,ρ(x,a)是圖像樣本x和標(biāo)簽a的概率分布,E[·]為求期望;
(3.3)、損失函數(shù)Lt(θt)對權(quán)重θt求導(dǎo),得到深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值更新方程,并更新權(quán)值
其中,表示括號內(nèi)式子對權(quán)重θt的求導(dǎo)數(shù);
根據(jù)梯度值使用梯度下降法來更新深度學(xué)習(xí)網(wǎng)絡(luò)的權(quán)值,而梯度下降法是現(xiàn)有方法,使用的深度網(wǎng)絡(luò)模型的結(jié)構(gòu)如圖3所示,包括輸入層、卷積層、采樣層、全連接層以及輸出層,其中輸入層的神經(jīng)元個數(shù)為784個,兩個卷積層的特征圖數(shù)分別是6和50,兩個全連接層的神經(jīng)元個數(shù)為100和80,最后面是一個有4個神經(jīng)元的輸出層,分別表示非車、小汽車、卡車、大巴車四類。
在本實施例中,以基于獎勵的梯度計算來代替?zhèn)鹘y(tǒng)的基于誤差梯度計算,使得深度學(xué)習(xí)網(wǎng)絡(luò)擁有了Q-學(xué)習(xí)的特性,訓(xùn)練效果得到提升。
(4)、訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò)
(4.1)、將車輛樣本庫中的車輛圖像樣本作為訓(xùn)練樣本,將訓(xùn)練樣本分為N份,且每一個訓(xùn)練樣本均處理成行向量xt,并作為深度學(xué)習(xí)網(wǎng)絡(luò)的輸入,設(shè)置四個輸出神經(jīng)元;
(4.2)、根據(jù)先驗知識確定出訓(xùn)練樣本中車輛類別,再以第一份訓(xùn)練樣本的行向量xt為輸入,輸出分別為“1000”,樣本中不含車輛;輸出為“0100”,樣本中為小汽車;輸出為“0010”,樣本中為卡車;輸出為“0001”,樣本中為大巴車;通過權(quán)值更新方程調(diào)節(jié)深度學(xué)習(xí)網(wǎng)絡(luò)模型中的權(quán)值,第一次訓(xùn)練深度學(xué)習(xí)網(wǎng)絡(luò);
(4.3)、找出第一份訓(xùn)練樣本中實際輸出與先驗知識不同的訓(xùn)練樣本,標(biāo)記為錯分樣本,設(shè)共找出n個錯分樣本,再將該n個錯分樣本分別進(jìn)行逆時針旋轉(zhuǎn)2°以及加入σ=0.2的高斯噪音,處理后的結(jié)果如圖4所示;
(4.4)、在第二份訓(xùn)練樣本中隨機(jī)抽取出n個訓(xùn)練樣本,并用步驟(4.3)中處理后的n個錯分樣本補(bǔ)齊到第二份訓(xùn)練樣本中,再用新得到的第二份訓(xùn)練樣本按照步驟(4.2)所述方法進(jìn)行第二次深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練;
(4.5)、以此類推,直到第N份訓(xùn)練樣本完成深度學(xué)習(xí)網(wǎng)絡(luò)的訓(xùn)練,得到最終的深度學(xué)習(xí)網(wǎng)絡(luò);
在本實施例中,采用基于錯分樣本的強(qiáng)化學(xué)習(xí)訓(xùn)練技術(shù)后,使得被錯誤分類的樣本重要性得到提升,對訓(xùn)練后期加快網(wǎng)絡(luò)收斂速度有幫助,減少訓(xùn)練總長,同時也有益于提高網(wǎng)絡(luò)的識別性能。
(5)、利用訓(xùn)練好的深度學(xué)習(xí)網(wǎng)絡(luò)來識別車輛
將待檢測的車輛樣本圖像處理成行向量xt,再輸入到訓(xùn)練完畢的深度學(xué)習(xí)網(wǎng)絡(luò),根據(jù)深度學(xué)習(xí)網(wǎng)絡(luò)的輸出結(jié)果識別出圖像中的車輛情況。
圖5是本發(fā)明方法與傳統(tǒng)三層網(wǎng)絡(luò)識別效果均方誤差對比曲線。
如圖5所示,由圖中可以看出傳統(tǒng)三層神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中的均方誤差始終要高與本發(fā)明的深度神經(jīng)網(wǎng)絡(luò),在迭代次數(shù)25000到35000區(qū)間,本發(fā)明的深度神經(jīng)網(wǎng)絡(luò)早已穩(wěn)定在5.7%,而傳統(tǒng)三層神經(jīng)網(wǎng)絡(luò)一直在小幅度的波動。反映了兩個主要點:首先,本發(fā)明的車輛識別性能要好于傳統(tǒng)三層神經(jīng)網(wǎng)絡(luò),體現(xiàn)在均方誤差低上;其次,本發(fā)明的深度神經(jīng)網(wǎng)絡(luò)在迭代次數(shù)為15000左右便達(dá)到5.8%,說明網(wǎng)絡(luò)訓(xùn)練過程中達(dá)到預(yù)期誤差所需的時間將會大大的減小。本發(fā)明的深度神經(jīng)網(wǎng)絡(luò)最終在車輛識別上的測試錯誤率為5.4%%,而傳統(tǒng)的三層神經(jīng)網(wǎng)絡(luò)測試錯誤率是10.2%,表明本發(fā)明的深度神經(jīng)網(wǎng)絡(luò)在車輛識別上效果更好,時間效率更高。其中傳統(tǒng)三層神經(jīng)網(wǎng)絡(luò)是已有理論,不再詳述。
圖6是利用本發(fā)明進(jìn)行車輛識別實例圖。
在本實施例中,如圖6所示,按照本發(fā)明所述方法,識別道路中的車輛,判斷屬于小汽車、卡車、大巴車三類中的哪一類,其識別精準(zhǔn)度高達(dá)98%,進(jìn)一步提升車輛識別的性能。
盡管上面對本發(fā)明說明性的具體實施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實施方式的范圍,對本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。