孔凡輝, 陳青山, 劉 洋, 呂 勇
(北京信息科技大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京 100192)
多發(fā)光目標(biāo)的高速跟蹤*
孔凡輝, 陳青山, 劉 洋, 呂 勇
(北京信息科技大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京 100192)
研究了一種基于高速圖像采集與處理的多發(fā)光目標(biāo)跟蹤技術(shù)。采用現(xiàn)場可編程門陣列(FPGA)形成高速Camera Link CMOS相機(jī)的圖像采集與實時處理系統(tǒng)。通過對圖像數(shù)據(jù)進(jìn)行開窗、求重心等算法處理,實現(xiàn)對多發(fā)光目標(biāo)的跟蹤,并搭建由直流電機(jī)驅(qū)動、具有兩個LED光源的發(fā)光靶標(biāo)進(jìn)行跟蹤測試。測試結(jié)果表明:相機(jī)輸出幀頻100 Hz時,運(yùn)動目標(biāo)相對于相機(jī)角速度達(dá)1.93 rad/s,仍可實時跟蹤。系統(tǒng)的跟蹤能力正比于相機(jī)幀頻。
互補(bǔ)金屬氧化物體半導(dǎo)體(CMOS)高速圖像傳感器; 圖像處理; 跟蹤; 現(xiàn)場可編程門陣列
多目標(biāo)跟蹤系統(tǒng)無論在民用領(lǐng)域還是在軍事領(lǐng)域中均有著非常廣泛的應(yīng)用,例如對空中的多目標(biāo)探測、跟蹤,交通管制,海洋監(jiān)測,衛(wèi)星監(jiān)控系統(tǒng)和空間通信[1,2]等。
為了提高圖像跟蹤系統(tǒng)的精度和穩(wěn)定性的問題,基于視頻圖像的運(yùn)動目標(biāo)識別與跟蹤技術(shù)愈發(fā)得到重視。清華大學(xué)的童慧思設(shè)計了一種多目標(biāo)TBD(檢測前跟蹤)濾波器,提高了跟蹤的穩(wěn)定性[3]。印度Banasthali大學(xué)的Agarwal S利用不同的模型對圖像進(jìn)行分割,完成對人體的目標(biāo)識別和跟蹤[4]。以上的這些研究利用了復(fù)雜算法,提高定位跟蹤的精度,來完成對面目標(biāo)和復(fù)雜目標(biāo)的穩(wěn)定跟蹤。但是在面對高速運(yùn)動的點目標(biāo)時,由于目標(biāo)具有簡單,速度快的特點,以上辦法就不適用,尤其是針對多個高速運(yùn)動的發(fā)光點目標(biāo)時,提高系統(tǒng)的算法處理速度就顯得十分重要。長春光學(xué)精密儀器與物理研究所的高文等設(shè)計了一款實時目標(biāo)跟蹤系統(tǒng),其跟蹤目標(biāo)為單目標(biāo),每幀的平均處理時間為13.5 ms[5]。大連理工大學(xué)孟華以運(yùn)動目標(biāo)的實時重心作為跟蹤點,采用高速現(xiàn)場可編程門陣列(FPGA)并行運(yùn)算技術(shù),在60 Hz的圖像幀頻下,可以實時的跟蹤300個運(yùn)動目標(biāo)[6]。
在對高速運(yùn)動的多發(fā)光點目標(biāo)跟蹤時,為了達(dá)到更好的跟蹤效果,提高算法執(zhí)行速度,提高系統(tǒng)的處理幀頻數(shù),本文設(shè)計基于高速互補(bǔ)性氧化金屬半導(dǎo)體CMOS圖像傳感器,以FPGA為核心處理芯片,對圖像數(shù)據(jù)中目標(biāo)點進(jìn)行開窗迭代,改進(jìn)傳統(tǒng)的求重心算法,通過Verilog HDL硬件語言實現(xiàn),使其能夠在FPGA硬件內(nèi)高速地執(zhí)行。并通過實驗驗證了系統(tǒng)的跟蹤效果。
在跟蹤系統(tǒng)的中,系統(tǒng)執(zhí)行算法的速度將直接影響到系統(tǒng)的跟蹤效果,在實現(xiàn)算法功能的前提下要采用盡量高速的算法,或者將已有的算法進(jìn)行提速優(yōu)化。本文設(shè)計了適用于FPGA的求重心算法和開窗迭代跟蹤算法。
1.1 求重心算法的改進(jìn)
在對于多個發(fā)光點目標(biāo)的跟蹤系統(tǒng)中,最常用的跟蹤方法是求取圖像的重心,來確定目標(biāo)的位置[7]。求重心算法的常用公式為
(1)
式中 j=1~M;k=1~N;f(j,k)為圖像在(j,k)點的像素灰度值;M,N分別為求取重心范圍內(nèi)的水平方向和垂直方向的像素個數(shù)。由式(1)可知,求取重心的算法需要進(jìn)行除法計算。FPGA的編程語言為硬件邏輯語言,F(xiàn)PGA在進(jìn)行除法計算時會消耗很多的內(nèi)部邏輯資源,更重要的是計算時間比較長而且時間不確定。跟蹤系統(tǒng)的實時性要求算法的計算時間確定,運(yùn)行時間短。為了降低求重心算法的時長,并使計算時間確定,采用移位迭代的方法做除法運(yùn)算,實現(xiàn)求取重心的功能。
移位迭代是將除數(shù)逐次左移與被除數(shù)進(jìn)行比較,來確定答案的各個二進(jìn)制位是置0還是置1。其算法流程圖如圖1所示,其中Denumber和Number分別為被除數(shù)和除數(shù),Answer為所得到的商,k為商的二進(jìn)制位數(shù),移位迭代法使用的前提是已確定商的范圍,即確定商的二進(jìn)制位數(shù)k,在已知k值的情況下,F(xiàn)PGA只要執(zhí)行k次移位比較就可以計算出商的值,也就是只需k個時鐘周期。加上算法用于取除數(shù)、被除數(shù)和商輸出所占有的兩個時鐘周期,執(zhí)行一次除法運(yùn)算只需k+2個時鐘周期。
圖1 除法器流程
由于FPGA除法器的除數(shù)和被除數(shù)的累加計算是伴隨采圖的過程同步進(jìn)行的,不產(chǎn)生延時。所以整個除法器的延時時間僅為8個時鐘周期。
1.2 開窗算法
系統(tǒng)對圖像中的目標(biāo)進(jìn)行跟蹤,采用開窗迭代跟蹤的方法。如圖2所示,系統(tǒng)對圖像中的目標(biāo)敏感區(qū)域進(jìn)行開窗,窗口大小為64×64個像素點,對窗口內(nèi)的圖像求取重心,并將重心坐標(biāo)作為下一次開窗的中心,再進(jìn)行開窗,求取新的目標(biāo)點的重心坐標(biāo),作為下一次開窗的中心,依次迭代,完成對目標(biāo)的跟蹤。開窗跟蹤減少了FPGA的計算的數(shù)據(jù)量,節(jié)約了FPGA的內(nèi)部資源,降低了求重心的計算時間。
圖2 開窗算法
在對多發(fā)光點目標(biāo)的跟蹤時,由于FPGA為多線程的并行架構(gòu),可以同時開多個窗口,且每個窗口重心計算的延時不疊加。開窗的窗口個數(shù)對系統(tǒng)的延時時間沒有影響。
處理板以FPGA(Cyclone II EP2C35F672C8N)為核心處理器,相機(jī)接口為Cameral link接口,Cameral link接口為高速的相機(jī)專用接口,最大的傳輸速率可以達(dá)到2.38 Gb/s。通過VGA顯示屏來觀察跟蹤的效果,通過串口來實現(xiàn)坐標(biāo)位置的輸出。
設(shè)計和制作的以FPGA為核心處理芯片的高速采集處理電路板主要模塊包括: Camera link接收電路模塊、VGA顯示電路模塊、串口電路模塊、電源電路模塊、FPGA最小系統(tǒng)和SRAM(靜態(tài)隨機(jī)存取存儲器)電路模塊等。
系統(tǒng)的算法流程如圖3所示。
圖3 算法流程
系統(tǒng)的初始化通過PLL模塊對外部時鐘倍頻,將50 MHz的晶振時鐘頻率倍頻到200 MHz,在初始化過程中完成對系統(tǒng)中的變量賦初值。
圖像濾波采用的是中值濾波算法,中值濾波利用基于排序理論的非線性平滑濾波[8]。它具有速度快和易于實現(xiàn)的特點,有很強(qiáng)的剔除脈沖噪聲的能力。在進(jìn)行濾波之后,對圖像中的敏感區(qū)域進(jìn)行開窗,求取重心,迭代跟蹤,并將跟蹤窗和目標(biāo)的位置疊加到圖像數(shù)據(jù)中,利用2塊SRAM芯片,采用乒乓機(jī)制,不斷切換2塊SRAM之間的讀和寫的狀態(tài),實現(xiàn)圖像數(shù)據(jù)采集計算和圖像顯示的同步進(jìn)行。
系統(tǒng)軟件和硬件都是采用高速、低延時的設(shè)計,可以在采集完圖像時即計算出圖像的重心位置,采集和處理一幀圖像的時間就是相機(jī)輸出的一幀圖像的時間。
采用高速CMOS相機(jī)photonfocus MV1—D1024E—160—C,相機(jī)的輸出幀頻數(shù)可以改變,相機(jī)的數(shù)據(jù)接口為Cameral link接口,輸出像素大小為1 024×1 024,輸出的像素的灰度值為8 bit。
跟蹤靶標(biāo)采用直流電機(jī)帶動兩端帶有LED(發(fā)光二極管)的旋桿,用旋轉(zhuǎn)的LED模擬高速運(yùn)動的發(fā)光目標(biāo),通過示波器測量電機(jī)尾部的光柵編碼器的輸出頻率,除以電機(jī)的轉(zhuǎn)速比,獲得電機(jī)的轉(zhuǎn)速。在已知電機(jī)轉(zhuǎn)速和靶標(biāo)旋轉(zhuǎn)桿桿長的情況下,可計算出LED的運(yùn)動線速度,再測得靶標(biāo)和相機(jī)之間的距離,計算出LED相對于相機(jī)的實時角速度[9]。
設(shè)置相機(jī)的輸出幀頻數(shù)為100幀/s,改變直流電機(jī)的供電電壓,使電機(jī)處于不同的旋轉(zhuǎn)速度,觀察不同目標(biāo)相對于相機(jī)的角速度的跟蹤效果。如圖4所示。
圖4 不同角速度的跟蹤顯示
將相機(jī)的每秒輸出幀頻數(shù)分別設(shè)置成50,75,100幀,改變直流電機(jī)的電壓,測得剛好發(fā)生目標(biāo)逃逸時,光柵編碼器的輸出頻率。計算出不同幀頻數(shù)下系統(tǒng)所能跟蹤的最大目標(biāo)角速度(如表1)。
表1 不同幀頻數(shù)跟蹤的最大跟蹤角速度
由表1可以看出:1)系統(tǒng)處理圖像的幀頻數(shù)直接影響系統(tǒng)的跟蹤效果,系統(tǒng)每秒采集處理的圖像幀頻數(shù)越高,則系統(tǒng)能夠跟蹤的目標(biāo)角速度更高。2)系統(tǒng)跟蹤的角速度的大小正比于相機(jī)的輸出幀頻數(shù),說明本系統(tǒng)的跟蹤能力只與相機(jī)的輸出幀頻數(shù)有關(guān),即系統(tǒng)在圖像采集完成時已經(jīng)計算出目標(biāo)的重心。
研究了基于FPGA的高速、低延時跟蹤系統(tǒng),通過CMOS高速圖像傳感器采集圖像,改進(jìn)了傳統(tǒng)的求重心的算法,提高其在FPGA里面的運(yùn)行速度,并利用開窗迭代跟蹤的方法,對多個發(fā)光點目標(biāo)進(jìn)行實時跟蹤,在VGA顯示屏顯示跟蹤效果。
系統(tǒng)在相機(jī)輸出幀數(shù)為100幀/s時,測得相機(jī)能跟蹤的雙目標(biāo)的相對于相機(jī)的最大角速度為1.93 rad/s。并通過對比相機(jī)每秒輸出不同的幀頻數(shù)所能跟蹤的最大角速度值,得到跟蹤的最大角速度正比于相機(jī)的輸出幀頻數(shù),驗證了系統(tǒng)的高速、低延時的特性。
[1] 毛建國,柏方超,沈 峘,等.復(fù)雜場景下動態(tài)目標(biāo)視覺跟蹤方法[J].傳感器與微系統(tǒng),2010,29(3):23-25,28.
[2] 趙偉軍,顧新艷,姜慶標(biāo),等.起伏目標(biāo)檢測應(yīng)用研究[J].現(xiàn)代雷達(dá),2015,37(6):32-36.
[3] 童慧思,張 顥,孟華東,等.PHD濾波器在多目標(biāo)檢測前跟蹤中的應(yīng)用[J].電子學(xué)報,2011,39(9):2046-2051.
[4] Agarwal S,S Mishra.A stody of multiple human tracking for visual surveillance[J].International Journal of Advances in Engineering and Technology,2012(5):361-374.
[5] 高 文,朱 明,劉 劍,等.基于DSP+FPGA框架的實時目標(biāo)跟蹤系統(tǒng)設(shè)計[J].液晶與顯示,2014(4):611-616.
[6] 孟 華,謝小飛,叢培超.多運(yùn)動目標(biāo)高速實時跟蹤算法的實現(xiàn)[J].電視技術(shù),2012(3):134-136,140.
[7] 林潤芝,楊學(xué)友,鄒 劍,等.面向大尺寸檢測CCD圖像中心提取精度的研究[J].傳感器與微系統(tǒng),2010,29(12):51-53.
[8] 胡越黎,計慧杰,吳 頻,等.圖像的中值濾波算法及其FPGA實現(xiàn)[J].計算機(jī)測量與控制,2008(11):1672-1675.
[9] 熊 帥.光電經(jīng)緯儀虛擬現(xiàn)實仿真平臺設(shè)計及關(guān)鍵技術(shù)研究[D].北京:中國科學(xué)院光電技術(shù)研究所,2013:12-14.
孔凡輝 (1989-),男,碩士研究生,研究方向為高速圖像采集與處理。
High speed tracking of muitilight-emitting targets*
KONG Fan-hui, CHEN Qing-shan, LIU Yang, Lü Yong
(School of Instrumentation Science and Optoelectric Engineering,Beijing Information Science & Technology University,Beijing 100192,China)
A technology for tracking multi light emitting targets based on high speed image collecting and processing.Using FPGA to form image acquisition and real-time processing system of high speed Cameral link CMOS camera.Tracking is achieved through window setting and Barycenter algorithm.Further,a light emitting target with two LED sources and driven by a DC motor is built to test the tracking and recognition capability.Test results indicate that,with a camera of 100 Hz output frame frequency,moving targets having 1.93 rad/s angular speed relative to the camera are still traceable,and that,the tracking ability is proportional to the fame frequency of the camera.
CMOS high-speed image sensor; image processing; tracking; FPGA
10.13873/J.1000—9787(2017)05—0033—03
2016—05—18
北京市優(yōu)秀人才培養(yǎng)資助項目(2013D005007000007);北京市屬高等學(xué)校青年拔尖人才培育計劃項目(CIT&TCD201404124)
TP 391
A
1000—9787(2017)05—0033—03