丁倩雯
(無錫科技職業學院,江蘇無錫214028)
?
基于FPGA的自適應像素分割算法設計與實現
丁倩雯*
(無錫科技職業學院,江蘇無錫214028)
摘要:為了解決運動目標前景檢測的精度問題,提出了一種基于FPGA實現的自適應像素分割系統。該系統通過構建新的背景模型和前景分割檢測技術優化檢測結果,并對傳統的自適應像素分割算法進行了調整和修改,以便在FPGA平臺上進行硬件實現。在Xilinx virtex7 FPGA芯片上已完成了硬件測試。試驗測試結果顯示相比其他算法,本文提出設計的各項性能指標均表現良好,檢測精度達到71.4%,平均功耗為6.452 W。能夠實現以50 frame/s,實時處理分辨率為720×576的視頻流。關鍵詞:目標檢測; FPGA;自適應;背景建模
前景目標檢測和背景建模是現實世界中許多圖像處理與分析系統的重要組成部分。比如:先進的自動化視頻監控系統,遠程病人監控視頻,視頻交通監控,自動導引車或語義圖像分析。前景目標對象分割的目的是把圖像中的所有像素分為兩類:背景元素和前景對象。在現實世界,許多的應用背景元素可能不是靜態的。流動的水或樹枝在風中搖曳就是典型例子。在這樣的場景中簡單的將當前幀和背景圖像相減取閾值,不足以獲得良好的結果,很難將前景對象從背景元素中分離出來。另一方面,分析的主體對象(例如,人,車,等)可能會停止一段時間,這也會加入背景模型造成錯誤的判斷。此外,當他們再次開始移動時,也會發生假的誤報性錯誤[1]。
以上例子表明了問題的復雜性,因此許多文獻都提出了相關研究,以進一步更好地實現背景建模和目標分割算法。其中最基本的是采用計算N-last緩沖幀的平均數/中值數。更復雜的采用多變量,如GMM(高斯混合模型)、分簇和編碼本等,文獻[2]對此做出了比較全面的概述。
文獻[3]提出了通過小波變換對不同區域進行參數調整,實現了自適應閾值去除背景和噪聲完成目標檢測。文獻[4]通過參數空間中累加器的無效累積,對比兩次閾值結果,提出了改進的Hough圓形目標檢測算法。文獻[5]提出了一個基于像素的參數自適應目標檢測方法PBAS (Pixel-Based Adaptive Segmenter),該算法的創新之處在于其背景模型包含N個樣本,且樣本間的臨時關系跟傳統算法相反,但算法復雜程度有所提高了。
FPGA可重構設備被證明是一個良好的平臺用作硬件實現圖像處理和分析算法。同時也可用于背景建模和前景目標檢測。這主要是由于并行計算和管道數據處理,可用于有效的實現背景生成算法,而且在多變量方法中每個變體都可以并行計算。
在文獻[3]中描述了一個GMM(高斯混合模型) 的FPGA實現。模塊能夠按照20 frame/s的幀率處理高清視頻。雖然也是在FPGA設備進行模擬目標,但最后沒有給出工作系統的參數說明。文獻[4]提出了基于Horprasert的背景建模算法硬件實現。其目標平臺為XilinxSpartan 3 FPGA系列。作者修改了原始算法通過添加陰影的檢測機制,改善了分割結果。該系統是一個硬件軟件合作設計方法的例子。部分計算和控制功能是由Microblaze嵌入式軟核完成的。此外,使用兩種不同的邏輯描述方法:C++語言(對象檢測)和硬件描述語言(VHDL) (輔助模塊)。但是其沒有提出背景的更新機制設計。最初的模型是由Microblaze嵌入式軟核基于第一個128幀的視頻序列構造。同時最終的實現采用了一個前景對象模板標記機制。該系統能夠處理每秒32幀1024×1024分辨率的視頻。估計功耗為5.76 W。
本文提出了一種改進的基于FPGA實現的自適應像素分割系統,并在Xilinx Virtex 7 FPGA系列的VC707評估板上進行了設計驗證。系統通過構建新的背景模型和減法技術優化檢測結果,對傳統的自適應像素分割算法進行了調整和修改,以便在FPGA平臺上進行硬件實現。實驗測試使用Changedetection.net數據庫[4],采用了市面通用的能夠實時顯示處理720×576@50幀視頻的攝像系統。
在自適應像素分割算法中[5],背景模型是基于分析視頻序列中N個樣本的緩沖區構建的。設xi表示一個特定的像素。根據模型B(xi)與當前幀I(xi)的對比結果,可以完成前景/背景分類。對于每一個像素,設置一個獨特的決策閾值是R(xi)。按照指定的參數T(xi)對隨機樣本進行更新。對每個像素的R(xi),T(xi)分別進行調整,使得PBAS區別于其他方法。在下面的章節中對算法過程給出了詳細描述。
1.1前景分割處理
在自適應像素分割算法中,需要根據當前像素模型的比較結果,對前景/背景進行分類。對于本文提出的方法,背景模型被定義為一個最近觀察到的像素值數組N:

