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

?

基于FPGA的機(jī)器視覺技術(shù)視頻跟蹤系統(tǒng)實現(xiàn)

2018-09-14 12:01劉紫燕
電子科技 2018年9期
關(guān)鍵詞:形心云臺小車

劉紫燕,唐 虎,馮 亮

(1.貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025;2.中國移動通信集團(tuán)福建有限公司 福州分公司,福建 福州 350000)

近年來,電子技術(shù)及機(jī)器視覺技術(shù)在運動分析、智能視頻監(jiān)控、人機(jī)交互、軍事等領(lǐng)域廣泛應(yīng)用,使得視頻跟蹤技術(shù)在工程應(yīng)用中有著重要的應(yīng)用研究價值[1]。目前,較為成熟的視頻跟蹤算法主要是基于Matlab仿真平臺實現(xiàn),而通過硬件仿真方式實現(xiàn)的視頻跟蹤算法很少[2]。

現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)以其集成度高、多級流水線技術(shù)、并行處理等優(yōu)點,使得芯片運行速度得到較大提高[3]。為了在滿足用戶性能需求的同時提高圖像幀的處理效率,可利用FPGA硬件邏輯電路實現(xiàn)視頻圖像分析[4]。因此,研究基于FPGA機(jī)器視覺技術(shù)的視頻跟蹤系統(tǒng),可解決傳統(tǒng)視頻跟蹤系統(tǒng)中存在的精確度低、刷新率低、實時性差、性價比低等問題。

本文設(shè)計了FPGA平臺的實時視頻采集顯示系統(tǒng),對視頻目標(biāo)的實時檢測、定位及跟蹤算法進(jìn)行了研究,確定視頻目標(biāo)特征參數(shù),計算出目標(biāo)的運動軌跡,然后通過控制云臺步進(jìn)電機(jī)信號,并通過FPGA輸出該控制信號,驅(qū)動加載有攝像頭的云臺系統(tǒng)轉(zhuǎn)動。

1 視頻跟蹤系統(tǒng)硬件架構(gòu)

1.1 系統(tǒng)總體設(shè)計

系統(tǒng)主要功能模塊可分為:圖像采集模塊、SDRAM控制模塊、視頻處理模塊、VGA顯示模塊、云臺驅(qū)動模塊、云臺電機(jī)6個部分[5-6],系統(tǒng)設(shè)計框圖如圖1所示。

圖1 視頻跟蹤系統(tǒng)構(gòu)圖

圖1中,攝像頭負(fù)責(zé)實時視頻圖像進(jìn)行采集,輸出視頻圖像數(shù)據(jù)傳送至FPGA核心器件,F(xiàn)PGA核心器件通過內(nèi)部設(shè)計的各功能模塊對視頻圖像數(shù)據(jù)進(jìn)行存儲和處理,輸出VGA顯示圖像數(shù)據(jù)、云臺控制信號,云臺電機(jī)上加載的攝像頭根據(jù)控制信號進(jìn)行相應(yīng)轉(zhuǎn)動,達(dá)到實時跟蹤的目的。FPGA器件內(nèi)部功能模塊主要包括圖像采集、多端口SDRAM控制器、圖像VGA顯示、視頻圖像處理等。

圖1中的視頻圖像處理模塊工作流程如圖2所示[7-8]。首先對攝像頭采集到的視頻圖像進(jìn)行預(yù)處理;然后采用優(yōu)化后的幀間差分法提取出運動目標(biāo);使用形心法計算目標(biāo)形心的坐標(biāo),從而完成目標(biāo)的定位;最后,根據(jù)目標(biāo)形心坐標(biāo)計算其相對于監(jiān)控畫面中心的偏移量,通過調(diào)節(jié)該偏移量得到相應(yīng)的電機(jī)控制信號,驅(qū)動云臺步進(jìn)電機(jī)上攝像頭跟隨目標(biāo)轉(zhuǎn)動,實現(xiàn)對被跟蹤目標(biāo)實時跟蹤。

圖2 視頻圖像處理模塊處理流程

1.2 系統(tǒng)工作流程

