孫翔侃,白寶興
(長春理工大學 計算機科學技術(shù)學院,長春 130022)
?
基于機器學習的NAO機器人檢測跟蹤
孫翔侃,白寶興
(長春理工大學計算機科學技術(shù)學院,長春130022)
摘要:為了解決對人形NAO機器人的檢測跟蹤問題,提出了一種機器學習與特征匹配相結(jié)合的方法。向梯度直方圖(Histogram of Oriented Gradient)特征是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子,在行人檢測中取得了較好的效果。將其應用于人形NAO機器人的檢測跟蹤,并結(jié)合AdaBoost算法通過機器學習的方法,從大量的訓練樣本中自動抽取HOG特征并建立級聯(lián)分類器,利用分類器找出視頻幀中含有機器人目標的區(qū)域,并在此基礎上利用SURF (Speed Up Robust Features)特征匹配方法與模板圖像進行特征匹配,以提高目標識別的正確率。實驗結(jié)果表明,該方法對NAO機器人在室內(nèi)光線無遮擋的情況下取得了穩(wěn)定的跟蹤效果。
關鍵詞:目標檢測;方向梯度直方圖;AdaBoost分類器;SURF特征匹配
目標檢測跟蹤是計算機視覺領域的重要研究方向,在智能化交通系統(tǒng)、智能監(jiān)控系統(tǒng)等方面有著廣泛的應用。基于特征的檢測方法是找到一種特征能夠較好的描述目標物體,并且盡量不受背景光照因素的影響。方向梯度直方圖特征(Histogram of Oriented Gradient,HOG)[1]是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子,在行人檢測中取得了較好的效果[2,3]。本文將其應用于人形機器人NAO的檢測跟蹤,并結(jié)合AdaBoost算法[4]通過機器學習的方法,從大量的訓練樣本中自動抽取HOG特征并建立分類器,利用分類器找出視頻幀中含有機器人目標的區(qū)域,并在此基礎上利用SURF(Speed Up Robust Features)特征[5]與模板圖像進行特征匹配,以提高目標識別的正確率。
Kuranov[6]等人提到他們使用了5000個人臉正面圖像作為正樣本,3000個非人臉圖像作為負樣本用來進行訓練,而所用的5000個人臉正面圖像是由1000個原始圖像派生出來的。考慮到NAO機器人的特殊性,只采集少量NAO機器人正面全身圖像,并由這些原始原始圖像派生出所需的正樣本圖像即可。本文采集了20張NAO機器人正面站立姿勢圖像作為正樣本原始圖像。考慮到NAO機器人整體高度和寬度的比例,圖像大小設置為32×48。并準備了5300張與目標無關的背景圖像作為負樣本,圖像大小設置為640×480。利用opencv_createsamples使每一張原始正樣本圖像與背景圖像中隨機選取的一張進行結(jié)合,在以背景圖片為底建立的笛卡爾坐標系上,合成過程中通過改變正樣本圖像相對于背景圖像在水平方向和垂直方向上的旋轉(zhuǎn)角度利用原始正樣本圖像生成4800張包含檢測目標的訓練集。
2.1方向梯度直方圖特征提取
方向梯度直方圖(HOG)特征是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子,由Dalal[1]提出。HOG方法是在圖像的局部細胞單元上進行處理,它對圖像的幾何或者光學變化都能保持很好的不變性[2]。HOG特征提取主要過程[1]如下:
(1)提取視頻中每一幀圖像,并將其由RGB圖像變換為灰度圖像。
(2)計算圖像中所有點的梯度值。
(3)對每個細胞單元建立相應的梯度直方圖。梯度直方圖方向可取0~180度或0~360度范圍內(nèi)。實驗中采用0~180度無符號方向角度范圍,并將其平均分成9個通道。直方圖的建立過程是將細胞單元中每一個像素點根據(jù)其梯度對應的角度范圍進行加權(quán)投票的過程,其中權(quán)值可以用梯度幅度來表示。
(4)將細胞單元合成塊,塊對應的直方圖是由細胞單元的直方圖合成得到的。塊與塊之間可以重疊。實驗中用到的塊的類型為矩形塊,其中每塊含有2×2個細胞單元,每個細胞單元含有8×8個像素。一個矩形塊可由每塊所含的細胞單元數(shù),細胞單元所含的像素點數(shù)和每個細胞單元所含的直方圖通道數(shù)來描述。
(5)對塊的HOG特征向量歸一化。歸一化是針對每一個塊進行的,實驗中所使用的歸一化函數(shù)為:
2.2AdaBoost分類器
AdaBoost(adaptive boosting)算法是由Freund 和Schapire[4]提出的一種改進的Boosting迭代算法。Boosting算法的核心思想是針對同一個訓練集訓練不同的分類器,即弱分類器,然后把這些弱分類器按一定權(quán)重集合起來,構(gòu)造一個更強的最終分類器[7]。常用的AdaBoost算法有Discrete AdaBoost,Real AdaBoost,LogitBoost和Gentle AdaBoost[7]。這四種算法總體結(jié)構(gòu)相似,其學習方法基于n個訓練樣本集(x1,y1),...,(xn,yn)且xi∈Rk,yi∈{}-1,1。xi是作為輸入的相關特征向量,yi是分類器判斷結(jié)果輸出的標記。在實驗中xi就是一個HOG特征。而輸出的+1,-1表示所輸入的樣本是否完全包含目標。AdaBoost算法訓練數(shù)據(jù)集中的每個樣本,并賦予每個樣本一個權(quán)重,這些權(quán)重構(gòu)成了一組向量。首先將樣本的權(quán)重都初始化為相等值。在此樣本分布下訓練出一弱分類器并計算該分類器的錯誤率。而在第二次訓練中,對于第一次分類錯誤的樣本,將其對應的權(quán)重加大;而對于第一次分類正確的樣本,使其權(quán)重降低。在新的權(quán)重向量計算出來后又開始下一輪迭代。AdaBoost算法會不斷地重復訓練和調(diào)整權(quán)重的過程,直到弱分類器的數(shù)目達到用戶指定要求為止。
2.3級聯(lián)分類器
級聯(lián)分類器(Cascade of Classifiers)是一個退化決策樹,每一層級的分類器可讓大部分目標樣本通過,而排除一部分非目標樣本[8]。一旦某一級分類器排除了某個樣本,那么該樣本就被判定為負,不再進一步處理。在實驗中級聯(lián)分類器的每一級的弱分類器都使用AdaBoost算法訓練,其最小命中率設為0.995即允許排除0.5%的正樣本,而最大錯誤率設為0.5,即允許去除50%的非機器人樣本。
3.1特征檢測
SURF特征是一種尺度不變特征,該算法由Herbert Bay[5]等人提出。SURF算法首先計算每個像素的Hessian矩陣,該矩陣測量一個函數(shù)的局部曲率,其定義如下:
該矩陣的行列式給出曲率的強度,定義角點為具有較高局部曲率的圖像點。該矩陣可以使用不同σ尺度的拉普拉斯高斯核進行計算,因此Hessian矩陣變?yōu)椋篐(x,y,σ)。當Hessian的值同時在空間域和尺度域上達到局部最大值是,就認為找到了尺度不變特征。實驗中通過使用SurfFeatureDetector的對象實例來獲取一副圖像的SURF特征,并保存為KeyPoint類型的向量集。
3.2特征描述子
SURF描述子將特征點周圍較大范圍內(nèi)應用如圖的簡單核。
圖1 簡單核
左邊的核測量水平方向的局部強度差dx,右邊的核測量垂直方向的差dy。用于提取描述子向量的區(qū)域尺寸定義為特征尺度因子的20倍。方形區(qū)域被分為4×4大小的子區(qū)域,并計算5×5范圍內(nèi)的dx和dy響應。對所有響應求和,對每個子區(qū)域得出四個描述子值:
因為存在4×4共16個子區(qū)域,所以共有64個描述子值。通過使用SurfDescriptionExtractor對象實例的compute方法基于特征檢測得到的向量計算出描述子值。
3.3特征匹配
用SURF方法獲得參考圖像和待配準圖像的特征點后,進行特征匹配。實驗中使用BFMatcher對象實例NORM_L2方法對兩幅圖像的SURF特征描述子進行匹配并返回所匹配的特征數(shù)量,并與預設的閾值進行比較以判斷兩幅圖像的相似度,進而判斷識別區(qū)域是否包含NAO機器人。
在目標被檢測出來之后,通過計算矩形目標區(qū)域的質(zhì)心,以實現(xiàn)對目標的跟蹤定位。具體計算方法如下:其中(x,y)為矩形目標區(qū)域左上角坐標,h和w分別表示矩形區(qū)域的高與寬。在跟蹤時在窗口中顯示跟蹤位置。
實驗利用生成的訓練集分別以Discrete Adaboost,Real AdaBoost,LogitBoost和Gentle Ada-Boost這四種方法訓練基于HOG特征的級聯(lián)分類器,且保證層級相同,實驗中使用由NAO機器人攝像頭所錄制的視頻進行測試。通過測試15層的級聯(lián)分類器在測試中可以在大多數(shù)情況下識別站立運動的NAO機器人目標,但是會檢測到一些不包含目標的錯誤窗口。而隨著層級數(shù)的增加分類器扔能對站立的NAO機器人目標正確識別,但是對運動的NAO機器人特別是包含一些動作的情況分類器不能正確識別。我們的目的是在NAO機器人站立的情況下且有一些簡單動作的情況下也能識別跟蹤目標。所以將分類器層級數(shù)設為15級。不同的層級分類器的正確識別率如表1所示。
表1 四種AdaBoost方法不同層級分類器正確識別率
比較檢測跟蹤效果得出通過Discrete Adaboost算法訓練得到的分類器的對于包含一些細微動作的檢測跟蹤效果略好于其通過他三種算法訓練得到的分類器,但存在錯誤識別。在此基礎上再利用SURF特征匹配以拒絕錯誤的識別情況。如圖2所示,左邊圖像未使用SURF特征匹配,右邊為使用SURF特征匹配效果。
圖2 SUEF特征匹配使用前后效果對比圖
將用分類器所檢測出的區(qū)域圖像與模板圖像進行匹配將所得到的相似度值與預設閾值進行比較,相似度大于閾值的判斷為是目標,小于閾值的判斷為非目標。實驗中閾值設定為20時效果較好,將正確識別率提升至88.7%。對NAO機器人的跟蹤結(jié)果如圖3所示。
圖3 NAO機器人跟蹤效果圖
本文主要通過使用行人檢測中經(jīng)常使用的HOG特征與AdaBoost算法相結(jié)合的方法應用于類人型機器人的檢測,并在此檢測基礎上結(jié)合SURF特征匹配的方法將通過分類器檢測出的區(qū)域與模板圖像進行匹配進一步提高了目標識別的正確率,實現(xiàn)了對兩個機器人的同時識別跟蹤,達到了實驗預期。
參考文獻
[1]N Dalal,B Triggs. Computer vision and pattern recognition[C].IEEE Conference on Computer Vision and Pattern Recognition,San Diego,CA,USA,2005.
[2]F Suard,A Rakotomamonjy,A Bensrhair,et al. Intelligent vehicles symposium[C].IEEE Conference on Intelligent Vehicles Symposium,Tokyo,2006.
[3]朱文佳.基于機器學習的行人檢測關鍵技術(shù)研究[D].上海:上海交通大學,2008.
[4]Y Freund,R Schapire. A decision-theoretic generalization of on-line learning and an application to boosting[J].Journal of Computer and System Sciences,1997,55(1):119-139.
[5]H Bay,T Tuytelaars,L Van Gool. SURF:Speeded Up Robust Features[J].Computer Vision and Image Understanding,2008,110(3):404-417.
[6]Alexander Kuranov,Rainer Lienhart,Vadim Pisarevsky. Pattern recognition[C].In DAGM 25th Pattern Recognition Symposium,Berlin,2003.
[7]Y Freund,R E Schapire. Experiments with a new boosting algorithm[C].Proceedings of the Thirteenth International Conference,San Francisco,1996.
[8]Paul Viola,Michael J Jones. Computer vision and pattern recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition,Kauai,HI,2001.
Detection and Tracking of NAO Based on Machine Learning
SUN Xiangkan,BAI Baoxing
(School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022)
Abstract:To detect and track the NAO robot,a method of combing machine learning and feature matching was proposed. Histograms of Oriented Gradient(HOG)feature is a descriptor which is used for object detection in computer vision and image processing. HOG descriptors outperform existing feature sets for human detection. The HOG feature sets was used to detect the NAO robot. A method of combining AdaBoost algorithm and HOG features created a cascade classifier. The cascade classifier was used to detect the NAO robot. In order to improve the right rate of recognition,SURF(Speed Up Robust Features)algorithm was used to compare the region of interest and the template,the region of interest was obtained by the cascade classifier. By matching the two pictures,to determine whether the region of interest contains the target. In the experiment,two NAO robots were tracked. The experimental results show that the tracking and recognition of NAO performed steadily on indoor lights without any shelter conditions.
Key words:NAO detection;HOG;AdaBoost classifier;SURF feature matching
中圖分類號:TP391.41
文獻標識碼:A
文章編號:1672-9870(2016)02-0116-04
收稿日期:2015-10-08
作者簡介:孫翔侃(1990-),男,碩士研究生,E-mail:sxk1990ly@126.com
通信作者:白寶興(1953-),男,教授,博士生導師,E-mail:bxbai@cust.edu.cn