《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA圖像識別與目標跟蹤系統(tǒng)
FPGA圖像識別與目標跟蹤系統(tǒng)
2014年微型機與應用第18期
范志銘1,2,蘇成悅1,鄭俊波1,林劍冰1,周冬躍1,雷 亮1
1.廣東工業(yè)大學 物理與光電工程學院,廣東 廣州 510006; 2.法雷奧汽車內(nèi)部控制(深圳)有限公司,廣東 深圳 518128
摘要: 采用FPGA搭建圖像處理系統(tǒng),通過硬件算法實現(xiàn)圖像的流水線及并行處理,實現(xiàn)了對具有特定顏色的物體的識別與跟蹤。整個系統(tǒng)工作于像素頻率,避免了算法的程序跑飛現(xiàn)象,使系統(tǒng)的可靠性大為提高,較好地保持了系統(tǒng)的低功耗特性,且優(yōu)于DSP等串行處理器結(jié)合軟件算法來實現(xiàn)的方法。
Abstract:
Key words :

  摘  要: 采用FPGA搭建圖像處理系統(tǒng),通過硬件算法實現(xiàn)圖像的流水線及并行處理,實現(xiàn)了對具有特定顏色的物體的識別與跟蹤。整個系統(tǒng)工作于像素頻率,避免了算法的程序跑飛現(xiàn)象,使系統(tǒng)的可靠性大為提高,較好地保持了系統(tǒng)的低功耗特性,且優(yōu)于DSP等串行處理器結(jié)合軟件算法來實現(xiàn)的方法。

  關鍵詞: FPGA;圖像識別;目標跟蹤

  0 引言

  近年基于FPGA硬件技術的視頻圖像處理系統(tǒng)被廣泛地應用于視頻智能監(jiān)控、智能交通系統(tǒng)、視頻采集和跟蹤系統(tǒng)等[1]。作為機器視覺的一個重要研究方向,動態(tài)目標檢測在視頻智能監(jiān)控、智能交通系統(tǒng)等方面得到了越來越多的應用[2]。通常圖像識別與跟蹤算法可以通過軟件或者硬件來實現(xiàn),但出于成本及開發(fā)難度的考慮,圖像識別與跟蹤一般由軟件來實現(xiàn)。在高速、高分辨率的情況下,傳統(tǒng)軟件的串行處理算法不足以應對大量的運算以及嚴格的時間要求,而采用硬件算法則可以實現(xiàn)并行或者流水的運算結(jié)構(gòu),大大地加快了運算速度[3]。目前可采用硬件實現(xiàn)的主要方案包括:DSP數(shù)字信號處理器、專用的集成圖像處理芯片、FPGA和配合的相關電路。與其他方案相比,使用FPGA芯片豐富的硬件資源以及硬件可重構(gòu)性,可大大提高圖像識別跟蹤系統(tǒng)的靈活性和通用性。

  本設計通過使用可編程邏輯器件和硬件算法進行圖像處理以實現(xiàn)對圖像中特定目標進行識別和跟蹤,并通過并行和流水線結(jié)構(gòu)算法大大加快圖像處理的速度,使得處理速率與輸入時鐘同步,真正地做到了無延時處理。

1 系統(tǒng)整體功能概述

  本設計中采用Altera公司的EP2C8系列FPGA作為系統(tǒng)核心。圖像從30萬像素CMOS攝像頭輸入,F(xiàn)PGA負責圖像處理以及接口管理,因攝像頭與VGA接口的幀率不同,所以使用SDRAM作為幀緩沖。高速視頻DAC芯片ADV7123負責把RGB圖像數(shù)據(jù)轉(zhuǎn)換成模擬量,以實現(xiàn)VGA輸出。系統(tǒng)的框架圖如圖1所示,整個系統(tǒng)采用5 V直流供電,可以通過AS或者JTAG接口進行調(diào)試以及程序的下載。通過鍵盤可以切換系統(tǒng)的工作狀態(tài),改變圖像的處理效果。

001.jpg

