国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的LucasKanade算法優(yōu)化

2014-08-07 23:00劉東明劉超牟海維
光學儀器 2014年3期

劉東明+劉超+牟海維

文章編號: 10055630(2014)03020805

收稿日期: 20140121

基金項目: 國家自然科學基金資助項目(51374072、51101027);黑龍江省新世紀優(yōu)秀人才支持計劃項目(1253NCET002)

作者簡介: 劉東明(1981),男,碩士,主要從事傳感測試技術(shù)的研究。

通訊作者: 劉超(1978),男,教授,博士,主要從事傳感測試技術(shù)及磁驅(qū)動形狀記憶合金薄膜等方面的研究。

摘要: 在FPGA平臺上實現(xiàn)基于光流法的視頻運動目標跟蹤系統(tǒng),采用LucasKanade算法進行光流場的計算,在圖像預處理階段提出使用三維高斯濾波代替?zhèn)鹘y(tǒng)二維高斯濾波,引入相鄰像素點在時間軸方向的相關(guān)性,增強圖像的濾波效果。在3D導數(shù)計算階段提出在求導方向的正交面上進行平滑濾波,并采用匹配的導數(shù)和平滑參數(shù),提高光流場計算精度。在FPGA平臺上設(shè)計多級主流水線加子流水線結(jié)構(gòu),設(shè)計了四端口RAM進行圖像緩存,優(yōu)化了最小二乘矩陣單元和浮點數(shù)運算單元,實現(xiàn)了實時視頻運動目標跟蹤。

關(guān)鍵詞: LucasKanade算法; 平滑濾波器; FPGA; 四端口RAM

中圖分類號: TN 253; TP 212.14文獻標志碼: Adoi: 10.3969/j.issn.10055630.2014.03.005

The optimization of the LucasKanade algorithm based on FPGA

LIU Dongming, LIU Chao, MU Haiwei

(College of Electronic Science, Northeast Petroleum University, Daqing 163318, China)

Abstract: Video motion tracking based on optical flow is implemented on the FPGA, and we calculate the optical flow taking advantage of the LucasKanade algorithm. In the stage of the image preprocessing, we propose that threedimensional Gaussian filter is used to replace the conventional twodimensional Gaussian filter and the correlation of the adjacent pixels is introduced, which improves the effect of the image filter. In the stage of 3D derivative calculation, we implement the smoothing filter on the orthogonal plane of derivative directional, and use the matching derivative parameter and smoothing parameter, so the accuracy of the optical flow is improved. Based on the FPGA platform, we design multistage pipelined architecture that includes several subpipeline, the fourport RAM unit that can achieve images cache, and optimize the leastsquare matrices and the float unit, which achieves the realtime video motion tracking.

Key words: LucasKanade algorithm; smoothing filter; FPGA; fourports RAM

引言光流法是實現(xiàn)運動目標跟蹤的一種有效方法,光流法的優(yōu)勢在于沒有圖像背景的歷史信息情況下,可以對獨立運動目標進行跟蹤,而且在動態(tài)背景情況下同樣適用。但光流法易受噪聲影響,而且運算量大,因此在硬件實現(xiàn)上,存在著計算精度和系統(tǒng)資源占用之間的矛盾。FPGA是一種資源配置靈活,不限制流水線級數(shù),可實現(xiàn)全并行處理的一種器件,非常適合作為視頻運動目標跟蹤系統(tǒng)的硬件平臺[12]。本文采用LK(LucasKanade)算法在FPGA平臺上實現(xiàn)光流場的計算,提出了三維高斯平滑濾波方法,改善圖像噪聲抑制效果,改進了傳統(tǒng)3D導數(shù)計算方法,采用非高斯匹配導數(shù)濾波器,提高了光流場的計算精度。硬件方面,在FPGA平臺上設(shè)計了超級流水線結(jié)構(gòu)和四端口圖像緩存單元,實現(xiàn)了對30幀/s速度下640×480分辨率視頻的實時運動目標跟蹤。1LK算法優(yōu)化LK算法是一種計算光流場的差分方法,也就是計算圖像在空間和時間坐標上的偏導數(shù)。假設(shè)I(x,y,t)為(x,y)點在t時刻的灰度值,像素點的對應速度為v=[vx,vy],為滿足光流約束方程,需使下式最?。?]:ε=∑x∈ΩW2(x)[I(x,y,t)?v+It(x,y,t)]2(1)其中,W(x)代表一個窗函數(shù)。上式的結(jié)果為v=[ATW2A]-1ATW2b,其中,A=[I(x1),…,I(xn)]T,W=diag[W(x1),…,W(xn)],b=-[It(x1),…,It(xn)]T進一步推導得:ATW2A=∑W2I2x∑W2IxIy

∑W2IxIy∑W2I2y(2)

ATW2b=-∑W2IxIt

∑W2IyIt(3)光學儀器第36卷

