張 艷,劉 陽,王杜林,王逸群,4
(1.海軍裝備部駐上海地區第六軍事代表室·上海·201109; 2.哈爾濱工業大學 儀器科學與工程學院·哈爾濱·150001; 3.上海航天控制技術研究所·上海·201109; 4.中國科學院 蘇州納米技術與納米仿生研究所·蘇州·215000)
檢測與跟蹤動態目標主要通過分析視覺圖像,從而獲取被測目標的運動狀態信息。這些運動狀態信息用于機器視覺系統完成其它高層任務,有助于發展更高水平的人工智能。因而,檢測與跟蹤動態目標廣泛應用于軍事武器、航空航天、安防監控、無人駕駛等領域[1],可以幫助實現空間交會對接、無人機跟蹤導航和導彈制導等任務。對于空間非合作目標的探測、跟蹤或識別,目前多采用雷達、紅外、可見光或其它無線電信號傳感器等;近年來,具有靈活機動性能的衛星逐漸成為近距離非合作目標跟蹤的重要平臺,本文研究的基于相關濾波器的主動視覺目標跟蹤方法,可以在衛星平臺上與傳統方法相結合,提高跟蹤的靈活性和實時性。
視覺目標跟蹤算法一直是計算機視覺領域中的重要研究課題,目標跟蹤算法的相關研究最早可以追溯到上世紀七十年代。根據目標跟蹤的基本原理,跟蹤算法主要分為兩類:生成類方法和判別類方法[2]。生成類方法主要使用特征搜索,即首先在當前幀對目標建模,然后在下一幀中尋找與目標模型最相似的區域作為預測位置。生成類方法的代表性算法包括均值漂移(Mean shift)、粒子濾波(Particle filter)、卡爾曼濾波(Kalman filter)等算法。判別類方法則把目標跟蹤歸結為二分類問題,使用當前幀正負樣本集訓練分類器,用分類器在后一幀中尋找最優區域作為預測位置。判別類方法包括:Struck算法、多示例學習(Multiple Instance Learning, MIL)等算法。在2010年,人們提出了最小平方和誤差(Minimum Output Sum of Squared Error,MOSSE)濾波算法,這是在目標跟蹤領域首次使用相關濾波(Correlation Filter,CF)類方法,最小平方和誤差濾波算法也是一種典型的判別類的跟蹤算法。該算法利用快速傅里葉變換在頻域計算濾波過程,大幅度提高了系統的跟蹤速度。在此基礎上,研究人員相繼提出了核相關濾波(Kernel Correlation Filter, KCF)算法、多通道顏色特征(Color Names,CN)算法,這些研究成果不斷提高相關濾波類算法的跟蹤效果。尤其是近年來,人們將回歸網絡通用對象跟蹤算法(Generic Object Tracking Using Regression Networks,GOTUNRN)、全卷積孿生網絡(Fully-Convolutional Siamese Networks,SiamFC)等深度學習類算法用到了目標跟蹤領域,為目標跟蹤算法的發展提供了新思路。
值得注意的是,出于對跟蹤數據集上的短期跟蹤效果的考慮,前述算法往往需要在第一幀中以人工方式給出被跟蹤目標,很顯然,這樣的操作與實際的目標跟蹤問題是不相符合的[3]。由此可見,長時間跟蹤問題需要結合檢測算法與跟蹤算法,即由系統自動地錨定被跟蹤目標。因此,人們研究了“跟蹤-學習-檢測”(Tracking-Learning-Detection,TLD)算法[4],研究表明,該算法的跟蹤效果穩定可靠。與此同時,大多數跟蹤系統的復雜算法都依賴于高性能的計算機處理器,這嚴重阻礙了跟蹤技術的應用前景。近年來,隨著微電子技術和計算機技術不斷進步,人們開始日趨重視嵌入式機器視覺。為此,本文以檢測與跟蹤相結合為出發點,以相關濾波類跟蹤方法為核心,提出研究一種基于主動視覺理論[5]的實時動態目標跟蹤系統,該系統利用伺服機構控制攝像頭實現目標主動跟蹤,提高目標跟蹤系統的魯棒性、自適應性和實時性,并在基于樹莓派的嵌入式平臺上研制了跟蹤系統,并完成了相關的測試,實驗結果表明,該系統方案能夠實現大視場高幀頻實時監控。
本文所設計的嵌入式動態目標跟蹤系統主要包括圖像采集模塊、運動伺服控制模塊、嵌入式控制器、跟蹤控制程序及算法。嵌入式動態目標跟蹤系統的結構示意圖如圖1所示。根據主動視覺思想搭建的目標跟蹤裝置,其核心控制器是嵌入式片上系統(System-on-a-Chip,SOC)。在配套程序控制下,圖像采集模塊實時獲取目標空間視頻圖像,利用目標跟蹤算法處理該視頻圖像,進而確定被跟蹤目標在圖像上的位置。對于經過標定的攝像機,利用圖像上目標的位置信息計算目標與當前視場中心的角度偏差值,根據該偏差信息控制伺服系統,進而適時調整攝像頭位置姿態,確保被追蹤的運動目標始終清晰成像在視場的中心位置,從而實現連續準確的目標實時跟蹤。
根據圖2所示的檢測與跟蹤主程序流程圖,上電啟動所設計的目標跟蹤裝置后,控制程序將自啟動并檢測相機、電機等下位機設備組件的狀態,通過檢測并完成初始化后,軟件系統讀入被跟蹤目標的判別模型,整個系統隨即進入圖像采集、目標檢測跟蹤的主程序,開始執行動態目標追蹤任務。檢測與跟蹤主程序的基本流程如下:

