, ,,
(1.川北幼兒師范高等專(zhuān)科學(xué)校,四川 廣元 628017; 2.山西大學(xué) 軟件學(xué)院,太原 030013)
目標(biāo)跟蹤技術(shù)[1]在機(jī)器視覺(jué)、模式識(shí)別等諸多方面均有重要的應(yīng)用,它以圖像處理技術(shù)為主,將光學(xué)、計(jì)算機(jī)控制和幾何運(yùn)算等技術(shù)融為一體,可通過(guò)圖像處理程序的串行實(shí)現(xiàn)目標(biāo)捕獲,識(shí)別和跟蹤[2]。目前的跟蹤技術(shù)已廣泛應(yīng)用于多個(gè)領(lǐng)域:如氣象云圖分析[3]、智能交通視頻監(jiān)控系統(tǒng)[4]等。在這些系統(tǒng)中,如何獲得魯棒快速的跟蹤,是該領(lǐng)域的研究關(guān)鍵。
一般跟蹤算法中最重要的是目標(biāo)表示形式,如:顏色直方圖特征[5]、直方圖方向梯度[6]、Harr特征描述符[7]和角點(diǎn)特征[8]等,已經(jīng)有很多研究者對(duì)其進(jìn)行了大量研究,下面介紹幾個(gè)具有代表性的目標(biāo)跟蹤算法。
文獻(xiàn)[9]提出一種二次約束的目標(biāo)跟蹤算法,在目標(biāo)定位的搜索機(jī)制中,使用二次等式約束的Kalman濾波器提高跟蹤精度,同時(shí)匹配和更新目標(biāo)外觀(guān)模型。但這種方法容易陷入局部最優(yōu),Kalman濾波的假設(shè)前提條件也比較多。
文獻(xiàn)[10]提出了很有名的TLD算法,即跟蹤-學(xué)習(xí)-檢測(cè),將學(xué)習(xí)方法融入到目標(biāo)跟蹤系統(tǒng)中,利用N-P專(zhuān)家的學(xué)習(xí)對(duì)跟蹤和檢測(cè)出現(xiàn)的正負(fù)樣本進(jìn)行分類(lèi),同時(shí),跟蹤模板和檢測(cè)模板也相應(yīng)進(jìn)行更新。雖然TLD跟蹤單個(gè)目標(biāo)準(zhǔn)確且穩(wěn)定,但NP學(xué)習(xí)比較耗時(shí),而且這種算法僅限于單目標(biāo)跟蹤,因?yàn)镹P學(xué)習(xí)無(wú)法擴(kuò)展到多目標(biāo)的學(xué)習(xí)中。
文獻(xiàn)[11]提出了粒子濾波的隨機(jī)搜索算法,該算法可以消除局部最小化問(wèn)題,一般目標(biāo)的外觀(guān)模型隨時(shí)間變化而變化,例如光照變化,溫度濕度變化,這時(shí)目標(biāo)需要正則化更新。但是,不恰當(dāng)?shù)母虏僮鲿?huì)導(dǎo)致目標(biāo)漂移。
文獻(xiàn)[12]利用在線(xiàn)更新外觀(guān)模型,充分挖掘目標(biāo)周?chē)植康目梢晹?shù)據(jù),在背景粒子的協(xié)助下選擇判別特征,但該算法的更新過(guò)程計(jì)算量較大,實(shí)時(shí)性比較弱。
以上方法均在實(shí)時(shí)性方面具有較大的缺點(diǎn),這可能有兩方面原因,一方面是算法本身比較復(fù)雜,另一方面在實(shí)現(xiàn)過(guò)程中實(shí)現(xiàn)的方法造成大量的運(yùn)算時(shí)間。本文是一種嵌入式的算法設(shè)計(jì),本文圍繞目標(biāo)的角點(diǎn)特征展開(kāi),這是因?yàn)榻屈c(diǎn)特征集中了大量的圖像信息,且很少受光照變化影響[8]。且它具有旋轉(zhuǎn)不變性,僅含約0.05%的圖像像素,需要處理的數(shù)據(jù)非常小,非常適合嵌入式開(kāi)發(fā)的實(shí)時(shí)要求,本文的主要貢獻(xiàn)如下:
1)提出一種圍繞角點(diǎn)的多級(jí)跟蹤算法,這些算法沒(méi)有復(fù)雜華麗的推導(dǎo)和理論,但非常實(shí)用,這種設(shè)計(jì)思想很大程度上啟發(fā)于AVT21開(kāi)發(fā)板(一種比較通用的跟蹤開(kāi)發(fā)板,可以在網(wǎng)上搜索相關(guān)介紹)的設(shè)計(jì)思想。
2)設(shè)計(jì)一種DSP-FPGA硬件實(shí)現(xiàn)框架,這種硬件設(shè)計(jì)使算法、控制、接口等處理更加優(yōu)化。
目標(biāo)跟蹤過(guò)程中,選擇一種好的特征提取算法非常重要,圖像中,目標(biāo)角點(diǎn)是重要的局部特征,它集中了大量的重要圖像信息,具有旋轉(zhuǎn)不變性和對(duì)光照的魯棒性,且需要處理的數(shù)據(jù)非常少。因此,角點(diǎn)檢測(cè)已應(yīng)用于許多重要的實(shí)踐中,特別是,實(shí)時(shí)目標(biāo)跟蹤領(lǐng)域。目前,很多采用角點(diǎn)檢測(cè)的目標(biāo)跟蹤算法主要基于SUSAN和Harris算法[13]。提出的算法使用Harris算法提取目標(biāo)角點(diǎn)特征。
光流(Lucas Kanade, LK)也是一種完善且廣泛使用的算法,由于該算法僅依賴(lài)局部信息,而局部信息來(lái)源于提取出的角點(diǎn)周?chē)鷧^(qū)域,因此可以用于處理稀疏紋理圖像。然而,LK光流算法的缺點(diǎn)是大幅度運(yùn)動(dòng)會(huì)將角點(diǎn)移出局部窗口,從而使LK算法難以發(fā)揮作用。
金字塔LK算法可消弱這種缺陷,即首先從圖像金字塔的最高層開(kāi)始處理,逐步處理到金字塔的最低層,圖像金字塔的最高層擁有最少最簡(jiǎn)化的細(xì)節(jié)信息,具體過(guò)程如圖1所示。
圖1 金字塔LK光流算法
目標(biāo)跟蹤誤差是在參考圖像塊以及第二幀變換圖像塊之間的圖像網(wǎng)格上測(cè)量,而圖像I1和I2之間的映射誤差是相應(yīng)像素之間的色差,表示如下:
(1)
(2)
(3)
式中,h表示空間帶寬,σ為顏色誤差的比例,ρ(u)為雙加權(quán)損失函數(shù)。對(duì)于多變化情況,該損失函數(shù)通過(guò)論證準(zhǔn)則來(lái)計(jì)算。鄰域應(yīng)包含足夠多局部信息,確保一階近似中較大誤差不影響估計(jì)。Ke為完全對(duì)稱(chēng)的內(nèi)核函數(shù),本文選取Bhattacharyya核函數(shù)。
統(tǒng)計(jì)學(xué)中,Bhattacharyya距離是一種廣泛應(yīng)用的距離測(cè)量算法,即對(duì)于給定高斯分布gi,gj,其計(jì)算如下:
(4)
(5)
提出的目標(biāo)跟蹤算法主要包含使用基于光流的特征點(diǎn)匹配算法,通過(guò)目標(biāo)角點(diǎn)檢測(cè)和匹配,描述如下。
步驟1:選擇目標(biāo)區(qū)域后預(yù)處理圖像。為了消除噪聲,采用中值濾波算法。3×3模板的濾波器在具有很高的并行處理能力的現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array, FPGA)[14]中編程時(shí),處理速度更快,數(shù)值結(jié)果更好。
步驟2:使用Harris算法在目標(biāo)區(qū)域中提取角點(diǎn)特征,同時(shí)刪除預(yù)選目標(biāo)區(qū)域內(nèi)背景的特征點(diǎn)。在該目標(biāo)跟蹤系統(tǒng)中,首先手動(dòng)選擇目標(biāo)圖像區(qū)域,由于目標(biāo)區(qū)域比整個(gè)圖像尺寸小,此過(guò)程需要較少時(shí)間。由于兩個(gè)相鄰圖像幀之間的目標(biāo)位移非常小,提出的算法僅在目標(biāo)周?chē)^小區(qū)域中計(jì)算目標(biāo)位移。
步驟3:通過(guò)金字塔LK光流法為后續(xù)圖像幀匹配圖像角點(diǎn),該算法雖然精度高,但它需要較長(zhǎng)時(shí)間,使得當(dāng)目標(biāo)和其圖像都很大時(shí)不能滿(mǎn)足實(shí)時(shí)性要求。為了克服該缺點(diǎn),提出的算法中僅使用合理角點(diǎn)特征,以減少計(jì)算時(shí)間,借鑒Opencv里源碼處理角點(diǎn)的方式。
步驟4:計(jì)算匹配點(diǎn),并通過(guò)質(zhì)心算法得到目標(biāo)位置。當(dāng)使用金字塔LK法在后續(xù)幀中計(jì)算特征角點(diǎn)的新位置時(shí),可能與之前步驟中計(jì)算的之前的位置有一些小的匹配點(diǎn)偏差,由于旋轉(zhuǎn)和被跟蹤目標(biāo)的失真。實(shí)驗(yàn)結(jié)果還表明,大多數(shù)匹配點(diǎn)接近目標(biāo),僅幾個(gè)點(diǎn)由于目標(biāo)旋轉(zhuǎn)、扭曲和/或屏蔽偏離目標(biāo)。為了得到正確的結(jié)果,提出的算法必須考慮所有匹配點(diǎn),采用質(zhì)心法來(lái)計(jì)算所有匹配角點(diǎn)的質(zhì)心。
關(guān)于質(zhì)心算法,一般是通過(guò)黑熱化或白熱化操作,對(duì)原有圖像幀進(jìn)行二值化處理,這個(gè)處理直接關(guān)系到最終的質(zhì)心運(yùn)算的準(zhǔn)確度[15]。這里要著重說(shuō)明下,本文直接獲得角點(diǎn)位置,利用角點(diǎn)位置計(jì)算質(zhì)心位置,不需要進(jìn)行二值化處理。
為了高速處理整個(gè)跟蹤算法,設(shè)計(jì)了一種硬件系統(tǒng),具有高速處理器數(shù)字信號(hào)處理器(Digital Signal Processor, DSP)和FPGA。
提出的實(shí)時(shí)目標(biāo)跟蹤的硬件系統(tǒng)主要構(gòu)成有:核心芯片TMS320C6416T[13]作為數(shù)字信號(hào)處理器、可編程邏輯芯片組CPLD和現(xiàn)場(chǎng)可編程陣列FPGA,硬件設(shè)計(jì)如圖2所示。
圖2 硬件結(jié)構(gòu)
硬件的主要部分包括視頻信號(hào)處理器、高速率模數(shù)(A / D)、數(shù)字圖像存儲(chǔ)器、轉(zhuǎn)換器數(shù)字圖像處理器、數(shù)據(jù)分析器、計(jì)算機(jī)數(shù)據(jù)通信接口RS232以及同步和加法器顯示。圖2中的流程圖可以大致描述如下:預(yù)處理圖像傳感器中的模擬視頻信號(hào)經(jīng)過(guò)固定、濾波和放大,可以基本滿(mǎn)足A / D輸入視頻信號(hào)的需求。接著,此信號(hào)由具有8 bit的高速率A / D轉(zhuǎn)換器采樣,輸出的信號(hào)直接發(fā)送到FPGA,該系統(tǒng)在運(yùn)行預(yù)處理算法的同時(shí),還執(zhí)行其它函數(shù)。DSP芯片讀取由FPGA處理過(guò)的數(shù)據(jù),通過(guò)FPGA實(shí)現(xiàn)的雙口RAM內(nèi)存,并行運(yùn)行跟蹤算法。數(shù)據(jù)包括由DSP計(jì)算的目標(biāo)位置,經(jīng)過(guò)PCI端口發(fā)送到伺服系統(tǒng)。DSP的外部同步信號(hào)作為控制信號(hào), CPLD的外部同步信號(hào)作為參考信號(hào)。特征發(fā)生芯片組(UPD6464)由DSP的多信道緩沖串行端口(Multi-channel Buffer Serial Port, McBSP)控制。然后添加UPD6464特征信號(hào)到該模擬信號(hào),這樣,所計(jì)算的數(shù)據(jù)信號(hào)最終顯示在顯示器上。
作為核心處理器,TMS320C6416T運(yùn)行目標(biāo)跟蹤算法,并計(jì)算所述目標(biāo)實(shí)時(shí)位置,處理器以EDMA模式,通過(guò)DSP的EMIFB端口,直接從雙端口的RAM(即DPRAM)上讀取圖像數(shù)據(jù)。
盡管使用德州儀器公司制造的高性能DSP處理器,該系統(tǒng)仍很難完成較大圖像數(shù)據(jù)的實(shí)時(shí)處理任務(wù)。因此,可以看出,結(jié)合了FPGA和DSP芯片的快速目標(biāo)跟蹤系統(tǒng)可以實(shí)現(xiàn)軟件硬化和硬件軟化。其中,中值濾波、雙閾值處理和邊緣提取操作這些耗時(shí)處理由高度并行化的FPGA完成。同時(shí),F(xiàn)PGA方便了電路設(shè)計(jì)和算法修改,使用硬件描述程序語(yǔ)言(Hardware description Language, HDL)來(lái)實(shí)現(xiàn)硬件算法、邏輯控制和外部接口等,而DSP則運(yùn)行復(fù)雜的目標(biāo)跟蹤算法。
圖3是本文算法所用的開(kāi)發(fā)板,基本上與AVT21的尺寸大小差不多。
圖3 算法實(shí)現(xiàn)的開(kāi)發(fā)板
實(shí)驗(yàn)比較了4個(gè)算法,其中算法1是AVT21開(kāi)發(fā)板的質(zhì)心跟蹤算法,該算法具有較高速度,適用于當(dāng)背景很簡(jiǎn)單,如黑色或白色明顯的目標(biāo)。算法2是基于金字塔相關(guān)性[14]的跟蹤算法,其中目標(biāo)模板的大小是目標(biāo)跟蹤區(qū)的四分之一,算法3是AVT21開(kāi)發(fā)板上的相位相關(guān)跟蹤算法,算法4是本文提出的算法,算法1和3是基于AVT21開(kāi)發(fā)板的,算法2和4是基于本文的高速目標(biāo)跟蹤系統(tǒng)。
本文利用兩個(gè)評(píng)估指標(biāo)評(píng)價(jià)嵌入式跟蹤器的性能:重疊和均方差(Root Mean Square Estimation,RMSE),前者量化為:
(6)
(7)
式中,N是總幀數(shù)。
圖4所示為使用提出算法的目標(biāo)跟蹤測(cè)試結(jié)果。圖4(a)是初始圖像,手動(dòng)選擇目標(biāo)區(qū)域,預(yù)處理后由Harris算法提取角特性。七個(gè)角特性由符號(hào)“×”表示,這也是光流算法匹配的對(duì)象。圖4(b)~(e)為單獨(dú)匹配和跟蹤測(cè)試中第5幀、第158幀、第252幀、第288幀的結(jié)果。圖3中符號(hào)“+”表示光流算法的匹配點(diǎn)。雖然目標(biāo)在圖4(b)幾乎無(wú)變化、在圖4(c)中有小旋轉(zhuǎn)、在圖4(d)比圖4(a)中存在模糊現(xiàn)象,提出的算法能夠正確地得到匹配角特征,并成功地跟蹤目標(biāo)。如圖4(e)所示,由于目標(biāo)圖像很大且旋轉(zhuǎn),一些特征角點(diǎn)偏離初始位置。對(duì)于圖4(e)的情況,應(yīng)使用質(zhì)心算法來(lái)計(jì)算特征角點(diǎn)的質(zhì)心,以確定目標(biāo)位移和位置。
圖4 飛機(jī)的跟蹤分析和結(jié)果
圖5是使用遮蔽直升機(jī)的另一測(cè)試。其中,圖5(a)表示手動(dòng)選擇目標(biāo)區(qū)域的初始圖像,如圖5(b)~(f)分別呈現(xiàn)了第70幀、第75幀、第77幀、第85幀、第110幀的跟蹤結(jié)果,從圖5中可以看到,當(dāng)高塔輕微遮蔽直升機(jī)時(shí),提出的算法可以準(zhǔn)確地跟蹤目標(biāo)。
圖6所示為坦克目標(biāo)的跟蹤實(shí)驗(yàn)結(jié)果,其中背景非常復(fù)雜。圖6(a)~(d)分別呈現(xiàn)第10幀、第147幀、第192幀、第210幀的跟蹤結(jié)果。從圖5(c)中可以看到,當(dāng)坦克幾乎由煙遮蔽時(shí)目標(biāo)丟失,其中無(wú)坦克角特征提取。
表1和表2是各算法的重疊和RMSE指標(biāo)結(jié)果,加粗代表最優(yōu)數(shù)據(jù),可以看出本文算法獲得了最好的結(jié)果,這表明了嵌入式開(kāi)發(fā)中算法設(shè)計(jì)并不是越復(fù)雜越好,嵌入式開(kāi)發(fā)的核心原則是在實(shí)現(xiàn)的可能性和精度中尋求一個(gè)折中方案。
圖6 坦克視頻的測(cè)試結(jié)果
表1 各方法對(duì)每個(gè)視頻序列的平均重疊
表2 各方法對(duì)每個(gè)視頻序列的中心誤差(RMSE)
表3所示為不同算法的處理速度比較,所有這些實(shí)驗(yàn)在高速目標(biāo)跟蹤系統(tǒng)上完成。從表3可以看出本文算法只比單純的質(zhì)心跟蹤算法稍微慢一點(diǎn),這充分體現(xiàn)了較好的硬件設(shè)計(jì)所帶來(lái)的好處。
對(duì)于720×576和1080×720(720p)兩種視頻流,比較了各自的幀率,從幀率捕捉器上獲得的數(shù)據(jù)如表4所示。可以看出本文算法達(dá)到了非常高的實(shí)時(shí)要求,與AVT21開(kāi)發(fā)板上的跟蹤算法基本沒(méi)有太大區(qū)別。
表3 不同方法的處理速度
表4 不同幀率的比較
本文提出了使用角點(diǎn)檢測(cè)基于金字塔光流算法的目標(biāo)跟蹤。該算法首先使用Harris方法提取角點(diǎn)特征,然后使用金字塔光流法為后續(xù)視頻幀提取角點(diǎn)特征,質(zhì)心算法用來(lái)確定目標(biāo)位置。根據(jù)數(shù)值研究結(jié)果的分析和討論,可以得出結(jié)論,提出的方法具有較高的目標(biāo)跟蹤精確度,
總之,對(duì)于嵌入式開(kāi)發(fā),特別是對(duì)于軍事目標(biāo)跟蹤具有比較好的現(xiàn)實(shí)意義,而且算法已經(jīng)在開(kāi)發(fā)板上運(yùn)行,但從純粹的算法角度看,它僅適用于跟蹤小目標(biāo),未來(lái)將逐漸彌補(bǔ)這些設(shè)計(jì)缺陷。
參考文獻(xiàn):
[1] 王 鑫, 徐立中. 圖像目標(biāo)跟蹤技術(shù)[M]. 北京:人民郵電出版社, 2012.
[2] 覃為廣, 宋鴻陟, 彭紅星,等. 改進(jìn)的自適應(yīng)顏色屬性目標(biāo)跟蹤算法[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2016, 37(3): 803-808.
[3] 謝永華, 胡學(xué)嶺, 張恒德. 基于多尺度分析的地基云圖自動(dòng)識(shí)別的研究[J]. 計(jì)算機(jī)仿真, 2014, 31(11): 212-216.
[4] Feng L, Liu Z, Qi J. Study of target detection methods in video tracking system[J]. Microcomputer & Its Applications, 2014, 31(4): 1356-1361.
[5] Ning J, Zhang L, Zhang D, et al. Robust mean-shift tracking with corrected background-weighted histogram[J]. IET Computer Vision, 2012, 17(1): 62-69.
[6] Li W, Lin Y, Fu B, et al. Cascade Classifier Using Combination of Histograms of Oriented Gradients for Rapid Pedestrian Detection[J]. Journal of Software, 2013, 8(1): 1532-1539.
[7] 楊 蕾. 基于云臺(tái)攝像機(jī)的異常事件實(shí)時(shí)檢測(cè)跟蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué), 2014.
[8] 劉 博, 陳 劍, 周 平,等. 基于多特征的實(shí)時(shí)立體視覺(jué)檢測(cè)方法[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2015, 36(12): 3339-3343.
[9] 曹亞陸, 楊 樂(lè), 劉全勝,等. 一種帶二次等式約束的卡爾曼濾波目標(biāo)跟蹤算法[J]. 軟件學(xué)報(bào), 2013, 32(7): 659-665.
[10] Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection[J]. Pattern Analysis and Machine Intelligence, 2012, 34(7): 1409-1422.
[11] Luo R, Ying L I, Qian G, et al. Particle Filter Algorithm Based on Improved Adaptive Resampling[J]. Opto-Electronic Engineering, 2014, 34(3): 1635-1641.
[12] Xiao J, Stolkin R, Leonardis A. An enhanced adaptive coupled-layer LGTracker++[A]. IEEE International Conference on Computer Vision Works, ICCVW[C]. 2013, 137-144.
[13] 王 民, 周兆鎮(zhèn), 李昌華,等. 基于像素點(diǎn)灰度差的Harris角點(diǎn)檢測(cè)算法[J]. 計(jì)算機(jī)工程, 2015, 42(6): 227-230.
[14] Song H J, Ming Z, Hu S. The real-time target track process system design and the fast arithmetic research[J]. Proceedings of SPIE - The International Society for Optical Engineering, 2005, 27(3): 474-477.
[15] 劉云清, 姜會(huì)林, 佟首峰. 大氣激光通信中穩(wěn)定跟蹤器件及算法研究[J]. 中國(guó)激光, 2012, 37(5): 124-131.