2 硬件設計

  要實現(xiàn)圖像處理,首先要搭建好圖像的采集系統(tǒng),實現(xiàn)對輸入圖像正確的顯示。由于系統(tǒng)處理的數(shù)據(jù)量大,速度快,對硬件電路的設計以及器件布局布線都有較高的要求。

  2.1 FPGA外圍電路設計

  FPGA的外圍電路包括時鐘電路、復位電路、JTAG以及AS調(diào)試接口。本設計提供40 MHz和50 MHz時鐘輸入,50 MHz時鐘可通過PLL倍頻到100 MHz作為SDRAM時鐘,也可分頻到25 MHz作為CMOS攝像頭時鐘;而40 MHz作為后備時鐘。JTAG接口可把配置數(shù)據(jù)下載到FPGA的內(nèi)部RAM上,并可以通過SignalTap嵌入式邏輯分析儀對FPGA時序進行分析。AS接口則可以把配置數(shù)據(jù)之間固化到串行EPROM上,使FPGA上電后自動配置。

  2.2 VGA接口設計

  VGA接口芯片本質(zhì)上是三路獨立的高速DA,負責把數(shù)字化的圖像數(shù)據(jù)轉(zhuǎn)換成模擬量,以供顯示器顯示。為了阻抗匹配,模擬輸出端需并聯(lián)75 Ω電阻,DAC輸出電流的最大值由偏置電位器決定,通過調(diào)節(jié)電位器,可以調(diào)節(jié)輸出圖像的最大亮度。

  2.3 SDRAM外圍電路設計

  SRAM在存儲器中速度最快、最穩(wěn)定、操作最方便,但是由于其成本高,一般靜態(tài)存儲器只適用于存儲容量小、存儲速度要求高的場合。而SDRAM相對于SRAM制造成本低很多,隨著技術的進步,SDRAM的速度越來越快,容量越來越大,穩(wěn)定性也越來越好。在視頻圖像處理中SDRAM主要用作數(shù)據(jù)緩存,也就是FPGA對SDRAM操作最頻繁的為讀命令、寫命令,在這兩個命令中間插接激活、預充電、猝發(fā)終止、刷新等命令[4]。

  SDRAM的主要作用是把經(jīng)過處理后的圖像數(shù)據(jù)以30 S/s的速率進行緩存,然后再以60 S/s的速率讀取到VGA接口輸出。采用16 bit字寬的SDRAM,讀寫時鐘為100 MHz。SDRAM總帶寬為100 MHz,其中攝像頭寫入占用12.5 MHz帶寬,VGA讀取占用25 MHz帶寬,剩余的62.5 MHz帶寬可留作圖像處理使用。

3 算法設計

  采用基于顏色的目標識別算法從背景中分割目標并動態(tài)標記,該算法實現(xiàn)簡單,但對圖像的質(zhì)量要求較高。由于CMOS攝像頭輸出的圖像噪點較多,尤其在光照不足的情況下,因此圖像的預處理工作顯得尤為重要[5]。系統(tǒng)總體算法結(jié)構(gòu)如圖2所示。

002.jpg

  預處理采用3×3的平滑濾波器對圖像進行濾波。將處理后的圖像與樣品顏色進行比較,當圖像與樣品顏色的R、G、B分量的差值在一定范圍內(nèi)時,圖像像素被標記為白色,否則標記為黑色,最終實現(xiàn)圖像的二值化。包圍盒對噪點非常敏感,在進行包圍操作前,再對圖像進行一次濾波處理。包圍盒的作用是找出目標圖像像素的最小坐標以及最大坐標,通過這兩個坐標即可計算出目標的中心位置。

  3.1 圖像平滑濾波器設計

  傳統(tǒng)的軟件算法在實現(xiàn)濾波操作時,需要先把輸入和輸出圖像都緩沖到幀緩存中去,對于每個輸出像素,算法獲取輸入圖像對應窗口的像素并用濾波函數(shù)計算來取得輸出值。由于每個輸出都需要讀取對應窗口的輸入像素,勢必占用極大的內(nèi)存帶寬,并且處理性能會受到內(nèi)存帶寬的限制。由于每個輸入像素都會被多個窗口所利用,故可以先對輸入圖像進行緩存,以便在后續(xù)的窗口中被重新利用[6]。本設計使用流水處理的方法,實現(xiàn)濾波算法的加速計算,算法結(jié)構(gòu)如圖3所示。