圖2 檢測與跟蹤主程序的流程圖Fig.2 Flow chart of the detection and tracking program
(1) 調用攝像頭讀取一幀當前圖像,并在當前幀進行檢測算法;
(2) 若當前幀未檢測到被跟蹤目標,伺服控制系統旋轉一定角度,重復步驟(1),若當前幀檢測到被跟蹤目標,則執行下一步,進行目標跟蹤;
(3) 使用檢測到的目標位置初始化目標跟蹤算法跟蹤器,并根據當前目標位置偏差調整攝像頭位置姿態;
(4) 調用攝像頭讀取的新的一幀當前圖像,并送至跟蹤器計算目標位置;
(5) 若跟蹤器在當前幀圖像上搜索到被跟蹤目標,則計算目標偏差,然后伺服控制運動系統調整攝像頭位姿并跟蹤目標,重復步驟(4)和(5),繼續跟蹤目標;否則,程序跳轉至步驟(1),重新掃描檢測目標。
為了實現運動目標實時跟蹤,本文采用相關濾波類跟蹤算法。相關濾波類跟蹤算法通過一個濾波器將輸入圖像映射為一個理想響應圖,并使響應峰值與被跟蹤目標位置相關聯[6],從而實現目標跟蹤,在此過程中所使用的濾波器就是前文所說的跟蹤器。在系統實施跟蹤算法的過程中,首先需要基于當前幀圖像中被跟蹤目標生成訓練樣本集,然后創建并初始化一個相關濾波器。在圖1和圖2所示的系統中,檢測算法先檢測出當前幀圖像中的被跟蹤目標,然后通過隨機仿射變換擴充產生訓練樣本集;當輸入新的視頻幀f時,利用相關濾波器對其進行相關計算,即:
g=f?h
(1)
式中,f表示輸入視頻幀中的目標圖像,h表示濾波器模板,g表示輸出響應,“?”即為相關運算符。輸出響應圖中,最大值對應的位置就是最大概率跟蹤結果;然后使用新的目標位置對跟蹤濾波器進行實時更新。
由此可見,跟蹤算法的運算速度制約了跟蹤的實時性,為了提高跟蹤算法的速度,在進行相關運算時采用了快速傅里葉變換。根據傅里葉變換的卷積定理,在頻域中,相關運算可以表示為乘法運算,即:
G=F⊙H*
(2)
其中,G=F{g},F=F{f},H=F{h},F{·}表示對函數進行傅里葉變換,“⊙”表示元素的點乘運算,“*”表示復共軛。求解得到H,然后通過傅里葉逆變換即可求得相關濾波器。
本文中,跟蹤器采用MOSSE濾波器[7]。為了將訓練樣本集中的m個輸入圖像Fi分別映射到理想響應輸出Gi上,必須使實際輸出H*⊙Fi和期望輸出Gi之間的平方誤差之和最小,即
(3)
求解公式(3)得到跟蹤濾波器初始化和更新公式:
(4)
公式(4)表示將濾波器模型分為分子和分母兩部分,分別進行更新,At和At-1分別表示當前幀和上一幀濾波器模型的分子,Bt和Bt-1分別表示當前幀和上一幀濾波器模型的分母;式中,η是學習速率,使過去幀對濾波器的影響隨時間變化而指數衰減,通常取經驗值η=0.125以達到自適應性和魯棒性的平衡。
為了求解和驗證上述算法的有效性,本文在Intel Pentium 4415Y處理器上進行測試,該處理器的主頻是1.60 GHz,跟蹤器是利用Python和OpenCV編寫的。圖3給出了相關濾波器跟蹤圖像的結果,圖3中的三個子圖分別表示(a)輸入目標圖像、(b)跟蹤濾波器模板和(c)輸出響應圖。

