張 杰,馮巧寧
(中國飛行試驗研究院 陜西 西安 710089)
飛行器特征點的計算機智能識別和檢測技術(shù)是航空試飛領(lǐng)域的關(guān)鍵技術(shù)之一。由于飛行器在大氣中的飛行速度相對較快,為了保證設(shè)備跟蹤的準(zhǔn)確性,采取基于圖像和視頻的快速識別算法就顯得非常的重要。特征點的識別在早期的研究中主要針對固定模板等具有較強約束條件并且沒有形變的特征點圖像。圖像中特征點的位置較為容易獲得,所以并沒有得到足夠的重視。隨著試驗飛行的發(fā)展,圖像采集系統(tǒng)的復(fù)雜化,對飛行器特征點的識別算法提出了更高的要求。
圖像中特征區(qū)域識別算法經(jīng)過了3個主要的發(fā)展階段:幾何特征法、顏色閾值法和理論統(tǒng)計法。將統(tǒng)計概率的方法引入圖像識別領(lǐng)域其實是將圖像檢測的問題轉(zhuǎn)化為模式識別的“是與否”問題。首先,利用統(tǒng)計分析的方法來區(qū)分特征點與非特征點樣本各自的特征,其次構(gòu)建相關(guān)特征的分類器,最后使用分類器完成對圖像的檢測。經(jīng)常使用的方法有:子空間法、神經(jīng)網(wǎng)絡(luò)法、支持向量機法[1]、隱馬爾可夫模型法和Boosting法。
集成學(xué)習(xí)算法不同于許多單模型機器學(xué)習(xí)算法,它一般產(chǎn)生多個預(yù)測模型,每個模型分別對樣本結(jié)果進行獨立預(yù)測,單個模型預(yù)測結(jié)果之間通過加權(quán)組合等方式表決出該方法最終的預(yù)測結(jié)果。
如果集成學(xué)習(xí)算法生成的單模型分類器之間的誤差成弱相關(guān)性,那么算法的最終分類準(zhǔn)確性要強于參與集成的單模型分類器。當(dāng)單模型分類器的分類誤差成相關(guān)性,則會造成參與集成的不同單模型分類器對同一樣本產(chǎn)生同樣誤判的情況。集成學(xué)習(xí)算法可以分為同構(gòu)集成學(xué)習(xí)和異構(gòu)集成學(xué)習(xí)。由于異構(gòu)算法的準(zhǔn)確度因為學(xué)習(xí)機理不同而難以采用統(tǒng)一的標(biāo)準(zhǔn)來衡量,所以使用不同的學(xué)習(xí)算法會增加集成學(xué)習(xí)的復(fù)雜度,因此目前普遍研究的是同構(gòu)集成學(xué)習(xí)。
集成機器學(xué)習(xí)中的弱分類器的設(shè)計是最主要的內(nèi)容。與一般機器學(xué)習(xí)算法不同,集成機器學(xué)習(xí)中不需要考慮弱分類器的線性不可分問題。弱學(xué)習(xí)算法在大多數(shù)情況下比強學(xué)習(xí)算法更加容易獲得。如果兩者之間能夠通過某種方法轉(zhuǎn)換,那么生成算法的時候,僅需要找到一個略強于隨機猜測的弱學(xué)習(xí)算法,便能快速將它升級為強學(xué)習(xí)算法。
Boosting算法是圖像檢測領(lǐng)域早期最為流行的集成機器學(xué)習(xí)方法之一。最初的Boosting算法需要預(yù)知弱學(xué)習(xí)算法正確率的下限,而這在實際使用的過程中無法實現(xiàn)[2]。Adaboost算法對常用的Boosting算法進行了改進和提升,在算法迭代時,根據(jù)每一輪的計算數(shù)據(jù)對初始樣本權(quán)重重新調(diào)整,降低正確分類的樣本權(quán)重,平衡給錯誤分類的樣本。算法在每一輪迭代中集中主要精力應(yīng)對難以檢測的樣本,生成新的權(quán)重關(guān)系。每次迭代所產(chǎn)生的弱學(xué)習(xí)算法根據(jù)加權(quán)組合的方式組合成最終所需的強學(xué)習(xí)算法。AdaBoost算法生成過程如下所示[3]:
1)首先確定訓(xùn)練集:S={(x1,y1),…(xm,ym)},其中xi∈X,為訓(xùn)練樣本集;yi∈Y,為分類標(biāo)志,并且Y∈{-1,+1}。
2)其次,初始化權(quán)值:D1(i)=1/k,i=1,2,…,k。
3)對于T輪循環(huán),有t=1,2,…,T:
a)對有權(quán)重分布的訓(xùn)練集學(xué)習(xí),生成最初的預(yù)測函數(shù)hi:x→{-1,+1};
b)計算預(yù)測函數(shù)ht的錯誤概率:εt=Pr(i,Di),當(dāng)εt=0或者εt≥0.5時結(jié)束算法,且令T=t-1;
c)令?t=0.5×ln[(1-εt)/εt];
d)更新樣本的權(quán)重D:
4)T輪訓(xùn)練結(jié)束后,獲得的結(jié)果預(yù)測函數(shù)是:H(x)=sign
公式中的?t是經(jīng)過第t輪訓(xùn)練后生成的弱分類器hi(x)的性能評價因子,它的值由hi(x)作用于樣本集所產(chǎn)生的分類錯誤的樣本權(quán)重之和εt來決定。所以,?t是εt的減函數(shù),當(dāng)εt越小時?t越大,說明該分類器hi(x)的重要性越高。
在訓(xùn)練算法的過程中,當(dāng)弱分類對樣本的識別誤差εt≥0.5時,說明該分類器弱于隨機分類,無法使用,并且算法中止。這種情況下,在樣本跌代過程中,容易識別的樣本權(quán)重變大,難以識別的樣本權(quán)重減少,算法的更新機制失去效果。當(dāng)εt=0時,訓(xùn)練集的所有樣本都能夠被正確的區(qū)分,所有樣本權(quán)重為零。
強分類器H(x)對訓(xùn)練樣本集識別的錯誤率稱為訓(xùn)練誤判率,記為ε,則有:
由公式(3)可以發(fā)現(xiàn),訓(xùn)練誤判率ε與訓(xùn)練輪數(shù)T成指數(shù)相反關(guān)系,即T越大時ε呈指數(shù)減小。在特殊情況下,假設(shè)所有的hi(x)誤判率都相等,則上式可等價為:
在集成學(xué)習(xí)算法中,強分類器的有效性與弱分類器的數(shù)量和誤判率密切相關(guān)。只要有足夠的資源訓(xùn)練出足夠多的弱分類器,就可以有效的降低強分類器的誤判率。就一般兩分類問題而言,只需要弱學(xué)習(xí)算法的準(zhǔn)確性略高于隨機猜測,就能夠使Adaboost算法最終收斂。
圖像的特征一般是指圖像的紋理和形狀特性,它無法直接從原始像素中獲得,而是需要對具有相關(guān)性的像素進行編碼和歸納。Viola等[4]在此基礎(chǔ)上作了擴展,使用3種類型4種形式的矩形特征,分別稱之為2-矩形特征、3-矩形特征、4-矩形特征,2-矩形特征又分為AB兩種,如圖1所示。
圖1 Viola特征庫Fig.1 Viola characteristic bank
矩形特征的數(shù)目越多,所對應(yīng)的弱分類器數(shù)目也越多,AdaBoost算法挑選最優(yōu)弱分類器的選擇范圍也就越大。增加的弱分類器中,AdaBoost算法將選擇優(yōu)于原弱分類器的進行添加。強分類器的性能和結(jié)構(gòu)伴隨更多弱分類器加入而得到有效,最終提高了算法的檢測速度。
根據(jù)圖像的特性,增加了的6種特征原型[5]。
圖2 增加的特征原型Fig.2 Increased characteristic prototype
下文中分別使用E1和E2來區(qū)分增加3個特征原型(E、F、G)與增加6個特征原型(E、F、G、H、I、J)之后的實驗過程。這兩個實驗過程除了特征原型數(shù)量不同外,其他條件相同:它們使用相同樣本集,并且訓(xùn)練層數(shù)都為24層,對應(yīng)設(shè)置了一樣的各層強分類器的檢出率(0.998)和誤判率(0.6)。詳細實驗數(shù)據(jù)及分析如下:
表1 E1的特征比例和平均概率(%)Tab.1 Characteristic proportion and average probability of E1
在2個實驗中,特征原型C、D、E相對其他特征原型表現(xiàn)更為突出。如果以平均概率進行評判,則擴展后的6類特征E、F、G、H、I、J顯示出了良好的有效性。
表2 E2的特征比例和平均概率(%)Tab.2 Characteristic proportion and average probability of E2
特征點標(biāo)志在物方空間中的旋轉(zhuǎn)有3種:水平旋轉(zhuǎn)(俯仰)、垂直旋轉(zhuǎn)(搖擺)以及法向旋轉(zhuǎn)(傾斜),如圖3所示。
圖3 特征點旋轉(zhuǎn)模式Fig.3 Rotate mode of characteristic point
文中將特征點圖像在物方空間的旋轉(zhuǎn)角度分為5個類別:左側(cè)、左半側(cè)、正面、右半側(cè)和右側(cè)。對應(yīng)角度范圍如下:[-90°,-50°]、[-50°,-20°]、[-20°,+20°]、[+20°,+50°]、[+50°,+90°]。同時,每個類別兼顧±15°的法向旋轉(zhuǎn)和±20°的水平旋轉(zhuǎn)。訓(xùn)練中使用的樣本比例如表3所示。
表3 特征點樣本姿態(tài)統(tǒng)計Tab.3 Statistics of the sample taken from characteristic point attitude
實驗結(jié)果表明,幾個檢測器對側(cè)面圖像和搖擺圖像都具有較強的識別能力。結(jié)論如下:1)特征圖像樣本中旋轉(zhuǎn)圖像的比例越大,強分類器的訓(xùn)練難度也就越大,兩者成正比關(guān)系;2)訓(xùn)練集中一定比例的旋轉(zhuǎn)樣本能增加檢測器對旋轉(zhuǎn)特征圖像的檢測能力。
假設(shè)非特征圖像樣本集容量為N,訓(xùn)練一個L層的檢測器,并且該檢測器的每層強分類器的誤判率都等于f。每一層非特征圖像樣本能夠被算法被識別的概率為1-f,在訓(xùn)練時每一層需要淘汰N×(1-f)個非特征點樣本。當(dāng)進行第i層強分類器訓(xùn)練時,補充的非特征圖像樣本需要通過前i-1層的考核,只有被所有i-1層強分類器誤判的非特征圖像樣本才能選用至第i層的非特征點樣本集中。所以第i層訓(xùn)練時需要輸入的候選錯誤樣本數(shù)量為:
由公式(5)可見,算法訓(xùn)練的層數(shù)越多,需要準(zhǔn)備的錯誤樣本數(shù)量成指數(shù)增長。如果設(shè)定f=0.6,N=5 000,訓(xùn)練第20層強分類器需要的樣本數(shù)量將達到0.33億。如此海量的樣本只能通過電腦窮舉來完成。
是一種選取非特征點樣本的有效方法:在訓(xùn)練過程中準(zhǔn)備大量的不含有特征圖像的樣本集,使用前i-1層強分類器對該圖片樣本集進行搜索識別,將誤判為特征圖像的樣本加入到非特征點樣本集中。該種方法稱為“bootstrap”法。搜索的可以采取遍歷窮舉的策略,在大小為W×H的圖片上窮舉出所有w×h大小的子圖像,可得到(W-w)×(H-h)個候選樣本。對于一個訓(xùn)練系統(tǒng),至少要滿足最后一層強分類器的訓(xùn)練,因此所需要的非特征點的數(shù)目最少為:
式中,N為非特征點樣本集大小,f為強分類器誤判率,L為級聯(lián)分類器層數(shù)。
訓(xùn)練開始幾層強分類器時有可能出現(xiàn)大量相似的非特征點樣本的情況,本文使用如下策略進行避免:初始時以相對較大的搜索步長遍歷,獲得非特征點樣本,用于前幾層強分類器的訓(xùn)練;同時隨著層數(shù)的增加,逐步減小搜索步長,生成更多不同的非特征點樣本。
圖4是特征圖像檢測系統(tǒng)框架,其中“檢測子窗口”是指分別使用各層強分類器對子窗口進行特征圖像的識別檢測。通常需要進行檢測識別的圖像分辨率要大于樣本圖像分辨率(24×24),需要對圖像本身進行比例的縮放,形成一個金字塔狀待檢圖像序列。采用的插值采樣的方法對待檢圖像進行尺度變化,按照一定的步長逐級縮小。同時,識別算法還需要對同一幅圖像的不同部位進行檢測。假設(shè)檢測窗口每次平移k個像素,那么k的大小選擇將會直接影響程序的識別精度和速度。當(dāng)k的數(shù)值取得較大時,提高了檢測速度,降低了檢測的精度;相反,如果k值取的較小,雖然會提高檢測的精度,但卻大大降低了檢測速度。
圖4 檢測系統(tǒng)框架Fig.4 Framework of detecting system
實驗表明,待測圖像縮放比例為1.2時,平移步長k=4,可以兼顧算法對速度和進度的雙重要求,識別結(jié)果較為滿意。訓(xùn)練和識別程序運行平臺環(huán)境如下:Intel Xeon X3210四核2.13 GHz CPU、1G DDR400內(nèi)存。實驗結(jié)果如表4所示。
表4 實驗結(jié)果Tab.4 Test results
飛行器特征圖像識別是計算機視覺和圖像處理學(xué)科在航空試飛領(lǐng)域的一個熱點研究方向,廣泛的應(yīng)用于試飛實驗過程中的智能安全監(jiān)控、圖像實時判讀解析等方面。本文實驗性采用AdaBoost算法,并保存分類結(jié)果以改進訓(xùn)練過程,提高了訓(xùn)練速度,綜合考慮工程應(yīng)用中效率與精度的需求,解決了飛行試驗過程中的目標(biāo)提取與跟蹤問題。在此基礎(chǔ)上,發(fā)現(xiàn)弱學(xué)習(xí)算法對強分類器的結(jié)構(gòu)、性能有著很大影響,高效的訓(xùn)練算法可以加快系統(tǒng)的收斂速度。同時以消耗訓(xùn)練時間為代價,擴展矩形特征的類型數(shù)量可以有效的提高算法對特征圖像的識別能力。
[1]Vapnik.The nature of statistical learning theory[M].New York:Spinger-Verlag,1995.
[2]涂承勝.Boosting理論基礎(chǔ)[J].計算機科學(xué),2004,31(10):11-15.TU Cheng-sheng.The theory base of boosting[J].Computer Science,2004,31(10):11-15.
[3]于玲.集成學(xué)習(xí):Boosting算法綜述[J].模式識別與人工智能,2004,17(1):52-60.YU Ling.Assemble learning:a survey of boosting algrorithms[J].Pattern Recognition And Artificial Intelligence,2004,17(1):52-60.
[4]張宏林.Visual C++數(shù)字圖像模式識別技術(shù)及工程實踐[M].北京:人民郵電出版社,2003.
[5]Viola P,Jones M.Robust real-time object detection.cambridge research laboratory,Technical report series[R].CRL,2001.
[6]Lienhart R,Maydt J.An extended set of Harr-like features for rapid object detection[C]//IEEE ICIP,2002:900-903.