繆文南,周 政,陳雪嬌,曹鬧昌
(華南理工大學(xué)廣州學(xué)院電子信息工程學(xué)院,廣州 510800)
自主移動機器人是集環(huán)境感知、路徑規(guī)劃、智能控制等多功能于一體的綜合控制系統(tǒng),可輔助或代替人在復(fù)雜地形條件下完成既定任務(wù)[1]。在未知的環(huán)境下,機器人利用自身靈活的機械結(jié)構(gòu)和視覺傳感器,獲取環(huán)境信息同時,識別動靜態(tài)物體并快速躲避或跟蹤物體,廣泛應(yīng)用于安防、無人駕駛、危險區(qū)域、軍事國防等場景中[2-3]。
考慮應(yīng)用的環(huán)境比較好,如社區(qū)、工廠、學(xué)校等,機器人采用全向輪輪式結(jié)構(gòu)。為了使輪式機器人在運動過程中更加快速和靈活,底盤結(jié)構(gòu)按照軸心120°進行設(shè)計。但移動機器人設(shè)計方面仍然存在兩大難題[4]:第一,在規(guī)劃固定的路線上行駛時,一旦出現(xiàn)區(qū)域狹窄、地面復(fù)雜情況下,將導(dǎo)致機器人的運行速度下降甚至出現(xiàn)不能運行情況[5]。第二,移動機器人的跟蹤檢測裝置一般通過固定支架攝像頭進行錄制或者拍攝,攝像頭圍繞固定點進行移動,視野受限,當目標在快速移動、被遮擋時,容易造成目標丟失。為解決上述兩個問題,首先研究了機器人硬件結(jié)構(gòu)和三軸全向輪的運動學(xué)模型并進行了優(yōu)化,使它具有全姿態(tài)、機動性強、穩(wěn)定性高等特點[6]。其次移動機器人安裝云臺,在云臺上搭載攝像頭,讓監(jiān)控及識別攝像頭全方位、360°旋轉(zhuǎn)起來。
準確的目標跟蹤除了有良好的機械機構(gòu),還需要搭載良好的視覺跟蹤算法,因此要求視覺跟蹤算法必須滿足實時性、跟蹤失效后可恢復(fù)跟蹤、精準度三點要求[7]。目前有許多成熟的視覺跟蹤算法,如TLD算法[8]、KCF算法[9]、DSST算法[10]等。TLD算法具有長時間跟蹤、目標丟失可恢復(fù)等特點,但是該算法計算復(fù)雜,實時性較低等問題[11-13]。KCF算法的實時性和跟蹤精準度較高,但是在復(fù)雜背景下,跟蹤目標容易丟失,在長時間跟蹤方面仍然是一個瓶頸[14]。
本文結(jié)合全向輪運動模型、圖像識別、無線通信等技術(shù),對全向輪移動機器人的視覺目標跟蹤進行了研究。針對機器人結(jié)構(gòu)及運動特點,視覺跟蹤算法在TLD框架下使用KCF算法代替TLD算法的跟蹤器,并在跟蹤瞄準過程中采用HOG特征和CN顏色特征的算法,有效解決復(fù)雜背景和快速移動時跟蹤較差的問題。
系統(tǒng)總體方案如圖1所示,由上位機PC機和下位機機器人兩大部分組成。PC機利用USB接口分別接了5.8G的圖傳模塊和2.4G無線模塊,與機器人通信。機器人的攝像頭實時采集圖像信息,通過5.8G無線圖傳模塊發(fā)送給PC機,手動框線目標后,PC機通過機器視覺智能跟蹤算法計算目標位置,將實時的目標位置使用2.4G的無線模塊傳送給機器人,機器人通過串口接收到2.4G無線模塊信息后分析處理,生成指令驅(qū)動三軸全向輪機器人移動至目標適合距離和調(diào)整云臺俯仰角和偏向角的角度,實現(xiàn)目標自動跟蹤。當目標進入瞄準區(qū)域時,STM32微處理器發(fā)送命令給射擊裝置進行目標精準射擊。
圖1 系統(tǒng)總體方案
機器人實體結(jié)構(gòu)如圖2所示,下位機機器人硬件包含主控系統(tǒng)、動力系統(tǒng)、圖像識別模塊、電池及電源管理模塊、射擊裝置等。
圖2 機器人機械結(jié)構(gòu)框圖
主控系統(tǒng)采用STM32F103芯片;動力系統(tǒng)包含電機驅(qū)動電路和編碼器的減速電機,電機驅(qū)動電路采用A4950芯片,編碼器的減速電機的型號為JGB37-520B;圖像識別模塊包含攝像頭和圖傳設(shè)備。兩軸機械云臺由KS3518和KS3527兩種扭力較大的舵機組合而成??紤]到攝像頭小型化、輕量化、供電便捷特點,云臺搭載的高清攝像頭選用Run-Cam Eagle 2 Pro型號。圖傳設(shè)備發(fā)射器選用熊貓5.8G的PandaRC VT5804M V2 Pro型號。
機器人采用三軸全向輪式架構(gòu),由三個輪軸對底盤產(chǎn)生合力驅(qū)動機器人運動,底盤架構(gòu)按照軸心120°進行設(shè)計,全向輪由帶編碼器的減速電機驅(qū)動,底盤上安裝角度傳感器以便檢測機器人移動角度信息。機器人運動學(xué)模型[15-16]如圖3所示,建立地理坐標系(X,Y)和機器人自身的坐標系為(Xe,Ye),地理坐標與機器人坐標系的夾角為θ。機器人的坐標系的原點為機器人底盤的質(zhì)心上,與機器人三軸全向輪軸心交匯處,車輪中心到車體中心的距離為r,速度使用vxe和vye表示,其中三個全向輪的速度分別為V1、V2、V3,ω為底盤的旋轉(zhuǎn)角速度,δ為行走方向偏移量。則全向輪的速度在機器人坐標系和地理坐標系下的速度分量的關(guān)系分別為式(1)、式(2):
(1)
(2)
圖3 機器人運動學(xué)模型
機器人的云臺搭載了攝像頭和射擊裝置,當機器人移動時,攝像頭視野的方向并非移動的方向,往往造成視野的盲區(qū)。攝像頭目標跟蹤時,機器人移動容易導(dǎo)致目標移出視野,造成目標跟丟情況。于是在全局坐標系(X,Y)和機器人自身的坐標系為(Xe,Ye)基礎(chǔ)上增加云臺坐標系為(Xt,Yt),實現(xiàn)機器人移動與云臺轉(zhuǎn)向聯(lián)動,使得攝像頭(即射擊裝置方向)的指向為機器人前進的方向,云臺在轉(zhuǎn)向過程中,機器人的前進方向也隨之改變。在目標靜止或移動過程中,機器人結(jié)合云臺實現(xiàn)實時跟蹤,在鎖定目標后可實現(xiàn)靜止射擊。云臺坐標系為(Xt,Yt)與機器人坐標系(Xe,Ye)夾角為β,改進后的全向輪的速度在機器人坐標系和地理坐標系下的速度分量的關(guān)系分別為式(3)和式(4):
(3)
(4)
TLD算法由Zdenek Kalal提出的一種新的單目標長時間跟蹤算法[17]。主要包括跟蹤模塊、檢測模塊和學(xué)習(xí)模塊。TLD算法結(jié)合跟蹤模塊和檢測模塊解決目標在跟蹤過程發(fā)生形變、被遮擋、移出視野等情況下無法重新捕獲目標等問題。同時該算法參考了在線學(xué)習(xí)機制,檢測模塊避免時間累積導(dǎo)致跟蹤模塊產(chǎn)生誤差,不斷糾正跟蹤模塊。但是在一些復(fù)雜的場景中,TLD算法仍然無法解決長時間跟蹤致使跟蹤模塊中的數(shù)據(jù)誤差逐漸增大,所以當目標完全被遮擋或者消失視野時,則不可避免地出現(xiàn)跟蹤失效。
KCF目標跟蹤算法是一種鑒別效果比較好的追蹤方法[18]。在目標跟蹤過程中,KCF算法將每一幀的訓(xùn)練樣本進行循環(huán)移位,獲取圖像的響應(yīng)圖,構(gòu)建復(fù)雜的循環(huán)結(jié)構(gòu)矩陣訓(xùn)練樣本,對于矩陣樣本根據(jù)距離目標區(qū)樣本xi建立所對應(yīng)的標簽值yi,所獲得的的標簽值對于圖像目標的距離服從高斯分布。KCF算法采用高斯label函數(shù),多項式核可以進一步利用循環(huán)矩陣計算核函數(shù)的循環(huán)矩陣,提高HOG特征在目標跟蹤過程中的穩(wěn)定型,核循環(huán)矩陣函數(shù)如下:
(5)
其中,k為核空間的核矩陣,kxx′表示k循環(huán)矩陣第一行元素的傅里葉變換。KCF算法利用循環(huán)矩陣的特征選取和多通道特征核進行傅里葉變換對角化,避免矩陣求逆操作,大大降低了訓(xùn)練樣本的時間和計算的復(fù)雜度,提高了跟蹤速度。但是KCF函數(shù)由于只采用了HOG多通道特征,跟蹤器在跟蹤過程中目標框漂移時,不能重啟檢查模塊,于是目標在遮擋或者快速移動時,容易導(dǎo)致目標跟蹤失敗。
本文算法提出基于TLD框架下KCF算法替換中直流跟蹤器,利用KCF算法的多通道特征融入HOG特征和CN顏色特征,如圖4所示。本文算法兼有TLD和KCF兩種算法優(yōu)點,加入顏色特征信息,進一步提高視覺跟蹤算法的跟蹤性能,增強遮擋和目標丟失等情況的處理能力,雖然改進的算法思路較為簡單,但是跟蹤效果明顯,既提高了目標跟蹤過程中的精度和成功率,又增強了機器人在長時間目標跟蹤過程中的魯棒性和適用性。
CN顏色特征類似RGB,是一種顏色空間,表示賦給某塊圖像區(qū)域的顏色標簽的概率,即向量P={P紅,P綠,P黃,P藍..........}。CN顏色特征對色彩變化比較敏感,因此對目標形變、運動模糊、移動過程中的跟蹤效果更好。利用KCF算法的多通道特征,讓HOG特征與CN顏色特征相互補充,提升模型在處理遮擋和目標丟失等情況的判別能力。假設(shè)HOG特征通道數(shù)c,CN顏色特征通道數(shù)為c′,則c+c′多個通道可生成向量X=[x1,x2,x3......xc+c′],式(5)可以變換為新的高斯核方程,如公式(6):
(6)
圖4 本文視覺跟蹤算法
本文算法為機器人提供準確的目標位置信息,使用機器視覺Opencv開源庫實現(xiàn),圖5為目標跟蹤坐標示意圖。目標框紅色框表示,框選的特征值框綠色框表示,圖像坐標中心瞄準區(qū)域藍色框表示。視覺導(dǎo)航具體流程如下:
(1)讀取攝像頭圖像信息。
(7)閃著光的是黃色的和綠色的瓦,在一抹云的細帶沒有鎖住那里透出了朱紅的廊柱,一樓一臺地連亙著,使人記起了若干年前帝王的豪華。(1936·《山的路》)
(2)用戶框選目標,獲取特征值框。
(3)將特征值框轉(zhuǎn)換成灰度圖,存放模版集中。
(4)讀取攝像頭下一幀圖像信息。
(5)對圖像使用改進的圖像識別跟蹤算法運算,啟動在線學(xué)習(xí)、樣本訓(xùn)練、檢測、更新、優(yōu)化、確定目標像素特征,同時檢測模版是否在新的圖像中。
(6)返回跟蹤框包圍框,計算跟蹤框重心坐標。
(7)判斷目標是否進入瞄準區(qū)域(設(shè)置瞄準區(qū)域像素大小3×3)。當各種目標在瞄準區(qū)域內(nèi),則可以執(zhí)行自動射擊命令。當目標在區(qū)域以外,機器人和攝像頭云臺運動,計算機器人與攝像頭云臺運動的距離、轉(zhuǎn)角和偏移量,計算公式如式(1)和式(2)。其中X為云臺在水平方向上的偏移量,Y為云臺在豎直方向上的偏移量,目標重心的圖像坐標(x,y)。x,y的正負號表示目標重心在圖像坐標的區(qū)域,當x>320表示目標重心的圖像坐標偏右,當x<240,表示目標重心的圖像坐標偏左,同理得當y<240,圖像坐標偏下,當y>240,圖像坐標偏上。由于圖像坐標采用的是int型為整數(shù)故對應(yīng)的圖像坐標為非亞像素級坐標。
(7)
(8)
圖5 目標跟蹤坐標示意圖
機器視覺目標跟蹤全向輪機器人通過結(jié)構(gòu)設(shè)計、安裝、軟硬件設(shè)計與改進調(diào)試后,進行完整的系統(tǒng)測試工作。為了驗證系統(tǒng)的完整性和有效性,主要對機器視覺跟蹤和機器人整體性能進行測試。
為了驗證算法的有效性,實驗硬件為:處理器Intel-i5,主頻1.6GHz,內(nèi)存8G,操作系統(tǒng)windows 10,軟件為OPENCV3.0,機器人拍攝視頻跟蹤框起始中心點為(320,240)。目標跟蹤算法TLD算法、KCF算法和本文算法在OTB100基準數(shù)據(jù)集進行對比實驗。涵蓋了目標形變(SV)、目標旋轉(zhuǎn)(PR)、目標遮擋(OCC)、光照影響(LR)、背景干擾(BC)、移出視野(OV)等6種情況。為了更直觀地對算法進行定性分析和定量分析,本文選取了6組具有代表性的視頻用于定量分析, 圖6為各組視頻序列實驗結(jié)果的部分截圖,紅色跟蹤框為TLD算法;黃色為KCF算法;綠色為本文算法。結(jié)果顯示,本文設(shè)計的算法對目標遮擋、光照影響、目標移出視野具有較強的魯棒性,TLD算法平均幀率24.56 fps,KCF算法平均幀率35.6 fps。本文的算法平均幀率32.22 fps,幀率較TLD算法高。同時視覺追蹤的成功率圖和精度圖通過MATLAB軟件進行分析比較,結(jié)果如圖7所示。結(jié)果顯示,本文算法的精度和成功率分別為91.5%和71.2%,明顯高于TLD算法和KCF算法。為此,本文算法的視覺跟蹤效果明顯,可較好實現(xiàn)本系統(tǒng)的設(shè)計目標。
(a) SV (b) PR(0°,45°,90°)
(c) OCC (d) LR
(e) BC (f) OV
(a)平均成功率對比圖 (b)平均精度圖7 OTB2013測試的成功率圖和精度圖
為驗證系統(tǒng)測試的準確性,機器人的云臺上安裝小型射擊裝置,在物體目標跟蹤過程中,調(diào)整云臺方向,將機器人移動到合適位置,瞄準后啟動水彈槍進行射擊,命中目標。本文設(shè)置目標靶(任意目標)靜態(tài)和動態(tài)兩種模式。
(1)靜態(tài)目標測試
靜態(tài)目標測試中,在較為復(fù)雜的環(huán)境的環(huán)形靶為目標靶(直徑為17 cm圓環(huán)),在上位機指定學(xué)習(xí)目標后,鎖定目標靶位置,下位機機器人和云臺自動調(diào)整位置,啟動射擊裝置,實行自動打靶并命中靶心,機器人靜態(tài)目標打靶測試效果圖如圖8所示。
系統(tǒng)攝像頭的中心坐標為(480,360),設(shè)定初始距離為2 m~5 m進行測試,為全面測試系統(tǒng)的跟蹤瞄準性能,測試結(jié)果如表1所示。
通過測試,控制機器人移動和云臺的轉(zhuǎn)向,系統(tǒng)能夠有效鎖定并瞄準目標目標,啟動射擊裝置命中目標,發(fā)現(xiàn)距離目標隨著距離增大,鎖定并瞄準的時間不斷增加,命中率也有所減弱。
圖8 機器人靜態(tài)目標瞄準射擊測試效果圖
表1 靜態(tài)目標瞄準測試結(jié)果
(2)動態(tài)目標測試
在動態(tài)目標測試中,選擇遙控車為移動目標,機器人鎖定移動目標后,跟隨著遙控車移動過程中,機器人不斷移動位置和調(diào)整云臺方向,保持適合的距離內(nèi)啟動射擊裝置命中目標,測試效果圖如9所示。
(a) 移動目標鎖定 (b) 移動目標形變
(c) 移動目標丟失 (d) 重新捕捉目標
遙控車在移動過程中,如圖9a所示,視頻跟蹤幀率在25~35幀/s之間,當目標出現(xiàn)形變、反轉(zhuǎn)時,如圖9b所示,本文算法通過在線機制不斷對目標進行樣本取樣學(xué)習(xí)目標特征,確定跟蹤目標。當目標出現(xiàn)丟失時,如圖9c所示,本文算法根據(jù)選取目標時保留的原始樣本的特征值在圖像信息內(nèi)搜索,重新捕捉移動目標,最終重新找回并瞄準了移動目標,如圖9d所示。因此,本文算法對機器人跟蹤瞄準移動目標具有較好的魯棒性和可持續(xù)性。
本文在TLD算法和KCF算法的基礎(chǔ)上,采用加入了HOG特征和CN特征視覺目標跟蹤算法,通過同OTB100測試標準及測試視頻序列組進行對比,其算法的精度和成功率明顯高于TLD算法和KCF算法。本文研究成果應(yīng)用于機器人目標跟蹤射擊,測試結(jié)果表明在復(fù)雜的環(huán)境中機器人仍然能夠持續(xù)、穩(wěn)定跟蹤動態(tài)目標。本文的研究成果算法可用于輪式機器人視覺目標跟蹤和輪式機械結(jié)構(gòu)設(shè)計等領(lǐng)域。