張新強,駱 輝,周國順
(大連東軟信息學院 智能與電子工程學院,大連 116023)
機器人技術涉及眾多領域的研究,目標跟蹤不僅是機器人技術研究領域熱點之一,也是實現移動機器人智能化的基礎.視覺目標跟蹤是一個非常有挑戰性的任務,因為處理好實際中各種復雜多變的場景是很困難的,特征選擇是影響目標跟蹤精度的重要因素[1].卷積神經網絡通過對輸入數據進行多層神經網絡的映射,從而得到有效的分層特征抽象表達[2],解決傳統目標跟蹤方法人工設計特征的難題,增強機器人對環境的理解和建模,實現移動機器人在各種場景中對目標的實時檢測與跟蹤[3-5].
本文利用深度學習框架,訓練對目標形變、視角、輕微遮擋及光照變化具有魯棒性的跟蹤模型,并根據實際應用要求進行調整,使其對特定類型的目標跟蹤更加準確[6-8],實現移動機器人在各種場景下有效地檢測并跟蹤目標,從而使其能高效協助其他機器人、自動化設備及相關人員完成對應復雜場景下的任務.
傳統的機器人系統開發通常著重于整體功能的設計,使機器人系統之間每個模塊的耦合能力很強,難以相互分離,極大地影響代碼的可復用性和可移植性及實際開發中部署的效率.
隨著機器人對代碼重用和模塊化的要求越來越高,使得很好地適應其要求的開源機器人操作系統ROS嶄露頭角,其由多個各自獨立的節點組成,并且各個節點之間可以通過發布/訂閱消息模型進行通信.
ROS 支持多種編譯語言協作實現功能,使用標準的TCP/IP 協議實現了系統內部各個節點之間的通信,接口可以將第三方組件認為是其操作系統的一部分,這些功能可滿足大部分研發人員的需求.如今ROS 的應用范圍已涵蓋機械臂抓取、導航機器人、人形機器人、移動機器人底盤、無人機器船、無人飛行器等高新技術領域[9,10].
TurtleBot 是一個基于ROS 機器人操作系統的低成本開源移動機器人,可在復雜環境下實現許多功能,充分地滿足大多數科研工作的研發需要.
Kinect 視覺深度傳感器將特定圖案的光投射到物體表面,然后用相機接收物體表面反射的結構光圖案的變形,從而測量物體與物體之間的距離.Kinect 能夠同時提供彩色信息和深度信息,因此非常適用于移動機器人跟蹤目標,且可以避免單一信息不足帶來的困擾[11].
傳統的目標跟蹤針對不同的樣本通過人工設計獲取樣本的特征,不僅需要專業的知識字段,而且實際應用中因為其特征缺乏泛化性,效果并不令人滿意.因此傳統的目標跟蹤算法實現的目標跟蹤準確度無法滿足移動機器人工程化應用的需求.
卷積神經網絡是近年發展起來,并在計算機視覺領域廣泛應用并已取得豐碩成果的高效識別方法,其能夠學習到原始輸入圖像的不同層次的特征抽象,對各種計算機視覺任務具有優良的學習能力和泛化能力,為實現移動機器人目標跟蹤的功能奠定基礎.
如圖1 所示,卷積神經網絡是一種前饋神經網絡結構,其主體通常是由卷積層和池化層組成的模塊級聯構成,然后通過全連接層或者分類器,對提取到的特征向量進行分類,輸出分類結果.其采用局部感知和參數共享的技術手段,降低卷積神經網絡中參數的規模,從而獲得針對不同檢測任務有更強魯棒性的網絡模型[1,12-14].
伴隨著近年深度學習技術的快速發展,許多大學和科研機構都推出了深度學習開發框架,推動了深度學習工程化應用的進程,極大地增強深度學習工作的可復用性及實際從事深度學習的研究人員在開發中部署的效率.與Torch7、Theano 和Pylearn2 等框架相比,Caffe 具有以下獨特的優勢:
(1)Caffe 內置Python 和Matlab 兩種外部接口,方便對實驗數據的后續分析.
(2)Caffe 有多個基本數據集的培訓配置文檔,包括快速培訓模型和完整培訓模型.
(3)Caffe 采用GPU 并行技術,增強代碼的執行效率,大大地縮短模型的訓練時間.
(4)Caffe 基于盡可能多的模塊化原則,這使得擴展新的數據格式、網絡層和丟失功能變得很容易.
使用能從數據中學習深層本質特征的卷積神經網絡,利用Caffe 深度學習框架對模型進行大規模數據訓練,從而獲得大量具有代表性的功能信息,以實現移動機器人目標跟蹤的功能[15].
眾多研究人員往往嘗試使用神經網絡以在線訓練的方式進行跟蹤,然而,神經網絡訓練是一個緩慢的過程,導致跟蹤速度非常慢,其中性能最好的跟蹤器在GPU 上以100 FPS 的速度運行[8].因此,這些使用在線訓練方式的跟蹤器不適用于需要以實時速度進行目標跟蹤的移動機器人上.
GOTURN(Generic Object Tracking Using Regression Networks)是基于回歸網絡的通用對象跟蹤算法,其能通過大量數據進行離線訓練,并采用單次回歸到目標對象位置的方法,成為第一個能夠以100 FPS 的速度跟蹤目標的深度學習跟蹤算法,對未見過的類別樣例進行魯棒性地跟蹤,對特定類別樣例的跟蹤效果更好.
GOTURN 的網絡結構是將跟蹤目標區域與搜索區域作為輸入,同時輸入至兩個卷積神經網絡中,再經過全連接層返回目標的位置,如圖2 所示.因其兩個卷積層配置和參數是相同的,故也稱為孿生神經網絡.

