馬東,劉超杰,王立玲,王洪瑞
(1.河北大學電子信息工程學院,河北保定 071002;2.河北大學機器人技術研究中心,河北保定 071002)
近幾年來,隨著機器人自主導航、無人駕駛和智能監控等技術的不斷發展[1],普遍將攝像機作為機器視覺領域中重要的視覺傳感器來獲取周圍環境中的相關信息,為下一步判斷與決策提供關鍵依據。因此,機器人視覺中的運動目標檢測[2]和目標跟蹤[3]技術成為了熱點研究方向。目標檢測是該技術的核心[4],為下一步進行目標跟蹤提供重要保障。根據機器人的狀態,可以將其視覺背景分為靜態和動態2種類型。由于相機與背景發生相對運動,實現動態背景下的運動目標檢測與跟蹤具有一定挑戰,雖然靜態背景下的目標檢測[5]與跟蹤技術已經相對成熟,但不能直接應用于動態背景。所以,研究動態背景下的運動目標檢測與跟蹤方法有著重要的應用價值。
常用于動態環境下的運動目標檢測方法主要有:光流法[6]、目標模板匹配法[7]和背景補償法。光流法雖然檢測到的目標完整度高,但存在計算復雜、易受光照變化影響的缺點,在工程應用中不具備實時檢測的優勢。模板匹配法通過目標模板與場景中的物體進行匹配完成目標檢測,計算量較小,但不能夠檢測未知的運動目標。背景補償法主要通過求解全局運動參數計算背景運動量,將運動背景轉換為靜態背景,適用于相機平移、縮放、旋轉等視覺場景。文獻[8]提出一種多尺度SIFT特征的目標檢測算法,取得了較好的檢測效果,但算法計算量大,不能滿足實時性。文獻[9]采用基于ORB特征匹配的運動目標檢測算法,雖然保證了算法的實時性,但利用RANSAC[10-11]算法去除誤匹配的效果不佳,檢測結果存在邊緣缺失以及嚴重空洞問題。文獻[12]提出一種基于子塊運動補償的運動目標檢測方法,消除了誤匹配點對求解運動參數的影響,但算法執行速度較慢,抗干擾能力較差。
針對上述問題,本文作者提出一種適用于動態場景下機器人運動目標檢測與跟蹤方法。通過改進的ORB特征匹配方法精確地進行背景運動補償[13]完成運動目標檢測,在運動目標跟蹤過程中,為避免目標受遮擋干擾導致跟蹤失敗,采用基于Kalman濾波擴展的KCF算法[14-15]對其進行穩定跟蹤。
傳統ORB特征提取算法是對FAST特征點檢測算法[16]與BRIEF特征描述子算法[17]的一種結合與改進,具有計算量小和檢測速度快的優勢。雖然ORB算法具有較好的實時性,但仍存在以下缺陷:
(1)當圖像發生亮度變化或尺度變化時,容易導致特征點匹配精度大幅下降。
(2)提取的特征點較少并且分布不均勻,容易出現團簇現象。
(3)ORB算法利用圖像金子塔實現特征點的尺度不變性,由于金字塔層數有限,只能在一定范圍保證尺度的不變性,擁有很大的局限性。
文中采用一種改進的特征提取方法,通過圖像增強算法及小波變換對圖像進行特征點檢測預處理,然后提取SURF特征點并生成ORB描述符。
1.1.1 特征點檢測預處理
為解決傳統ORB算法提取的特征點較少、易出現團簇現象以及低亮度條件下匹配效果不佳對全局運動參數影響較大的問題,文中改進方法在檢測特征點之前對圖像進行預處理。首先,采用基于拉普拉斯(Laplacian)算子的圖像增強算法,提高低亮度條件下的匹配精度。由于背景噪聲和圖像邊緣一般屬于高頻部分,因此采用小波分辨率分析的方法提前消除高頻部分保證SURF算子性能,避免邊緣處特征點的干擾。然后,利用小波變換的方法將圖像劃分為不同分辨率的圖像層,采用圖像分塊處理將屬于低分辨率的圖像分成5×5的圖像塊并檢測特征點。設置點數閾值ε,若圖像塊中特征點數量超過ε時則停止檢測,若低于ε時,通過檢測高一層分辨率圖像的特征點加以補充,直至滿足點數閾值。這種方法保證機器人無論處于復雜場景還是簡單場景都能提取足夠數量的特征點,同時解決了特征點分布聚集的問題。
1.1.2 特征點檢測與描述
SURF是一種高魯棒性的局部特征點檢測器,該算子在保持SIFT算子[18]優良性能特點的基礎上,同時還具有較高的計算效率。SURF算法采用近似的Hessian矩陣行列式的局部最大值來尋找感興趣點位置。給定圖像中的一個點(x,y),其Hessian矩陣定義為
(1)
其中:Lxx(x,σ)表示高斯二階偏導?2g(σ)/?x2與圖像函數的卷積,Lxy(x,σ)和Lyy(x,σ)同理。
根據矩陣H(x,σ)行列式值的符號確定該點是否為極值點;對式(1)的行列式近似簡化可得:
Δ(H)=DxxDyy-(0.9Dxy)2
(2)
若行列式的結果符號為負,則特征值符號為異號,不屬于局部極值點;若符號為正,則該點屬于極值點。
在極值點周圍使用3×3×3的模板在3維尺度空間比較各特征值的大小,若某一極值點比周圍26個點的特征值都大,則選定該點為特征點。
提取SURF特征點后,使用ORB描述符來描述每個特征點,采用rBRIEF算法在特征點鄰域建立特征描述符。在特征點p附近選擇n個點對,然后把各個點對的灰度值進行比較,由準則函數:

