嚴(yán) 飛,馬 可,劉 佳,劉銀萍,夏金鋒
1.南京信息工程大學(xué) 自動(dòng)化學(xué)院,南京 210044 2.江蘇省大氣環(huán)境與裝備技術(shù)協(xié)同創(chuàng)新中心,南京 210044 3.南京信息工程大學(xué) 大氣物理學(xué)院,南京 210044
近年來,視覺目標(biāo)跟蹤和物聯(lián)網(wǎng)技術(shù)在增強(qiáng)現(xiàn)實(shí)、智能視頻監(jiān)控、目標(biāo)識(shí)別、醫(yī)學(xué)診斷、視覺導(dǎo)航和空間監(jiān)控等領(lǐng)域得到了廣泛應(yīng)用[1]。在跟蹤目標(biāo)性能評(píng)估中,跟蹤效果一般通過準(zhǔn)確性和實(shí)時(shí)性進(jìn)行評(píng)估[2]。視頻中的目標(biāo)在運(yùn)動(dòng)過程中可能會(huì)受到光照、飛行姿態(tài)、背景等各種不可預(yù)知的復(fù)雜變化的影響[3]。因此,在實(shí)際環(huán)境中建立一種通用、準(zhǔn)確、穩(wěn)定的魯棒視覺目標(biāo)跟蹤算法仍然是一個(gè)巨大的挑戰(zhàn)[4]。在跟蹤無人機(jī)方面,一個(gè)好的跟蹤算法可以使無人機(jī)在背景復(fù)雜、光線改變、尺寸較小等場景表現(xiàn)更好的魯棒性[5]。
精確穩(wěn)定的魯棒視覺目標(biāo)跟蹤算法能夠更好地適應(yīng)各種情景。針對(duì)這一問題,許多學(xué)者也給出了自己的觀點(diǎn)和研究成果。Fukunaga等人[6]提出Mean-Shift(均值漂移)算法,該算法有較好的實(shí)時(shí)性和有效性,但是當(dāng)目標(biāo)的大小逐漸增大甚至超過核帶寬范圍時(shí),固定邊界盒往往會(huì)導(dǎo)致跟蹤的丟失;文獻(xiàn)[7]提出了一種利用SIFT算法提取目標(biāo)特征尺度、特征點(diǎn)主方向等參數(shù),然后用均值漂移進(jìn)行目標(biāo)定位的方法,但該方法存在計(jì)算量大、實(shí)時(shí)性差等缺點(diǎn);Wang等人[8]提出了一種精確、魯棒的增強(qiáng)跟蹤方法,該算法采用了一種靈活的三維物體外觀模型,結(jié)合了局部和全局視覺表示的優(yōu)點(diǎn),克服了跟蹤失敗的缺點(diǎn);在跟蹤方面也有一些經(jīng)典算法,如卡爾曼濾波[9]、貝葉斯算法[10-12]等;Li等人[13]提出了改進(jìn)的視覺目標(biāo)跟蹤算法ENS-CSK,該算法能夠更好地匹配物聯(lián)網(wǎng)技術(shù)下的視覺目標(biāo)跟蹤,但是當(dāng)目標(biāo)外觀發(fā)生顯著變化時(shí),跟蹤失敗,難以恢復(fù)和重新啟動(dòng)跟蹤;Somayyeh等人[14]提出了一種基于簡化粒子濾波遺傳算法(reduced particle filter based upon genetic algorithm,RPFGA)的圖像序列多目標(biāo)并行跟蹤方法,利用狀態(tài)空間模型中的加速度和速度,可以實(shí)現(xiàn)對(duì)勻速和加速度目標(biāo)的跟蹤,但是在標(biāo)記方法中,由觀測器對(duì)跟蹤目標(biāo)的一部分進(jìn)行標(biāo)記,如果觀測器沒有準(zhǔn)確地標(biāo)記目標(biāo),則會(huì)降低跟蹤功率;董蓉等人[15]提出一種基于局部不變特征點(diǎn)數(shù)據(jù)集的目標(biāo)跟蹤算法,該算法能準(zhǔn)確地定位目標(biāo),跟蹤其方向變化和目標(biāo)大小,而且對(duì)遮擋下的目標(biāo)狀態(tài)也可以正確估計(jì),但是如果目標(biāo)紋理非常稀少,會(huì)導(dǎo)致提取的局部不變特征也較少,目標(biāo)狀態(tài)估計(jì)結(jié)果可能不穩(wěn)定。
在跟蹤目標(biāo)過程中,為了解決跟蹤速度問題,呂清松等人[16]提出基于一種基于FPGA(field programmable gate array)的顏色特征的目標(biāo)識(shí)別與追蹤系統(tǒng),該系統(tǒng)有良好的實(shí)時(shí)性,可以實(shí)時(shí)跟蹤640×480@60 Hz的視頻流,但是該方法識(shí)別顏色單一,不能準(zhǔn)確識(shí)別復(fù)雜背景下的目標(biāo)。夏浩偉[17]針對(duì)目標(biāo)與背景顏色相近的情況提出一種基于FPGA的彩色輪廓加強(qiáng)算法,結(jié)合均值漂移算法實(shí)現(xiàn)了目標(biāo)跟蹤的魯棒性。彩色輪廓增強(qiáng)和均值漂移相結(jié)合的跟蹤算法比均值漂移跟蹤算法具有更好的魯棒性。而且能夠在1080P@60 Hz的情況下實(shí)現(xiàn)實(shí)時(shí)的目標(biāo)跟蹤,雖然該算法實(shí)時(shí)性高,但如果目標(biāo)移動(dòng)過快,會(huì)出現(xiàn)跟丟的情況,因此不擅長跟蹤機(jī)動(dòng)性較強(qiáng)的無人機(jī)。Henriques等人[18]提出核相關(guān)濾波算法(kernel correlation filter,KCF),該方法首先需要手動(dòng)框選一個(gè)窗口作為跟蹤目標(biāo),并通過訓(xùn)練樣本建立一個(gè)濾波器,然后通過相關(guān)性計(jì)算找到目標(biāo)。該方法在跟蹤方面有較高的準(zhǔn)確性,同時(shí)在實(shí)時(shí)性方面表現(xiàn)也十分理想,但是該方法對(duì)快速移動(dòng)的物體,跟蹤性能比較差。李艷荻等人[19]提出了一種基于動(dòng)態(tài)特征塊匹配的自適應(yīng)背景更新算法。在采用幀與背景差融合算法檢測目標(biāo)的基礎(chǔ)上,利用目標(biāo)的時(shí)刻信息跟蹤目標(biāo),避免了全景視覺中缺少顏色和輪廓特征的缺點(diǎn)。該算法減少了更新單個(gè)像素點(diǎn)的冗余計(jì)算,充分利用了像素點(diǎn)的空間分布信息,滿足了運(yùn)動(dòng)目標(biāo)檢測的準(zhǔn)確性和完整性,但是該算法只能針對(duì)背景不變的情況下進(jìn)行跟蹤,不適應(yīng)跟蹤無人機(jī)背景實(shí)時(shí)變化的場景。針對(duì)幀差法容易受到圖像處理效果和外界干擾問題,伍濟(jì)鋼等人[20]提出了光流點(diǎn)匹配跟蹤方法,避免了逐幀進(jìn)行特征分割、提取等復(fù)雜的圖像處理,同時(shí)在準(zhǔn)確度和抗干擾方面有不錯(cuò)的表現(xiàn)。唐瑞等人[21]提出了一種完整有效的建立數(shù)據(jù)模板庫的目標(biāo)匹配識(shí)別算法,利用相似度匹配原理識(shí)別目標(biāo),獲取目標(biāo)姿態(tài)信息。然而,在檢測過程中,目標(biāo)檢測結(jié)果往往伴隨著較大的干擾陰影,這可能會(huì)造成運(yùn)動(dòng)目標(biāo)本身的形狀變形以及鄰近目標(biāo)的合并,從而導(dǎo)致誤檢測和漏檢。
針對(duì)跟蹤過程中出現(xiàn)的對(duì)背景復(fù)雜、光照變化、目標(biāo)較小、移動(dòng)速度快等情景的目標(biāo)跟蹤準(zhǔn)確度和實(shí)時(shí)性問題,本文提出一種基于FPGA的自適應(yīng)跟蹤算法。將目標(biāo)模板與搜索區(qū)域數(shù)據(jù)進(jìn)行儲(chǔ)存,然后通過遍歷的方式在搜索區(qū)域找到相關(guān)度最高的區(qū)域,同時(shí)當(dāng)背景發(fā)生變化時(shí),會(huì)自適應(yīng)更新模板數(shù)據(jù),提高跟蹤準(zhǔn)確度。本文算法可以在跟蹤準(zhǔn)確度方面有理想的跟蹤效果,同時(shí)本文算法基于FPGA平臺(tái)設(shè)計(jì),利用FPGA對(duì)數(shù)據(jù)并行處理,節(jié)省處理時(shí)間,滿足實(shí)時(shí)性的要求。
為了滿足追蹤過程中對(duì)于準(zhǔn)確度與實(shí)時(shí)性的需求,本文提出一種基于FPGA平臺(tái)的無人機(jī)跟蹤系統(tǒng)。首先構(gòu)建一個(gè)測試系統(tǒng),該系統(tǒng)包括視頻的輸入和輸出設(shè)備,還有FPGA芯片和串口等。因此,該實(shí)驗(yàn)系統(tǒng)主要分為硬件和算法設(shè)計(jì)兩部分,該系統(tǒng)的流程如圖1所示。
圖1 該系統(tǒng)的流程總體框圖Fig.1 Overall flow diagram of system
系統(tǒng)通過上位機(jī)采集視頻,上位機(jī)將已經(jīng)拍攝好的視頻通過HDMI傳輸給解碼芯片ADV7611,解碼之后得到有效像素?cái)?shù)據(jù)流和行場同步信號(hào),然后將數(shù)據(jù)流發(fā)送給FPGA,方便FPGA對(duì)數(shù)據(jù)流進(jìn)行后續(xù)處理。
圖像數(shù)據(jù)經(jīng)過FPGA處理模塊處理之后,得到帶有目標(biāo)框選的有效像素?cái)?shù)據(jù)流和行場同步信號(hào),然后將數(shù)據(jù)流輸出給編碼芯片ADV7513,最后編碼芯片將數(shù)字視頻信號(hào)轉(zhuǎn)換成模擬視頻信號(hào),通過HDMI將模擬視頻信號(hào)傳輸給顯示屏進(jìn)行顯示,方便通過顯示屏直接觀察跟蹤效果。
系統(tǒng)在上位機(jī)發(fā)送給FPGA視頻流之前,首先將視頻第一幀跟蹤目標(biāo)左上角的坐標(biāo)和無人機(jī)尺寸通過串口發(fā)送給FPGA,使FPGA在接收到視頻流后,根據(jù)接收到的目標(biāo)坐標(biāo)和尺寸確定第一幀的框選目標(biāo),并將目標(biāo)區(qū)域數(shù)據(jù)進(jìn)行保存和后續(xù)處理。
FPGA對(duì)每一幀進(jìn)行跟蹤處理,跟蹤之后得到目標(biāo)位置,通過串口實(shí)時(shí)將目標(biāo)位置發(fā)送給上位機(jī),然后上位機(jī)進(jìn)行重疊率計(jì)算,可以直觀看到跟蹤的實(shí)時(shí)重疊率波形圖及平均重疊率數(shù)據(jù)。
為了更好地反映圖像的形態(tài)特征,同時(shí)為了降低數(shù)據(jù)處理量,選擇對(duì)接收到24位(RGB888)圖像數(shù)據(jù)進(jìn)行灰度處理得到范圍為0~255的8位數(shù)據(jù),就得到了灰度圖像數(shù)據(jù)。這樣在數(shù)據(jù)方面只需要對(duì)8位灰度數(shù)據(jù)進(jìn)行處理,相比較原彩色圖像24位圖像數(shù)據(jù),灰度圖像數(shù)據(jù)計(jì)算量降低,同時(shí)考慮顯示效果,在目標(biāo)跟蹤模塊采用灰度數(shù)據(jù)進(jìn)行計(jì)算,顯示屏選擇彩色圖像,其中灰度計(jì)算方法如式(1)所示。
式中,R、G、B分別表示RGB888的紅色、綠色、藍(lán)色通道數(shù)據(jù),Y1表示得到的灰度數(shù)據(jù)。
實(shí)際上,由于FPGA不能對(duì)浮點(diǎn)型進(jìn)行計(jì)算,需要先對(duì)式(1)進(jìn)行放大256倍處理,如式(2)所示,得到Y(jié)2后再進(jìn)行除以256處理得到灰度值。
根據(jù)FPGA并行運(yùn)算特點(diǎn),將R、G、B通道數(shù)據(jù)同時(shí)乘以對(duì)應(yīng)的權(quán)值,并將得到的值相加,取高8位數(shù)據(jù)得到最后的灰度值,這樣完成灰度處理只需一步,即一個(gè)時(shí)鐘周期。該系統(tǒng)輸入時(shí)鐘為50 MHz,通過PLL產(chǎn)生200 MHz時(shí)鐘作為灰度處理的時(shí)鐘,則每一個(gè)時(shí)鐘周期即5 ns,每個(gè)像素點(diǎn)的灰度處理只需5 ns就可以完成。
首先選用一張數(shù)據(jù)格式為RGB888,圖像分辨率為320×240的圖像,采用FPGA對(duì)圖像提取其中的R、G、B數(shù)據(jù),并將RGB數(shù)據(jù)帶入式(2)中,計(jì)算得到Y(jié)2。然后對(duì)Y2除以256,將計(jì)算得到的數(shù)據(jù)Y2分別賦值給R、G、B數(shù)據(jù),使R、G、B數(shù)據(jù)相同,并將計(jì)算之后得到的RGB數(shù)據(jù)通過ADV7513編碼芯片進(jìn)行編碼,通過HDMI傳輸給顯示屏進(jìn)行顯示?;叶绒D(zhuǎn)換前后圖片對(duì)比如圖2(a)所示,灰度轉(zhuǎn)換前后R、G、B數(shù)據(jù)的modelsim仿真圖如圖2(b)所示。
圖2 灰度轉(zhuǎn)換前后結(jié)果對(duì)比Fig.2 Comparison of results before and after gray scale conversion
1.4.1 目標(biāo)模板的存儲(chǔ)
在無人機(jī)跟蹤過程中,需要將目標(biāo)模板進(jìn)行保存,用于后續(xù)跟蹤過程中的相關(guān)度計(jì)算等。首先上位機(jī)將第一幀無人機(jī)目標(biāo)左上角坐標(biāo)和尺寸通過串口發(fā)給FPGA,對(duì)一幀圖像灰度化之后的像素點(diǎn)個(gè)數(shù)進(jìn)行計(jì)數(shù),便于確定目標(biāo)區(qū)域的像素點(diǎn);進(jìn)而FPGA根據(jù)得到的目標(biāo)位置將灰度化之后的目標(biāo)區(qū)域圖像數(shù)據(jù)進(jìn)行保存,考慮后期需要將儲(chǔ)存之后的模板圖像數(shù)據(jù)反復(fù)調(diào)用,用于后期的相關(guān)度計(jì)算;最后選擇將灰度化之后的目標(biāo)模板灰度數(shù)據(jù)保存至雙端口RAM中。
采用解碼芯片輸出的視頻時(shí)鐘作為RAM的輸入時(shí)鐘,將目標(biāo)區(qū)域灰度8位數(shù)據(jù)存儲(chǔ)到RAM中,容量選用10 240×8 bit,采用PLL產(chǎn)生的200 MHz時(shí)鐘作為輸出時(shí)鐘,使后期數(shù)據(jù)計(jì)算時(shí)間更少。
1.4.2 搜索范圍的存儲(chǔ)
在無人機(jī)跟蹤過程中,需要在一幀圖像找到目標(biāo),考慮到一幀圖像數(shù)據(jù)過多,不易保存且算法運(yùn)行時(shí)間較長,本文采取一種小范圍搜索方式,搜索范圍過大會(huì)使運(yùn)算時(shí)間變長,不利于實(shí)時(shí)性跟蹤;搜索范圍過小,會(huì)導(dǎo)致當(dāng)無人機(jī)飛行速度過快時(shí),下一幀無人機(jī)不在搜索范圍內(nèi),容易丟失目標(biāo),因此采用以目標(biāo)為中心,用無人機(jī)尺寸與搜索區(qū)域尺寸按照1∶1.5確定搜索區(qū)域尺寸。首先以上次目標(biāo)坐標(biāo)為中心,進(jìn)而找到上次目標(biāo)附近的范圍區(qū)域,最后將范圍內(nèi)灰度化后的數(shù)據(jù)保存至另一個(gè)雙端口RAM中,方便后續(xù)相關(guān)度計(jì)算。
同樣,采用解碼芯片輸出的視頻時(shí)鐘作為RAM的輸入時(shí)鐘,將目標(biāo)區(qū)域灰度8位數(shù)據(jù)存儲(chǔ)到RAM中,容量選用20 480×8 bit,采用PLL產(chǎn)生的200 MHz時(shí)鐘作為輸出時(shí)鐘,使后期數(shù)據(jù)計(jì)算時(shí)間更少。
搜索區(qū)域與目標(biāo)模板區(qū)域?qū)Ρ葓D如圖3所示。
圖3 搜索區(qū)域與目標(biāo)模板對(duì)比圖Fig.3 Comparison of search area with target template
檢測跟蹤模塊是從每幀搜索區(qū)域內(nèi)找到與目標(biāo)模板相關(guān)度最高的區(qū)域。首先在搜索范圍內(nèi)找尋與目標(biāo)模板同樣大小的區(qū)域,進(jìn)而與目標(biāo)模板像素?cái)?shù)據(jù)進(jìn)行相關(guān)度計(jì)算,采用的方法是將模板中每個(gè)像素點(diǎn)的灰度值與同樣大小的搜索區(qū)域內(nèi)對(duì)應(yīng)點(diǎn)的像素灰度值差的絕對(duì)值進(jìn)行求和;然后在搜索范圍進(jìn)行遍歷,遍歷完成之后,找到差的絕對(duì)值和是最小的值,將最小值的搜索區(qū)域表示為目標(biāo),則判斷該區(qū)域?yàn)槟繕?biāo)區(qū)域;最后返回目標(biāo)坐標(biāo)左上角坐標(biāo)用作確定下一幀的搜索范圍。同時(shí)將目標(biāo)左上角坐標(biāo)通過串口發(fā)送給上位機(jī)進(jìn)行準(zhǔn)確度計(jì)算。假設(shè)模板和對(duì)應(yīng)同樣大小搜索區(qū)域像素的灰度值分別記為I(P i)和I′(Pi),像素灰度差值表示為e i,則像素灰度差絕對(duì)值可表示為式(3)。
假設(shè)目標(biāo)模板有n個(gè)像素點(diǎn),通過計(jì)算得到對(duì)應(yīng)n個(gè)像素灰度值差的絕對(duì)值之和記為e,計(jì)算方法如式(4)所示。
根據(jù)FPGA的并行運(yùn)算特點(diǎn),F(xiàn)PGA同時(shí)進(jìn)行灰度處理,存儲(chǔ)目標(biāo)模板數(shù)據(jù)及其搜索區(qū)域數(shù)據(jù),也可以同時(shí)進(jìn)行相關(guān)度計(jì)算,大大減少了數(shù)據(jù)處理的總時(shí)間,有較好的實(shí)時(shí)性。
本文采取的遍歷方式是從搜索區(qū)域左上角開始,從左向右、從上至下的遍歷方式。為了減少遍歷帶來的時(shí)間過長問題,遍歷方式從左向右,采用每次遍歷向右移動(dòng)2個(gè)像素點(diǎn),一行遍歷結(jié)束后,遍歷向下移動(dòng)2個(gè)像素點(diǎn),這樣在保證準(zhǔn)確度的情況下,數(shù)據(jù)處理時(shí)間僅為之前的1/4,使目標(biāo)像素點(diǎn)個(gè)數(shù)在10 000以內(nèi),在一幀圖像跟蹤處理時(shí)間保證在16 ms之內(nèi),在實(shí)時(shí)性方面有比較理想的跟蹤效果。
在無人機(jī)跟蹤過程中,考慮到其背景復(fù)雜干擾多,光線、姿態(tài)變化和背景也處于不斷變化之中,導(dǎo)致準(zhǔn)確度降低的問題,本文采取一種自適應(yīng)目標(biāo)模板更新方式。
考慮到在各種復(fù)雜環(huán)境下導(dǎo)致的跟蹤準(zhǔn)確度降低的問題,及時(shí)地更新目標(biāo)模板中的數(shù)據(jù)可以使其在后續(xù)的跟蹤中更加準(zhǔn)確。當(dāng)遍歷之后得到的最小e值(差的絕對(duì)值之和)大于一定閾值時(shí),即跟蹤得到的目標(biāo)區(qū)域與模板數(shù)據(jù)相差較大,表明該模板可能不再適用,需要及時(shí)更新模板。
該系統(tǒng)將每一幀跟蹤得到的目標(biāo)區(qū)域的左上角坐標(biāo)進(jìn)行保存,連續(xù)保存5幀目標(biāo)坐標(biāo)數(shù)據(jù),當(dāng)需要更新模板時(shí),產(chǎn)生更新模板請(qǐng)求信號(hào),即將保存的5次目標(biāo)坐標(biāo)進(jìn)行加權(quán)處理得到一個(gè)目標(biāo)坐標(biāo)的值,即為最接近真實(shí)目標(biāo)的坐標(biāo);然后在搜索區(qū)域內(nèi)找到對(duì)應(yīng)計(jì)算得到的目標(biāo)區(qū)域,讀取該區(qū)域的像素灰度數(shù)據(jù),并寫入目標(biāo)區(qū)域的雙端口RAM中,實(shí)現(xiàn)自適應(yīng)目標(biāo)模板更新,模板數(shù)據(jù)的及時(shí)更新可以提高后面的跟蹤準(zhǔn)確度。其中更新目標(biāo)模板的坐標(biāo)計(jì)算方法如式(5)所示。
式中,P1(x1,y1)、P2(x2,y2)、P3(x3,y3)、P4(x4,y4)、P5(x5,y5)分別表示過去第1~5幀的目標(biāo)左上角坐標(biāo),P(x,y)表示通過計(jì)算得到目標(biāo)左上角坐標(biāo)。從式(5)可以看出,過去連續(xù)5幀的目標(biāo)坐標(biāo)乘對(duì)應(yīng)的權(quán)值之后,將得到的值相加,再除以所有的權(quán)值之和得到的就是預(yù)測目標(biāo)左上角坐標(biāo)。其中越靠近第一幀的目標(biāo)坐標(biāo)乘的權(quán)值越大,反之,權(quán)值越小,這樣可以減少多幀前目標(biāo)坐標(biāo)帶來的影響,這樣計(jì)算得到的預(yù)測目標(biāo)坐標(biāo)也更加準(zhǔn)確。通過ILA(在線邏輯儀)采集到跟蹤過程中自適應(yīng)模板更新次數(shù)的波形圖如圖4所示。
圖4 自適應(yīng)模板更新ILA波形圖Fig.4 ILA waveform diagram updated by adaptive template
為了驗(yàn)證本文方法的準(zhǔn)確性和有效性,本文采用Vivado 2019.1進(jìn)行程序編寫,選擇中科芯杯FPGA跟蹤器測試軟件作為上位機(jī),采用Xilinx Artix-7 XC7A35T作為控制器,測試儀器如圖5所示。用于測試的是4個(gè)不同場景的1 280×720@50 Hz視頻。
圖5 測試儀器Fig.5 Test instrument
選用跟蹤重疊率作為算法性能評(píng)估標(biāo)準(zhǔn),跟蹤重疊率定義為實(shí)際目標(biāo)區(qū)域與跟蹤結(jié)果區(qū)域的重疊區(qū)域與實(shí)際目標(biāo)區(qū)域的比值乘以100%。
為了更好體現(xiàn)跟蹤算法的性能,選擇4個(gè)不同場景作為測試視頻,分別是視頻1無人機(jī)在飛行過程中發(fā)生姿態(tài)變化,視頻2無人機(jī)背景復(fù)雜多變,視頻3光線變化明顯且無人機(jī)移動(dòng)較快,視頻4無人機(jī)距離較遠(yuǎn)導(dǎo)致像素很少,跟蹤效果如圖6所示。跟蹤重疊率實(shí)時(shí)波形圖如圖7所示,可以看出視頻1、視頻2、視頻4沒有出現(xiàn)跟丟的情況,視頻3出現(xiàn)跟丟幾幀,但后來又重新捕捉目標(biāo),從4個(gè)測試視頻實(shí)時(shí)重疊率可以看出該算法跟蹤重疊率基本達(dá)到90%。表1所示是各測試視頻的平均重疊率及目標(biāo)所占像素個(gè)數(shù),可以看出該算法對(duì)視頻1跟蹤平均重疊率可以達(dá)到98.696%,說明該算法對(duì)姿態(tài)變化跟蹤效果較好;對(duì)視頻2跟蹤平均重疊率可以達(dá)到95.053%,在經(jīng)過吊塔時(shí),重疊率受到影響降到70%左右;視頻3跟蹤平均重疊率是97.049%;視頻4跟蹤平均重疊率是96.852%,滿足準(zhǔn)確度要求。視頻1和視頻3目標(biāo)像素較多,因此在跟蹤重疊率計(jì)算時(shí),重疊率要高一點(diǎn),而視頻2和視頻4目標(biāo)像素較少,導(dǎo)致計(jì)算重疊率時(shí)分母較小,進(jìn)而重疊率曲線波動(dòng)較明顯。
圖6 不同視頻的跟蹤效果Fig.6 Tracking effects of different videos
表1 不同視頻的跟蹤重疊率Table 1 Tracking overlap rates of different videos
結(jié)合圖6和圖7對(duì)跟蹤效果進(jìn)行分析如下。
(1)目標(biāo)姿態(tài)變化:圖6(a)中第529幀無人機(jī)改變姿態(tài)飛行,自適用更新模板發(fā)送請(qǐng)求信號(hào),使模板更新為姿態(tài)變化后的數(shù)據(jù),在第631幀無人機(jī)以改變的姿態(tài)經(jīng)過干擾背景,從圖7(a)可以看到,跟蹤重疊率曲線沒有出現(xiàn)大的波動(dòng),跟蹤效果很好。
(2)背景復(fù)雜多變:圖6(b)中在第172幀和251幀無人機(jī)經(jīng)過較為復(fù)雜的塔吊,從圖7(b)重疊率波形圖可以看出,在172幀和251幀出現(xiàn)了波動(dòng),但重疊率一直在60%以上,沒有出現(xiàn)跟丟的情況,說明在復(fù)雜情況下,通過自適用更新模板方式使目標(biāo)跟蹤效果較理想。
(3)光線變化明顯,無人機(jī)移動(dòng)較快:圖6(c)中在第121幀無人機(jī)發(fā)生快速移動(dòng),在第121~122幀移動(dòng)了32個(gè)像素點(diǎn),從圖7(c)中可以看出跟蹤重疊率沒有出現(xiàn)較大改變,穩(wěn)定在95%以上,在第541幀從圖6(c)可以看到光線發(fā)生了明顯改變,但從圖7(c)中重疊率得到光線對(duì)重疊率會(huì)造成影響,但會(huì)快速重新捕捉目標(biāo),本文算法在跟蹤此類情況依然有較好效果。
(4)目標(biāo)較遠(yuǎn):圖6(d)中無人機(jī)距拍攝距離較遠(yuǎn),導(dǎo)致無人機(jī)目標(biāo)在視頻中的像素?cái)?shù)很少,表1所示視頻4無人機(jī)在畫面尺寸是40×20像素點(diǎn),圖7(d)中第275幀小目標(biāo)經(jīng)過背景復(fù)雜的場景時(shí),圖7(d)顯示重疊率仍在90%以上,本文算法對(duì)此類情況的跟蹤效果很理想。
圖7 不同視頻的跟蹤重疊率波形圖Fig.7 Tracking overlap rate waveform of different videos
評(píng)判FPGA算法的好與壞,其中一個(gè)關(guān)鍵指標(biāo)就是邏輯資源耗費(fèi)情況,本系統(tǒng)選用Xilinx Artix-7 XC7A35T作為控制器,其主要資源使用情況如表2所示。將該計(jì)算方法代碼綜合成電路,該系統(tǒng)輸入時(shí)鐘為50 MHz,通過PLL產(chǎn)生200 MHz時(shí)鐘提供給圖像數(shù)據(jù)處理,目標(biāo)模板分配10 240字節(jié)儲(chǔ)存模板數(shù)據(jù)到雙口RAM中,每個(gè)數(shù)據(jù)8 bit。搜索范圍分配20 480字節(jié)儲(chǔ)存到雙端口RAM中,每個(gè)數(shù)據(jù)寬度為8 bit。從表2中可以看出查找表(LUT)資源消耗率很少,消耗總資源的11.12%,而嵌入式塊(BRAM)消耗率在16%,該方法在雙端口RAM消耗方面也使用很少,總體來說,該方法占用FPGA內(nèi)部資源較少。
表2 FPGA資源利用情況Table 2 FPGA resource utilization
各項(xiàng)場景測試中,本文算法跟蹤一幀耗時(shí)在20 ms以內(nèi),滿足跟蹤實(shí)時(shí)性要求,消耗FPGA內(nèi)部資源較少,同時(shí)通過自適用目標(biāo)更新方式在跟蹤飛行姿態(tài)變化、背景復(fù)雜、飛行速度快、目標(biāo)小、光線明顯變化情況下,跟蹤平均重疊率均可達(dá)到95%以上,滿足絕大多數(shù)的跟蹤要求。
本文目標(biāo)跟蹤算法基于FPGA平臺(tái)開發(fā),提出一種有效的目標(biāo)跟蹤算法。本文首先將RGB數(shù)據(jù)流進(jìn)行灰度轉(zhuǎn)換并保存搜索區(qū)域與模板數(shù)據(jù),然后在搜索范圍進(jìn)行遍歷,找尋與目標(biāo)模型相似度最高的圖像,算法的計(jì)算量較小,加上FPGA的并行處理,使識(shí)別速度更快;提出一種自適應(yīng)更新模板方法,在跟蹤背景復(fù)雜、光線變化等情況下,有較理想的跟蹤效果。算法分別在飛行姿態(tài)變化、背景復(fù)雜、飛行速度快、目標(biāo)小、光線明顯變化情況下進(jìn)行測試,測試結(jié)果顯示跟蹤速度均在50 frame/s以上,具有較好的實(shí)時(shí)性;在跟蹤重疊率上也都在95%以上,有較好的跟蹤準(zhǔn)確度。但本文方法對(duì)有物體遮擋情況不能勝任,且跟蹤之前先要獲取第一幀的目標(biāo)位置,才能將目標(biāo)模板保存用于后續(xù)跟蹤。