圖2 運動目標誤判效果
GOTURN 網路的卷積層是由Caffe Net 的前五層卷積層及池化層依次排列組成,其輸出被連接成完整的向量輸入到3 個有4096 個節點并完全連接的全連接層中,最后連接到擁有4 個節點的輸出層輸出矩形返回目標的運動位置,表示目標左上角和右下角的坐標.
如圖3 所示,假設在坐標系t-1 中,目標被標記為中心位置C(cx,cy),w為矩形框的寬度,h為矩形框的高度.然后在t時刻,取以C(cx,cy)為中心的圖像塊對坐標系t當前幀的要跟蹤的目標進行標定.剪裁出來的框大小為k1×w,k1×h,k1決定接受多少背景信息.

圖3 GOTURN 輸入輸出網絡
為了知道目標在當前幀中的位置,跟蹤首先基于上一幀的位置,找到待搜尋目標的區域,并確定目標在當前幀的近似位置.網絡的目的就是要回歸目標在當前搜索區域中的位置,在幀中選擇跟蹤器的搜索框,確定搜索字段后,留下搜索字段對應的圖像塊.
具體來說,從幀圖像中截取的搜索字段P以C'(cx,cy)為中心,即C作為目標的平均位置.假設C'=C,和前一幀框出來的區域是一樣的,搜索區域的大小為k×w,k2×h,w和h為上一幀目標標記矩形框的寬度和高度,k2為目標搜索半徑.事實上,讓k1=k2=2.只要目標沒有被遮擋或移動得太快,通常就會在搜索字段中找到并定位目標.對于快速移動的目標,k1,k2就需要增大.
本文設計的目標跟蹤模型在ILSVRC Challenge[16]及VOT Challenge[17]數據集上進行訓練和評估,如圖4和圖5 所示,它由美國斯坦福大學的李飛飛等所創立,包含近1400 萬的圖像幀.視頻的每一幀都注釋有遮擋、光照變化、運動、大小變化、機位移動等變化形式.本文改進目標跟蹤算法的訓練集由ILSVRC2017訓練集、驗證集和ALOV 訓練集組成,改進檢測模型的測試集在VOT2014 測試集上進行評估.

圖4 VOT challenge 數據集
深度卷積神經網絡需要海量的有標注數據進行訓練,從而使得訓練出的模型能從訓練圖像數據集中獲得較好的特征表達.當數據集數據不足時,深度卷積神經網絡訓練出的模型往往表現不佳.對于訓練樣本,現有的帶有真實標簽的數據集包含的視頻序列較少,為了使深度學習訓練出的模型針對不同的任務有更強的泛化能力,需要使用更大的數據集進行訓練.目前,改善這個問題的方法是數據集增強,即對已有數據進行處理,創建新數據對訓練集進行擴充.