(3)
可以得到一個長度為n的二進制特征符:
(4)

Sθ=RθS
(5)
此時,得到加上方向后的rBRIEF描述子為
gn=(p,θ)=fn(p)|(xi,yi)∈Sθ
(6)
最后,采用貪婪搜索算法找出方差最大、相關性較低的256個點對進行特征描述。
采用SURF算法提取的特征點擁有較強的尺度不變性、數量多、高穩定性的優點,解決了ORB特征點數量少以及尺度不變性存在較大局限性的問題。
1.2.1 傳統的特征匹配法
傳統的特征匹配法是通過特征描述子之間的漢明距離建立兩幀相鄰圖像中特征點的對應關系。用V1和V2分別代表第k-1幀和第k幀圖像的特征描述子,D(V1,V2)表示它們之間的漢明距離,若D(V1,V2)的值越小,表示2個特征點越相似,D(V1,V2)值最小的2個特征點匹配成功。對相鄰的兩幀圖像采用改進的ORB特征提取方法檢測特征點,傳統特征匹配法的匹配效果如圖1所示。

圖1 傳統特征匹配法匹配效果
1.2.2 改進的特征匹配法
從圖1可以看出:傳統的基于漢明距離特征匹配法對相鄰兩幀圖像進行特征點匹配時,容易出現大量誤匹配的問題。若在背景運動補償中求解全局運動參數時采用了錯誤的匹配點對,則會造成嚴重的誤差,從而對運動目標檢測的準確度產生影響。為提高特征點匹配的準確率,去除誤匹配點對,提出一種基于KNN匹配與對稱約束相結合的特征匹配改進算法。首先采用KNN算法進行粗略匹配,然后采用對稱約束的方法消除錯誤的匹配點對,匹配效果如圖2所示。