當I(xi)與背景模型中≠min采樣點之間差值,小于閥值R(xi)時,像素點xi屬于背景。因此,目標模板可由以下公式計算:

式中:F=1表示前景,F=0表示背景,且dist表示差值測量:

1.2參數更新
以前打仗一樣15分鐘就結束戰斗的晚飯竟吃了一個半小時,兩個人說說笑笑的樣子讓寶寶都覺得不適應了。小家伙來拉林藍的手,吃醋地說:“媽媽,不要陪爸爸說話了,陪寶寶去搭積木。”
背景模型更新的補償是補償光照微小變化的必要途徑,如在顯示場景的一些不可避免的變化(晃動的樹木,流水和停車場中汽車的出現和消失)[6]。
一個背景建模方法可以被區分兩種更新策略[7]:自由派和保守派。對于第一種情況,所有的像素都被更新,第二種只更新被分類為背景的像素。這兩種方法都有一定的獨特性,自由策略的主要缺點是對于在背景模型中快速移動的前景目標,會導致分割錯誤,因此只適用于物體移動很慢的情況。保守的方法避免了上述的現象,但也存在一個缺點,即使用前景對象模板作為更新條件會導致“死鎖”[8],這主要是由小的分割誤差和運動的物體引起。此外,一旦一個錯誤出現將永遠不能將其忽略。因此需要設計一些專有機制來避免這種情況的發生。一個可行的解決方案是計算一個像素被分類為目標對象的次數。當計數器的值超過閾值,則強制其更新。自適應像素分割算法使用了保守的策略,即使用一個額外的機制更新相鄰像素,從而防止不可挽回的分割錯誤。
只有當像素被分類為背景時,才可能會更新(F=0)。具體操作是使用當前像素值I(xi)替換從背景模型Bk(xi)中隨機選擇的樣本。更新的概率為p=1/T(xi)。同樣,從3×3的局部內容中隨機選擇一個模型,再從選擇的模型中隨機選擇一個樣本,并用當前值I(yi)對其進行替換。其中yi表示選擇內容的一個像素。
在自適應像素分割算法中,提出了一種R(xi)更新機制。首先,當前像素和模型采樣之間的最小差值為:D={ D1(xi),…,DN(xi) },如果一個像素更新最小差值:

D(xi)的平均值是背景動態變化的指標,用于R(xi)的更新:

式中:Rinc/dec表示更新率常量,Rinc/dec=0.5。Rsc表示換算系數,Rsc=5。另外,判決閥值有一個下界Rlower=18。
學習速率更新過程如下:

在實際中,視頻序列都基本處在RGB顏色空間。因此文獻[6]提出單獨處理每個顏色組件,并使用或運算比較結果分割模板(例如,F (xi) = FR(xi) ORFG(xi) ORFB(xi) )。
在原始算法中,背景模型進行了邊緣信息補充(使用Sobel梯度值)。然而,分析[5]中所描述的結果,卻得到的以下結論:增加邊緣信息,對分割只是略有改善,卻會導致背景模型的大小增加,并使得當前像素和背景之間差值計算變得更復雜。因此,在本文描述的硬件實現中沒有使用這一機制。
在可編程器件FPGA上實現背景建模算法的一個主要的問題,是需要為連接外部存儲器資源提供較高的傳輸速率,其中背景模型存儲參考文獻[9-10]。在使用自適應像素分割算法的情況下,要確保以下的傳輸速

式中:noCC表示色彩分量序號(1-灰度,3-RGB),bR表示更新速率T(xi)位數,N表示像素樣本的數量,bB表示單個樣本Bk(xi)的位數。bD表示最小差值Dk(xi)的位數。乘以2是因為數據的讀取和寫入。使用的硬件平臺(VC707)的最大可用傳輸速率為2 048 bit/像素時鐘周期(720像素×576像素在50 frame/s時,像素時鐘頻率為25 MHz)。具體參數[11]設置如下:

式中:bR=bT=16 bit,bB=bD=8 bit。16 bit由8 bit整數位和8 bit小數位組成。
在這種情況下,最大樣本數量數量N = 17 (RGB),N=19(grey)。R(xi)和T(xi)的精度可通過以下參數設置。上下界的限制值為一個8 bit的整數(R(xi)的最大值為255,因為更大的數量對閥值dist沒有任何影響)[12]。此外,在使用的FPGA設備中單個乘法器DSP48可以處理整個16 bit數字。
圖1顯示了本文提出的FPGA硬件實現系統的結構圖。通過Avnet DVIIO FMC模塊(FPGA Mezzanine Card)的HDMI接口接收視頻數據,能夠高頻率的串行信號轉換成并行格式。3個顏色通道隨之分離,并通往3個獨立的主處理單元實體。模型存儲在外部存儲器。在以前的文獻[6]中,使用特殊的控制器來執行背景模型的序列讀取和寫入。偽隨機數的產生(RNG)過程參照文獻[5]中的描述。

圖1 本文提出的FPGA硬件實現系統的結構圖
從外部RAM內存,每一個顏色分量處理單元載入先前的算法產生的背景模型。第1步,按照式(3)計算當前像素值與所有先前產生的樣本之間的差值,并與閥值R(xi)進行比較。這些信息被傳遞給兩個模塊。第1個模塊是一個求和模塊。將超過R(xi)差值的和與閥值進行比較,并通過式(2)進行前景/背景分類。每個顏色分量RGB的前景模板使用OR進行運算處理,最后經過一個9×9的中值濾波器。第2步計算最小差值,并使用二進制比較數計算機其對應的索引。
雖然分割結果是計算得到的,但是在下次迭代前,背景模型必須更新。為了實現這個任務,創建了一個三維的context模型,它擁有基本的3×3滑動布局窗口,但是每個單一的元素由當前像素值I(xi),N背景模型樣本Bk(xi),N最小差值DK(xi)和參數(R(xi),T(xi) )組成。圖2顯示了自適應像素分割軟件流程。