基于FPGA平臺的視頻跟蹤系統(tǒng)工作框圖如圖3所示。首先FPGA通過I2C協(xié)議對圖像傳感器初始化,發(fā)送攝像頭圖像數(shù)據(jù)采集命令。其次,格式變換模塊將采集到的Bayer格式視頻圖像數(shù)據(jù)輸出為30位RGB圖像數(shù)據(jù),并通過多端口SDRAM進(jìn)行視頻圖像幀緩存,多端口SDRAM控制器會通過設(shè)計的FIFO接口輸出VGA顯示和圖像預(yù)處理所需要的圖像數(shù)據(jù),實現(xiàn)圖像的VGA現(xiàn)實及圖像預(yù)處理。通過預(yù)處理后提取到的圖像信息計算運動目標(biāo)的形心坐標(biāo)及運動矢量,從而驅(qū)動云臺電機(jī)轉(zhuǎn)動。

圖3 視頻跟蹤系統(tǒng)工作流程

2 以太網(wǎng)控制器設(shè)計

視頻跟蹤系統(tǒng)流程如圖4所示,主要包含3大核心模塊:目標(biāo)檢測模塊、目標(biāo)跟蹤模塊及電機(jī)控制器模塊[2]。其中,目標(biāo)檢測模塊主要提取實時視頻圖像序列中運動目標(biāo)的特征邊緣信息,不同算法的檢測精度不同,將直接影響目標(biāo)跟蹤的準(zhǔn)確度;目標(biāo)跟蹤則根據(jù)提取到的特征信息,通過分析圖像序列特征信息的變化情況,實現(xiàn)對運動目標(biāo)進(jìn)行跟蹤;電機(jī)控制器通過計算目標(biāo)的形心坐標(biāo)相對于監(jiān)控畫面中心偏移情況,從而驅(qū)動云臺步進(jìn)電機(jī)上的攝像頭跟隨目標(biāo)轉(zhuǎn)動,實現(xiàn)對被跟蹤目標(biāo)的實時跟蹤。

圖4 視頻跟蹤系統(tǒng)流程

2.1 目標(biāo)檢測

目標(biāo)檢測[9-10]算法框圖如圖5所示,采用幀間差分法[11-12]對SDRAM緩存的圖像序列進(jìn)行檢測,通過Sobel算子對圖像序列中的目標(biāo)邊緣進(jìn)行提取,采用形態(tài)學(xué)中的膨脹算法(Dilation)進(jìn)行優(yōu)化[13-14],從而得到更加清晰的目標(biāo)邊緣檢測結(jié)果。

圖5 目標(biāo)檢測算法框圖

差分算法以相鄰的兩幀或者等間隔的兩幀圖像序列作為研究對象,假設(shè)t時刻圖像為fk,則t-1時刻的圖像為fk-1,差分后得到結(jié)果Dk(i,j)如下

Dk(i,j)=|fk(i,j)-fk-1(i,j)|

(1)

Sobel算子是由兩個卷積核g1(x,y)與g″2(x,y)對原圖像f(x,y)進(jìn)行卷積運算而得到的。其數(shù)學(xué)表達(dá)式為

S(x,y)=max[X,Y]

(2)

(3)

(4)

數(shù)學(xué)形態(tài)學(xué)[15]是一種數(shù)學(xué)方法,主要用集合論方法定量描述、分析幾何形狀和結(jié)構(gòu)。幾種常用的數(shù)學(xué)形態(tài)學(xué)運算有:膨脹、腐蝕、開運算和閉運算。

設(shè)A為一幅二值圖像,B為結(jié)構(gòu)元素,則膨脹運算定義為

(5)

開運算定義為

AB=(AΘB)⊕B

(6)

閉運算定義為

A·B=(A⊕B)ΘB

(7)

2.2 目標(biāo)跟蹤

采用形心定位的方法對前級檢測到的運動目標(biāo)進(jìn)行定位,跟蹤目標(biāo)形心坐標(biāo)計算流程如圖6所示,形心定位法的重點之處在于統(tǒng)計邊緣圖像中二值圖像素點為1的個數(shù),通過該方式可實時計算并輸出目標(biāo)的形心坐標(biāo)。

圖6 目標(biāo)形心提取流程

在FPGA平臺上計算目標(biāo)形心坐標(biāo)時,用一個計算器Num_counter來統(tǒng)計f(x,y)中值為“1”的像素點的個數(shù),視頻圖像中像素值為1的像素點的坐標(biāo)累加值可用兩個寄存器(Sum_X,Sum_Y)來存儲,因此當(dāng)前像素的坐標(biāo)值也可用X_counter和Y_counter兩個計數(shù)器來表示。若讀取的值為1,進(jìn)行式(8)~式(10)的計算。

