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