第3期劉東明,等:基于FPGA的LucasKanade算法優(yōu)化

根據(jù)LK算法公式,光流場的計算包括三個步驟:一是圖像預處理,即通過高斯平滑濾波來降低圖像噪聲,并使相鄰像素之間產(chǎn)生較高的相關(guān)性;二是3D導數(shù)計算,即通過合適的核(濾波模板)進行3D導數(shù)濾波,計算3D導數(shù);三是計算最小二乘矩陣,得到各個像素點在x軸和y軸的速度分量。(1)圖像預處理算法優(yōu)化傳統(tǒng)的圖像預處理一般是對圖像進行二維高斯平滑濾波,但是視頻是一系列時間上連續(xù)的圖像,各個像素點之間除了空間關(guān)系外還存在時間上的關(guān)聯(lián)性。因此,本文提出在傳統(tǒng)二維高斯濾波基礎(chǔ)上增加時間軸濾波,構(gòu)成了三維高斯濾波。根據(jù)高斯濾波模板的旋轉(zhuǎn)對稱性,這種擴展是可行的。以寬度為5的高斯濾波模板[1,4,6,4,1]/16為例,為了減少計算量,首先對連續(xù)5幀圖像進行一維時間軸濾波,得到一幀圖像,再進行傳統(tǒng)二維5×5空間濾波。圖1(a)為使用5×5二維高斯濾波模板的濾波效果,作為對比圖1(b)為使用5×5×5三維高斯濾波模板的濾波效果,可看出后者的模糊效果明顯好于前者。三維高斯濾波有效地降低了噪聲,提高了相鄰像素之間的相關(guān)性。

圖1圖像濾波效果

Fig.1The effect of image filter

(2)3D導數(shù)算法優(yōu)化3D導數(shù)的計算關(guān)系到光流場的計算精度,3D導數(shù)就是通過導數(shù)濾波器分別計算圖像在x軸、y軸和t軸的導數(shù)Ix、Iy和It。傳統(tǒng)圖像求導方法比較簡單,即導數(shù)核直接與圖像進行卷積,例如可使用導數(shù)核[-1 1],分別在求導方向上與圖像進行卷積。這種對圖像求導的傳統(tǒng)方法導致光流場計算結(jié)果不準確,圖2(a)是這種方法下光流場的計算效果,可以看出速度的方向錯誤率較高,另外像素點速度大小也出現(xiàn)了較多的錯誤。為改善光流計算精度,本文提出將Sobel算子思想應用到3D導數(shù)計算中。Sobel算子垂直卷積核[4]表達式為-101

-202

-101=121T-101(4)根據(jù)式(4)可知Sobel算子的核心是在x軸方向求導的同時在y軸方向平滑濾波,將這種思想擴展到3D導數(shù)計算中,即在某一方向上求導時,在其他兩個方向上進行與之匹配的平滑濾波。例如求x軸方向的導數(shù)Ix,需要在y軸和t軸進行平滑濾波。另外濾波模板并沒有選擇高斯模板,而是采用了Simoncelli提出的非高斯匹配濾波模板[5],其中:導數(shù)濾波核 [-0.109 604,-0.276 691,0,0.276 691,0.109 604]平滑濾波核 [0.037 659,0.249 153,0.426 375,0.249 153,0.037 659]圖2(b)是經(jīng)過優(yōu)化的非高斯匹配3D濾波下光流場的計算結(jié)果,與傳統(tǒng)方法相比,光流場速度大小的精確度和速度方向的一致性得到了明顯改善。

圖2光流場計算結(jié)果

Fig.2The results of optical flow

2FPGA流水線結(jié)構(gòu)設(shè)計FPGA不限制流水線級數(shù),可實現(xiàn)全并行計算,非常適合做高速實時視頻處理。在FPGA平臺(DE2)上實現(xiàn)LK算法的視頻實時處理的關(guān)鍵在于流水線結(jié)構(gòu)的合理設(shè)計,LK算法流水線結(jié)構(gòu)如圖3所示。

圖3LK算法流水線結(jié)構(gòu)框圖

Fig.3The pipelined architecture of LK algorithm