(a)

(b)

(c)圖3 相關濾波器跟蹤圖像Fig.3 Tracker chart of the correlation filter
本文中的相關濾波器是利用圖像的灰度特征進行訓練的,與KCF算法[8]中使用方向梯度直方圖(Histogram of Oriented Gradient, HOG)特征、CN算法[9]中的顏色特征等相比,相關濾波器的跟蹤準確性相對減小。實際上,相關濾波器的算法復雜度更低、跟蹤速度更快,極其符合嵌入式平臺計算資源少的特征[10],而且結合檢測算法就可以滿足快速跟蹤的需求。與此同時,根據公式(2),跟蹤濾波器的模板尺寸越大,相關運算的復雜度越高,即與跟蹤濾波器的模板尺寸決定了跟蹤算法的運行幀率[11],圖4給出了模板尺寸和運行幀率的關系曲線,很顯然,隨著模板尺寸的增加,運行幀率急劇下降。并且運行幀率的波動還會影響伺服系統的穩定性。考慮到本文調整攝像頭保持目標處于畫面中心即可,因此將跟蹤器模板設為固定值,有利于實現穩定、可靠的實時目標跟蹤。

圖4 跟蹤幀率隨模板大小變化Fig.4 The frame rate varies with the size of the template
為了進一步驗證跟蹤濾波器及其算法,測試了基于OTB100跟蹤數據集[12]中的視頻序列。這里使用中心位置誤差(Center Location Error,CLE)評估跟蹤目標的中心位置(xc,yc)與標定的真實位置(xt、yt)之間的偏差,即:
(5)
計算在既定閾值偏差之內的幀數占總幀數的百分比[13],并繪制了圖5所示的跟蹤準確率曲線,可見設置位置錯誤閾值為15時,本文算法跟蹤準確率高達80%。

