丁倩雯
(無錫科技職業(yè)學院,江蘇無錫214028)
?
基于FPGA的自適應像素分割算法設計與實現(xiàn)
丁倩雯*
(無錫科技職業(yè)學院,江蘇無錫214028)
摘要:為了解決運動目標前景檢測的精度問題,提出了一種基于FPGA實現(xiàn)的自適應像素分割系統(tǒng)。該系統(tǒng)通過構(gòu)建新的背景模型和前景分割檢測技術(shù)優(yōu)化檢測結(jié)果,并對傳統(tǒng)的自適應像素分割算法進行了調(diào)整和修改,以便在FPGA平臺上進行硬件實現(xiàn)。在Xilinx virtex7 FPGA芯片上已完成了硬件測試。試驗測試結(jié)果顯示相比其他算法,本文提出設計的各項性能指標均表現(xiàn)良好,檢測精度達到71.4%,平均功耗為6.452 W。能夠?qū)崿F(xiàn)以50 frame/s,實時處理分辨率為720×576的視頻流。關鍵詞:目標檢測; FPGA;自適應;背景建模
前景目標檢測和背景建模是現(xiàn)實世界中許多圖像處理與分析系統(tǒng)的重要組成部分。比如:先進的自動化視頻監(jiān)控系統(tǒng),遠程病人監(jiān)控視頻,視頻交通監(jiān)控,自動導引車或語義圖像分析。前景目標對象分割的目的是把圖像中的所有像素分為兩類:背景元素和前景對象。在現(xiàn)實世界,許多的應用背景元素可能不是靜態(tài)的。流動的水或樹枝在風中搖曳就是典型例子。在這樣的場景中簡單的將當前幀和背景圖像相減取閾值,不足以獲得良好的結(jié)果,很難將前景對象從背景元素中分離出來。另一方面,分析的主體對象(例如,人,車,等)可能會停止一段時間,這也會加入背景模型造成錯誤的判斷。此外,當他們再次開始移動時,也會發(fā)生假的誤報性錯誤[1]。
以上例子表明了問題的復雜性,因此許多文獻都提出了相關研究,以進一步更好地實現(xiàn)背景建模和目標分割算法。其中最基本的是采用計算N-last緩沖幀的平均數(shù)/中值數(shù)。更復雜的采用多變量,如GMM(高斯混合模型)、分簇和編碼本等,文獻[2]對此做出了比較全面的概述。
文獻[3]提出了通過小波變換對不同區(qū)域進行參數(shù)調(diào)整,實現(xiàn)了自適應閾值去除背景和噪聲完成目標檢測。文獻[4]通過參數(shù)空間中累加器的無效累積,對比兩次閾值結(jié)果,提出了改進的Hough圓形目標檢測算法。文獻[5]提出了一個基于像素的參數(shù)自適應目標檢測方法PBAS (Pixel-Based Adaptive Segmenter),該算法的創(chuàng)新之處在于其背景模型包含N個樣本,且樣本間的臨時關系跟傳統(tǒng)算法相反,但算法復雜程度有所提高了。
FPGA可重構(gòu)設備被證明是一個良好的平臺用作硬件實現(xiàn)圖像處理和分析算法。同時也可用于背景建模和前景目標檢測。這主要是由于并行計算和管道數(shù)據(jù)處理,可用于有效的實現(xiàn)背景生成算法,而且在多變量方法中每個變體都可以并行計算。
在文獻[3]中描述了一個GMM(高斯混合模型) 的FPGA實現(xiàn)。模塊能夠按照20 frame/s的幀率處理高清視頻。雖然也是在FPGA設備進行模擬目標,但最后沒有給出工作系統(tǒng)的參數(shù)說明。文獻[4]提出了基于Horprasert的背景建模算法硬件實現(xiàn)。其目標平臺為XilinxSpartan 3 FPGA系列。作者修改了原始算法通過添加陰影的檢測機制,改善了分割結(jié)果。該系統(tǒng)是一個硬件軟件合作設計方法的例子。部分計算和控制功能是由Microblaze嵌入式軟核完成的。此外,使用兩種不同的邏輯描述方法:C++語言(對象檢測)和硬件描述語言(VHDL) (輔助模塊)。但是其沒有提出背景的更新機制設計。最初的模型是由Microblaze嵌入式軟核基于第一個128幀的視頻序列構(gòu)造。同時最終的實現(xiàn)采用了一個前景對象模板標記機制。該系統(tǒng)能夠處理每秒32幀1024×1024分辨率的視頻。估計功耗為5.76 W。
本文提出了一種改進的基于FPGA實現(xiàn)的自適應像素分割系統(tǒng),并在Xilinx Virtex 7 FPGA系列的VC707評估板上進行了設計驗證。系統(tǒng)通過構(gòu)建新的背景模型和減法技術(shù)優(yōu)化檢測結(jié)果,對傳統(tǒng)的自適應像素分割算法進行了調(diào)整和修改,以便在FPGA平臺上進行硬件實現(xiàn)。實驗測試使用Changedetection.net數(shù)據(jù)庫[4],采用了市面通用的能夠?qū)崟r顯示處理720×576@50幀視頻的攝像系統(tǒng)。
在自適應像素分割算法中[5],背景模型是基于分析視頻序列中N個樣本的緩沖區(qū)構(gòu)建的。設xi表示一個特定的像素。根據(jù)模型B(xi)與當前幀I(xi)的對比結(jié)果,可以完成前景/背景分類。對于每一個像素,設置一個獨特的決策閾值是R(xi)。按照指定的參數(shù)T(xi)對隨機樣本進行更新。對每個像素的R(xi),T(xi)分別進行調(diào)整,使得PBAS區(qū)別于其他方法。在下面的章節(jié)中對算法過程給出了詳細描述。
1.1前景分割處理
在自適應像素分割算法中,需要根據(jù)當前像素模型的比較結(jié)果,對前景/背景進行分類。對于本文提出的方法,背景模型被定義為一個最近觀察到的像素值數(shù)組N:
當I(xi)與背景模型中≠min采樣點之間差值,小于閥值R(xi)時,像素點xi屬于背景。因此,目標模板可由以下公式計算:
式中:F=1表示前景,F(xiàn)=0表示背景,且dist表示差值測量:
1.2參數(shù)更新
以前打仗一樣15分鐘就結(jié)束戰(zhàn)斗的晚飯竟吃了一個半小時,兩個人說說笑笑的樣子讓寶寶都覺得不適應了。小家伙來拉林藍的手,吃醋地說:“媽媽,不要陪爸爸說話了,陪寶寶去搭積木?!?/p>
背景模型更新的補償是補償光照微小變化的必要途徑,如在顯示場景的一些不可避免的變化(晃動的樹木,流水和停車場中汽車的出現(xiàn)和消失)[6]。
一個背景建模方法可以被區(qū)分兩種更新策略[7]:自由派和保守派。對于第一種情況,所有的像素都被更新,第二種只更新被分類為背景的像素。這兩種方法都有一定的獨特性,自由策略的主要缺點是對于在背景模型中快速移動的前景目標,會導致分割錯誤,因此只適用于物體移動很慢的情況。保守的方法避免了上述的現(xiàn)象,但也存在一個缺點,即使用前景對象模板作為更新條件會導致“死鎖”[8],這主要是由小的分割誤差和運動的物體引起。此外,一旦一個錯誤出現(xiàn)將永遠不能將其忽略。因此需要設計一些專有機制來避免這種情況的發(fā)生。一個可行的解決方案是計算一個像素被分類為目標對象的次數(shù)。當計數(shù)器的值超過閾值,則強制其更新。自適應像素分割算法使用了保守的策略,即使用一個額外的機制更新相鄰像素,從而防止不可挽回的分割錯誤。
只有當像素被分類為背景時,才可能會更新(F=0)。具體操作是使用當前像素值I(xi)替換從背景模型Bk(xi)中隨機選擇的樣本。更新的概率為p=1/T(xi)。同樣,從3×3的局部內(nèi)容中隨機選擇一個模型,再從選擇的模型中隨機選擇一個樣本,并用當前值I(yi)對其進行替換。其中yi表示選擇內(nèi)容的一個像素。
在自適應像素分割算法中,提出了一種R(xi)更新機制。首先,當前像素和模型采樣之間的最小差值為:D={ D1(xi),…,DN(xi) },如果一個像素更新最小差值:
D(xi)的平均值是背景動態(tài)變化的指標,用于R(xi)的更新:
式中:Rinc/dec表示更新率常量,Rinc/dec=0.5。Rsc表示換算系數(shù),Rsc=5。另外,判決閥值有一個下界Rlower=18。
學習速率更新過程如下:
在實際中,視頻序列都基本處在RGB顏色空間。因此文獻[6]提出單獨處理每個顏色組件,并使用或運算比較結(jié)果分割模板(例如,F(xiàn) (xi) = FR(xi) ORFG(xi) ORFB(xi) )。
在原始算法中,背景模型進行了邊緣信息補充(使用Sobel梯度值)。然而,分析[5]中所描述的結(jié)果,卻得到的以下結(jié)論:增加邊緣信息,對分割只是略有改善,卻會導致背景模型的大小增加,并使得當前像素和背景之間差值計算變得更復雜。因此,在本文描述的硬件實現(xiàn)中沒有使用這一機制。
在可編程器件FPGA上實現(xiàn)背景建模算法的一個主要的問題,是需要為連接外部存儲器資源提供較高的傳輸速率,其中背景模型存儲參考文獻[9-10]。在使用自適應像素分割算法的情況下,要確保以下的傳輸速
式中:noCC表示色彩分量序號(1-灰度,3-RGB),bR表示更新速率T(xi)位數(shù),N表示像素樣本的數(shù)量,bB表示單個樣本Bk(xi)的位數(shù)。bD表示最小差值Dk(xi)的位數(shù)。乘以2是因為數(shù)據(jù)的讀取和寫入。使用的硬件平臺(VC707)的最大可用傳輸速率為2 048 bit/像素時鐘周期(720像素×576像素在50 frame/s時,像素時鐘頻率為25 MHz)。具體參數(shù)[11]設置如下:
式中:bR=bT=16 bit,bB=bD=8 bit。16 bit由8 bit整數(shù)位和8 bit小數(shù)位組成。
在這種情況下,最大樣本數(shù)量數(shù)量N = 17 (RGB),N=19(grey)。R(xi)和T(xi)的精度可通過以下參數(shù)設置。上下界的限制值為一個8 bit的整數(shù)(R(xi)的最大值為255,因為更大的數(shù)量對閥值dist沒有任何影響)[12]。此外,在使用的FPGA設備中單個乘法器DSP48可以處理整個16 bit數(shù)字。
圖1顯示了本文提出的FPGA硬件實現(xiàn)系統(tǒng)的結(jié)構(gòu)圖。通過Avnet DVIIO FMC模塊(FPGA Mezzanine Card)的HDMI接口接收視頻數(shù)據(jù),能夠高頻率的串行信號轉(zhuǎn)換成并行格式。3個顏色通道隨之分離,并通往3個獨立的主處理單元實體。模型存儲在外部存儲器。在以前的文獻[6]中,使用特殊的控制器來執(zhí)行背景模型的序列讀取和寫入。偽隨機數(shù)的產(chǎn)生(RNG)過程參照文獻[5]中的描述。
圖1 本文提出的FPGA硬件實現(xiàn)系統(tǒng)的結(jié)構(gòu)圖
從外部RAM內(nèi)存,每一個顏色分量處理單元載入先前的算法產(chǎn)生的背景模型。第1步,按照式(3)計算當前像素值與所有先前產(chǎn)生的樣本之間的差值,并與閥值R(xi)進行比較。這些信息被傳遞給兩個模塊。第1個模塊是一個求和模塊。將超過R(xi)差值的和與閥值進行比較,并通過式(2)進行前景/背景分類。每個顏色分量RGB的前景模板使用OR進行運算處理,最后經(jīng)過一個9×9的中值濾波器。第2步計算最小差值,并使用二進制比較數(shù)計算機其對應的索引。
雖然分割結(jié)果是計算得到的,但是在下次迭代前,背景模型必須更新。為了實現(xiàn)這個任務,創(chuàng)建了一個三維的context模型,它擁有基本的3×3滑動布局窗口,但是每個單一的元素由當前像素值I(xi),N背景模型樣本Bk(xi),N最小差值DK(xi)和參數(shù)(R(xi),T(xi) )組成。圖2顯示了自適應像素分割軟件流程。
圖2 自適應像素分割軟件流程框圖
通過RNG模塊產(chǎn)生4個隨機數(shù),并發(fā)送給更新控制器模塊。第1個被用于決定是否執(zhí)行一個更新處理。如果執(zhí)行,像素中心的一個隨機樣本,一個隨機相鄰模型和該模型的一個隨機樣本被挑選出來替換相應的當前像素值。
最后,計算出像素中心的一個平均最小差值珔dmin(xi),這需要使用求和樹和分頻器。然后使用得到信息來更新決策閾值(式(5) )和學習速率參數(shù)(式(6) )。所有這些信息被組合起來,然后用于更新圖像制定像素的背景模型。數(shù)值存儲在一個FIFO中(內(nèi)存控制器使用與圖像處理模塊不同的時鐘)。在背景模型初始化時,所有的參數(shù)設置為默認值,使用從3×3context中隨機挑選的像素填充樣本緩沖。然后按下一個按鈕,系統(tǒng)進入正常運轉(zhuǎn)模式。
通過在MATLAB中編寫腳本,會自動生成了VHDL文件。該VHDL文件描述了主要的處理模塊,以及子模塊:求和樹,二進制比較樹、context等。這能夠方便的修改參數(shù),特別是樣本的數(shù)目N。使用一個類似的方法產(chǎn)生了均值模塊。這樣的設計具有較高的靈活性,容易在其他硬件平臺進行實現(xiàn)。
該系統(tǒng)項目使用了VHDL和Verilog硬件描述描述語言,硬件平臺采用一個Virtex 7(XC7VX485T) FPGA開發(fā)板配合Xilinx ISE 14.4仿真套件。選取了帶有Avnet DVI I/O FMC模塊的Xilinx VC707評估板。在ISim軟件中的仿真模擬結(jié)果顯示提出的硬件模塊完全符合在C++中實現(xiàn)的軟件模型。顯示的最大工作頻率為124 MHz,足夠?qū)崿F(xiàn)以50 frame/s的速率實時處理720×576彩色視頻數(shù)據(jù)。根據(jù)Xilinx XPower Analyzer上顯示的數(shù)據(jù),功耗大概為4.228 W。綜合分析得出,本文提出的FPGA系統(tǒng)的功耗約為(6.452 W)。資源使用情況如表1所示。
表1 系統(tǒng)資源利用率
圖3給出了實驗評估使用的Xilinx virtex 7 FPGA開發(fā)板實物圖。
圖3 使用的Xilinx virtex 7 FPGA開發(fā)板系統(tǒng)分辨率720×576,50 frame/s,RGB,N=17,中值濾波9×9) (
為了評估本文提出系統(tǒng)的性能,使用OpenCV庫和IEEEchangedetection.net數(shù)據(jù)庫編寫了一個C++程序,實現(xiàn)算法的軟件模型。數(shù)據(jù)集包含的序列可分為6類:基本的,動態(tài)背景,相機抖動,間歇運動對象,陰影,目標運動。該數(shù)據(jù)庫包含了背景建模算法所需的大部分圖像。圖4給出了樣本圖像和獲得的目標模板圖像。
圖4 背景模型包含19個樣本,使用RGB顏色空間
實驗所用方法的具體描述如下:
(1)將通過算法計算得到的目標模板與參考模板比較,因為自適應像素分割算法不包含一個內(nèi)置的陰影檢測程序,只考慮前景和背景分類。其中TP (True Positive)表示像素屬于前景對象,分類為前景像素。TN(True Negative)表示像素屬于前景對象,分類為前景像素。FP(false positive)表示像素屬于前景對象,分類為前景像素。FN(false negative)表示像素屬于前景對象,分類為前景像素。
(2)然后按照以下方法計算其他參數(shù):
最終獲得結(jié)果如表2所示??梢姳疚奶岢龅挠布崿F(xiàn)的查全率,特征值,F(xiàn)NR(漏報率)和FPR(誤判率)與文獻[5]數(shù)據(jù)(即傳統(tǒng)的軟件實現(xiàn)自適應像素分割算法)很接近。錯誤分類比值高于傳統(tǒng)軟件實現(xiàn)方法,但是接近GMM結(jié)果。其中相比其他方法,硬件實現(xiàn)的FPR比較高,這是由于硬件實現(xiàn)和軟件實現(xiàn)之間存在不同:(1)更少的背景模型樣本數(shù)量(NFPGA=17,NSOFT=35); (2)固定的參數(shù)點計算(特別是R(xi),T(xi) )。值得注意的是,本文提出的FPGA實現(xiàn)以50幀/s速率,實時處理分辨率為720×576的視頻流,優(yōu)于在i7 3.5 GHz多線程處理器上的軟件實現(xiàn)[5]且更節(jié)能。
表2 系統(tǒng)資源利用率
本文給出了自適應像素背景建模和前景分割算法的FPGA硬件設計,將原算法轉(zhuǎn)變成固定點計算,且用并行計算方式進行了實現(xiàn)。在changedetection.net數(shù)據(jù)庫上的測試結(jié)果表明了該設計的有效性和先進性。在合適硬件平臺上,可以實現(xiàn)以50幀/s速率,實時處理分辨率為720×576的視頻流。
參考文獻:
[1]戚世樂,王美清.自適應分割弱邊緣的活動輪廓模型[J].山東大學學報:工學版,2013(6) :17-20,33.
[2]強振平,劉輝,尚振宏,等.改進的基于統(tǒng)計模型的前景檢測方法[J].計算機應用,2013(6) :1682-1685,1694.
[3]王艷華,劉偉寧,陳愛華.基于小波變換的??毡尘跋滦∧繕藱z測研究[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,F(xiàn)ernandez-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]李擁軍,曾標,徐克付,等.復雜背景下基于貝葉斯-全概率聯(lián)合估計的前景檢測[J].電子與信息學報,2012(2) :388-392.
[12]楊濤,李靜,潘泉,程詠梅.一種基于多層背景模型的前景檢測算法[J].中國圖象圖形學報,2008(7) :1303-1308.
丁倩雯(1983-),女,漢族,江蘇無錫市人,無錫科技職業(yè)學院講師,碩士,研究方向為電子技術(shù),電路設計,自動控制技術(shù),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