FPGA平臺上,LK算法分為五個步驟:(1)三維高斯平滑濾波,攝像頭輸出的視頻圖像中經(jīng)常伴有噪聲,經(jīng)過前面仿真可知,采用三維高斯濾波能起到良好的濾波效果,經(jīng)試驗采用3×3×3高斯模板即可滿足后續(xù)計算光流場的精度要求。(2)時間FIR濾波,3D導數(shù)計算中有兩個步驟需要進行時間軸FIR濾波:一是計算時間軸導數(shù)It,二是計算空間導數(shù)Ix和Iy時,需要在時間軸進行平滑濾波。將這兩個步驟結(jié)合起來,可一步完成,降低了FPGA資源占用率。(3)空間FIR濾波,同樣分為兩種情況:一是計算It時在xy平面上進行平滑濾波,二是計算導數(shù)Ix和Iy。(4)最小二乘矩陣,用于計算光流速度公式中的Ix?Ix、Iy?Iy、Ix?Iy、Ix?It和Iy?It。(5)浮點運算單元,通過上述結(jié)果求得光流場。整體上LK算法的流水線結(jié)構(gòu)分為五級,每級流水線內(nèi)部也包含了優(yōu)化的子流水線結(jié)構(gòu),圖中標出了各級中包含的子流水線數(shù)量。圖像在時間軸方向的濾波需要幀間處理,因此采用SDRAM作為圖像緩存。步驟(1)中時間軸的平滑濾波與步驟(2)中時間軸FIR濾波結(jié)構(gòu)相同,只是濾波核不同。由于時間軸濾波后圖像數(shù)據(jù)量大大減少,僅一幀數(shù)據(jù),因此在這兩個步驟中均采用了先時間后空間的濾波順序。圖4四端口RAM實現(xiàn)框圖

Fig.4 The realization diagram of fourport RAM unit3時間濾波算法的實現(xiàn)根據(jù)實際測試選用3×3×3高斯平滑濾波模板完全可滿足后續(xù)計算的精度要求,為實現(xiàn)3幀圖像之間的運算,需要對3幀圖像進行緩存并同時讀取。為此編寫一個四端口RAM來完成圖像在時間軸的濾波算法,如圖4為其實現(xiàn)框圖。四端口RAM實際是將SDRAM存儲器劃分為3個Bank,每個Bank緩存一幀圖像,并配合內(nèi)存管理單元MMU實現(xiàn)的。MMU與SDRAM之間是以100 MHz的速度逐幀順序?qū)懭雸D像的,而MMU與時間軸濾波模塊間通過4個慢速的25 MHz端口連接,其中1個端口是圖像寫入,3個端口是圖像讀取。相對于100 MHz的帶寬來說,這四個慢速端口恰好可以同時完成寫入和讀取,滿足了時間軸濾波模塊同時讀取連續(xù)3幀視頻圖像的要求。根據(jù)LK算法總體流水線結(jié)構(gòu),三維高斯平滑濾波和時間FIR濾波中均用到了圖像的時間軸運算,這兩種運算的結(jié)構(gòu)相同,并且根據(jù)圖像數(shù)據(jù)的特點,僅占用8位位寬。而SDRAM的數(shù)據(jù)總線為16位位寬,因此為了提高資源利用率,將SDRAM的高8位分配給三維高斯平滑濾波,低8位分配給時間FIR濾波,在FPGA邏輯單元和SDRAM空間占用不變的情況下,同時完成這兩步運算。4速度矢量計算結(jié)構(gòu)優(yōu)化通過最小二乘矩陣和浮點數(shù)運算單元可計算得到速度矢量。根據(jù)式(2)和式(3)構(gòu)造最小二乘矩陣,即利用導數(shù)Ix、Iy和It,計算∑W2I2x、∑W2I2y、∑W2IxIy、∑W2IxIt和∑W2IyIt。窗函數(shù)W的選擇有兩種方式,一是采用具有旋轉(zhuǎn)對稱性的高斯核[0.062 5,0.25,0.375,0.25,0.062 5][6],二是采用最簡單的平均值濾波方式[7]。方式二計算過程簡單,實驗證明光流計算精確度僅次于方式一,但這種方式需要用到除法運算,因此占用FPGA資源較多。而方式一經(jīng)過優(yōu)化,可完全避免乘除法運算。采用方式一設(shè)計最小二乘矩陣實現(xiàn)框圖如圖5所示。將高斯核定點化為[1,4,6,4,1]/16,這個加權(quán)計算需要3次乘法、4次加法和1次除法運算。乘除法運算量較大,但是當乘數(shù)或除數(shù)為2的N次方時,可用移位操作來代替乘除法運算,從而大幅度降低FPGA資源占用率。定點化高斯核中只有乘6運算不滿足2的N次方,將乘6運算拆分成兩級流水線乘2、乘4和一次加法運算。經(jīng)過上述優(yōu)化,最小二乘矩陣的構(gòu)造僅需要加法運算和移位操作,大大降低了FPGA圖5最小二乘矩陣實現(xiàn)框圖

Fig.5The realization diagram of leastsquare matrices資源占用率,提高了光流場的計算速度。將最小二乘矩陣結(jié)果帶入式(1)可計算得到最終的光流場速度。式(1)中包含矩陣求逆運算,計算量大,為避免中間結(jié)果溢出必須采用浮點數(shù)運算。浮點數(shù)運算單元結(jié)構(gòu)如圖6所示,首先將上一步計算結(jié)果通過int to float模塊全部轉(zhuǎn)化為浮點數(shù),然后進行浮點數(shù)基本數(shù)學運算,最后再將結(jié)果通過float to int模塊轉(zhuǎn)化為定點數(shù)。除流水線結(jié)構(gòu)需自行設(shè)計外,所有的浮點數(shù)運算都使用Quartus II軟件提供的IP核來完成。