圖2 自適應像素分割軟件流程框圖
通過RNG模塊產生4個隨機數,并發送給更新控制器模塊。第1個被用于決定是否執行一個更新處理。如果執行,像素中心的一個隨機樣本,一個隨機相鄰模型和該模型的一個隨機樣本被挑選出來替換相應的當前像素值。
最后,計算出像素中心的一個平均最小差值珔dmin(xi),這需要使用求和樹和分頻器。然后使用得到信息來更新決策閾值(式(5) )和學習速率參數(式(6) )。所有這些信息被組合起來,然后用于更新圖像制定像素的背景模型。數值存儲在一個FIFO中(內存控制器使用與圖像處理模塊不同的時鐘)。在背景模型初始化時,所有的參數設置為默認值,使用從3×3context中隨機挑選的像素填充樣本緩沖。然后按下一個按鈕,系統進入正常運轉模式。
通過在MATLAB中編寫腳本,會自動生成了VHDL文件。該VHDL文件描述了主要的處理模塊,以及子模塊:求和樹,二進制比較樹、context等。這能夠方便的修改參數,特別是樣本的數目N。使用一個類似的方法產生了均值模塊。這樣的設計具有較高的靈活性,容易在其他硬件平臺進行實現。
該系統項目使用了VHDL和Verilog硬件描述描述語言,硬件平臺采用一個Virtex 7(XC7VX485T) FPGA開發板配合Xilinx ISE 14.4仿真套件。選取了帶有Avnet DVI I/O FMC模塊的Xilinx VC707評估板。在ISim軟件中的仿真模擬結果顯示提出的硬件模塊完全符合在C++中實現的軟件模型。顯示的最大工作頻率為124 MHz,足夠實現以50 frame/s的速率實時處理720×576彩色視頻數據。根據Xilinx XPower Analyzer上顯示的數據,功耗大概為4.228 W。綜合分析得出,本文提出的FPGA系統的功耗約為(6.452 W)。資源使用情況如表1所示。

表1 系統資源利用率
圖3給出了實驗評估使用的Xilinx virtex 7 FPGA開發板實物圖。