Num_counter=Num_counter+1

(8)

Sum_X=Sum_X+X_counter

(9)

Sum_Y=Sum_Y+Y_counter

(10)

此時,只需完成一幀圖像數(shù)據(jù)的掃描,即可得到運動目標(biāo)的形心坐標(biāo),如式(11)和式(12)所示。

(11)

(12)

如圖7所示為形心定位法的FPGA實現(xiàn)模塊圖,對實時圖像中跟蹤定位的目標(biāo)進(jìn)行邊緣檢測后,得到的二值化結(jié)果由DATA_IN引腳進(jìn)行輸入, CLK_IN、RST_IN和DATA_EN引腳則分別輸入時鐘信號、輸入復(fù)位信號、使能信號,而被跟蹤目標(biāo)的形心坐標(biāo)(Out_X,Out_Y)分別由O_X和O_Y引腳輸出。

圖7 形心定位法FPGA實現(xiàn)模塊

在VGA顯示屏幕上進(jìn)行顯示時,使用十字形標(biāo)記出所跟蹤目標(biāo)的形心點位置。

2.3 電機(jī)控制器模塊

根據(jù)FPGA實現(xiàn)目標(biāo)形心計算方法描述,被跟蹤目標(biāo)形心(O_X,O_Y)相對于VGA顯示畫面中心的實時運動矢量記為(Δx,Δy),當(dāng)Δx、Δy超過設(shè)定范圍h、v時,首先由PWM生成電路在X、Y方向產(chǎn)生PWM云臺步進(jìn)電機(jī)控制脈沖信號,然后由GPIO接口輸出至驅(qū)動器,驅(qū)動器接收后通過驅(qū)動放大電路送出,云臺步進(jìn)電機(jī)接收到該信號的驅(qū)動后帶動攝像頭做出相應(yīng)移動,具體為:當(dāng)Δx<-h時,云臺步進(jìn)電機(jī)受控制信號驅(qū)動帶動攝像頭水平方向向左轉(zhuǎn);當(dāng)Δx>-h時,云臺步進(jìn)電機(jī)受控制信號驅(qū)動帶動攝像頭水平方向向右轉(zhuǎn);當(dāng)Δy<-h時,云臺步進(jìn)電機(jī)受控制信號驅(qū)動帶動攝像頭垂直方向向上轉(zhuǎn);當(dāng)Δy>-h時,云臺步進(jìn)電機(jī)受控制信號驅(qū)動帶動攝像頭垂直方向向上轉(zhuǎn)。其云臺電機(jī)系統(tǒng)運行原理如圖8所示。

圖8 電機(jī)系統(tǒng)運行原理示意圖

如圖9所示,在電機(jī)控制器的FPGA實現(xiàn)中,本文使用VerilogHDL語言設(shè)計了3個主要的功能模塊:(1)Motorcontrol模塊,輸入形心坐標(biāo),輸出云臺電機(jī)控制信號;(2)controlmotor模塊,根據(jù)前一模塊輸入的控制信號判斷攝像頭轉(zhuǎn)動的方向;(3)PWM模塊,產(chǎn)生PWM信號控制電機(jī)轉(zhuǎn)動。

圖9 電機(jī)控制器實現(xiàn)功能模塊圖

3 視頻跟蹤系統(tǒng)測試結(jié)果與分析

在各功能模塊完成仿真驗證后,結(jié)合相應(yīng)的IO接口,按照本文設(shè)計的視頻跟蹤系統(tǒng)集成示意圖如圖10所示。

圖10 系統(tǒng)集成示意圖

連接CMOS圖像傳感器、VGA顯示器、云臺驅(qū)動器、云臺電機(jī),下載工程代碼至Altera公司DE2-70主板驗證。

圖11 行人實時視頻跟蹤系統(tǒng)實現(xiàn)

實驗在室內(nèi)環(huán)境進(jìn)行,分別以人跟小車作為測試對象。圖11為行人視頻跟蹤結(jié)果,其中十字標(biāo)志為系統(tǒng)計算的目標(biāo)形心位置,測試結(jié)果表明,所設(shè)計的系統(tǒng)能夠準(zhǔn)確跟蹤到行人目標(biāo)。

由于FPGA在進(jìn)行視頻跟蹤處理時,很難直接對處理后的視頻圖像序列逐幀調(diào)試,故通過FPGA的開關(guān)鍵來控制捕獲不同的關(guān)鍵圖像幀進(jìn)行測試。