圖6FPGA浮點計算單元框圖

Fig.6FPGA floating point calculation unit block diagram

5系統(tǒng)測試效果根據(jù)上述優(yōu)化方法在FPGA平臺上實現(xiàn)了基于LK算法的實時光流計算。在30幀/s的速度下,本系統(tǒng)可對640×480分辨率的視頻進行實時處理,實現(xiàn)了對單個運動目標進行實時跟蹤的目的。高閾值下實際測試的效果圖見圖7(a);當速度閾值降低時,如圖7(b)所示,目標跟蹤的靈敏度得到了提高,但物體的輪廓明顯變粗,可通過腐蝕和膨脹等圖像處理算法來得到清晰的目標輪廓,也可進一步運算得到物體的形心,實現(xiàn)對目標的軌跡進行跟蹤。圖7實際測試效果圖

Fig.7The actual test rendering

6結(jié)論通過在圖像預處理階段增加時間軸濾波和在3D導數(shù)計算階段增加匹配濾波,并使用優(yōu)化的匹配濾波參數(shù),提高了LK算法的計算精度。在視頻的仿真中可明顯看出,經(jīng)過這些優(yōu)化,光流場的精度得到了提高,方向一致性良好。在FPGA硬件平臺上,通過對流水線結(jié)構(gòu)進行充分的優(yōu)化,并設(shè)計了四端口RAM進行圖像緩存,實現(xiàn)了對30幀/s下640×480分辨率的視頻實時處理,對運動目標實現(xiàn)了高速精確的視頻跟蹤。由于SDRAM仍有很大剩余空間,FPGA也未使用于最高頻率,因此,在更換高速、高分辨率攝像頭的情況下,該系統(tǒng)的性能還可進一步提升。參考文獻:

[1]陳浙泊,林斌.動態(tài)圖像處理系統(tǒng)的設(shè)計與研究[J].光學儀器,2003,25(6):3438.

[2]候宏錄,高偉平.500 fps圖像采集及實時顯示關(guān)鍵技術(shù)研究[J].光學儀器,2013,35(2):5257.

[3]劉松林,牛照東,陳曾平,等.基于加權(quán)LucasKanade算法的目標跟蹤[J].光學工程,2011,38(8):6772.

[4]靳鵬飛.一種改進的Sobel圖像邊緣檢測算法[J].應用光學,2008,29(4):625628.

[5]SIMONCELLI E P.Design of multidimensional derivative filters[C]∥Proceedings of the IEEE International Conference on Image Processing,Austin,1994,1:791793.

[6]潘金山,蘇志勛,王偉.運動細節(jié)估計的光流場方法[J].計算機輔助設(shè)計與圖形學學報,2011,23(8):14331441.

[7]夏毓鵬,王昕,胡鋒.光流場算法中優(yōu)化圖像梯度數(shù)據(jù)可信度方法[J].計算機工程與應用,2010,46(4):163165.

-202

-101=121T-101(4)根據(jù)式(4)可知Sobel算子的核心是在x軸方向求導的同時在y軸方向平滑濾波,將這種思想擴展到3D導數(shù)計算中,即在某一方向上求導時,在其他兩個方向上進行與之匹配的平滑濾波。例如求x軸方向的導數(shù)Ix,需要在y軸和t軸進行平滑濾波。另外濾波模板并沒有選擇高斯模板,而是采用了Simoncelli提出的非高斯匹配濾波模板[5],其中:導數(shù)濾波核 [-0.109 604,-0.276 691,0,0.276 691,0.109 604]平滑濾波核 [0.037 659,0.249 153,0.426 375,0.249 153,0.037 659]圖2(b)是經(jīng)過優(yōu)化的非高斯匹配3D濾波下光流場的計算結(jié)果,與傳統(tǒng)方法相比,光流場速度大小的精確度和速度方向的一致性得到了明顯改善。

圖2光流場計算結(jié)果

Fig.2The results of optical flow

2FPGA流水線結(jié)構(gòu)設(shè)計FPGA不限制流水線級數(shù),可實現(xiàn)全并行計算,非常適合做高速實時視頻處理。在FPGA平臺(DE2)上實現(xiàn)LK算法的視頻實時處理的關(guān)鍵在于流水線結(jié)構(gòu)的合理設(shè)計,LK算法流水線結(jié)構(gòu)如圖3所示。

圖3LK算法流水線結(jié)構(gòu)框圖

Fig.3The pipelined architecture of LK algorithm