圖3 使用的Xilinx virtex 7 FPGA開發板系統分辨率720×576,50 frame/s,RGB,N=17,中值濾波9×9) (
為了評估本文提出系統的性能,使用OpenCV庫和IEEEchangedetection.net數據庫編寫了一個C++程序,實現算法的軟件模型。數據集包含的序列可分為6類:基本的,動態背景,相機抖動,間歇運動對象,陰影,目標運動。該數據庫包含了背景建模算法所需的大部分圖像。圖4給出了樣本圖像和獲得的目標模板圖像。

圖4 背景模型包含19個樣本,使用RGB顏色空間
實驗所用方法的具體描述如下:
(1)將通過算法計算得到的目標模板與參考模板比較,因為自適應像素分割算法不包含一個內置的陰影檢測程序,只考慮前景和背景分類。其中TP (True Positive)表示像素屬于前景對象,分類為前景像素。TN(True Negative)表示像素屬于前景對象,分類為前景像素。FP(false positive)表示像素屬于前景對象,分類為前景像素。FN(false negative)表示像素屬于前景對象,分類為前景像素。
(2)然后按照以下方法計算其他參數:


最終獲得結果如表2所示。可見本文提出的硬件實現的查全率,特征值,FNR(漏報率)和FPR(誤判率)與文獻[5]數據(即傳統的軟件實現自適應像素分割算法)很接近。錯誤分類比值高于傳統軟件實現方法,但是接近GMM結果。其中相比其他方法,硬件實現的FPR比較高,這是由于硬件實現和軟件實現之間存在不同:(1)更少的背景模型樣本數量(NFPGA=17,NSOFT=35); (2)固定的參數點計算(特別是R(xi),T(xi) )。值得注意的是,本文提出的FPGA實現以50幀/s速率,實時處理分辨率為720×576的視頻流,優于在i7 3.5 GHz多線程處理器上的軟件實現[5]且更節能。

表2 系統資源利用率
本文給出了自適應像素背景建模和前景分割算法的FPGA硬件設計,將原算法轉變成固定點計算,且用并行計算方式進行了實現。在changedetection.net數據庫上的測試結果表明了該設計的有效性和先進性。在合適硬件平臺上,可以實現以50幀/s速率,實時處理分辨率為720×576的視頻流。
參考文獻:
[1]戚世樂,王美清.自適應分割弱邊緣的活動輪廓模型[J].山東大學學報:工學版,2013(6) :17-20,33.
[2]強振平,劉輝,尚振宏,等.改進的基于統計模型的前景檢測方法[J].計算機應用,2013(6) :1682-1685,1694.
[3]王艷華,劉偉寧,陳愛華.基于小波變換的海空背景下小目標檢測研究[J].電子器件,2007,30(3) :992-994,998.
[4]張道德,胡新宇,楊光友.一種改進的隨機Hough變換圓形檢測算法[J].電子器件,2009,32(3) :721-724.
[5]Genovese M,Napoli E.FPGA-Based Architecture for Real Time Segmentation Adenoising of HD Video[J].Journal of Real-Time ImageProcessing,2011,11(2) :1-13.
[6]Rodriguez-Gomez R,Fernandez-Sanchez E J,Diaz J,et al.FPGA Implementation for Real-Time Background Subtraction Based on Horprasertmodel[J].Sensors,2012,12(1) :585-611.
[7]Hofmann M,Tiefenbacher P,Rigoll G.Background Segmentation with Feedback:The Pixel-Based Adaptive Segmenter[C]/ /Computer Visionand Pattern Recognition Workshops(CVPRW),2012 IEEE ComputerSociety Conference on,June,2012:38-43.
[8]李鴻生,薛月菊,黃曉琳,等.改進的自適應混合高斯前景檢測方法[J].計算機應用,2013(9) :2610-2613.
[9]揭展明,段文迪,曹雨.基于OpenCV前景檢測的循跡算法[J].計算機光盤軟件與應用,2013,19:99-101.
[10]祝貴,楊恢先,岳許要,等.自適應的最大散度差圖像閾值分割法[J].計算機工程與應用,2013,15:188-191.
[11]李擁軍,曾標,徐克付,等.復雜背景下基于貝葉斯-全概率聯合估計的前景檢測[J].電子與信息學報,2012(2) :388-392.
[12]楊濤,李靜,潘泉,程詠梅.一種基于多層背景模型的前景檢測算法[J].中國圖象圖形學報,2008(7) :1303-1308.

丁倩雯(1983-),女,漢族,江蘇無錫市人,無錫科技職業學院講師,碩士,研究方向為電子技術,電路設計,自動控制技術,dingqw1983@ 163.com。
Design of a Low-Jitter Charge Pump Phase-Locked Loop*
BAI Yang,ZHANG Wanrong*,JIANG Zhiyun,HU Ruixin,ZHUO Huihan,CHEN Changlin,ZHAO Feiyi
(College of Electronic Information and Control Engineering,Beijing University of Technology,Beijing 100124,China)
Abstract:A low-jitter charge pump phase-locked loop(CPPLL) was proposed to resolve the problems of jitter of conventional CPPLL.The CPPLL consists of a dynamic phase frequency detector,a charge pump based on constantgm rail-to-rail operational amplifier,a differential ring VCO.Based on SMIC 0.18-μm CMOS process,the novel CPPLL was designed and verified by Cadence.The results indicated the dynamic PFD effectively eliminated the dead zone to reduce the jitter of CPPLL.The current mismatch of novel CP was less than 2% when the output voltage ranged from 0.5 V to 1.5 V.The output phase noise of VCO was-94.87 dB at 1 MHz when the frequency was 1 MHz.The tuning range of VCO was 0.8 GHz~1.8 GHz.Output voltage fluctuation of locking CPPLL was 2.45 mV.Peak-peak jitter of output clock was 12.5 ps.
Key words:charge pump phase-locked loop; low jitter; constant-gm rail-to-rail operational amplifier; VCO
中圖分類號:
文獻標識碼:A
文章編號:1005-9490(2015) 03-0510-06
收稿日期:2014-07-17修改日期:2014-10-21
doi:EEACC:125010.3969/j.issn.1005-9490.2015.03.009