本發(fā)明屬于車型識別技術(shù)領(lǐng)域,涉及一種基于糾錯輸出編碼的車型識別方法。
背景技術(shù):車型識別技術(shù)是一門集計算機圖像處理技術(shù)、模式識別、工業(yè)測控技術(shù)、人工智能、系統(tǒng)工程等技術(shù)于一體的綜合技術(shù)。目前大部分的車型識別技術(shù)主要是為了解決特定的問題而提出的,但不具有通用性,尤其應(yīng)用到實際道路環(huán)境中其效果更是差強人意。車型識別問題是典型的多類分類問題,而當(dāng)前處理該問題的典型做法是,收集一定量的提供類別標(biāo)記的樣本點作為訓(xùn)練集,通過對訓(xùn)練樣本及其類別標(biāo)記之間的統(tǒng)計模式關(guān)系的分析得到分類器,進而對未知類別標(biāo)記的數(shù)據(jù)進行分類。但是在某些分類實例中,存在模型建立困難、缺乏有效的理論支持,及訓(xùn)練復(fù)雜度大等問題。
技術(shù)實現(xiàn)要素:本發(fā)明的目的在于提供一種基于糾錯輸出編碼的車型識別方法,解決現(xiàn)有技術(shù)存在的模型建立困難,訓(xùn)練復(fù)雜度高的問題。本發(fā)明的技術(shù)方案是,基于糾錯輸出編碼的車型識別方法,包括車型特征提取、車型分類和分類結(jié)果評價。本發(fā)明的特點還在于:車型特征提取包括構(gòu)建訓(xùn)練樣本集、圖像處理和特征提?。卉囆头诸惏ň幋a、分類訓(xùn)練和譯碼。上述特征提取包括:1、圖像歸一化處理;2、邊緣檢測和提取;3、基于梯度幅值的方向權(quán)重投影;4、圖像梯度方向直方圖(HOG)結(jié)構(gòu)的中塊的特征向量歸一化;5、求解圖像梯度方向直方圖的最終特征向量。上述圖像歸一化處理是將整個圖像轉(zhuǎn)化為灰度圖,即通過Gamma標(biāo)準(zhǔn)式(1)轉(zhuǎn)化;I(x,y)=I(x,y)gamma(1)其中,I(x,y)表示圖像中的像素點顏色信息。上述邊緣檢測和提取為通過索貝爾(sobel)算法實現(xiàn)邊緣檢測和提?。菏紫龋ㄟ^式(2)計算梯度幅值G;其中Gx(x,y)和Gy(x,y)分別表示x和y方向的梯度;然后,通過式(3)計算計算梯度方向θ;式(3)中,將θ(pi,j)的取值范圍分成8個等分,以便將θ(pi,j)量化,Pi,j表示樣本的像素點;最后,通過式(4),求以θ(pi,j)為直方圖的橫坐標(biāo)生成直方圖Ht;在式(4)中,上述基于梯度幅值的方向權(quán)重投影,將圖像窗口分成若干個小區(qū)域,這些區(qū)域被稱為“單元格”;然后將每個單元格中所有象素的一維梯度直方圖或者邊緣方向累加到其中;最后將這個基本的方向直方圖映射到固定的角度上,就形成了最終的特征。上述圖像梯度方向直方圖(HOG)結(jié)構(gòu)的中塊的特征向量歸一化,為使得塊內(nèi)特征向量空間對光照,陰影和邊緣變化具有魯棒性需通過歸一化實現(xiàn),其歸一化通過式(5)實現(xiàn);其中v表示一個還沒有被歸一化的向量,它包含了給定區(qū)間的所有直方圖信息;||v||k表示v的k階范數(shù),k取1、2;ε表示一個趨近于0的很小的常數(shù);ε是個很小的常值,避免分母為0。上述求解圖像梯度方向直方圖的最終特征向量,HOG結(jié)構(gòu)的基本單位都是塊(Block),每個塊(Block)都由若干單元(Cell)組成,一個單元都又由若干個像素點(Pixel)組成;將檢測窗口中所有重疊的塊進行HOG特征的收集,并將它們結(jié)合成最終的特征向量,即由cell中直方圖通道的數(shù)目、block的數(shù)目及block中cell的數(shù)目組成的高維向量供分類使用。本發(fā)明具有如下有益效果:1、本發(fā)明通過將傳統(tǒng)的糾錯輸出編碼與分類器結(jié)合應(yīng)用到車型分類中,通過編碼的形式糾正由單分類器引起的偏差,以提高在多類問題中有監(jiān)督方法的分類精度,將車型多類分類問題轉(zhuǎn)換分解成多個兩類分類問題進行求解。不僅提高了車型識別的實用性和通用性,而且也為車型識別提出了一個新的解決思路,具有較高理論和實用價值。2、本發(fā)明不僅解決了現(xiàn)有技術(shù)存在的模型建立困難,理論支撐少,而且訓(xùn)練復(fù)雜度大等問題,而且還保證分類精度。3、本發(fā)明的車型識別率都在99%以上,使得車型的平均識別率比單獨使用分類器的識別效果有明顯的提高。附圖說明圖1是本發(fā)明基于糾錯輸出編碼的車型識別方法中車型識別流程圖圖2是本發(fā)明基于糾錯輸出編碼的車型識別方法分類結(jié)果投票圖;圖3是本發(fā)明基于糾錯輸出編碼的車型識別方法中HOG提取特征流程圖;圖4是本發(fā)明基于糾錯輸出編碼的車型識別方法中歸一化函數(shù)效果圖;圖5是本發(fā)明基于糾錯輸出編碼的車型識別方法中ECOC方法框架;圖6是本發(fā)明基于糾錯輸出編碼的車型識別方法中基于ECOC的車型識別方法平均識別率。具體實施方式下面結(jié)合附圖和具體實施方式對本發(fā)明進行詳細(xì)說明?;诩m錯輸出編碼的車型識別方法,包括車型特征提取、車型分類和分類結(jié)果評價。車型特征提取包括構(gòu)建訓(xùn)練樣本集、圖像處理和特征提取;車型分類包括編碼、分類訓(xùn)練和譯碼。特征提取包括:1、圖像歸一化處理。將整個圖像轉(zhuǎn)化為灰度圖,即通過伽馬(Gamma)標(biāo)準(zhǔn)式(1)轉(zhuǎn)化。I(x,y)=I(x,y)gamma(1)其中,I(x,y)表示圖像中的像素點顏色信息;2、通過索貝爾(sobel)算法實現(xiàn)邊緣檢測和提?。菏紫?,計算梯度幅值G。通過式(2)計算計算梯度幅值G。其中Gx(x,y)和Gy(x,y)分別表示x和y方向的梯度。其次,計算梯度方向θ。通過式(3)計算計算梯度方向θ。(3)式(3)中,將θ(pi,j)的取值范圍分成8個等分,以便將θ(pi,j)量化,。Pi,j表示樣本的像素點。最后,求θ(pi,j)的直方圖Ht。通過式(4),求以θ(pi,j)為直方圖的橫坐標(biāo)生成直方圖Ht。在式(4)中,3、基于梯度幅值的方向權(quán)重投影;將圖像窗口分成若干個小區(qū)域,這些區(qū)域被稱為“單元格”。然后將每個單元格中所有象素的一維梯度直方圖或者邊緣方向累加到其中。最后將這個基本的方向直方圖映射到固定的角度上,就形成了最終的特征。4、圖像梯度方向直方圖(HOG)結(jié)構(gòu)的中塊的特征向量歸一化。為使得塊內(nèi)特征向量空間對光照,陰影和邊緣變化具有魯棒性需通過歸一化實現(xiàn),其歸一化通過式(5)實現(xiàn)。(ε是個很小的常值,避免分母為0)(5)其中v表示一個還沒有被歸一化的向量,它包含了給定區(qū)間的所有直方圖信息。||v||k表示v的k階范數(shù),這里的k取1、2。用ε表示一個趨近于0的很小的常數(shù)。5、求解圖像梯度方向直方圖的最終特征向量。HOG結(jié)構(gòu)的基本單位都是塊(Block),每個塊(Block)都由若干單元(Cell)組成,一個單元都又由若干個像素點(Pixel)組成。將檢測窗口中所有重疊的塊進行HOG特征的收集,并將它們結(jié)合成最終的特征向量(即由cell中直方圖通道的數(shù)目、block的數(shù)目及block中cell的數(shù)目組成的高維向量)供分類使用。編碼為:首先定義一個編碼矩陣Mk×n。其中M中每個元素的取值為{1,0,-1},k代表類別空間S的大小,n為分類器的個數(shù)。M中的每一行對應(yīng)一個類別,而每一列則對應(yīng)于一個單分類器。N個分類器分別記為h1(x),h2(x),...,hn(x)。分類訓(xùn)練為:每一個單分類器對應(yīng)編碼矩陣Mk×n的每一列,按照編碼矩陣的劃分性質(zhì),每一列均可看作是對樣本空間的二元切分。如果Mj×δ=-1,把所有第j類的樣本都劃分為第δ個分類器hδ(x)的負(fù)例;如果Mj×δ=1,把所有第j類的樣本都劃分為第δ個分類器hδ(x)的正例;如果Mj×δ=0,把所有第j類的樣本在第δ個分類器hδ(x)的訓(xùn)練忽略。然后各個單分類器就按照這些新劃分的樣本集進行訓(xùn)練。譯碼為首先,把預(yù)測樣本x送至各個單分類器,得到一個輸出向量H(x)=(h1(x),h2(x),...,hn(x))然后,計算H(x)與編碼矩陣Mk×n的每一個行向量Mj(j=1,2,...,k)之間的距離D(Mj,H(x)),通常采用漢明距離;取最小距離,作為預(yù)測的輸出。最后,對于編碼矩陣Mk×n,M中每個元素的取值為{1,0,-1},訓(xùn)練時,當(dāng)s=1,2,...,n,根據(jù)訓(xùn)練樣本數(shù)據(jù)和編碼矩陣(xi,M(yi,s)),i=1,2,...,k,得到n個二元分類器fs({f1,f2,...,fn}),對未知輸入x,產(chǎn)生預(yù)測向量f(x)={f1(x),f2(x),...,fn(x)}。設(shè)ρ為樣本的邊界函數(shù),那么帶有編碼m(yi,s)∈{-1,1}的樣本xi在二元分類器f(x)的損失就是ρ(m(yi,s)fs(xi)),其中m(yi,s)=0的情況被忽略。如果預(yù)測樣本被認(rèn)為是第r類,則(x,r)應(yīng)該造成的總損失最小。即將總損失作為一種距離公式:M(r)代表碼本矩陣M中的第r行碼字。預(yù)測樣本x的預(yù)測標(biāo)簽如式9所示:其中M(r)代表碼本矩陣M中的第r行碼字,預(yù)測向量m(yi,s)∈{-1,1}。參照圖1,本發(fā)明的基于糾錯輸出編碼(ECOC)的車型識別方法,按照以下步驟實施:步驟1、車型特征提取1.1)構(gòu)建訓(xùn)練樣本集:建立數(shù)據(jù)集(采集樣本信息形成樣本數(shù)據(jù)庫)。1.2)圖像處理:圖像處理主要是進行濾波、去噪等處理。1.3)特征提?。寒?dāng)進行車輛特征的提取時,由于無法保證進行車型識別的車輛圖像都是在同一幾何和光照條件下成像,所以如果能夠在多個幾何和光照條件下進行特征提取或者所采用的特征提取方法受幾何和光照條件影響小,就可以盡可能提取出準(zhǔn)確的特征,提高最終的識別效果。由于HOG具有對幾何和光照的旋轉(zhuǎn)不變性,故本發(fā)明采取HOG進行車型特征提取,HOG提取車型特征的步驟如下:1.3.1)圖像歸一化,為了減少光照因素的影響,首先需要將整個圖像進行規(guī)范化。在圖像的紋理強度中,局部的表層曝光貢獻的比重較大,所以,這種壓縮處理能夠有效地降低圖像局部的陰影和光照變化。因為顏色信息作用不大,通常先轉(zhuǎn)化為灰度圖。伽馬(Gamma)標(biāo)準(zhǔn)轉(zhuǎn)化公式如式(1)所示:I(x,y)=I(x,y)gamma(1)其中,I(x,y)表示圖像中的像素點顏色信息。我們針對幾種圖像像素點表示方法進行了評估,評估方法包括:灰度信息、RGB和SHV顏色空間信息,并選擇性地進行降冪處理。本文嘗試兩種不同方式的Gamma標(biāo)準(zhǔn)化:平方根和Log壓縮。這兩種方式都需在每個顏色空間的通道上進行。經(jīng)過試驗證明,平方根壓縮對于剛體對象(小汽車、公交車和面包車等)表現(xiàn)尤為優(yōu)越。1.3.2)索貝爾(sobel)算法來進行邊緣檢測和提取1.3.2.1)計算梯度幅值G:通過式(2)計算計算梯度幅值G。其中Gx(x,y)和Gy(x,y)分別表示x和y方向的梯度。1.3.2.2):計算梯度方向θ:通過式(3)計算計算梯度方向θ。式(3)中,將θ(pi,j)的取值范圍分成8個等分,以便將θ(pi,j)量化,Pi,j表示樣本的像素點。1.3.2.3):求θ(pi,j)的直方圖Ht通過式(4),求以θ(pi,j)為直方圖的橫坐標(biāo)生成直方圖Ht。在式(4)中,1.3.3)基于梯度幅值的方向權(quán)重投影:將圖像窗口分成若干個小區(qū)域,這些區(qū)域被稱為“單元格”。然后將每個單元格中所有象素的一維梯度直方圖或者邊緣方向累加到其中。最后將這個基本的方向直方圖映射到固定的角度上,就形成了最終的特征。1.3.4)對block塊內(nèi)特征向量的歸一化使得特征向量空間對光照,陰影和邊緣變化具有魯棒性。歸一化主要是針對每一個block進行的,一般采用的歸一化函數(shù)有以下四種:a)(ε是個很小的常值,避免分母為0)(5)b)L2-Hys(6)(方法同上,只是限制v的最大值到0.2,然后再次重新標(biāo)準(zhǔn)化)L1-norm,v←v/||v||1+ε(7)其中v表示一個還沒有被歸一化的向量,它包含了給定區(qū)間(block)的所有直方圖信息。||v||k表示v的k階范數(shù),這里的k取1、2。用ε表示一個很小的常數(shù)。第一種歸一化函數(shù)即的效果最佳,故本文選取進行車型特征向量歸一化。1.3.5)得出HOG最終的特征向量:將檢測窗口中所有重疊的塊進行HOG特征的收集,并將它們結(jié)合成最終的特征向量(即由cell中直方圖通道的數(shù)目、block的數(shù)目及block中cell的數(shù)目組成的高維向量)供分類使用。步驟2、車型分類:車型分類主要由構(gòu)造分類器和車型分類組成,具體描述為:車型分類的過程可以簡單的分為訓(xùn)練階段和分類階段,訓(xùn)練階段主要是分類器的學(xué)習(xí)階段,即構(gòu)造分類器;分類階段則是用訓(xùn)練過程得到的分類器對測試樣本進行分類,即車型分類。分類過程主要是輸入測試樣本、對待分類的樣本進行自動的分類,為其確定所屬的正確的類別。構(gòu)造分類器的其實就是一種將多類分類問題轉(zhuǎn)換分解成多個二類分類問題來求解的典型代表。其主要思路是根據(jù)給定的樣本編碼矩陣,定義若干個二元切分,用多個二類的單分類器對每個切分進行獨立求解,在預(yù)測階段再綜合各個單分類器的輸出和編碼矩陣的距離來判斷樣本的類別,具體步驟如下:2.1)編碼階段:首先定義一個編碼矩陣Mk×n。其中M中每個元素的取值為{1,0,-1},k代表類別空間S的大小,n為分類器的個數(shù)。M中的每一行對應(yīng)一個類別,而每一列則對應(yīng)于一個單分類器。N個分類器分別記為h1(x),h2(x),...,hn(x)。一個好的一個好的糾錯輸出編碼必須滿足以下三個條件:①編碼矩陣的行之間不相關(guān)。盡量使行與行之間的漢明距離最大,以便使糾錯碼有更強的糾錯能力;②編碼矩陣的列之間不相關(guān)且不互補。盡量使列與列、各列的補集的漢明距離最大,以此來削弱分類器間的相關(guān)性,當(dāng)列與列之間的距離相似或相同時,對應(yīng)的分類器也會相似或相同,當(dāng)出錯時它們就會同時產(chǎn)生相似或相同的錯誤,而ECOC糾錯能力有限,如果同時有很多錯誤,ECOC將無法對其修正。之所以還要強調(diào)列的補集,是因為對于很多二元分類器而言,根據(jù)某個碼字訓(xùn)練得到的分類器和根據(jù)此碼字的補集訓(xùn)練得到的分類器是一樣的。③對于K類分類問題,編碼長度N必須滿足log2k<N<2k-1-1。④如果一組ECOC碼本的最近漢明距離為d,那么它可以至少糾正位錯誤。也就是說即使有個分類器的判別結(jié)果出現(xiàn)錯誤,該分類系統(tǒng)最后還是能給出正確的分類結(jié)果。顯然,ECOC碼本的好壞直接與行的分離程度有關(guān)。而對列分離的好處并不那么明顯。以一個10類分類問題為例,取碼長為15,糾錯碼編碼矩陣如表1所示。表110個類別的15位糾錯碼本2.2)、分類訓(xùn)練階段:每一個單分類器對應(yīng)編碼矩陣Mk×n的每一列,按照編碼矩陣的劃分性質(zhì),每一列均可看作是對樣本空間的二元切分。如果Mj×δ=-1,把所有第j類的樣本都劃分為第δ個分類器hδ(x)的負(fù)例;如果Mj×δ=1,把所有第j類的樣本都劃分為第δ個分類器hδ(x)的正例;如果Mj×δ=0,把所有第j類的樣本在第δ個分類器hδ(x)的訓(xùn)練忽略。然后各個單分類器就按照這些新劃分的樣本集進行訓(xùn)練。訓(xùn)練樣本集的步驟如下:2.2.1)對待分類樣本的類別(Label)進行編碼,把所有的目標(biāo)分類隨機劃分為A、B兩部分,把劃分到A的那些實例的標(biāo)號改成0,其它實例的標(biāo)號改成1,構(gòu)造表2所示的編碼矩陣表;2.2.2)把編碼矩陣中的每一列作為輸入,對于第j列,將該列中碼“0”對應(yīng)的所有類別的數(shù)據(jù)歸為一類,碼“1”對應(yīng)的所有類別的數(shù)據(jù)歸為一類,以此來構(gòu)造一個二元分類器。用更改標(biāo)號以后的訓(xùn)練集來訓(xùn)練該二值分類器。重復(fù)這個過程10次則產(chǎn)生了10個不同的二值分類器,實驗過程中分別用KNN和RF這二種分類器來對樣本進行訓(xùn)練;2.2.3)對分類結(jié)果采取投票的方式,即分類結(jié)果如果是1,則將劃分到對應(yīng)分類器的B部分的目標(biāo)分類投一票,最后目標(biāo)分類票數(shù)最高的作為最終的分類結(jié)果。表25×10編碼矩陣待檢測圖像的分類識別過程如下:對將待識別的目標(biāo)提取HOG特征,對于其提取出的特征向量依次輸入到10個分類器中得到一組編碼,對該編碼進行投票。這里以KNN分類器為例,其方法如下:對于輸出結(jié)果按照表1進行投票,即:如果KNN1輸出的結(jié)果為1,則對對應(yīng)的類標(biāo)(類4、類5)加1票,否則對其余三類加1票;如果KNN2輸出的結(jié)果為1,則對對應(yīng)的類標(biāo)(類1、類5)加1票,否則對其余三類加1票;依次類推,最終五個類標(biāo)中票數(shù)最高的類就是該圖像的分類結(jié)果。具體分類投票過程如圖2所示2.3)譯碼階段:由ECOC框架圖5可知,分類的過程可以看作是一個譯碼操作,目前所使用的譯碼器有基于漢明距離譯碼和基于損失策略譯碼。2.3.1)基于漢明距離譯碼描述如下:2.3.1.1)把預(yù)測樣本x送至各個單分類器,得到一個輸出向量H(x)=(h1(x),h2(x),...,hn(x));2.3.1.2)計算H(x)與編碼矩陣Mk×n的每一個行向量Mj(j=1,2,...,k)之間的距離D(Mj,H(x)),通常采用漢明距離;2.3.1.3)取最小距離,作為預(yù)測的輸出。2.3.2)最小漢明距離法完全忽略了預(yù)測H(x)的可信度,采用基于損失策略譯碼方法不但將可信度考慮在內(nèi),同時使用了漢明距離中忽略的損失函數(shù)。對于編碼矩陣Mk×n,M中每個元素的取值為{1,0,-1},訓(xùn)練時,當(dāng)s=1,2,...,n,根據(jù)訓(xùn)練樣本數(shù)據(jù)和編碼矩陣(xi,M(yi,s)),i=1,2,...,k,得到n個二元分類器fs({f1,f2,...,fn}),對未知輸入x,產(chǎn)生預(yù)測向量f(x)={f1(x),f2(x),...,fn(x)}。設(shè)ρ為樣本的邊界函數(shù),那么帶有編碼m(yi,s)∈{-1,1}的樣本xi在二元分類器f(x)的損失就是ρ(m(yi,s)fs(xi)),其中m(yi,s)=0的情況被忽略。如果預(yù)測樣本被認(rèn)為是第r類,則(x,r)應(yīng)該造成的總損失最小。即將總損失作為一種距離公式:M(r)代表碼本矩陣M中的第r行碼字。預(yù)測樣本x的預(yù)測標(biāo)簽如式9所示:(9)其中M(r)代表碼本矩陣M中的第r行碼字,預(yù)測向量m(yi,s)∈{-1,1}步驟3、分類結(jié)果評價:分類結(jié)果評價是通過計算分類精度并用分類評估函數(shù)對分類的結(jié)果進行評價.本發(fā)明通過將傳統(tǒng)的糾錯輸出編碼與分類器結(jié)合應(yīng)用到車型分類中,通過編碼的形式糾正由單分類器引起的偏差,以提高在多類問題中有監(jiān)督方法的分類精度,將車型多類分類問題轉(zhuǎn)換分解成多個兩類分類問題進行求解。不僅解決了某些分類實例中,存在模型建立困難,理論支撐少,而且訓(xùn)練復(fù)雜度大等問題而且還保證分類精度。實施例中選取小轎車及SUV車輛圖像各50幅,外加卡車、面包車及大巴車圖像各20幅,分別對基于ECOC-KNN分類方法和基于ECOC-RF分類方法進行100次迭代,其分類正確率曲線如圖6所示。圖6表示了ECOC-KNN方法在100次迭代后的識別率統(tǒng)計曲線,由圖6可看出,使用ECOC與分類器結(jié)合使用的方法,對車型的平均識別率比單獨使用分類器的識別效果有明顯的提高,不論是ECOC-KNN還是ECOC-RF的車型識別率都在99%以上。表3表示了該方法對車型進行識別所耗費的平均時間及識別率。表3、基于ECOC-KNN的車型識別方法所耗費的平均時間及平均識別率方法耗費時間平均值(s)識別率(%)ECOC-KNN0.006599.64ECOC-RF0.812399.21對于常用的分類器方法和本發(fā)明進行比較,表4是這兩種方法在平均識別率和耗費平均時間這兩種性能對照表。表4、不同方法識別所耗費的平均時間及平均識別率的對比表4列出了本文改進的基于ECOC方法和傳統(tǒng)基于分類器方法在不同的分類器條件下進行車型識別所耗費的平均時間和平均識別率。從表4可以看出,本文采用的改進后方法的平均識別率要高于傳統(tǒng)方法;在耗費平均時間上,除了RF(由于RF每一次地迭代都需要獲取其葉子節(jié)點、根節(jié)點等做遞歸,所以耗費時間較長)外都低于傳統(tǒng)方法。本發(fā)明首先采用圖像梯度直方圖(HOG)進行圖像特征提取,然后將糾錯輸出編碼(ErrorCorrectingOutputCoding,ECOC)應(yīng)用到分類器分類中,將多類分類問題轉(zhuǎn)化成多個兩類分類問題。此方法不僅在車型識別的實用性以及通用性上有所提高,同時也為車型識別的難題提出了一個新的解決思路,具有較高理論和實用價值。