FPGA平臺上,LK算法分為五個步驟:(1)三維高斯平滑濾波,攝像頭輸出的視頻圖像中經(jīng)常伴有噪聲,經(jīng)過前面仿真可知,采用三維高斯濾波能起到良好的濾波效果,經(jīng)試驗采用3×3×3高斯模板即可滿足后續(xù)計算光流場的精度要求。(2)時間FIR濾波,3D導數(shù)計算中有兩個步驟需要進行時間軸FIR濾波:一是計算時間軸導數(shù)It,二是計算空間導數(shù)Ix和Iy時,需要在時間軸進行平滑濾波。將這兩個步驟結(jié)合起來,可一步完成,降低了FPGA資源占用率。(3)空間FIR濾波,同樣分為兩種情況:一是計算It時在xy平面上進行平滑濾波,二是計算導數(shù)Ix和Iy。(4)最小二乘矩陣,用于計算光流速度公式中的Ix?Ix、Iy?Iy、Ix?Iy、Ix?It和Iy?It。(5)浮點運算單元,通過上述結(jié)果求得光流場。整體上LK算法的流水線結(jié)構(gòu)分為五級,每級流水線內(nèi)部也包含了優(yōu)化的子流水線結(jié)構(gòu),圖中標出了各級中包含的子流水線數(shù)量。圖像在時間軸方向的濾波需要幀間處理,因此采用SDRAM作為圖像緩存。步驟(1)中時間軸的平滑濾波與步驟(2)中時間軸FIR濾波結(jié)構(gòu)相同,只是濾波核不同。由于時間軸濾波后圖像數(shù)據(jù)量大大減少,僅一幀數(shù)據(jù),因此在這兩個步驟中均采用了先時間后空間的濾波順序。圖4四端口RAM實現(xiàn)框圖

Fig.4 The realization diagram of fourport RAM unit3時間濾波算法的實現(xiàn)根據(jù)實際測試選用3×3×3高斯平滑濾波模板完全可滿足后續(xù)計算的精度要求,為實現(xiàn)3幀圖像之間的運算,需要對3幀圖像進行緩存并同時讀取。為此編寫一個四端口RAM來完成圖像在時間軸的濾波算法,如圖4為其實現(xiàn)框圖。四端口RAM實際是將SDRAM存儲器劃分為3個Bank,每個Bank緩存一幀圖像,并配合內(nèi)存管理單元MMU實現(xiàn)的。MMU與SDRAM之間是以100 MHz的速度逐幀順序?qū)懭雸D像的,而MMU與時間軸濾波模塊間通過4個慢速的25 MHz端口連接,其中1個端口是圖像寫入,3個端口是圖像讀取。相對于100 MHz的帶寬來說,這四個慢速端口恰好可以同時完成寫入和讀取,滿足了時間軸濾波模塊同時讀取連續(xù)3幀視頻圖像的要求。根據(jù)LK算法總體流水線結(jié)構(gòu),三維高斯平滑濾波和時間FIR濾波中均用到了圖像的時間軸運算,這兩種運算的結(jié)構(gòu)相同,并且根據(jù)圖像數(shù)據(jù)的特點,僅占用8位位寬。而SDRAM的數(shù)據(jù)總線為16位位寬,因此為了提高資源利用率,將SDRAM的高8位分配給三維高斯平滑濾波,低8位分配給時間FIR濾波,在FPGA邏輯單元和SDRAM空間占用不變的情況下,同時完成這兩步運算。4速度矢量計算結(jié)構(gòu)優(yōu)化通過最小二乘矩陣和浮點數(shù)運算單元可計算得到速度矢量。根據(jù)式(2)和式(3)構(gòu)造最小二乘矩陣,即利用導數(shù)Ix、Iy和It,計算∑W2I2x、∑W2I2y、∑W2IxIy、∑W2IxIt和∑W2IyIt。窗函數(shù)W的選擇有兩種方式,一是采用具有旋轉(zhuǎn)對稱性的高斯核[0.062 5,0.25,0.375,0.25,0.062 5][6],二是采用最簡單的平均值濾波方式[7]。方式二計算過程簡單,實驗證明光流計算精確度僅次于方式一,但這種方式需要用到除法運算,因此占用FPGA資源較多。而方式一經(jīng)過優(yōu)化,可完全避免乘除法運算。采用方式一設(shè)計最小二乘矩陣實現(xiàn)框圖如圖5所示。將高斯核定點化為[1,4,6,4,1]/16,這個加權(quán)計算需要3次乘法、4次加法和1次除法運算。乘除法運算量較大,但是當乘數(shù)或除數(shù)為2的N次方時,可用移位操作來代替乘除法運算,從而大幅度降低FPGA資源占用率。定點化高斯核中只有乘6運算不滿足2的N次方,將乘6運算拆分成兩級流水線乘2、乘4和一次加法運算。經(jīng)過上述優(yōu)化,最小二乘矩陣的構(gòu)造僅需要加法運算和移位操作,大大降低了FPGA圖5最小二乘矩陣實現(xiàn)框圖

