張 艷,劉 陽(yáng),王杜林,王逸群,4
(1.海軍裝備部駐上海地區(qū)第六軍事代表室·上海·201109; 2.哈爾濱工業(yè)大學(xué) 儀器科學(xué)與工程學(xué)院·哈爾濱·150001; 3.上海航天控制技術(shù)研究所·上?!?01109; 4.中國(guó)科學(xué)院 蘇州納米技術(shù)與納米仿生研究所·蘇州·215000)
檢測(cè)與跟蹤動(dòng)態(tài)目標(biāo)主要通過(guò)分析視覺(jué)圖像,從而獲取被測(cè)目標(biāo)的運(yùn)動(dòng)狀態(tài)信息。這些運(yùn)動(dòng)狀態(tài)信息用于機(jī)器視覺(jué)系統(tǒng)完成其它高層任務(wù),有助于發(fā)展更高水平的人工智能。因而,檢測(cè)與跟蹤動(dòng)態(tài)目標(biāo)廣泛應(yīng)用于軍事武器、航空航天、安防監(jiān)控、無(wú)人駕駛等領(lǐng)域[1],可以幫助實(shí)現(xiàn)空間交會(huì)對(duì)接、無(wú)人機(jī)跟蹤導(dǎo)航和導(dǎo)彈制導(dǎo)等任務(wù)。對(duì)于空間非合作目標(biāo)的探測(cè)、跟蹤或識(shí)別,目前多采用雷達(dá)、紅外、可見(jiàn)光或其它無(wú)線電信號(hào)傳感器等;近年來(lái),具有靈活機(jī)動(dòng)性能的衛(wèi)星逐漸成為近距離非合作目標(biāo)跟蹤的重要平臺(tái),本文研究的基于相關(guān)濾波器的主動(dòng)視覺(jué)目標(biāo)跟蹤方法,可以在衛(wèi)星平臺(tái)上與傳統(tǒng)方法相結(jié)合,提高跟蹤的靈活性和實(shí)時(shí)性。
視覺(jué)目標(biāo)跟蹤算法一直是計(jì)算機(jī)視覺(jué)領(lǐng)域中的重要研究課題,目標(biāo)跟蹤算法的相關(guān)研究最早可以追溯到上世紀(jì)七十年代。根據(jù)目標(biāo)跟蹤的基本原理,跟蹤算法主要分為兩類:生成類方法和判別類方法[2]。生成類方法主要使用特征搜索,即首先在當(dāng)前幀對(duì)目標(biāo)建模,然后在下一幀中尋找與目標(biāo)模型最相似的區(qū)域作為預(yù)測(cè)位置。生成類方法的代表性算法包括均值漂移(Mean shift)、粒子濾波(Particle filter)、卡爾曼濾波(Kalman filter)等算法。判別類方法則把目標(biāo)跟蹤歸結(jié)為二分類問(wèn)題,使用當(dāng)前幀正負(fù)樣本集訓(xùn)練分類器,用分類器在后一幀中尋找最優(yōu)區(qū)域作為預(yù)測(cè)位置。判別類方法包括:Struck算法、多示例學(xué)習(xí)(Multiple Instance Learning, MIL)等算法。在2010年,人們提出了最小平方和誤差(Minimum Output Sum of Squared Error,MOSSE)濾波算法,這是在目標(biāo)跟蹤領(lǐng)域首次使用相關(guān)濾波(Correlation Filter,CF)類方法,最小平方和誤差濾波算法也是一種典型的判別類的跟蹤算法。該算法利用快速傅里葉變換在頻域計(jì)算濾波過(guò)程,大幅度提高了系統(tǒng)的跟蹤速度。在此基礎(chǔ)上,研究人員相繼提出了核相關(guān)濾波(Kernel Correlation Filter, KCF)算法、多通道顏色特征(Color Names,CN)算法,這些研究成果不斷提高相關(guān)濾波類算法的跟蹤效果。尤其是近年來(lái),人們將回歸網(wǎng)絡(luò)通用對(duì)象跟蹤算法(Generic Object Tracking Using Regression Networks,GOTUNRN)、全卷積孿生網(wǎng)絡(luò)(Fully-Convolutional Siamese Networks,SiamFC)等深度學(xué)習(xí)類算法用到了目標(biāo)跟蹤領(lǐng)域,為目標(biāo)跟蹤算法的發(fā)展提供了新思路。
值得注意的是,出于對(duì)跟蹤數(shù)據(jù)集上的短期跟蹤效果的考慮,前述算法往往需要在第一幀中以人工方式給出被跟蹤目標(biāo),很顯然,這樣的操作與實(shí)際的目標(biāo)跟蹤問(wèn)題是不相符合的[3]。由此可見(jiàn),長(zhǎng)時(shí)間跟蹤問(wèn)題需要結(jié)合檢測(cè)算法與跟蹤算法,即由系統(tǒng)自動(dòng)地錨定被跟蹤目標(biāo)。因此,人們研究了“跟蹤-學(xué)習(xí)-檢測(cè)”(Tracking-Learning-Detection,TLD)算法[4],研究表明,該算法的跟蹤效果穩(wěn)定可靠。與此同時(shí),大多數(shù)跟蹤系統(tǒng)的復(fù)雜算法都依賴于高性能的計(jì)算機(jī)處理器,這嚴(yán)重阻礙了跟蹤技術(shù)的應(yīng)用前景。近年來(lái),隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)不斷進(jìn)步,人們開(kāi)始日趨重視嵌入式機(jī)器視覺(jué)。為此,本文以檢測(cè)與跟蹤相結(jié)合為出發(fā)點(diǎn),以相關(guān)濾波類跟蹤方法為核心,提出研究一種基于主動(dòng)視覺(jué)理論[5]的實(shí)時(shí)動(dòng)態(tài)目標(biāo)跟蹤系統(tǒng),該系統(tǒng)利用伺服機(jī)構(gòu)控制攝像頭實(shí)現(xiàn)目標(biāo)主動(dòng)跟蹤,提高目標(biāo)跟蹤系統(tǒng)的魯棒性、自適應(yīng)性和實(shí)時(shí)性,并在基于樹(shù)莓派的嵌入式平臺(tái)上研制了跟蹤系統(tǒng),并完成了相關(guān)的測(cè)試,實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)方案能夠?qū)崿F(xiàn)大視場(chǎng)高幀頻實(shí)時(shí)監(jiān)控。
本文所設(shè)計(jì)的嵌入式動(dòng)態(tài)目標(biāo)跟蹤系統(tǒng)主要包括圖像采集模塊、運(yùn)動(dòng)伺服控制模塊、嵌入式控制器、跟蹤控制程序及算法。嵌入式動(dòng)態(tài)目標(biāo)跟蹤系統(tǒng)的結(jié)構(gòu)示意圖如圖1所示。根據(jù)主動(dòng)視覺(jué)思想搭建的目標(biāo)跟蹤裝置,其核心控制器是嵌入式片上系統(tǒng)(System-on-a-Chip,SOC)。在配套程序控制下,圖像采集模塊實(shí)時(shí)獲取目標(biāo)空間視頻圖像,利用目標(biāo)跟蹤算法處理該視頻圖像,進(jìn)而確定被跟蹤目標(biāo)在圖像上的位置。對(duì)于經(jīng)過(guò)標(biāo)定的攝像機(jī),利用圖像上目標(biāo)的位置信息計(jì)算目標(biāo)與當(dāng)前視場(chǎng)中心的角度偏差值,根據(jù)該偏差信息控制伺服系統(tǒng),進(jìn)而適時(shí)調(diào)整攝像頭位置姿態(tài),確保被追蹤的運(yùn)動(dòng)目標(biāo)始終清晰成像在視場(chǎng)的中心位置,從而實(shí)現(xiàn)連續(xù)準(zhǔn)確的目標(biāo)實(shí)時(shí)跟蹤。
根據(jù)圖2所示的檢測(cè)與跟蹤主程序流程圖,上電啟動(dòng)所設(shè)計(jì)的目標(biāo)跟蹤裝置后,控制程序?qū)⒆詥?dòng)并檢測(cè)相機(jī)、電機(jī)等下位機(jī)設(shè)備組件的狀態(tài),通過(guò)檢測(cè)并完成初始化后,軟件系統(tǒng)讀入被跟蹤目標(biāo)的判別模型,整個(gè)系統(tǒng)隨即進(jìn)入圖像采集、目標(biāo)檢測(cè)跟蹤的主程序,開(kāi)始執(zhí)行動(dòng)態(tài)目標(biāo)追蹤任務(wù)。檢測(cè)與跟蹤主程序的基本流程如下:
圖2 檢測(cè)與跟蹤主程序的流程圖Fig.2 Flow chart of the detection and tracking program
(1) 調(diào)用攝像頭讀取一幀當(dāng)前圖像,并在當(dāng)前幀進(jìn)行檢測(cè)算法;
(2) 若當(dāng)前幀未檢測(cè)到被跟蹤目標(biāo),伺服控制系統(tǒng)旋轉(zhuǎn)一定角度,重復(fù)步驟(1),若當(dāng)前幀檢測(cè)到被跟蹤目標(biāo),則執(zhí)行下一步,進(jìn)行目標(biāo)跟蹤;
(3) 使用檢測(cè)到的目標(biāo)位置初始化目標(biāo)跟蹤算法跟蹤器,并根據(jù)當(dāng)前目標(biāo)位置偏差調(diào)整攝像頭位置姿態(tài);
(4) 調(diào)用攝像頭讀取的新的一幀當(dāng)前圖像,并送至跟蹤器計(jì)算目標(biāo)位置;
(5) 若跟蹤器在當(dāng)前幀圖像上搜索到被跟蹤目標(biāo),則計(jì)算目標(biāo)偏差,然后伺服控制運(yùn)動(dòng)系統(tǒng)調(diào)整攝像頭位姿并跟蹤目標(biāo),重復(fù)步驟(4)和(5),繼續(xù)跟蹤目標(biāo);否則,程序跳轉(zhuǎn)至步驟(1),重新掃描檢測(cè)目標(biāo)。
為了實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)實(shí)時(shí)跟蹤,本文采用相關(guān)濾波類跟蹤算法。相關(guān)濾波類跟蹤算法通過(guò)一個(gè)濾波器將輸入圖像映射為一個(gè)理想響應(yīng)圖,并使響應(yīng)峰值與被跟蹤目標(biāo)位置相關(guān)聯(lián)[6],從而實(shí)現(xiàn)目標(biāo)跟蹤,在此過(guò)程中所使用的濾波器就是前文所說(shuō)的跟蹤器。在系統(tǒng)實(shí)施跟蹤算法的過(guò)程中,首先需要基于當(dāng)前幀圖像中被跟蹤目標(biāo)生成訓(xùn)練樣本集,然后創(chuàng)建并初始化一個(gè)相關(guān)濾波器。在圖1和圖2所示的系統(tǒng)中,檢測(cè)算法先檢測(cè)出當(dāng)前幀圖像中的被跟蹤目標(biāo),然后通過(guò)隨機(jī)仿射變換擴(kuò)充產(chǎn)生訓(xùn)練樣本集;當(dāng)輸入新的視頻幀f時(shí),利用相關(guān)濾波器對(duì)其進(jìn)行相關(guān)計(jì)算,即:
g=f?h
(1)
式中,f表示輸入視頻幀中的目標(biāo)圖像,h表示濾波器模板,g表示輸出響應(yīng),“?”即為相關(guān)運(yùn)算符。輸出響應(yīng)圖中,最大值對(duì)應(yīng)的位置就是最大概率跟蹤結(jié)果;然后使用新的目標(biāo)位置對(duì)跟蹤濾波器進(jìn)行實(shí)時(shí)更新。
由此可見(jiàn),跟蹤算法的運(yùn)算速度制約了跟蹤的實(shí)時(shí)性,為了提高跟蹤算法的速度,在進(jìn)行相關(guān)運(yùn)算時(shí)采用了快速傅里葉變換。根據(jù)傅里葉變換的卷積定理,在頻域中,相關(guān)運(yùn)算可以表示為乘法運(yùn)算,即:
G=F⊙H*
(2)
其中,G=F{g},F(xiàn)=F{f},H=F{h},F(xiàn){·}表示對(duì)函數(shù)進(jìn)行傅里葉變換,“⊙”表示元素的點(diǎn)乘運(yùn)算,“*”表示復(fù)共軛。求解得到H,然后通過(guò)傅里葉逆變換即可求得相關(guān)濾波器。
本文中,跟蹤器采用MOSSE濾波器[7]。為了將訓(xùn)練樣本集中的m個(gè)輸入圖像Fi分別映射到理想響應(yīng)輸出Gi上,必須使實(shí)際輸出H*⊙Fi和期望輸出Gi之間的平方誤差之和最小,即
(3)
求解公式(3)得到跟蹤濾波器初始化和更新公式:
(4)
公式(4)表示將濾波器模型分為分子和分母兩部分,分別進(jìn)行更新,At和At-1分別表示當(dāng)前幀和上一幀濾波器模型的分子,Bt和Bt-1分別表示當(dāng)前幀和上一幀濾波器模型的分母;式中,η是學(xué)習(xí)速率,使過(guò)去幀對(duì)濾波器的影響隨時(shí)間變化而指數(shù)衰減,通常取經(jīng)驗(yàn)值η=0.125以達(dá)到自適應(yīng)性和魯棒性的平衡。
為了求解和驗(yàn)證上述算法的有效性,本文在Intel Pentium 4415Y處理器上進(jìn)行測(cè)試,該處理器的主頻是1.60 GHz,跟蹤器是利用Python和OpenCV編寫的。圖3給出了相關(guān)濾波器跟蹤圖像的結(jié)果,圖3中的三個(gè)子圖分別表示(a)輸入目標(biāo)圖像、(b)跟蹤濾波器模板和(c)輸出響應(yīng)圖。
(a)
(b)
(c)圖3 相關(guān)濾波器跟蹤圖像Fig.3 Tracker chart of the correlation filter
本文中的相關(guān)濾波器是利用圖像的灰度特征進(jìn)行訓(xùn)練的,與KCF算法[8]中使用方向梯度直方圖(Histogram of Oriented Gradient, HOG)特征、CN算法[9]中的顏色特征等相比,相關(guān)濾波器的跟蹤準(zhǔn)確性相對(duì)減小。實(shí)際上,相關(guān)濾波器的算法復(fù)雜度更低、跟蹤速度更快,極其符合嵌入式平臺(tái)計(jì)算資源少的特征[10],而且結(jié)合檢測(cè)算法就可以滿足快速跟蹤的需求。與此同時(shí),根據(jù)公式(2),跟蹤濾波器的模板尺寸越大,相關(guān)運(yùn)算的復(fù)雜度越高,即與跟蹤濾波器的模板尺寸決定了跟蹤算法的運(yùn)行幀率[11],圖4給出了模板尺寸和運(yùn)行幀率的關(guān)系曲線,很顯然,隨著模板尺寸的增加,運(yùn)行幀率急劇下降。并且運(yùn)行幀率的波動(dòng)還會(huì)影響伺服系統(tǒng)的穩(wěn)定性??紤]到本文調(diào)整攝像頭保持目標(biāo)處于畫(huà)面中心即可,因此將跟蹤器模板設(shè)為固定值,有利于實(shí)現(xiàn)穩(wěn)定、可靠的實(shí)時(shí)目標(biāo)跟蹤。
圖4 跟蹤幀率隨模板大小變化Fig.4 The frame rate varies with the size of the template
為了進(jìn)一步驗(yàn)證跟蹤濾波器及其算法,測(cè)試了基于OTB100跟蹤數(shù)據(jù)集[12]中的視頻序列。這里使用中心位置誤差(Center Location Error,CLE)評(píng)估跟蹤目標(biāo)的中心位置(xc,yc)與標(biāo)定的真實(shí)位置(xt、yt)之間的偏差,即:
(5)
計(jì)算在既定閾值偏差之內(nèi)的幀數(shù)占總幀數(shù)的百分比[13],并繪制了圖5所示的跟蹤準(zhǔn)確率曲線,可見(jiàn)設(shè)置位置錯(cuò)誤閾值為15時(shí),本文算法跟蹤準(zhǔn)確率高達(dá)80%。
圖5 跟蹤準(zhǔn)確率與中心位置偏差的關(guān)系Fig.5 Relation of tracking accuracy rate and central location error
此外,相關(guān)濾波類算法對(duì)快速運(yùn)動(dòng)目標(biāo)的跟蹤能力相對(duì)不足。因?yàn)楦櫵惴ㄟ\(yùn)行時(shí),僅對(duì)跟蹤器模板區(qū)域內(nèi)的圖像塊進(jìn)行計(jì)算,當(dāng)下一幀圖像中目標(biāo)由于快速運(yùn)動(dòng)脫離跟蹤器圖像塊范圍時(shí),跟蹤就會(huì)失??;同時(shí),受圖像預(yù)處理階段余弦窗運(yùn)算的影響而產(chǎn)生的邊界效應(yīng),也使得跟蹤器對(duì)圖像塊邊緣的目標(biāo)跟蹤能力較弱。本文所采用的主動(dòng)視覺(jué)跟蹤方法,依靠伺服系統(tǒng)使被跟蹤目標(biāo)保持在圖中心區(qū)域內(nèi),可以一定程度抵消相關(guān)濾波對(duì)快速運(yùn)動(dòng)目標(biāo)跟蹤的劣勢(shì),使其更加勝任于相關(guān)應(yīng)用場(chǎng)景。
為了在實(shí)驗(yàn)上驗(yàn)證所設(shè)計(jì)的目標(biāo)跟蹤系統(tǒng),搭建了如圖6所示、基于Raspberry Pi 4B嵌入式控制器的目標(biāo)跟蹤系統(tǒng),并驗(yàn)證了前文所述的動(dòng)態(tài)目標(biāo)跟蹤方法和搭建跟蹤裝置。整個(gè)裝置分為三部分,底部的伺服電機(jī)直接驅(qū)動(dòng)裝置水平旋轉(zhuǎn),對(duì)目標(biāo)進(jìn)行掃描檢測(cè)及跟蹤;中部是控制電路,通過(guò)導(dǎo)電滑環(huán)與下方伺服電機(jī)傳輸控制信號(hào),并實(shí)現(xiàn)跟蹤算法;頂部是相機(jī)模組與微型舵機(jī),相機(jī)通過(guò)轉(zhuǎn)接件與舵機(jī)固定,在舵機(jī)驅(qū)動(dòng)下做俯仰運(yùn)動(dòng)以跟蹤目標(biāo)。其中圖像采集器件是嵌入式相機(jī)模組Raspberry Pi Camera Module V2,伺服運(yùn)動(dòng)控制模塊為舵機(jī)與伺服電機(jī)的組合。
①M(fèi)G90S舵機(jī);②嵌入式相機(jī)模組;③鋰電池及供電板;④Raspberry Pi 4B嵌入式控制器;⑤PWM驅(qū)動(dòng)板;⑥一體化伺服電機(jī);⑦PCB導(dǎo)電滑環(huán);⑧外殼、旋轉(zhuǎn)平臺(tái)等支撐連接件;⑨伺服電機(jī)底座及安裝架 (a)結(jié)構(gòu)設(shè)計(jì)仿真圖
(b)測(cè)試裝置實(shí)物圖圖6 動(dòng)態(tài)目標(biāo)跟蹤實(shí)驗(yàn)裝置Fig.6 Experimental schematic of dynamic object tracking system
編寫跟蹤程序的語(yǔ)言是Python,并基于OpenCV來(lái)完成的,在目標(biāo)檢測(cè)時(shí),使用基于Haar特征的級(jí)聯(lián)分類器[14],本文以人臉為跟蹤對(duì)象,訓(xùn)練目標(biāo)檢測(cè)模型。將此程序下載至嵌入式控制器,驗(yàn)證該方法的實(shí)時(shí)跟蹤效果。圖7是利用本系統(tǒng)及其相關(guān)算法實(shí)現(xiàn)的目標(biāo)檢測(cè)與跟蹤效果圖,系統(tǒng)用藍(lán)色矩形框來(lái)標(biāo)識(shí)被跟蹤目標(biāo),隨著被跟蹤目標(biāo)的移動(dòng),通過(guò)由伺服電機(jī)和微型舵機(jī)構(gòu)成的伺服運(yùn)動(dòng)機(jī)構(gòu)對(duì)攝像機(jī)姿態(tài)的調(diào)整[15],藍(lán)色矩形框保持跟隨移動(dòng),始終保證跟蹤目標(biāo)在藍(lán)色矩形框內(nèi)。在實(shí)驗(yàn)過(guò)程中,被跟蹤目標(biāo)進(jìn)行了上下左右四個(gè)方向的移動(dòng),系統(tǒng)依然具備良好的跟蹤性能。實(shí)驗(yàn)表明,該實(shí)驗(yàn)裝置可實(shí)現(xiàn)水平360°、俯仰±60°范圍內(nèi)的實(shí)時(shí)監(jiān)控。
圖7 動(dòng)態(tài)目標(biāo)實(shí)時(shí)檢測(cè)與跟蹤效果圖Fig.7 Real-time detection and tracking of dynamic object
實(shí)驗(yàn)中,作為被跟蹤目標(biāo)的行人繞動(dòng)態(tài)目標(biāo)跟蹤裝置做連續(xù)圓周運(yùn)動(dòng),記錄跟蹤圖像及時(shí)間戳,以單圈圓周運(yùn)動(dòng)跟蹤成功為判斷標(biāo)準(zhǔn),通過(guò)時(shí)間戳計(jì)算可知,被跟蹤行人以約90(°)/s的速度運(yùn)動(dòng)時(shí),實(shí)驗(yàn)裝置依然實(shí)現(xiàn)了穩(wěn)定跟蹤;在運(yùn)行目標(biāo)檢測(cè)算法進(jìn)行目標(biāo)搜索時(shí),系統(tǒng)的平均運(yùn)行幀率在6~8FPS;在運(yùn)行目標(biāo)跟蹤算法時(shí),平均運(yùn)行幀率約25FPS,能保證跟蹤的實(shí)時(shí)性。
本文研究了基于主動(dòng)視覺(jué)思想的嵌入式系統(tǒng)動(dòng)態(tài)目標(biāo)跟蹤,提出了一種檢測(cè)與跟蹤相結(jié)合算法,在最小平方和誤差濾波器跟蹤算法的基礎(chǔ)上完成了檢測(cè)與跟蹤相結(jié)合的跟蹤程序,基于OTB數(shù)據(jù)集,使用中心位置偏差進(jìn)行評(píng)估,并搭建了跟蹤驗(yàn)證實(shí)驗(yàn)裝置。實(shí)驗(yàn)結(jié)果表明,本文所設(shè)計(jì)的嵌入式動(dòng)態(tài)目標(biāo)主動(dòng)跟蹤系統(tǒng)具備目標(biāo)實(shí)時(shí)跟蹤能力,對(duì)快速運(yùn)動(dòng)的目標(biāo)跟蹤效果準(zhǔn)確、穩(wěn)定,能夠?qū)崿F(xiàn)全時(shí)監(jiān)控。與傳統(tǒng)機(jī)器視覺(jué)跟蹤系統(tǒng)相比,嵌入式跟蹤系統(tǒng)具有體積小、成本低、易于部署等優(yōu)勢(shì)??紤]到嵌入式平臺(tái)計(jì)算資源的限制,后續(xù)將研究系統(tǒng)和算法的優(yōu)化,以實(shí)現(xiàn)高速運(yùn)動(dòng)目標(biāo)跟蹤。