圖5 ILSVRC challenge 數據集
創建新數據的方法是將輸入數據進行隨機平移或旋轉等操作擴充數據集,并且對標定的真實數據保持相同的變換.假設(cx,cy)和分別為變換前后的目標中心點坐標,通過預測其下一步移動位置來生成樣本,如式(1),式(2):

其中,橫縱向的位移量Δx和Δy服從Laplace 分布,其概率分布如式(3):

其中,μ為位置參數,b為尺度參數,其函數形式類似于雙指數分布,如圖6 所示.

圖6 橫縱向的位移量Δx 和Δy 服從Laplace 分布
μ決定函數中心位置,而b越小函數越陡,且中間區域面積越大,因此目標中心位置主要是小范圍的變動.通過交叉驗證,該實驗最終選取的分布參數如式(4):

利用以上方法,對訓練集中的圖像隨機切塊,然后將樣本做小批的梯度下降處理,以此保證跟蹤窗口必須至少包含目標的一半,并通過約束來防止目標窗口過度拉伸和變形.通過這個方法實現對訓練樣本的擴充,大大改善模型的泛化能力.
GOTURN 算法離線訓練網絡的過程如圖7 所示,將耗時的計算過程離線進行,使跟蹤時不需要進行在線更新,是算法速度足夠快的一個重要原因.由于能夠獲取到測試數據中任意時刻的信息,因此可以在測試數據上同時行前向和后向搜索以進行全局的優化.

圖7 GOTURN 離線訓練和目標跟蹤測試
為了更直觀地認識GOTURN 算法的跟蹤結果,用視頻序列對算法進行了測試.每個序列的屬性如表1所示.

表1 測試視頻序列分析
GOTURN 算法的視頻序列跟蹤結果如圖8 所示.通過實驗數據分析,GOTURN 算法具有良好的跟蹤能力,能在簡單的場景中實現目標跟蹤,對尺度變化、變形等具有較強的魯棒性.在跟蹤目標有類似的目時GOTURN 算法可能會導致跟蹤目標丟失而跟蹤其他對象.分析原因發現GOTURN 算法使用的數據集是一個分類數據集,其離線訓練的跟蹤模型更適合數據集中存在的類別的目標,對于不存在的類別其識別能力較差.因此可以利用離線海量數據集,根據某一場景,訓練專門跟蹤某一類別的跟蹤器,以充分利用GOTURN算法的優勢.分別更換數據集、損失函數,對GOTURN 的跟蹤結果進行嚴謹的實驗,如圖9 所示,隨著訓練視頻的增加,GOTURN 算法的泛化性能越好.因此,如果通過標記更多的視頻來增加訓練集的大小,則可以獲得進一步的收益.

圖8 GOTURN 算法的視頻序列跟蹤結果

圖9 泛化性能實驗
通過對大量標記圖像的訓練,跟蹤器可以跟蹤各種不同類型的物體;通過對視頻和圖像的訓練,跟蹤器學會在不同的條件下跟蹤各種對象類型.跟蹤器對背景運動、平面外旋轉、變形、光照變化和輕微遮擋保持不變,達到最大的性能.
本文系統采用Ubuntu14.04 操作系統、ROS 系統(版本為Indigo)、CPU 為Intel(R)Core(TM)i7-4720HQ CPU @ 2.60 GHz、內存為16 GB,在Caffe 深度學習框架的開發環境下編碼設計實現的.使用Caffe 深度學習框架實現目標檢測與跟蹤系統,并將其應用到移動機器人上,從而高效協助其他相關機器人、自動化設備及人員等完成對應復雜場景下的任務.
系統由各個功能程序的節點組成,使用ROS 系統中的主題方式來實現各個程序之間的互相通信.程序主要部分是獲取視覺信息節點、跟蹤節點、移動機器人目標跟蹤運行程序,傳輸圖像在ROS 中同樣是以消息格式進行,節點之間的通信狀態如圖10 所示.
對于目標跟隨來說,一個關鍵的問題是當被跟隨目標經過遮擋后再次出現在攝像頭畫面時,跟隨系統能再次檢測到它,并保持對該目標跟蹤.傳統的跟隨算法在運行時,目標容易受到外界環境,如光照或者目標形變等外界因素影響,導致跟隨失敗.
利用具備深度感知能力的Kinect 傳感器獲取跟蹤目標的視覺信息,并且以OpenCV 的CvBridge 庫為橋梁,將目標的視覺信息轉換為ROS 機器人操作系統可以使用的數據格式,使得GOTURN 算法離線訓練出的目標跟蹤模型,可應用于TurtleBot 移動機器人上,通過CvBridge 庫傳遞視覺信息的結構如圖11所示.
目標跟蹤程序通過獲取目標視覺信息模塊、測距模塊、目標跟蹤模塊3 種相互配合,獲取目標視覺信息模塊與測距模塊交互進行,獲取目標視覺信息模塊通過CvBridge 將Kinect 傳感器獲得的目標視覺信息由ROS 數據格式轉換為GOTURN 可用的數據格式,目標跟蹤模塊使跟蹤目標被出現在畫面中時,會被程序檢測到并對其進行跟隨,測距模塊保證了該目標被系統鎖定并始終保持對該目標的跟隨并使跟隨效果不易受到外界環境影響.
跟蹤目標時,機器人記錄目標物體的坐標,利用GOTURN 算法標定的跟蹤目標矩形框回歸輸出的目標左上角和右下角的坐標,使用控制基于ROS 的TurtleBot 機器人移動的geometry_msgs/Twist 消息,將圖像劃分為9 個區域,根據目標所在的區域調整機器人的位置和搜索區域,具體圖像分區情況如圖12 所示,由此控制移動機器人的移動.