Fig.5The realization diagram of leastsquare matrices資源占用率,提高了光流場的計算速度。將最小二乘矩陣結(jié)果帶入式(1)可計算得到最終的光流場速度。式(1)中包含矩陣求逆運算,計算量大,為避免中間結(jié)果溢出必須采用浮點數(shù)運算。浮點數(shù)運算單元結(jié)構(gòu)如圖6所示,首先將上一步計算結(jié)果通過int to float模塊全部轉(zhuǎn)化為浮點數(shù),然后進行浮點數(shù)基本數(shù)學運算,最后再將結(jié)果通過float to int模塊轉(zhuǎn)化為定點數(shù)。除流水線結(jié)構(gòu)需自行設(shè)計外,所有的浮點數(shù)運算都使用Quartus II軟件提供的IP核來完成。

圖6FPGA浮點計算單元框圖

Fig.6FPGA floating point calculation unit block diagram

5系統(tǒng)測試效果根據(jù)上述優(yōu)化方法在FPGA平臺上實現(xiàn)了基于LK算法的實時光流計算。在30幀/s的速度下,本系統(tǒng)可對640×480分辨率的視頻進行實時處理,實現(xiàn)了對單個運動目標進行實時跟蹤的目的。高閾值下實際測試的效果圖見圖7(a);當速度閾值降低時,如圖7(b)所示,目標跟蹤的靈敏度得到了提高,但物體的輪廓明顯變粗,可通過腐蝕和膨脹等圖像處理算法來得到清晰的目標輪廓,也可進一步運算得到物體的形心,實現(xiàn)對目標的軌跡進行跟蹤。圖7實際測試效果圖

Fig.7The actual test rendering

6結(jié)論通過在圖像預處理階段增加時間軸濾波和在3D導數(shù)計算階段增加匹配濾波,并使用優(yōu)化的匹配濾波參數(shù),提高了LK算法的計算精度。在視頻的仿真中可明顯看出,經(jīng)過這些優(yōu)化,光流場的精度得到了提高,方向一致性良好。在FPGA硬件平臺上,通過對流水線結(jié)構(gòu)進行充分的優(yōu)化,并設(shè)計了四端口RAM進行圖像緩存,實現(xiàn)了對30幀/s下640×480分辨率的視頻實時處理,對運動目標實現(xiàn)了高速精確的視頻跟蹤。由于SDRAM仍有很大剩余空間,FPGA也未使用于最高頻率,因此,在更換高速、高分辨率攝像頭的情況下,該系統(tǒng)的性能還可進一步提升。參考文獻:

[1]陳浙泊,林斌.動態(tài)圖像處理系統(tǒng)的設(shè)計與研究[J].光學儀器,2003,25(6):3438.

[2]候宏錄,高偉平.500 fps圖像采集及實時顯示關(guān)鍵技術(shù)研究[J].光學儀器,2013,35(2):5257.

[3]劉松林,牛照東,陳曾平,等.基于加權(quán)LucasKanade算法的目標跟蹤[J].光學工程,2011,38(8):6772.

[4]靳鵬飛.一種改進的Sobel圖像邊緣檢測算法[J].應用光學,2008,29(4):625628.

[5]SIMONCELLI E P.Design of multidimensional derivative filters[C]∥Proceedings of the IEEE International Conference on Image Processing,Austin,1994,1:791793.

[6]潘金山,蘇志勛,王偉.運動細節(jié)估計的光流場方法[J].計算機輔助設(shè)計與圖形學學報,2011,23(8):14331441.

[7]夏毓鵬,王昕,胡鋒.光流場算法中優(yōu)化圖像梯度數(shù)據(jù)可信度方法[J].計算機工程與應用,2010,46(4):163165.

-202

-101=121T-101(4)根據(jù)式(4)可知Sobel算子的核心是在x軸方向求導的同時在y軸方向平滑濾波,將這種思想擴展到3D導數(shù)計算中,即在某一方向上求導時,在其他兩個方向上進行與之匹配的平滑濾波。例如求x軸方向的導數(shù)Ix,需要在y軸和t軸進行平滑濾波。另外濾波模板并沒有選擇高斯模板,而是采用了Simoncelli提出的非高斯匹配濾波模板[5],其中:導數(shù)濾波核 [-0.109 604,-0.276 691,0,0.276 691,0.109 604]平滑濾波核 [0.037 659,0.249 153,0.426 375,0.249 153,0.037 659]圖2(b)是經(jīng)過優(yōu)化的非高斯匹配3D濾波下光流場的計算結(jié)果,與傳統(tǒng)方法相比,光流場速度大小的精確度和速度方向的一致性得到了明顯改善。

圖2光流場計算結(jié)果

Fig.2The results of optical flow