圖12 小車實時視頻跟蹤系統(tǒng)實現(xiàn)

圖12為小車視頻跟蹤結(jié)果,在經(jīng)過Sobel算子邊緣提取之后,以準(zhǔn)確跟蹤到小車時圖像幀(第55幀)、小車向右行駛圖像幀(第96幀)、小車形態(tài)發(fā)生變化圖像幀(第135幀)作為跟蹤結(jié)果進(jìn)行分析。圖中的標(biāo)記中,方框為設(shè)定的邊界,十字形為被跟蹤定位的目標(biāo)形心。云臺電機(jī)的控制信號由目標(biāo)形心是否移動至方框外決定,以此來實現(xiàn)視頻目標(biāo)的實時跟蹤。如表1所示,從開始到準(zhǔn)確定位到小車位置,用時1.83 s,平均刷新一幀圖像只需要0.033 1 s;當(dāng)小車向右行駛時,系統(tǒng)檢測到小車位置,并根據(jù)小車形心的移動情況判斷出小車的運行方向,用時1.36 s,平均刷新一幀圖像需要0.033 2 s;當(dāng)小車?yán)^續(xù)運動1.3 s時,小車在攝像頭中形態(tài)發(fā)生變化,雖然系統(tǒng)仍然可以檢測到小車的形心位置,但是小車可能靠近攝像頭行駛,也可能遠(yuǎn)離攝像頭行駛,無法準(zhǔn)確判斷。測試結(jié)果表明,所設(shè)計的系統(tǒng)能夠準(zhǔn)確、實時跟蹤到小車,但當(dāng)目標(biāo)小車形態(tài)發(fā)生改變時,無法跟蹤。

綜上所述,設(shè)計的FPGA平臺視頻跟蹤系統(tǒng)在實時性與準(zhǔn)確性等方面都有較好的表現(xiàn),形心定位法的快速計算獲得目標(biāo)邊緣形心坐標(biāo),實現(xiàn)云臺電機(jī)根據(jù)目標(biāo)實時轉(zhuǎn)動效果。

表1 視頻圖像跟蹤測試

在視頻跟蹤系統(tǒng)中對跟蹤目標(biāo)進(jìn)行定位和跟蹤時,當(dāng)目標(biāo)物體的形態(tài)產(chǎn)生變化,將無法準(zhǔn)確跟蹤到目標(biāo)。當(dāng)跟蹤目標(biāo)被遮擋,形心法將無法準(zhǔn)確計算目標(biāo)形心坐標(biāo),因此,本文所實現(xiàn)的目標(biāo)定位、跟蹤方法適用于目標(biāo)物形態(tài)不變情況下的視頻跟蹤。

4 結(jié)束語

本文研究了機(jī)器視覺技術(shù)下的FPGA視頻跟蹤問題,設(shè)計了FPGA的實時視頻采集顯示系統(tǒng),研究實現(xiàn)了實時視頻目標(biāo)檢測、定位及跟蹤算法,根據(jù)跟蹤目標(biāo)參數(shù)及運動軌跡,計算云臺步進(jìn)電機(jī)控制脈沖信號,并通過FPGA輸出該控制信號,云臺電機(jī)受到控制信號驅(qū)動后帶動攝像頭轉(zhuǎn)動。將視頻跟蹤系統(tǒng)中的各個子系統(tǒng)在FPGA平臺上進(jìn)行了集成與測試。測試結(jié)果表明,所設(shè)計的FPGA平臺視頻跟蹤系統(tǒng)在實時性與準(zhǔn)確性等方面都有較好的表現(xiàn),與傳統(tǒng)視頻跟蹤系統(tǒng)相比,該系統(tǒng)具有實時刷新率高、精確跟蹤目標(biāo)等優(yōu)勢。但本文所提出的算法僅適用于目標(biāo)形態(tài)不變情況下的視頻跟蹤,可從運動補償角度考慮。

猜你喜歡
形心云臺小車
云上之家——萬科·郡西云臺
龍門山·臥云臺
幫我買云臺
快樂語文(2020年36期)2021-01-14
自制小車來比賽
“重心”“形心”考
基于MATLAB圖像特征提取的零件位置識別
基于MATLAB圖像特征提取的零件位置識別
基于STM32的無線FPV云臺設(shè)計
劉老師想開小車