圖10 目標跟蹤運行程序的節點通信狀態圖

圖11 ROS 中使用CvBridge 傳遞視覺信息

圖12 目標跟蹤時機器人的運動控制圖像分區圖
打開終端,對程序包內的所有文件進行編譯,當終端窗口顯示程序編譯已完成百分之百,并發現所有文件無異常,程序正常運行.執行系統功能操作,啟動跟蹤結點,跟蹤節點根據上一幀的位置,找到待搜尋目標的區域,并確定目標在當前幀的近似位置,根據搜索半徑在當前幀的待搜索區域找到并定位目標,如圖13所示.

圖13 TurtleBot 跟蹤目標
根據實際應用對目標跟蹤模型進行調整,使模型對特定類型的目標跟蹤更加準確,實現移動機器人在各種場景下有效地檢測并跟蹤目標,跟蹤實驗效果如圖14 所示.

圖14 TurtleBot 跟蹤目標
該系統中機器人信號實時傳輸,設備簡潔易于操作,ROS 系統下每個文件程序之間作為節點相互協作,各模塊功能可靠.
利用深度學習框架,訓練對目標視角、形變及光照等變化具有魯棒性的跟蹤模型,并根據實際應用進行調整,使其對特定類型的目標跟蹤更加準確,可以實現移動機器人多種場景下有效地檢測并跟蹤目標.
實驗結果及性能分析證明,GOTURN 目標跟蹤算法是實時性和精度要求都很高的目標跟蹤算法,其離線訓練和單次回歸目標位置的方式使其能夠以100 FPS 以上的速度跟蹤目標,使基于深度學習的目標跟蹤應用在移動機器人上成為可能,并滿足移動機器人目標跟蹤的實時性及魯棒性,這是我們選擇使用GOTURN 目標跟蹤算法的重要原因.
GOTURN 算法具有良好的跟蹤能力,對尺度變化、形變、光照變化、平面外旋轉和輕微遮擋等具有較強的魯棒性,但在有類似跟蹤目標時GOTURN 算法可能會導致目標丟失而跟蹤其他對象,而在線更新機制能可以很好地適應目標自身和周圍背景的變化,同時也能區分同一類別的不同目標.因此,將離線訓練和在線更新機制有機結合起來能彌補兩者直接的劣勢,同時又能發展各自的優勢.
GOTURN 算法使用的數據集是一個分類數據集,其離線訓練的跟蹤模型更適合數據集中存在的類別的目標,因此可以利用離線海量數據集,根據某一場景,訓練專門跟蹤某一類別的跟蹤器,以充分利用GOTURN 算法的優勢.GOTURN 目標跟蹤算法離線訓練和單次回歸目標位置的方式使基于深度學習的目標跟蹤應用在移動機器人上成為可能,并滿足移動機器人目標跟蹤的實時性及魯棒性,從而使其能高效協助其他相關機器人、自動化設備及人員等完成對應復雜場景下的任務,在軍事和民用領域都具備十分寬泛的應用價值.