2FPGA流水線結(jié)構(gòu)設(shè)計FPGA不限制流水線級數(shù),可實現(xiàn)全并行計算,非常適合做高速實時視頻處理。在FPGA平臺(DE2)上實現(xiàn)LK算法的視頻實時處理的關(guān)鍵在于流水線結(jié)構(gòu)的合理設(shè)計,LK算法流水線結(jié)構(gòu)如圖3所示。

圖3LK算法流水線結(jié)構(gòu)框圖

Fig.3The pipelined architecture of LK algorithm

FPGA平臺上,LK算法分為五個步驟:(1)三維高斯平滑濾波,攝像頭輸出的視頻圖像中經(jīng)常伴有噪聲,經(jīng)過前面仿真可知,采用三維高斯濾波能起到良好的濾波效果,經(jīng)試驗采用3×3×3高斯模板即可滿足后續(xù)計算光流場的精度要求。(2)時間FIR濾波,3D導數(shù)計算中有兩個步驟需要進行時間軸FIR濾波:一是計算時間軸導數(shù)It,二是計算空間導數(shù)Ix和Iy時,需要在時間軸進行平滑濾波。將這兩個步驟結(jié)合起來,可一步完成,降低了FPGA資源占用率。(3)空間FIR濾波,同樣分為兩種情況:一是計算It時在xy平面上進行平滑濾波,二是計算導數(shù)Ix和Iy。(4)最小二乘矩陣,用于計算光流速度公式中的Ix?Ix、Iy?Iy、Ix?Iy、Ix?It和Iy?It。(5)浮點運算單元,通過上述結(jié)果求得光流場。整體上LK算法的流水線結(jié)構(gòu)分為五級,每級流水線內(nèi)部也包含了優(yōu)化的子流水線結(jié)構(gòu),圖中標出了各級中包含的子流水線數(shù)量。圖像在時間軸方向的濾波需要幀間處理,因此采用SDRAM作為圖像緩存。步驟(1)中時間軸的平滑濾波與步驟(2)中時間軸FIR濾波結(jié)構(gòu)相同,只是濾波核不同。由于時間軸濾波后圖像數(shù)據(jù)量大大減少,僅一幀數(shù)據(jù),因此在這兩個步驟中均采用了先時間后空間的濾波順序。圖4四端口RAM實現(xiàn)框圖

Fig.4 The realization diagram of fourport RAM unit3時間濾波算法的實現(xiàn)根據(jù)實際測試選用3×3×3高斯平滑濾波模板完全可滿足后續(xù)計算的精度要求,為實現(xiàn)3幀圖像之間的運算,需要對3幀圖像進行緩存并同時讀取。為此編寫一個四端口RAM來完成圖像在時間軸的濾波算法,如圖4為其實現(xiàn)框圖。四端口RAM實際是將SDRAM存儲器劃分為3個Bank,每個Bank緩存一幀圖像,并配合內(nèi)存管理單元MMU實現(xiàn)的。MMU與SDRAM之間是以100 MHz的速度逐幀順序?qū)懭雸D像的,而MMU與時間軸濾波模塊間通過4個慢速的25 MHz端口連接,其中1個端口是圖像寫入,3個端口是圖像讀取。相對于100 MHz的帶寬來說,這四個慢速端口恰好可以同時完成寫入和讀取,滿足了時間軸濾波模塊同時讀取連續(xù)3幀視頻圖像的要求。根據(jù)LK算法總體流水線結(jié)構(gòu),三維高斯平滑濾波和時間FIR濾波中均用到了圖像的時間軸運算,這兩種運算的結(jié)構(gòu)相同,并且根據(jù)圖像數(shù)據(jù)的特點,僅占用8位位寬。而SDRAM的數(shù)據(jù)總線為16位位寬,因此為了提高資源利用率,將SDRAM的高8位分配給三維高斯平滑濾波,低8位分配給時間FIR濾波,在FPGA邏輯單元和SDRAM空間占用不變的情況下,同時完成這兩步運算。4速度矢量計算結(jié)構(gòu)優(yōu)化通過最小二乘矩陣和浮點數(shù)運算單元可計算得到速度矢量。根據(jù)式(2)和式(3)構(gòu)造最小二乘矩陣,即利用導數(shù)Ix、Iy和It,計算∑W2I2x、∑W2I2y、∑W2IxIy、∑W2IxIt和∑W2IyIt。窗函數(shù)W的選擇有兩種方式,一是采用具有旋轉(zhuǎn)對稱性的高斯核[0.062 5,0.25,0.375,0.25,0.062 5][6],二是采用最簡單的平均值濾波方式[7]。方式二計算過程簡單,實驗證明光流計算精確度僅次于方式一,但這種方式需要用到除法運算,因此占用FPGA資源較多。而方式一經(jīng)過優(yōu)化,可完全避免乘除法運算。采用方式一設(shè)計最小二乘矩陣實現(xiàn)框圖如圖5所示。將高斯核定點化為[1,4,6,4,1]/16,這個加權(quán)計算需要3次乘法、4次加法和1次除法運算。乘除法運算量較大,但是當乘數(shù)或除數(shù)為2的N次方時,可用移位操作來代替乘除法運算,從而大幅度降低FPGA資源占用率。定點化高斯核中只有乘6運算不滿足2的N次方,將乘6運算拆分成兩級流水線乘2、乘4和一次加法運算。經(jīng)過上述優(yōu)化,最小二乘矩陣的構(gòu)造僅需要加法運算和移位操作,大大降低了FPGA圖5最小二乘矩陣實現(xiàn)框圖

