1. 準備工作
1) 確立分類器個數(shù)
一般都事先確定分類器的個數(shù),當(dāng)然,如有必要,可在訓(xùn)練過程中增加分類器的個數(shù)。分類器指的是將樣本中分幾個類型,比如我們從樣本中需要識別出:車輛、行人、非車并非人,則分類器的個數(shù)是3。
分類器的個數(shù)用k
2) 圖像庫建立
SVM方法需要建立一個比較大的樣本集,也就是圖像庫,這個樣本集不僅僅包括正樣本,還需要有一定數(shù)量的負樣本。通常樣本越多越好,但不是絕對的。
設(shè)樣本數(shù)為S
3) ROI提取
對所有樣本中的可能包含目標的區(qū)域(比如車輛區(qū)域)手動或自動提取出來,此時包括正樣本中的目標區(qū)域,也包括負樣本中類似車輛特征的區(qū)域或者說干擾區(qū)域。
4) ROI預(yù)處理
包括背景去除,圖像濾波,或者是邊緣增強,二值化等預(yù)處理。預(yù)處理的方法視特征的選取而定。
5) 特征向量確定
描述一個目標,打算用什么特征,用幾個特征,給出每個特征的標示方法以及總的特征數(shù),也就是常說的特征向量的維數(shù)。
對于車輛識別,可用的特征如:車輛區(qū)域的灰度均值、灰度方差、對稱性、信息熵、傅里葉描述子等等。
設(shè)特征向量的維數(shù)是L。
6) 特征提取
確定采取的特征向量之后,對樣本集中所有經(jīng)過預(yù)處理之后的ROI區(qū)域進行特征提取,也就是說計算每個ROI區(qū)域的所有特征值,并將其保存。
7) 特征向量的歸一化
常用的歸一化方法是:先對相同的特征(每個特征向量分別歸一化)進行排序,然后根據(jù)特征的最大值和最小值重新計算特征值。
8) 核的選定
SVM的構(gòu)造主要依賴于核函數(shù)的選擇,由于不適當(dāng)?shù)暮撕瘮?shù)可能會導(dǎo)致很差的分類結(jié)果,并且目前尚沒有有效的學(xué)習(xí)使用何種核函數(shù)比較好,只能通過實驗結(jié)果確定采用哪種核函數(shù)比較好。訓(xùn)練的目標不同,核函數(shù)也會不同。
核函數(shù)其實就是采用什么樣的模型描述樣本中目標特征向量之間的關(guān)系。如常用的核函數(shù):Gauss函數(shù)
對樣本的訓(xùn)練就是計算p矩陣,然后得出描述目標的模板和代表元。
2. 訓(xùn)練
訓(xùn)練就是根據(jù)選定的核函數(shù)對樣本集的所有特征向量進行計算,構(gòu)造一個使樣本可分的特征空間。
其訓(xùn)練步驟如下:
1) 用分類器將所有樣本集的特征分類
2) 根據(jù)選定的核函數(shù)分別計算每個分類器中每個特征向量的有關(guān)值
3) 根據(jù)這些特征相關(guān)值計算協(xié)方差矩陣空間
4) 對這個協(xié)方差矩陣空間進行Householder變換,也就是說將一個向量變換為由一個超平面反射的鏡像,是一種線性變換。超平面的法向量被稱作Householder向量。因為SVM就是在特征空間中構(gòu)造最優(yōu)超平面。
具體變換方法可參照相關(guān)文章。里面涉及大量的矩陣運算。
5) 計算特征系數(shù)
得到協(xié)方差矩陣以及其對應(yīng)的超平面矩陣,根據(jù)這兩個矩陣分別計算每個特征的特征系數(shù),并將特征系數(shù)對協(xié)方差矩陣進行縮放。
6) 獲得模型參數(shù)paramInvSigma,paramLogSigma
對縮放后的協(xié)方差矩陣paramSigma求逆后,計算模型參數(shù)。其計算方法參照程序:
for (i=0; i<numClass; i++)
{
for(j=0; j<size; j++)
{
sigma.pdata[j]= this->paramSigma[i*size+j];
}
sigma.inv(invSigma);
for(j=0; j<size; j++)
{
this->paramInvSigma[i*size+j]= invSigma.pdata[j];
}
this-> paramLogSigma[i] = log(sigma.det())-2*log(((DOUBLE)classSample[i])/((DOUBLE)totalSample));
}
3. 比較測試
比較測試是SVM方法的最后一步,也就是說通過訓(xùn)練得到訓(xùn)練模型參數(shù)之后,就可根據(jù)模型參數(shù)對一個ROI區(qū)域進行計算,判斷其歸類。
比較測試首先是對測試圖像進行預(yù)處理,然后提取特征,將這些特征參數(shù)與訓(xùn)練結(jié)果的模型參數(shù)進行比對,比對方法可參照文獻中介紹的:
得到對應(yīng)的類別標志:
4. 總結(jié)
SVM方法最主要的工作是樣本訓(xùn)練,獲得訓(xùn)練模型參數(shù)。
由于時間關(guān)系,暫時只對SVM有這些了解,只能算對SVM有一個初步的認識。并且上述總結(jié)都是在閱讀文獻之后的認識,難免有不少錯誤和不足,所以本文只能作為一個小參考。在對SVM有個初步的認識之后,需要仔細閱讀其原理,分析其中的矩陣運算及思想。SVM中涉及大量的矩陣運算和推導(dǎo),需要弄清楚,這樣才能明白模型參數(shù)的含義,以便于判斷當(dāng)前選定的核函數(shù)是否合適。