003.jpg

  3.2 圖像二值化

  在第一個時鐘的上升沿,攝像頭輸入的16 bit圖像數(shù)據(jù)先分割為R、G、B三個分量,分別為5 bit、6 bit、  5 bit,分別與樣本顏色的對應分量進行比較,通過減法器獲得對應的誤差絕對值,下一個時鐘上升沿,這三個誤差的絕對值再與對應的閾值進行比較,最后把比較結(jié)果進行與運算,作為最終輸出。整個二值化操作的流水線延時為兩個時鐘周期。圖4為其中一個處理通道的簡化表示。本設計的二值化操作是在RGB色彩空間上進行的,只有在R、G、B三個通道上同時滿足條件的像素點才會被設為最大值。

004.jpg

  3.3 圖像腐蝕與膨脹

  圖像的腐蝕操作能夠輕易地濾除面積小于窗口的孤立噪點而不影響圖像本身的清晰度,經(jīng)過腐蝕后目標圖像會變小,需要膨脹操作來補償腐蝕的影響,與平滑濾波器相類似。其實現(xiàn)方法如圖5所示,經(jīng)過行緩沖的像素數(shù)據(jù)依次進入窗口,通過對窗口內(nèi)所有像素進行與運算來實現(xiàn)腐蝕,進行或運算來實現(xiàn)膨脹,其效果如圖6所示。

  3.4 包圍盒設計

  一組像素的包圍盒是指能夠包圍所有像素的最小矩形,本設計在進行包圍操作之前已經(jīng)先對圖像進行二值化分割,故只需要找出每一幀圖像中目標像素橫縱坐標的最大值和最小值即可實現(xiàn)對圖像的包圍操作。

4 結(jié)論


007.jpg


  經(jīng)過處理后的圖像有VGA接口輸出,其效果如圖7所示。由于采用了硬件算法實現(xiàn)的并行以及流水結(jié)構(gòu),大大加快了圖像的處理速度,處理速度為900萬像素每秒,流水線延時約為64 ?滋s。通過動態(tài)流水線結(jié)構(gòu),系統(tǒng)可以把每一步中間處理的結(jié)果直接輸出到VGA,這樣就可以獨立地觀察每一步處理的實際效果。通過對比發(fā)現(xiàn),若關閉圖像預處理,則圖像中噪點明顯增多,包圍盒出現(xiàn)晃動,說明圖像的預處理操作能夠提高識別和跟蹤的準確度和穩(wěn)定性。

  由于使用硬件算法,從本質(zhì)上避免了傳統(tǒng)軟件算法的程序跑飛現(xiàn)象,使得系統(tǒng)的可靠性大為提高。為了提高處理速度,傳統(tǒng)軟件算法往往只能通過提高系統(tǒng)的時鐘實現(xiàn),然而過高的時鐘頻率意味著高功耗和干擾,而本設計通過流水線結(jié)構(gòu),使整個處理系統(tǒng)工作于像素頻率,同時也保持了系統(tǒng)的低功耗特性。

  參考文獻

  [1] 鄭俊波,蘇成悅,何榕禮,等.Android終端及FPGA控制的智能家居系統(tǒng)[J].微型機與應用,2014,33(5):93-95.

  [2] 向厚振,張志杰,王鵬.基于FPGA視頻和圖像處理系統(tǒng)的FIFO緩存技術[J].電視技術,2012,36(9):134-135.

  [3] MARUYAMA T, YAMAGUCHI Y. How fast is an FPGA image processing[J]. IEICE Technical Report, 2008,108(48):83-88.

  [4] 田豐,鄧建國,李巍,等.SDRAM控制器的設備與VHDL實現(xiàn)[J].電子技術應用,2010,36(2):74-77.

  [5] OLSON T, SANFORDCARL W. Real-time multistage IR image-based tracker[J]. The International Society for Optical Engineering,2011,58(112):56-57.

  [6] 王德勝,康令州.基于FPGA的實時圖像采集與預處理[J].電視技術,2011,35(3):38-41.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。