圖2 改進特征匹配法匹配效果
改進的特征匹配法具體步驟如下:
(1) 搜尋最近鄰和次近鄰特征點。采用改進的ORB特征提取方法檢測特征點并生成特征描述子,以特征向量的漢明距離作為度量。取第k-1幀圖像中的特征點p1,采用KNN算法在第k幀中尋找與特征點p1漢明距離最近特征點pa和次近特征點pb,將p1和pa、pb的漢明距離分別用D(p1,pa)和D(p1,pb)表示。
(2) 匹配特征點對。設定閾值r,當D(p1,pa)/D(p1,pb) (3) 采用對稱約束去除誤匹配。通過上述兩步可得到一組粗略的匹配點對。所謂對稱約束,即對于第k-1幀中的特征點pi,其在第k幀中的最佳匹配點為qi;反之,對于第k幀中的特征點qi,其在第k-1幀中的最佳匹配點也是pi。即引入反向匹配策略去除誤匹配對,得到最佳匹配集。 由于機器人運動會導致其裝載的攝像頭發生運動,所以機器人的視覺圖像會產生平移、旋轉和縮放等變換。因此,文中采用六參數仿射變換模型求解全局運動參數進行背景運動補償,其矩陣形式如下: (7) 采用特征點匹配對求解全局運動參數時,通常將前景目標中的特征點稱為外點,背景中的特征點稱為內點。外點的存在往往使參數求解出現很大的偏差,因此,文中提出了一種改進RANSAC的自適應外點濾除法,主要思想是通過計算特征點在相鄰兩幀圖像間運動矢量的方差調控迭代次數進行外點的消除,只通過背景點求解全局運動參數,提高背景補償的精度,為準確檢測運動目標做準備。 具體方法如下所示: (1) 計算初始仿射變換矩陣。將已完成匹配的特征點對作為初始的匹配點集,采用最小二乘法求得仿射變換模型的初始矩陣T1; (4) 濾除外點。整體離散數據相對均值的偏移程度通過方差?來描述,因此采用δabs(d-μ) (5) 獲得最優的仿射變換矩陣。由內點匹配點集,重新利用最小二乘法估算全局運動參數。通過n次迭代不斷消除外點以提高全局運動參數估算精度,當滿足迭代終止條件后,輸出最優的仿射變換矩陣T。 (8) 將差分圖像dk(x,y)進行閾值二值化處理: (9) δ=w0×w1×(μ0-μ1)2 (10) 尋找使類間方差δ值達到最大時的閾值作為差分圖像二值化的最佳分割閾值。 最后,將二值圖像bk(x,y)通過形態學處理的方法消除殘存的孤立噪點,獲得完整的運動目標。運動目標檢測算法的整體流程如圖3所示。 圖3 運動目標檢測算法流程Fig.3 Moving target detection algorithm flow 傳統的核相關濾波(Kernel Correlation Filter,KCF)算法是一種鑒別式目標跟蹤方法,通過視頻當前幀樣本訓練一個分類器,再采用訓練好的分類器在后續幀中預判目標的位置。在進行運動目標跟蹤任務時,由于傳統的KCF算法需要手動設置跟蹤窗口,并且當目標出現遮擋或丟失時容易出現跟蹤失敗的情況,因此提出一種通過Kalman濾波擴展的KCF運動目標跟蹤改進算法。首先采用文中改進的運動目標檢測算法檢測出運動目標并初始化KCF跟蹤窗口,解決傳統KCF算法手動初始化的問題;然后,當跟蹤目標出現遮擋或丟失時,采用Kalman濾波器預測目標位置,實現目標再次出現時繼續穩定跟蹤運動目標。改進KCF算法流程如圖4所示。 圖4 改進KCF算法流程Fig.4 The improved KCF algorithm flow 改進算法具體實現流程如下: (1) 讀取攝像機傳感器的視頻圖像序列; (2) 當攝像機視野中出現運動目標時,啟動目標檢測算法提取出運動目標的位置,并采用矩形框標記出來; (3) 通過目標的標記結果初始化KCF跟蹤器; (4) 根據KCF算法計算目標位置,同時初始化Kalman預測器并預測目標位置; (5) 判斷目標遮擋或丟失條件。利用巴氏系數計算跟蹤框內圖像的相似程度,若目標未被遮擋,在連續幀的跟蹤框內圖像的相似度較高;若目標被遮擋,相似度會大大降低。因為視頻相鄰兩幀間的差別較小,圖像相似度下降緩慢,無法準確判斷目標是否發生遮擋。綜合分析,采用相隔3幀的方法計算跟蹤框內圖像的相似度,如式(11)所示: (11) 其中:Hk-3和Hk分別為第k-3幀和第k幀的LBP特征向量;取第k-3幀到第k幀巴氏系數的平均值作為第k幀遮擋檢測閾值Ty。 (6) 若d(Hk-3,Hk)≤Ty,表示目標未被遮擋,則采用上一幀的跟蹤結果,更新KCF跟蹤器及Kalman預測器并繼續跟蹤運動目標,輸出其圖像坐標。 (7) 若d(Hk-3,Hk)>Ty,說明跟蹤目標出現遮擋或丟失的問題,此時利用Kalman預測器預測目標在下一幀圖像中可能出現的位置,并且根據Kalman預測位置更新KCF跟蹤器和Kalman預測器,同時輸出其圖像坐標。 (8) 判斷跟蹤是否結束,若沒有結束返回步驟(4)繼續跟蹤任務。 實驗硬件平臺為NAO機器人,如圖5所示。在機器人頭部有2個單目攝像機傳感器,其中一個位于額頭處,用于采集周圍遠景的視覺信息;另一個位于下頜處,用于采集近景信息,2個攝像機不能同時啟用。文中選用機器人額頭處的單目攝像機并保證運動目標出現在視野內,調用NAOqi系統的ALVideoDevice視頻管理模塊,將實時視頻數據發送到遠程PC端進行處理。 圖5 NAO機器人平臺Fig.5 NAO robot platform 為驗證文中提出的基于改進ORB的背景補償運動目標檢測算法的有效性,分別設計了室內環境下單運動目標檢測實驗和室外環境下多運動目標檢測實驗。將文中改進算法分別與直接幀差法和基于傳統ORB的運動目標檢測算法進行對比,并對文中改進算法檢測結果采用矩形框進行標記。 實驗一:室內環境下單運動目標檢測。分別選取視頻序列中的第78、84、90幀原圖像,不同算法檢測結果對比如圖6所示。當機器人運動時,導致獲得的視頻背景也會隨之發生運動,此時采用直接幀差法檢測視覺中的運動目標,容易將背景誤檢為前景,不適用于機器人運動背景下的目標檢測。采用傳統ORB方法進行背景補償檢測運動目標,由于其在特征提取與匹配階段檢測到的特征點分布不均勻以及存在大量誤匹配的問題,導致求解全局運動參數時存在較大誤差,檢測運動目標時容易將背景像素點誤判為前景,并且得到的目標“空洞”現象明顯。文中改進的運動目標檢測算法能夠精確地進行背景運動補償,有效克服了機器人運動時導致背景移動的問題,檢測到的運動目標輪廓清晰、完整度高。 圖6 第78、 84、90幀單目標檢測結果對比 實驗二:室外環境下多運動目標檢測。選取第135、160、185幀原圖像,不同算法檢測結果對比如圖7所示。直接幀差法將背景和前景運動目標同時檢測出來,導致檢測到的目標圖像受背景噪聲影響。利用傳統ORB方法進行背景補償檢測運動目標時,檢測到的運動目標完整度低,并且目標輪廓嚴重缺失,檢測結果中依然存在背景噪聲干擾。文中改進算法幾乎完全消除背景運動的干擾,能夠更加清晰地檢測出目標,對多個運動目標也有較理想的檢測效果。 圖7 第135、160、185幀多目標檢測結果 表1和表2分別表示實驗一與實驗二采用不同匹配算法進行特征匹配的結果。表3是3種算法分別對單運動目標和多運動目標平均單幀檢測耗時的比較情況。從表1和表2可以看出:傳統ORB方法只采用基于漢明距離的特征匹配方法容易產生大量的誤匹配對,匹配正確率較低,導致估計全局運動參數時出現較大誤差,影響運動目標檢測效果;文中改進ORB方法采用基于KNN匹配與對稱約束相結合的特征匹配方法,匹配正確率有明顯提升,能夠準確地進行背景補償,提高目標檢測的準確度。從表3中可以看出:直接幀差法單幀檢測時間最短,但檢測存在嚴重背景噪聲干擾;文中改進方法因引入了對稱約束和外點濾除方法,影響了算法運行效率,雖然相較于傳統ORB方法單幀檢測時間有所增加,但在提高目標檢測完整度的同時仍能滿足實時處理的需求。 表1 實驗一不同算法平均單幀匹配對數目對比 表2 實驗二不同算法平均單幀匹配對數目對比 表3 3種算法平均單幀檢測耗時對比 單位:ms 為驗證改進的KCF運動目標跟蹤算法的有效性,設計目標存在遮擋干擾的實驗場景,并將改進算法與傳統KCF算法進行對比。圖8和圖9分別選取視頻序列中的第124、142、160、178、185、196幀作為對比幀。傳統KCF算法的跟蹤效果如圖8所示,當目標被遮擋時,跟蹤窗口停留在遮擋區域,在目標受遮擋重新出現在機器人視野中后,傳統KCF算法無法繼續跟蹤目標,導致跟蹤失敗。 改進KCF算法的跟蹤效果如圖9所示,當目標出現遮擋情況時,啟用Kalman預測器預測目標位置,使跟蹤窗口能夠繼續跟蹤運動目標,同時利用預測結果更新KCF跟蹤器,實現目標重新出現時繼續對目標穩定跟蹤。 圖9 改進KCF算法跟蹤效果 圖10 目標跟蹤誤差 文中提出一種適用于機器人平臺動態場景下,基于精確背景補償的運動目標檢測與跟蹤方法。通過改進ORB算法有效提高了特征匹配正確率,從而獲得最優的全局運動參數,提高背景補償的精度;同時結合幀差法完成運動目標檢測,采用Kalman濾波擴展的KCF算法對目標進行跟蹤。以NAO機器人為研究平臺設計了3組實驗對算法性能進行驗證,可以看出文中改進方法能夠快速準確地檢測出運動目標,有效解決了傳統ORB算法以及直接幀差法對動態場景下運動目標檢測準確率低的問題,并實現了目標在遮擋干擾情況下的穩定跟蹤。2 基于改進ORB算法的運動目標檢測
2.1 全局運動參數估計

2.2 自適應外點濾除法

2.3 運動目標提取




3 基于Kalman濾波擴展的KCF運動目標跟蹤算法

4 實驗設計與分析
4.1 實驗操作平臺

4.2 運動目標檢測實驗設計與分析





4.3 運動目標跟蹤實驗設計與分析



5 結論