圖5 跟蹤準確率與中心位置偏差的關系Fig.5 Relation of tracking accuracy rate and central location error
此外,相關濾波類算法對快速運動目標的跟蹤能力相對不足。因為跟蹤算法運行時,僅對跟蹤器模板區域內的圖像塊進行計算,當下一幀圖像中目標由于快速運動脫離跟蹤器圖像塊范圍時,跟蹤就會失敗;同時,受圖像預處理階段余弦窗運算的影響而產生的邊界效應,也使得跟蹤器對圖像塊邊緣的目標跟蹤能力較弱。本文所采用的主動視覺跟蹤方法,依靠伺服系統使被跟蹤目標保持在圖中心區域內,可以一定程度抵消相關濾波對快速運動目標跟蹤的劣勢,使其更加勝任于相關應用場景。
為了在實驗上驗證所設計的目標跟蹤系統,搭建了如圖6所示、基于Raspberry Pi 4B嵌入式控制器的目標跟蹤系統,并驗證了前文所述的動態目標跟蹤方法和搭建跟蹤裝置。整個裝置分為三部分,底部的伺服電機直接驅動裝置水平旋轉,對目標進行掃描檢測及跟蹤;中部是控制電路,通過導電滑環與下方伺服電機傳輸控制信號,并實現跟蹤算法;頂部是相機模組與微型舵機,相機通過轉接件與舵機固定,在舵機驅動下做俯仰運動以跟蹤目標。其中圖像采集器件是嵌入式相機模組Raspberry Pi Camera Module V2,伺服運動控制模塊為舵機與伺服電機的組合。

①MG90S舵機;②嵌入式相機模組;③鋰電池及供電板;④Raspberry Pi 4B嵌入式控制器;⑤PWM驅動板;⑥一體化伺服電機;⑦PCB導電滑環;⑧外殼、旋轉平臺等支撐連接件;⑨伺服電機底座及安裝架 (a)結構設計仿真圖

(b)測試裝置實物圖圖6 動態目標跟蹤實驗裝置Fig.6 Experimental schematic of dynamic object tracking system
編寫跟蹤程序的語言是Python,并基于OpenCV來完成的,在目標檢測時,使用基于Haar特征的級聯分類器[14],本文以人臉為跟蹤對象,訓練目標檢測模型。將此程序下載至嵌入式控制器,驗證該方法的實時跟蹤效果。圖7是利用本系統及其相關算法實現的目標檢測與跟蹤效果圖,系統用藍色矩形框來標識被跟蹤目標,隨著被跟蹤目標的移動,通過由伺服電機和微型舵機構成的伺服運動機構對攝像機姿態的調整[15],藍色矩形框保持跟隨移動,始終保證跟蹤目標在藍色矩形框內。在實驗過程中,被跟蹤目標進行了上下左右四個方向的移動,系統依然具備良好的跟蹤性能。實驗表明,該實驗裝置可實現水平360°、俯仰±60°范圍內的實時監控。

圖7 動態目標實時檢測與跟蹤效果圖Fig.7 Real-time detection and tracking of dynamic object
實驗中,作為被跟蹤目標的行人繞動態目標跟蹤裝置做連續圓周運動,記錄跟蹤圖像及時間戳,以單圈圓周運動跟蹤成功為判斷標準,通過時間戳計算可知,被跟蹤行人以約90(°)/s的速度運動時,實驗裝置依然實現了穩定跟蹤;在運行目標檢測算法進行目標搜索時,系統的平均運行幀率在6~8FPS;在運行目標跟蹤算法時,平均運行幀率約25FPS,能保證跟蹤的實時性。
本文研究了基于主動視覺思想的嵌入式系統動態目標跟蹤,提出了一種檢測與跟蹤相結合算法,在最小平方和誤差濾波器跟蹤算法的基礎上完成了檢測與跟蹤相結合的跟蹤程序,基于OTB數據集,使用中心位置偏差進行評估,并搭建了跟蹤驗證實驗裝置。實驗結果表明,本文所設計的嵌入式動態目標主動跟蹤系統具備目標實時跟蹤能力,對快速運動的目標跟蹤效果準確、穩定,能夠實現全時監控。與傳統機器視覺跟蹤系統相比,嵌入式跟蹤系統具有體積小、成本低、易于部署等優勢。考慮到嵌入式平臺計算資源的限制,后續將研究系統和算法的優化,以實現高速運動目標跟蹤。