程姜榮 宋芳
摘 ?要: 視覺跟隨是機器人領(lǐng)域中一個比較重要的部分,可以應(yīng)用在倉儲搬運、安防、軍事等多種領(lǐng)域。由于傳統(tǒng)算法存在當背景比較復(fù)雜的情況下無法有效跟蹤目標、對跟蹤目標和外部環(huán)境的分辨率要求高所以只能進行輔助跟蹤、計算量大無法滿足實時性要求等問題。本文采用KCF算法設(shè)計,設(shè)計了基于ROS的移動機器人視覺跟隨系統(tǒng),利用循環(huán)矩陣在傅里葉空間可對角化的性質(zhì),從而使得矩陣運算被轉(zhuǎn)化成元素的點乘,減少了計算量從而提高了運算速度,滿足了算法的實時性要求。經(jīng)過實驗和數(shù)據(jù)分析,本移動機器人可以實時有效的跟隨指定目標實現(xiàn)視覺跟隨功能。
關(guān)鍵詞:?ROS;視覺跟隨;KCF算法;移動機器人
中圖分類號: TP399????文獻標識碼:?A????DOI:10.3969/j.issn.1003-6970.2020.02.005
本文著錄格式:程姜榮,宋芳. 基于ROS的移動機器人視覺跟隨系統(tǒng)設(shè)計[J]. 軟件,2020,41(02):23-27+43
【Abstract】: Visual following is an important part in the field of robot, which can be used in many fields such as storage and transportation, security, military and so on. Because the traditional algorithm can not track the target effectively when the background is complex, the resolution of the target and the external environment is high, so it can only do auxiliary tracking, and the computation is too large to meet the real-time requirement. In this paper, a ROS-based mobile robot visual following system is designed by using KCF Algorithm, which makes use of the property that circulant matrix can be diagonalized in Fourier space, so that the matrix operation can be transformed into the dot product of elements the computation is reduced and the computation speed is increased, which can meet the real-time requirement of the algorithm. Through experiments and data analysis, the mobile robot can follow the specified target effectively in real-time to achieve visual follow function.
【Key words】: ROS; Visual following; KCF algorithm; Mobile robot
0??引言
由于互聯(lián)網(wǎng)和人工智能的飛速發(fā)展推動了機器人技術(shù)的高速發(fā)展[1]。機器人視覺跟隨技術(shù)作為應(yīng)用非常廣泛且實用的關(guān)鍵技術(shù)越來越受到重視[2]。機器人在不斷的對我們的生活方式產(chǎn)生影響,視覺跟蹤機器人模仿了生物行為,使機器人可以通過傳感器獲取外界信息通過計算做出相應(yīng)的判斷使得機器人更加智能化,使得機器人可以處理更加復(fù)雜的問題,比如醫(yī)療機器人、安防機器人、智能倉儲物
流機器人等,可以帶來更多的方便。
視覺跟隨機器人可以采用各種跟蹤算法,一般采用的跟蹤算法有以下幾種,首先是基于區(qū)域的跟蹤算法,這種算法是根據(jù)在圖像中運動的物體所引發(fā)的背景變化對物體進行跟蹤,這種算法存在的問題是如果當背景比較復(fù)雜的情況下無法滿足跟蹤的要求[3]。然后是基于跟蹤目標的外部輪廓進行跟蹤的算法,這種算法需要對跟蹤的目標進行邊緣檢測和圖像分割等處理后提取出被跟蹤目標的外部輪廓,根據(jù)被跟蹤目標物體的外部輪廓進行跟蹤[4]。而且該輪廓跟隨物體本身變化進行更新,這種算法相對基于區(qū)域的跟蹤算法減少了計算量[5],但是對跟蹤目標和外部環(huán)境的分辨率要求高,所以在實際的應(yīng)用中只能作為一種輔助的跟蹤算法。此外,還有基于跟蹤目標所建立的模型進行跟蹤的算法[6],這種算法首先對跟蹤目標建立模型,模型的建立是通過對圖像中的數(shù)據(jù)信息在訓(xùn)練階段學(xué)習(xí)后得到的,在建立好跟蹤目標的模型以后通過匹配的方式實現(xiàn)跟蹤,但是由于在圖像的不斷變化與更新過程中需要實時更新[7],導(dǎo)致計算量很大所以無法滿足移動機器人跟蹤目標的實時性需求。
本文設(shè)計的移動機器人視覺跟隨系統(tǒng)采用了KCF算法[8],對目標跟隨的正負樣本進行處理。該算法對目標周圍的區(qū)域采用循環(huán)矩陣去采集,目標檢測器的訓(xùn)練采用脊回歸,由于在傅里葉空間可對循環(huán)矩陣進行對角化,從而使得矩陣運算被轉(zhuǎn)化成元素的點乘[9],大大減少計算量,從而提高運算速度,可滿足實時性要求。在系統(tǒng)軟件實現(xiàn)方面,本文采用ROS操作系統(tǒng)開發(fā)移動機器人。ROS操作系統(tǒng)可對底層設(shè)備的控制和硬件進行抽象化處理,同時由于各種開發(fā)中通用的功能被制作成獨立的功能包模塊,因此在開發(fā)機器人的過程中可以根據(jù)需要對各個模塊進行獨立開發(fā),不但縮短了開發(fā)周期而且也方便開發(fā)人員對各個模塊進行維護升級[10]。在數(shù)據(jù)采集方面,本文采用Kinect攝像頭,對外部環(huán)境進行數(shù)據(jù)采集。Kinect作為一款深度攝像頭不但價格便宜而且可以在一定范圍內(nèi)獲得比較準確的數(shù)據(jù),甚至可以替代激光雷達和超聲波測距[11]。利用采集到數(shù)據(jù),采用KCF算法,經(jīng)過Raspberry Pi 3B+嵌入式計算機處理,實現(xiàn)移動機器人目標跟隨功能。
1??移動機器人系統(tǒng)
1.1??移動機器人硬件平臺
對于移動機器人硬件系統(tǒng)的設(shè)計,分為基于STM32F103底層控制系統(tǒng)、上層嵌入式計算系統(tǒng)Raspberry Pi 3B+和遠程的筆記本電腦,保證上層嵌入式系統(tǒng)和遠程筆記本在同一個局域網(wǎng)中,三者相互通信配合實現(xiàn)目標跟隨功能。其中底層的底盤控制系統(tǒng)主要組成部分有STM32、IMU 、電機、編碼器等,移動機器人左右輪的移動速度是通過編碼器來測量,IMU模塊主要作用是采集移動機器人在三維空間當中移動的姿態(tài)、方向和加速度等信息,通過STM32進行PID 控制[12],實現(xiàn)移動器人的精準移動。移動機器人實物圖如圖1所示。
上層的嵌入式計算系統(tǒng),主要由Raspberry Pi 3+、Kinect 深度攝像頭組成,Raspberry Pi 3+ 搭載主頻為?1.4GHz、內(nèi)含ARM Cortex-A53核心的處理器,配備1G內(nèi)存和多種外設(shè),通過上層嵌入式計算系統(tǒng)完成外界視頻信息獲取、圖像處理、數(shù)據(jù)處理、運動決策實現(xiàn)視覺跟隨算法、根據(jù)獲取信息發(fā)送跟隨指令,遠程的筆記電腦主要作用是可以實現(xiàn)移動機器人遠程控制與監(jiān)測[13]。根據(jù)需求設(shè)計出的硬件整體設(shè)計結(jié)構(gòu)如圖2所示。
1.2??移動機器人軟件系統(tǒng)
ROS作為開源的機器人操作系統(tǒng),可以實現(xiàn)跨越各種機器人平臺的分布式網(wǎng)絡(luò),從而簡化了復(fù)雜的任務(wù)[14],降低了機器人開發(fā)的周期和難度。根據(jù)設(shè)計需要,由于Kinetic版本的ROS操作系統(tǒng)支持的Ubuntu16.04,所以上層嵌入式計算系統(tǒng)安裝了UbuntuMate16.04,遠程的筆記本電腦安裝了Ubuntu16.04。在安裝過ROS后,ROS系統(tǒng)框架創(chuàng)建了一個連接所有進程的網(wǎng)絡(luò)。本文首先根據(jù)移動機器人視覺跟隨功能的具體要求,根據(jù)硬件平臺特點,設(shè)計出移動機器人視覺跟隨系統(tǒng)節(jié)點框圖,如圖3所示。
ROS是一個基于集中式拓撲的圖結(jié)構(gòu),可以處理每個節(jié)點與其他節(jié)點之間的通信問題。在ROS系統(tǒng)中的每一個節(jié)點都相當于一個進程,Kinect攝像頭主要作用是讀取外部視頻信息可以獨立的作為一個節(jié)點。移動機器人的底盤作為一個運動執(zhí)行器,可根據(jù)系統(tǒng)經(jīng)過處理的數(shù)據(jù),發(fā)布消息控制底盤運動,所以也可以作為一個獨立的節(jié)點進行開發(fā)。運行在環(huán)境中的KCF視覺算法作為視覺跟蹤節(jié)點,每一個節(jié)點可以分開獨立的設(shè)計,大大降低了開發(fā)難度。不同的節(jié)點之間可以根據(jù)需要采用不同的通信方式,其中最常用的通信方式有兩種,單向消息發(fā)送和接收方式的話題(topic)通信和雙向消息請求和響應(yīng)方式的服務(wù)(service)通信。
2??基于KCF算法的視覺跟隨系統(tǒng)
2.1??KCF算法的原理
KCF算法是一種通過鑒別進行跟蹤的算法,一般需要在跟蹤過程中訓(xùn)練出一個對目標進行分類的檢測器,對于需要追蹤的目標通過目標分類檢測器進行判斷,目標分類檢測器的更新是使用新檢測結(jié)果去更新訓(xùn)練集而得到的[15]。首先選取需要跟蹤的目標區(qū)域為正樣本,使用目標分類檢測器進行訓(xùn)練,然后把跟蹤目標周圍的區(qū)域作為負樣本,在越靠近目標的區(qū)域的時候為正樣本的可能性就越大,目標和背景的區(qū)分是通過訓(xùn)練目標檢測器得到的,從而可以得到目標位 ?置[16]。
(1)循環(huán)矩陣
一般采用稀疏采樣的方式的傳統(tǒng)檢測目標跟蹤算法會導(dǎo)致樣本之間存在冗余,使用KCF 算法可以有效避免這種問題,對于樣本的構(gòu)造是在對跟蹤目標區(qū)域附近采用循環(huán)矩陣[17]進行循環(huán)位移操作。
2.2??視覺跟隨實現(xiàn)
由于Kinect攝像頭的RGB圖像大小為像素。本文把RGB圖像的中心橫坐標320作為定值。負反饋與輸出值可以選取目標框的中心橫坐標值,從而可以形成閉環(huán)控制回路,然后將得到的給定值與反饋值的差值經(jīng)過PD控制后作為旋轉(zhuǎn)角速度,通過訂閱移動機器人的速度話題獲取速度信息,可實現(xiàn)移動機器人左右轉(zhuǎn)向控制。為了實現(xiàn)對移動機器人前后運動的控制,首先需要提前設(shè)定一個固定值,讓移動機器人和被跟蹤的目標之間保持這個值,(本文設(shè)定這個固定值為1?m)。為了得到跟蹤目標和移動機器人之間實時的距離信息,需要訂閱深度圖話題上的深度信息,在深度圖中選取與它所對應(yīng)的RGB圖中目標框的中心點為中心坐標,選取中心點為坐標點的
區(qū)范圍內(nèi)的25個像素,并求出他們的中值。將該值作為跟蹤目標與移動機器人之間的測量距離,將測量值與設(shè)定值的差值經(jīng)過PI控制后,作為移動機器人前后移動的直線速度,最后將直線速度信息發(fā)布出來,通過訂閱速度話題來控制機器人前后移動。具體的流程如下:
第一步:首先在系統(tǒng)中訂閱Kinect攝像頭發(fā)布的RGB圖像話題,當筆記本屏幕上出現(xiàn)實時的彩色視頻,然后拖動鼠標選擇需要跟蹤的目標用矩形框包圍,把選中的矩形框的坐標信息與RGB圖像信息發(fā)送給目標跟蹤算法進行初始化。
第二步:對于接收到的RGB圖像信息采用目標跟蹤算法進行迭代更新,為了后面步驟的進行,需要一個話題將深度圖的深度信息和RGB圖像的目標框坐標信息和發(fā)布出來。對以后的每一幀RGB圖像重復(fù)執(zhí)行第二步中的操作。
第三步:為了控制移動機器人的左右轉(zhuǎn)動,需要訂閱第二步中發(fā)布的話題,在第二步發(fā)布的話題中可以獲取到RGB圖像和與它對應(yīng)的目標框的坐標信息,移動機器人在獲取到這個信息后控制角速度ω,發(fā)送角速度信息到底盤控制節(jié)點,控制底盤的左右移動,使移動機器人始終對正需要跟蹤的目標。
第四步:為了控制移動機器人的前后移動需要得到深度信息和與之對應(yīng)目標框的坐標信息,所以訂閱第二步中發(fā)布的話題,通過獲取的信息來控制移動機器人前后移動的直線移動速度v,保證移動機器人與跟蹤目標的安全距離,保持在1?m左右。
如圖4所示,在視頻中用矩形框選中目標后,根據(jù)彩色圖像中目標框的坐標信息可以控制移動機器人轉(zhuǎn)動,根據(jù)深度信息可以控制移動機器人的直線速度,從而可以有效跟蹤選中的目標,實現(xiàn)視覺跟隨功能。
3??移動機器人實驗
移動機器人跟隨系統(tǒng)由于相機水平視野小等存在一些難點,當跟蹤目標行走速度過快或者轉(zhuǎn)彎的時候會走出視野[22],從而導(dǎo)致跟蹤的失敗。為了對移動機器人視覺跟隨系統(tǒng)的效果進行驗證,設(shè)計了跟隨實驗,實驗示意圖如圖5所示。
在圖5中位置?1 是實驗所用的移動機器人,被跟蹤的人作為跟蹤目標從位置2出發(fā)在34m的區(qū)域內(nèi)以0.5m/s 的平均速度任意走動,實驗設(shè)定的跟蹤安全距離為1m。使用Kinect相機采集到的RGB圖像和深度圖像的信息,就可以啟動跟蹤節(jié)點,由KCF算法對獲取的信息進行處理后,發(fā)送控制指令到底盤節(jié)點從而實現(xiàn)對實驗中的人物的跟蹤,實驗場景圖如圖6所示。
采樣移動機器人和跟隨目標的位置信息,然后計算跟隨目標與移動機器人運動軌跡和跟隨誤差[23],通過數(shù)據(jù)分析得出,本課題設(shè)計的移動機器人跟隨誤差在x方向可以控制在17?cm以內(nèi),在y方向可以控制在11?cm以內(nèi)。x方向跟隨誤差如圖7所示,y方向跟隨誤差如圖8所示。
4??結(jié)論
本文通過搭建的基于ROS的移動機器人平臺,采用KCF跟蹤算法進行視覺跟隨實驗,記錄實驗現(xiàn)場的移動機器人和被跟蹤人的位置信息,通過計算被跟蹤人與移動機器人的運動軌跡誤差后,經(jīng)過實驗分析得出本移動機器人跟隨誤差在x方向可以控制在17?cm以內(nèi),在y方向可以控制在11?cm以內(nèi),實驗證明本移動機器人視覺跟隨系統(tǒng)可以準確快速跟隨選中目標達到預(yù)期目標。雖然移動機器人跟隨系統(tǒng)可以成功跟隨目標,但由于ROS機器人操作系統(tǒng)本身也存在一些問題,列如上層嵌入式計算系統(tǒng)和筆記本電腦需要在同一個局域網(wǎng)下,這是ROS機器人操作系統(tǒng)的局限性,所以還有改進的空間。
參考文獻
牟思. 淺談物聯(lián)網(wǎng)的關(guān)鍵技術(shù)及計算機物聯(lián)網(wǎng)的應(yīng)用[J]. 軟件, 2018, 39(6): 189-191.
柴婷婷, 丁言露. 機器人仿真及其自動化研究進展[J]. 制造業(yè)自動化, 2011, 33(12): 87-89.
史心雨. 基于興趣點和形狀特征的動作識別[D]. 南京理工大學(xué), 2011.
陶飛. 基于稀疏表示的視頻目標跟蹤算法研究[D]. 湖南大學(xué), 2014.
蔡雄峰, 艾麗華, 丁丁. 一種緩解協(xié)同過濾算法數(shù)據(jù)稀疏性的方法[J]. 軟件, 2015, 36(3): 41-47.
朱文青, 劉艷, 卞樂, 等. 基于生成式模型的目標跟蹤方法綜述[J]. 微處理機, 2017, 38(1) : 41-47.
胡雨豪, 劉波. 基于機器視覺的四軸飛行器自主巡航算法改進[J]. 軟件, 2018, 39(2): 52-56.
Henriques J F, Rui C, Martins P, et al. High-SpeedTracking with Kernelized Correlation Filters [J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2015, 37(37)3): 583-596.
謝濤, 吳恩斯. 一種魯棒的基于集成學(xué)習(xí)的核相關(guān)紅外目標跟蹤算法[J]. 電子與信息學(xué)報, 2018, 40(03): 602-609.
何洋. 基于最大熵多移動機器人氣味源定位[D]. 杭州電子科技大學(xué), 2015.
賀超, 劉華平, 孫富春, 等. 采用kinect的移動機器人目標跟隨與避障[J]. 智能系統(tǒng)學(xué)報, 2013, 8(5): 426-432.
胡安琪. PID 控制在地面輪式機器人中的運用?[J]. ?河北電力技術(shù), 2018, 37(05): 62-66.
岳立言, 歐陽昇, 翟寶蓉. 嵌入式Linux遠程監(jiān)控系統(tǒng)的設(shè)計與開發(fā)[J]. 軟件, 2018, 39(6): 20-22.
黃武陵. 基于ROS構(gòu)建無人駕駛車輛環(huán)境感知系統(tǒng)[J]. 單片機與嵌入式系統(tǒng)應(yīng)用, 2016, 16(11): 5-9.
張禮雄, 張忠林. 視頻中多目標車輛的檢測與跟蹤方法研究[J]. 計算機技術(shù)與發(fā)展, 2018, 28(07): 125-129.
宗偉偉. 基于PTZ攝像機的運動目標跟蹤算法研究與實現(xiàn)[D]. 東北大學(xué), 2011.
邵博, 熊惠霖, 郁文賢. 基于核相關(guān)濾波器的無人機目標跟蹤算法[J]. 信息技術(shù), 2017(11): 150-156.
余禮楊, 范春曉, 明悅. 改進的核相關(guān)濾波器目標跟蹤算法[J]. 計算機應(yīng)用, 2015, 35(12): 3550-3554.
楊德東, 蔡玉柱, 毛寧, 楊福才. 采用核相關(guān)濾波器的長期目標跟蹤[J]. 光學(xué)精密工程, 2016, 24(08): 2037-2049.
常芳, 尚振宏, 劉輝, 李潤鑫. 一種基于顏色特征的自適應(yīng)目標跟蹤算法[J]. 信息技術(shù), 2018(03): 10-14.
楊德東, 蔡玉柱, 毛寧, 楊福才. 采用核相關(guān)濾波器的長期目標跟蹤[J]. 光學(xué)精密工程, 2016, 24(08): 2037-2049.
姜雪原. 基于動態(tài)規(guī)劃算法的軌跡地圖匹配軟件設(shè)計與實現(xiàn)[J]. 軟件, 2015, 36(5): 108-112.
李慧霞, 高梓豪. 室內(nèi)智能移動機器人規(guī)則物體識別與抓取[J]. 軟件, 2016, 37(02): 89-92.