Fig.5The realization diagram of leastsquare matrices資源占用率,提高了光流場的計算速度。將最小二乘矩陣結(jié)果帶入式(1)可計算得到最終的光流場速度。式(1)中包含矩陣求逆運算,計算量大,為避免中間結(jié)果溢出必須采用浮點數(shù)運算。浮點數(shù)運算單元結(jié)構(gòu)如圖6所示,首先將上一步計算結(jié)果通過int to float模塊全部轉(zhuǎn)化為浮點數(shù),然后進行浮點數(shù)基本數(shù)學運算,最后再將結(jié)果通過float to int模塊轉(zhuǎn)化為定點數(shù)。除流水線結(jié)構(gòu)需自行設(shè)計外,所有的浮點數(shù)運算都使用Quartus II軟件提供的IP核來完成。

圖6FPGA浮點計算單元框圖

Fig.6FPGA floating point calculation unit block diagram

5系統(tǒng)測試效果根據(jù)上述優(yōu)化方法在FPGA平臺上實現(xiàn)了基于LK算法的實時光流計算。在30幀/s的速度下,本系統(tǒng)可對640×480分辨率的視頻進行實時處理,實現(xiàn)了對單個運動目標進行實時跟蹤的目的。高閾值下實際測試的效果圖見圖7(a);當速度閾值降低時,如圖7(b)所示,目標跟蹤的靈敏度得到了提高,但物體的輪廓明顯變粗,可通過腐蝕和膨脹等圖像處理算法來得到清晰的目標輪廓,也可進一步運算得到物體的形心,實現(xiàn)對目標的軌跡進行跟蹤。圖7實際測試效果圖

Fig.7The actual test rendering

6結(jié)論通過在圖像預處理階段增加時間軸濾波和在3D導數(shù)計算階段增加匹配濾波,并使用優(yōu)化的匹配濾波參數(shù),提高了LK算法的計算精度。在視頻的仿真中可明顯看出,經(jīng)過這些優(yōu)化,光流場的精度得到了提高,方向一致性良好。在FPGA硬件平臺上,通過對流水線結(jié)構(gòu)進行充分的優(yōu)化,并設(shè)計了四端口RAM進行圖像緩存,實現(xiàn)了對30幀/s下640×480分辨率的視頻實時處理,對運動目標實現(xiàn)了高速精確的視頻跟蹤。由于SDRAM仍有很大剩余空間,FPGA也未使用于最高頻率,因此,在更換高速、高分辨率攝像頭的情況下,該系統(tǒng)的性能還可進一步提升。參考文獻:

[1]陳浙泊,林斌.動態(tài)圖像處理系統(tǒng)的設(shè)計與研究[J].光學儀器,2003,25(6):3438.

[2]候宏錄,高偉平.500 fps圖像采集及實時顯示關(guān)鍵技術(shù)研究[J].光學儀器,2013,35(2):5257.

[3]劉松林,牛照東,陳曾平,等.基于加權(quán)LucasKanade算法的目標跟蹤[J].光學工程,2011,38(8):6772.

[4]靳鵬飛.一種改進的Sobel圖像邊緣檢測算法[J].應用光學,2008,29(4):625628.

[5]SIMONCELLI E P.Design of multidimensional derivative filters[C]∥Proceedings of the IEEE International Conference on Image Processing,Austin,1994,1:791793.

[6]潘金山,蘇志勛,王偉.運動細節(jié)估計的光流場方法[J].計算機輔助設(shè)計與圖形學學報,2011,23(8):14331441.

[7]夏毓鵬,王昕,胡鋒.光流場算法中優(yōu)化圖像梯度數(shù)據(jù)可信度方法[J].計算機工程與應用,2010,46(4):163165.

沿河| 南平市| 巴彦淖尔市| 读书| 彩票| 崇左市| 莱西市| 乳源| 弋阳县| 固阳县| 宜州市| 海宁市| 海口市| 洮南市| 长兴县| 嘉鱼县| 清新县| 汝城县| 德兴市| 云霄县| 丹东市| 西丰县| 临城县| 边坝县| 新津县| 上饶市| 大安市| 都兰县| 鲁甸县| 淮安市| 台北市| 鱼台县| 东港市| 益阳市| 顺平县| 永丰县| 五峰| 迁西县| 拉孜县| 凤翔县| 德庆县|