時(shí)旭東,施華君,陸國(guó)強(qiáng)
(中國(guó)電子科技集團(tuán)公司第三十二研究所,上海 201808)
目標(biāo)跟蹤是計(jì)算機(jī)視覺(jué)領(lǐng)域中一個(gè)非常重要的研究方向,其主要工作是通過(guò)對(duì)圖像序列中的指定目標(biāo)進(jìn)行特征提取與建模,而后利用所得模型獲取或標(biāo)注出指定目標(biāo)在動(dòng)態(tài)圖像序列中的位置信息,從而實(shí)現(xiàn)目標(biāo)跟蹤.近年來(lái),隨著計(jì)算機(jī)視覺(jué)領(lǐng)域的快速發(fā)展,目標(biāo)跟蹤算法和理論成果也層出不窮.然而,這些算法雖然種類繁多、效果顯著,但其大多是基于PC 平臺(tái)進(jìn)行算法實(shí)現(xiàn)的,這些算法的開發(fā)普遍需要借助第三方軟件或者軟件庫(kù)進(jìn)行,很難直接在嵌入式平臺(tái)上進(jìn)行算法部署和應(yīng)用;此外,工程環(huán)境中獲取的圖像包含很多不確定因素,這些因素也會(huì)極大影響算法的跟蹤性能.這些缺陷使得大量的目標(biāo)跟蹤算法在實(shí)際的國(guó)防軍事、公共安全、工業(yè)生產(chǎn)等眾多工程領(lǐng)域中的應(yīng)用大大受限,實(shí)際效果也大大折扣.因此,目標(biāo)跟蹤算法在嵌入式平臺(tái)上的實(shí)現(xiàn)一直是該領(lǐng)域中需要著力攻克的難點(diǎn),設(shè)計(jì)一種能夠適應(yīng)現(xiàn)實(shí)環(huán)境復(fù)雜性的、具有一定實(shí)時(shí)性的、性能具有魯棒性的目標(biāo)跟蹤系統(tǒng)更是目前亟待解決的課題[1,2].
DSP (數(shù)字信號(hào)處理器)作為一種具有強(qiáng)大運(yùn)算處理能力的嵌入式系統(tǒng),具備能耗低、規(guī)模小、成本低、穩(wěn)定性高等諸多優(yōu)點(diǎn),這使其在實(shí)際工程項(xiàng)目中應(yīng)用廣泛,現(xiàn)已成為目標(biāo)跟蹤算法技術(shù)應(yīng)用的關(guān)鍵平臺(tái)之一.因此,研究基于DSP 的目標(biāo)跟蹤系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)方法是十分必要并且具有極高的現(xiàn)實(shí)意義的.近年,隨著機(jī)器學(xué)習(xí)的迅猛發(fā)展,目標(biāo)跟蹤算法已從圖像幀差分法[3]、圖像幀間特征匹配法等傳統(tǒng)方法過(guò)渡到基于機(jī)器學(xué)習(xí)的目標(biāo)跟蹤算法,在實(shí)際應(yīng)用中,這對(duì)算法的嵌入式平臺(tái)優(yōu)化與應(yīng)用提出了更高的要求.
本文介紹了一種基于TMS320C6414 平臺(tái)的目標(biāo)跟蹤系統(tǒng)設(shè)計(jì)及其實(shí)現(xiàn)方法,該系統(tǒng)選用了基于機(jī)器學(xué)習(xí)的核化相關(guān)濾波算法[4-8](KCF 算法)作為目標(biāo)跟蹤模塊的核心算法,在簡(jiǎn)要介紹系統(tǒng)硬件平臺(tái)的基礎(chǔ)上,詳細(xì)分析了KCF 算法的原理和特點(diǎn),與此同時(shí),針對(duì)本系統(tǒng)的硬件平臺(tái),文章著重解讀了系統(tǒng)在算法架構(gòu)、數(shù)據(jù)處理、程序編譯等方面的優(yōu)化思路和方法,最后展示了本系統(tǒng)在實(shí)際工程應(yīng)用中的實(shí)驗(yàn)結(jié)果,并得出相關(guān)結(jié)論,為計(jì)算機(jī)視覺(jué)領(lǐng)域內(nèi)的各類算法的嵌入式應(yīng)用提供參考.
作為一個(gè)能夠獨(dú)立運(yùn)行于實(shí)際工程環(huán)境中的目標(biāo)跟蹤系統(tǒng),其主要功能包括:圖像采集和數(shù)據(jù)緩存、實(shí)現(xiàn)目標(biāo)跟蹤算法、上位機(jī)通信與跟蹤結(jié)果反饋等功能.由于系統(tǒng)的外圍通信接口較多,通信任務(wù)繁重,同時(shí)又要運(yùn)行目標(biāo)跟蹤算法,運(yùn)算任務(wù)繁重,所以在系統(tǒng)的硬件設(shè)計(jì)中需要根據(jù)不同任務(wù),采用模塊化的設(shè)計(jì)思想.FPGA 作為一種典型的半定制電路,擁有豐富的可并行執(zhí)行的邏輯運(yùn)算單元,非常適合進(jìn)行信號(hào)調(diào)理和時(shí)序控制,因此在系統(tǒng)硬件設(shè)計(jì)中,本文選擇FPGA 作為協(xié)處理器進(jìn)行數(shù)據(jù)通信與外圍芯片的時(shí)序控制,DSP 則作為核心處理器,主要運(yùn)行需要大量復(fù)雜運(yùn)算的目標(biāo)跟蹤算法.系統(tǒng)硬件平臺(tái)的基本結(jié)構(gòu)如圖1所示.
圖1 系統(tǒng)硬件結(jié)構(gòu)
從圖中可以看出,硬件平臺(tái)包括視頻采集電路、視頻解碼電路、視頻顯示電路、數(shù)據(jù)緩存電路、視頻處理電路、通信電路以及電源電路等,其中視頻解碼電路、數(shù)據(jù)緩存電路以及視頻處理電路是本系統(tǒng)硬件平臺(tái)的核心電路.
視頻解碼電路由TVP5150 及其外圍電路組成,該電路功能是將CCD 攝像機(jī)采集的PAL 模擬信號(hào)轉(zhuǎn)換為符合BT.656 標(biāo)準(zhǔn)的8 位4:2:2 YCbCr 格式的數(shù)字信號(hào)[9].本系統(tǒng)中,由協(xié)處理器FPGA 根據(jù)BT.656 幀劃分和數(shù)據(jù)流格式解析出行同步信號(hào)、場(chǎng)信號(hào)以及YCbCr 數(shù)據(jù)信號(hào),并將解析結(jié)果輸出至后級(jí)電路進(jìn)行處理.
數(shù)據(jù)緩存電路主要負(fù)責(zé)圖像數(shù)據(jù)的緩存工作.考慮到DSP 讀取和處理數(shù)據(jù)需要較快的速度,因此使用工作頻率較高的SRAM 作為DSP 的數(shù)據(jù)緩存,而協(xié)處理器FPGA 的數(shù)據(jù)緩存則采用經(jīng)典的“乒乓結(jié)構(gòu)緩沖存儲(chǔ)”[10,11]策略,即采用兩片SDRAM 作為圖像數(shù)據(jù)緩存主體,輸入輸出數(shù)據(jù)選擇單元切換由FPGA 控制實(shí)現(xiàn),最終完成圖像數(shù)據(jù)的無(wú)縫緩沖處理,提升系統(tǒng)的數(shù)據(jù)存取速度.
視頻處理電路由協(xié)處理器FPGA、核心處理器DSP 以及它們的外圍電路組成.為達(dá)到系統(tǒng)“小規(guī)模、低成本、高能效”的設(shè)計(jì)需求,F(xiàn)PGA 選用Altera 公司Cyclone IV 系列的EP4CE40F29I7N 芯片,該產(chǎn)品具備532 個(gè)可用I/O,39 600 個(gè)基本邏輯單元(LEs),1134 Kbit片上存儲(chǔ)空間,芯片面積僅為29×29 mm2,其資源足夠滿足系統(tǒng)功能需求;DSP 則選用TI 公司TMS320C6000系列最高性能的定點(diǎn)DSP 產(chǎn)品TMS320C6414,該產(chǎn)品具有2 個(gè)FMIF 接口,工作頻率最高可達(dá)850 MHz,其運(yùn)算能力足夠滿足系統(tǒng)的算法需求.
目標(biāo)跟蹤算法在本系統(tǒng)中嵌入在DSP 的監(jiān)控程序中,算法的具體要求是,在視頻中的每一幀圖像中均能識(shí)別并框選出所指定的跟蹤目標(biāo),并將跟蹤結(jié)果反饋至控制臺(tái)上位機(jī)以供觀察.針對(duì)本系統(tǒng)的研制需求,本文提出了一種核化相關(guān)濾波算法(KCF 算法)在本系統(tǒng)硬件平臺(tái)上的優(yōu)化與實(shí)現(xiàn)方法.
KCF 算法是一種典型的判別式目標(biāo)跟蹤算法[5,6],該算法的核心思想是根據(jù)圖像中給定的跟蹤目標(biāo),在線學(xué)習(xí)得到一個(gè)能夠區(qū)分目標(biāo)和背景信息的目標(biāo)檢測(cè)器模型,然后使用該檢測(cè)器模型在下一幀圖像上進(jìn)行相關(guān)濾波計(jì)算,從而得到圖像的輸出響應(yīng)并框選出目標(biāo)區(qū)域,并用得到的目標(biāo)區(qū)域更新目標(biāo)模板.算法的優(yōu)勢(shì)在于,在目標(biāo)檢測(cè)器模型的訓(xùn)練過(guò)程中引入“核技巧”,該方法可以隱式地使用圖像的高維特征,增強(qiáng)模型的泛化能力和目標(biāo)識(shí)別的準(zhǔn)確率[12];與此同時(shí),在算法實(shí)現(xiàn)過(guò)程中巧妙地使用循環(huán)矩陣來(lái)拓展訓(xùn)練集,在一定程度上解決了目標(biāo)跟蹤中訓(xùn)練樣本匱乏的問(wèn)題[13];并且算法利用循環(huán)矩陣在傅里葉域內(nèi)可對(duì)角化的性質(zhì),將原本時(shí)域中復(fù)雜的矩陣求逆運(yùn)算轉(zhuǎn)化為傅里葉域中的向量Hadamad 積運(yùn)算,大大降低了算法運(yùn)行的時(shí)間復(fù)雜度,極大提高了運(yùn)算速度[5,12].
在樣本訓(xùn)練過(guò)程中,將圖像中選定的目標(biāo)區(qū)域I作為基樣本,記其中的一行1×n維向量為x.使用置換矩陣P對(duì)該基樣本中的行向量x進(jìn)行循環(huán)移位,從而得到移位集合,集合中的每個(gè)元素都可以看作是一個(gè)向量的變換,集合則可以看作是一個(gè)矩陣的變換.對(duì)于行向量x,其置換矩陣可以表示為:
置換矩陣與行向量相乘可構(gòu)成循環(huán)矩陣X:
循環(huán)矩陣可通過(guò)離散傅里葉變換實(shí)現(xiàn)矩陣的對(duì)角化:
上式可以看作是循環(huán)矩陣的特征值分解[12],其中,G被稱作DFT 矩陣,是一個(gè)與基樣本行向量無(wú)關(guān)的常量矩陣,GH表示G的共軛轉(zhuǎn)置,表示x的離散傅里葉變換.對(duì)于二維圖像,可以對(duì)圖像中的每一個(gè)行向量或者列向量進(jìn)行上述操作,從而獲得循環(huán)矩陣.由于離散傅里葉變換是一種線性變換,對(duì)角化過(guò)程等價(jià)于對(duì)向量做元素級(jí)的線性變換,所以,其可大大簡(jiǎn)化后續(xù)計(jì)算,提升算法性能.
訓(xùn)練目標(biāo)檢測(cè)器的本質(zhì)是一個(gè)嶺回歸問(wèn)題,即尋找一個(gè)線性函數(shù)f(z)=wTz,使得該函數(shù)的輸出與樣本標(biāo)簽值之間的殘差最小,該過(guò)程可以表示為:
上式最優(yōu)閉式解的復(fù)數(shù)形式為:
對(duì)其進(jìn)行傅里葉逆變換即可得到w.可以看出,原本O(n3)復(fù)雜度的矩陣求逆運(yùn)算被轉(zhuǎn)換成了O(n)復(fù)雜度的元素乘法和O(nlogn)的傅里葉變換,計(jì)算復(fù)雜度減少了幾個(gè)數(shù)量級(jí)[5].
2.2 節(jié)中訓(xùn)練得到的目標(biāo)檢測(cè)器是線性的,為得到具有更優(yōu)性能的非線性目標(biāo)檢測(cè)器,KCF 算法引入“核技巧”來(lái)解決非線性目標(biāo)檢測(cè)器的在線訓(xùn)練問(wèn)題.即首先將問(wèn)題的輸入X映射到一個(gè)非線性空間 φ(X)中,將φ(X)作為嶺回歸問(wèn)題的輸入,由算法文獻(xiàn)[5]可得,該問(wèn)題的最優(yōu)解為樣本的線性組合:
然后,KCF 算法引入核函數(shù)來(lái)表示高維空間中映射值的點(diǎn)積,即:
其中,κ為核函數(shù),其計(jì)算結(jié)果通常存儲(chǔ)在核矩陣K中,從式(8)可以看出,核函數(shù)可以在不實(shí)例化任何向量的前提下隱式地使用向量的高維特征[12].根據(jù)算法文獻(xiàn)[5]可以得到,核函數(shù)下嶺回歸的閉式解為:
文獻(xiàn)[5]中證明大部分常用的核函數(shù)構(gòu)成的核矩陣K是循環(huán)矩陣,利用循環(huán)矩陣的性質(zhì)可以對(duì)(9)式進(jìn)行對(duì)角化,結(jié)果為:
其中,kxx'為核矩陣K的第一行元素.從上述推導(dǎo)可知,該求解過(guò)程可以避開式(9)中原本復(fù)雜的矩陣求逆運(yùn)算,將式(10)的計(jì)算結(jié)果進(jìn)行離散傅里葉逆變換即可得到目標(biāo)向量α.值得注意的是,當(dāng)樣本規(guī)模線性增加時(shí),式(9)求解的復(fù)雜度呈指數(shù)級(jí)提升,而式(10)則是線性級(jí)的[12].
對(duì)于輸入的待檢測(cè)圖像塊z,其在訓(xùn)練得到的目標(biāo)檢測(cè)器中的輸出響應(yīng)為:
其中,x為目標(biāo)檢測(cè)器的訓(xùn)練基本樣本,設(shè)Kz為訓(xùn)練樣本和所有候選圖像塊的核矩陣,其可表示為:
代入式(11)并對(duì)角化可得:
對(duì)上式結(jié)果進(jìn)行離散傅里葉逆變換即可得到所有候選圖像塊的響應(yīng)值.
以上過(guò)程的實(shí)質(zhì)就是計(jì)算當(dāng)前幀中的待檢測(cè)圖像塊和訓(xùn)練檢測(cè)器模型時(shí)所使用的目標(biāo)模板之間的相關(guān)性,并找出計(jì)算結(jié)果中相關(guān)性最高的區(qū)域作為目標(biāo)位置.結(jié)合本工程的實(shí)際情況,本文選用高斯核進(jìn)行算法實(shí)現(xiàn),高斯核的核相關(guān)運(yùn)算表達(dá)式為:
將其代入式(13)中即可得到最終結(jié)果.
在實(shí)際的工程應(yīng)用中,引入超參數(shù)η作為更新因子用來(lái)調(diào)節(jié)目標(biāo)檢測(cè)器的更新率[12,14,15],以保證目標(biāo)檢測(cè)器模型的跟蹤準(zhǔn)確率,并盡可能減弱噪聲、干擾以及目標(biāo)形變等對(duì)檢測(cè)器性能的影響.
對(duì)于模板更新因子η,當(dāng)跟蹤目標(biāo)被遮擋或短暫消失時(shí),為保證系統(tǒng)的魯棒性,應(yīng)停止對(duì)目標(biāo)檢測(cè)器的模板更新,此時(shí)更新因子取值為1;當(dāng)目標(biāo)能夠被正常檢測(cè)時(shí),為保證目標(biāo)跟蹤的平滑性,更新因子η應(yīng)根據(jù)實(shí)際工程的調(diào)試情況,取一個(gè)大于0 的較小值[15],以保證目標(biāo)跟蹤的連貫性和平滑性.
KCF 算法的作者Henriques 在其個(gè)人主頁(yè)上公開了算法基于OpenCV 開發(fā)的C++源碼以及Matlab 源碼,相關(guān)資料[5,16]也給出了該源碼在標(biāo)準(zhǔn)測(cè)試集上的性能指標(biāo).但是由于本系統(tǒng)硬件不支持OpenCV 的開發(fā)環(huán)境,即源碼無(wú)法在DSP 上運(yùn)行,且當(dāng)算法在以實(shí)際工程環(huán)境中所采集的視頻數(shù)據(jù)作為測(cè)試數(shù)據(jù)時(shí),原算法提供的評(píng)測(cè)指標(biāo)也不再適用,因此,為滿足系統(tǒng)在實(shí)際工程中的指標(biāo)需求,使其能夠適應(yīng)實(shí)際工程環(huán)境,本算法需要基于系統(tǒng)的硬件平臺(tái)進(jìn)行多方面的優(yōu)化和改進(jìn).
在本系統(tǒng)中,算法的優(yōu)化和改進(jìn)主要面臨以下問(wèn)題:其一,在原代碼中使用的大量OpenCV 庫(kù)函數(shù)無(wú)法在DSP 上直接運(yùn)行;其二,KCF 算法中涉及大量的浮點(diǎn)運(yùn)算,而本系統(tǒng)中所使用的型號(hào)為TMS320C6414的DSP 為定點(diǎn)DSP,浮點(diǎn)運(yùn)算非常慢;其三,此算法中的二維傅里葉變換、圖像插值、矩陣變換等函數(shù)運(yùn)算量大,未優(yōu)化前,這些函數(shù)在本硬件平臺(tái)上運(yùn)行時(shí)無(wú)法滿足實(shí)時(shí)性需求.鑒于以上問(wèn)題,本文針對(duì)TMS320C6414進(jìn)行了以下優(yōu)化[14,15,17-21]:
(1)對(duì)原有的OpenCV 函數(shù)進(jìn)行了重構(gòu),包括圖像插值、矩陣變換、HOG 特征提取、矩陣運(yùn)算、二維傅里葉變換等經(jīng)典算法模塊,在保留功能的基礎(chǔ)上進(jìn)行適當(dāng)裁剪與優(yōu)化,使其能夠適配DSP 的硬件底層.
(2)優(yōu)化算法的內(nèi)存分配機(jī)制,采用靜態(tài)內(nèi)存分配的策略,消除DSP 在算法不斷申請(qǐng)和釋放內(nèi)存過(guò)程中的隱患.
(3)為提高算法的運(yùn)行效率,將算法中的高運(yùn)算量函數(shù)通過(guò)C64X DSP 庫(kù)函數(shù)進(jìn)行實(shí)現(xiàn),使得計(jì)算過(guò)程與底層硬件嚴(yán)格適配.在本系統(tǒng)的算法實(shí)現(xiàn)中使用了DSPLib、ImgLib、FastRTS 3 個(gè)由TI 公司提供的官方庫(kù),主要負(fù)責(zé)算法中高運(yùn)算量步驟的計(jì)算,提升計(jì)算效率.
(4)針對(duì)算法中大量的浮點(diǎn)運(yùn)算,在保證計(jì)算精度指標(biāo)的前提下采用浮點(diǎn)運(yùn)算轉(zhuǎn)定點(diǎn)運(yùn)算的策略.
(5)開通軟件流水線操作,將多層循環(huán)轉(zhuǎn)化為多次迭代并行執(zhí)行.
(6)將算法中大量的數(shù)據(jù)存取和常用的數(shù)學(xué)運(yùn)算等操作使用instrinsic 函數(shù)進(jìn)行優(yōu)化[22],提升算法的運(yùn)行速度.
在本系統(tǒng)實(shí)現(xiàn)過(guò)程中,由于算法基于硬件平臺(tái)的適配性優(yōu)化較多,在此僅攫取這些適配性優(yōu)化中的一例以說(shuō)明優(yōu)化思路和方法.本算法中,點(diǎn)積運(yùn)算的使用頻率較高,對(duì)點(diǎn)積函數(shù)的優(yōu)化會(huì)極大影響系統(tǒng)的工作效率和性能.首先,可對(duì)代碼進(jìn)行編譯器優(yōu)化,C6000的C 優(yōu)化器是TI 的一個(gè)創(chuàng)新,它對(duì)程序循環(huán)的流水處理使得C 代碼的效率得到很大提高,使用時(shí)只需在編譯時(shí)加入優(yōu)化選項(xiàng)即可,在使用中,具體的優(yōu)化編譯命令可參考TI 公司提供的使用指南[22,23].采用優(yōu)化選項(xiàng)進(jìn)行優(yōu)化后,點(diǎn)積函數(shù)的執(zhí)行時(shí)間從1800 周期縮短至159 周期,執(zhí)行效率提升超過(guò)10 倍.除此之外,本算法在運(yùn)算過(guò)程中,點(diǎn)積運(yùn)算所使用的數(shù)據(jù)大多是16 位的short 類型,而C6000 的內(nèi)部數(shù)據(jù)總線和寄存器都是32 位的,因此還可以采用字長(zhǎng)優(yōu)化的方法進(jìn)行優(yōu)化[23].具體做法是:做點(diǎn)積運(yùn)算時(shí),每次使用1 個(gè)LD 指令取2 個(gè)16 位數(shù)據(jù),并進(jìn)一步用C6000 的2 個(gè)16 位乘法器在1 個(gè)周期內(nèi)并行完成2 個(gè)16 位乘法.在C6000的C 編譯器中提供了兩個(gè)特殊的內(nèi)聯(lián)函數(shù)_mpy 和_mpyh,該函數(shù)可以實(shí)現(xiàn)匯編語(yǔ)言中的MPY/MPYH 功能,高效率實(shí)現(xiàn)C 語(yǔ)言中的字長(zhǎng)優(yōu)化問(wèn)題,使C 代碼的效率可以達(dá)到90%以上.經(jīng)過(guò)字長(zhǎng)優(yōu)化以后,點(diǎn)積算法的核心循環(huán)變成了單周期,而且執(zhí)行包達(dá)到了8 條指令并行的最佳性能,點(diǎn)積函數(shù)的執(zhí)行時(shí)間也從159 周期縮短至了66 周期,性能提高1 倍,由此可見,采用以上優(yōu)化方法可以大大提升系統(tǒng)的數(shù)據(jù)處理性能.
在進(jìn)行上述諸多硬件適配性優(yōu)化后,系統(tǒng)成功實(shí)現(xiàn)了基于DSP 的KCF 算法,并且算法在本平臺(tái)的運(yùn)行效率也相對(duì)較高,在實(shí)際的工程環(huán)境中能夠?qū)崿F(xiàn)平均25 fps 的運(yùn)行速度,滿足系統(tǒng)實(shí)時(shí)運(yùn)行的需求以及其他目標(biāo)跟蹤性能指標(biāo)要求.最終的算法流程圖如圖2所示.
對(duì)于整個(gè)目標(biāo)跟蹤系統(tǒng),其在實(shí)際工程環(huán)境中的工作步驟如下:
步驟1.系統(tǒng)上電后進(jìn)入自檢,自檢完成后進(jìn)入工作狀態(tài);
步驟2.視頻采集電路啟動(dòng)拍攝,并將圖片幀流傳入視頻解碼電路進(jìn)行模/數(shù)轉(zhuǎn)換,隨后將轉(zhuǎn)換結(jié)果輸出至FPGA 進(jìn)行數(shù)據(jù)緩存控制;
步驟3.視頻顯示電路將數(shù)字視頻信號(hào)發(fā)送至上位機(jī)控制臺(tái)進(jìn)行顯示,并等待操作人員框選目標(biāo)區(qū)域(目標(biāo)框的大小可根據(jù)跟蹤目標(biāo)的實(shí)際情況進(jìn)行手動(dòng)調(diào)整);
步驟4.目標(biāo)區(qū)域框選完成后,系統(tǒng)進(jìn)入目標(biāo)跟蹤狀態(tài),并將含有該目標(biāo)區(qū)域的圖片作為跟蹤視頻的第一幀圖片;
步驟5.DSP 從緩存區(qū)域讀入幀數(shù)據(jù),并調(diào)用目標(biāo)跟蹤算法更新檢測(cè)器參數(shù),輸出計(jì)算得到的目標(biāo)區(qū)域,同時(shí)輸出控制量使視頻采集電路中的攝像頭跟隨目標(biāo)區(qū)域進(jìn)行移動(dòng)跟蹤;
步驟6.對(duì)后續(xù)幀數(shù)據(jù)重復(fù)上述步驟4 到步驟5,若更換跟蹤目標(biāo),則重復(fù)步驟1 到步驟5.
根據(jù)本系統(tǒng)的應(yīng)用場(chǎng)景,實(shí)驗(yàn)測(cè)試分為標(biāo)準(zhǔn)數(shù)據(jù)集測(cè)試和實(shí)際工程場(chǎng)景測(cè)試兩部分.
標(biāo)準(zhǔn)數(shù)據(jù)集測(cè)試實(shí)驗(yàn)中使用的測(cè)試視頻為Wu 等人在2013年CVPR 上提出的測(cè)試基準(zhǔn)[24],該測(cè)試集Benchmark 中有50 個(gè)測(cè)試視頻.在本實(shí)驗(yàn)中,由于系統(tǒng)的硬件平臺(tái)是以DSP 為核心的嵌入式平臺(tái),其核心處理器的處理性能與通用PC 機(jī)的處理性能不在同一級(jí)別,這就導(dǎo)致平均跟蹤幀率這一性能評(píng)價(jià)指標(biāo)與原算法差距較大,但由于硬件平臺(tái)本身的應(yīng)用背景不同,對(duì)比該指標(biāo)的性能優(yōu)劣并沒(méi)有實(shí)際意義,因此,在標(biāo)準(zhǔn)數(shù)據(jù)集測(cè)試實(shí)驗(yàn)中,本文僅關(guān)注跟蹤準(zhǔn)確率這一指標(biāo).Benchmark 中的50 個(gè)測(cè)試視頻提供了每一幀圖像的人工標(biāo)注值ground truth,該值反映的是每一幀圖像中目標(biāo)框的中心坐標(biāo)值.KCF 算法的作者使用20 像素精度作為算法準(zhǔn)確率的評(píng)判標(biāo)準(zhǔn),即目標(biāo)框中心的預(yù)測(cè)值與ground truth 之間的歐氏距離在20 個(gè)像素以內(nèi)則認(rèn)為該幀跟蹤正確,并以正確跟蹤幀數(shù)的比例作為算法的準(zhǔn)確率.本實(shí)驗(yàn)以KCF 作者公開的算法的Matlab代碼在Benchmark 上的測(cè)試結(jié)果[5,12]作為實(shí)驗(yàn)基準(zhǔn)與本系統(tǒng)在相同測(cè)試集上的運(yùn)行結(jié)果進(jìn)行橫向比較(Gaussian 核+HOG 特征),測(cè)試結(jié)果如表1所示.
圖2 目標(biāo)跟蹤算法流程圖
從測(cè)試結(jié)果來(lái)看,算法在本平臺(tái)上的準(zhǔn)確率與原算法相比下降了0.7%,可以認(rèn)為本系統(tǒng)對(duì)原算法進(jìn)行了復(fù)現(xiàn),算法移植效果良好,與原作者算法的準(zhǔn)確率比較來(lái)看符合實(shí)驗(yàn)預(yù)期.
為模擬真實(shí)的工程環(huán)境,保證測(cè)試視頻片段的多樣性,本實(shí)驗(yàn)使用了不同場(chǎng)景、不同復(fù)雜度的多段視頻作為測(cè)試素材,以檢測(cè)本系統(tǒng)在不同測(cè)試環(huán)境下的魯棒性.測(cè)試視頻均由本系統(tǒng)的圖像采集電路實(shí)時(shí)采集,視頻單幀圖像的分辨率為720×576,通過(guò)視頻解碼電路、視頻顯示電路和上位機(jī)通信電路將采集到的實(shí)時(shí)信號(hào)投射在上位機(jī)界面,操作人員可通過(guò)鍵盤操作選定信號(hào)中的待跟蹤目標(biāo),并調(diào)整跟蹤框尺寸.操作完成后系統(tǒng)便進(jìn)入工作狀態(tài),視頻采集電路的CCD 攝像機(jī)可自動(dòng)跟隨目標(biāo)進(jìn)行二維轉(zhuǎn)動(dòng)(控制信號(hào)由本系統(tǒng)的控制模塊產(chǎn)生),以保證跟蹤目標(biāo)在整個(gè)實(shí)驗(yàn)過(guò)程中一直處于視野范圍內(nèi),并在每一幀圖像中框選出目標(biāo)位置,同時(shí)在上位機(jī)的視頻顯示界面實(shí)時(shí)顯示.其中每一幀的坐標(biāo)原點(diǎn)默認(rèn)為圖像中心位置,在跟蹤過(guò)程中,視頻下方會(huì)實(shí)時(shí)顯示跟蹤框的中心坐標(biāo)值.
表1 標(biāo)準(zhǔn)數(shù)據(jù)集測(cè)試結(jié)果
由于每次實(shí)驗(yàn)中所框選出的目標(biāo)區(qū)域大小不同,因此系統(tǒng)在不同實(shí)驗(yàn)中的跟蹤速度也有差別,實(shí)際測(cè)試中,其平均處理幀率為25 幀/秒,滿足工程應(yīng)用中的實(shí)時(shí)性指標(biāo);在跟蹤準(zhǔn)確率方面,由于測(cè)試數(shù)據(jù)由系統(tǒng)實(shí)時(shí)采集得到,無(wú)法對(duì)視頻進(jìn)行g(shù)round truth 標(biāo)定,因此跟蹤準(zhǔn)確率無(wú)法精確量化.從視覺(jué)上看,系統(tǒng)的跟蹤準(zhǔn)確率處在較高水平,平均可達(dá)95%以上,與標(biāo)準(zhǔn)數(shù)據(jù)集測(cè)試實(shí)驗(yàn)相比性能有較大提升,這主要是由于本系統(tǒng)應(yīng)用于實(shí)際工程環(huán)境中時(shí),視頻采集電路由二軸云臺(tái)進(jìn)行穩(wěn)定控制,云臺(tái)的控制模塊可以根據(jù)視頻處理模塊計(jì)算輸出的目標(biāo)脫靶量對(duì)云臺(tái)運(yùn)動(dòng)進(jìn)行實(shí)時(shí)修正,進(jìn)而可以最大限度地保證CCD 攝像機(jī)的視軸始終處于穩(wěn)定狀態(tài),因此,采集到的視頻數(shù)據(jù)相較于標(biāo)準(zhǔn)測(cè)試集中的視頻數(shù)據(jù)更加穩(wěn)定,抖動(dòng)較小,且目標(biāo)運(yùn)動(dòng)更連貫,目標(biāo)區(qū)域可以一直處于視野中心附近,這對(duì)目標(biāo)跟蹤模塊的功能實(shí)現(xiàn)具有積極作用.圖3為實(shí)際工程場(chǎng)景測(cè)試實(shí)驗(yàn)中使用的上位機(jī)主界面,界面左上角為視頻跟蹤顯示區(qū)域.
圖3 上位機(jī)主界面
4.2.1 場(chǎng)景一
目標(biāo)的平移運(yùn)動(dòng)是目標(biāo)跟蹤過(guò)程中的最簡(jiǎn)單最基本的運(yùn)動(dòng),本場(chǎng)景目的是用來(lái)測(cè)試系統(tǒng)的最大跟蹤角速度,視頻中跟蹤目標(biāo)在測(cè)試人員的控制下以一定速度在桌面上沿橢圓軌跡做循環(huán)往復(fù)運(yùn)動(dòng),測(cè)試結(jié)果如圖4所示.在實(shí)際的工程環(huán)境中,本系統(tǒng)的最大跟蹤角速度可達(dá)20 度/秒.
4.2.2 場(chǎng)景二
在實(shí)際的工程環(huán)境中,待跟蹤的目標(biāo)所處的背景環(huán)境中往往會(huì)出現(xiàn)與目標(biāo)相似的物體,這對(duì)跟蹤結(jié)果會(huì)產(chǎn)生一定的干擾,同時(shí)目標(biāo)在視野中的遠(yuǎn)近位置變化還會(huì)引起尺度變化,系統(tǒng)能否順利應(yīng)對(duì)這種干擾和變化也是系統(tǒng)魯棒性的重要參考標(biāo)準(zhǔn).本場(chǎng)景是實(shí)際公路的航拍片段,以道路上某輛行駛中的小汽車作為跟蹤目標(biāo),其余汽車以及背景中的道路標(biāo)識(shí)為干擾項(xiàng),同時(shí)在汽車由遠(yuǎn)及近的過(guò)程中會(huì)發(fā)生明顯的尺度變化.測(cè)試結(jié)果如圖5所示,從測(cè)試結(jié)果來(lái)看,本系統(tǒng)在該場(chǎng)景下能夠順利避開背景干擾信息,準(zhǔn)確跟蹤指定目標(biāo),且目標(biāo)在由遠(yuǎn)及近的過(guò)程中,系統(tǒng)均可實(shí)現(xiàn)對(duì)目標(biāo)的跟蹤.
圖4 場(chǎng)景一下的跟蹤結(jié)果
圖5 場(chǎng)景二下的跟蹤結(jié)果
4.2.3 場(chǎng)景三
實(shí)際應(yīng)用場(chǎng)景中,跟蹤目標(biāo)所處環(huán)境一般會(huì)出現(xiàn)明暗、陰影等變化,目標(biāo)有時(shí)也會(huì)被遮擋,導(dǎo)致其在視野中發(fā)生較為明顯的形變等.跟蹤系統(tǒng)能否在這種復(fù)雜多變的環(huán)境下完成跟蹤任務(wù),亦是衡量系統(tǒng)可靠性和穩(wěn)定的重要參考標(biāo)準(zhǔn).本場(chǎng)景中將對(duì)公路上行駛的大巴車進(jìn)行跟蹤,在其行駛過(guò)程中會(huì)經(jīng)過(guò)陰影區(qū)、樹木遮擋區(qū)等,并會(huì)發(fā)生一定程度的形變.測(cè)試結(jié)果如圖6所示,在整個(gè)跟蹤過(guò)程中,當(dāng)跟蹤目標(biāo)所處的環(huán)境出現(xiàn)陰影、遮擋時(shí),系統(tǒng)均能正常工作,完成跟蹤任務(wù).
為實(shí)現(xiàn)目標(biāo)跟蹤算法的工程應(yīng)用問(wèn)題,本文提出一種以DSP 為核心處理器、FPGA 為協(xié)處理器的嵌入式目標(biāo)跟蹤系統(tǒng)設(shè)計(jì)方案,并基于此平臺(tái)對(duì)KCF 算法進(jìn)行優(yōu)化與實(shí)現(xiàn),使之能滿足實(shí)際工程應(yīng)用的指標(biāo)要求.本系統(tǒng)具有“小規(guī)模、低成本、高能效”的特點(diǎn),在典型工程環(huán)境中能實(shí)現(xiàn)良好的目標(biāo)跟蹤效果.本目標(biāo)跟蹤系統(tǒng)中還配套開發(fā)了上位機(jī)操作平臺(tái)和視頻采集電路的運(yùn)動(dòng)控制模塊,使得本系統(tǒng)可很好兼容其余功能模塊,極大提高工程項(xiàng)目的開發(fā)效率.本系統(tǒng)的嵌入式硬件平臺(tái)和算法優(yōu)化思想具有通用性,為計(jì)算機(jī)視覺(jué)領(lǐng)域內(nèi)的各類算法的嵌入式應(yīng)用實(shí)現(xiàn)提供參考.
圖6 場(chǎng)景三下的跟蹤結(jié)果