基于fpga的質心糾正且狀態可辨的粒子濾波算法
【專利摘要】本發明提出了一種基于FPGA的質心糾正且狀態可辨的粒子濾波算法。本算法的操作步驟如下:1)選擇目標,2)計算目標特征,3)產生隨機粒子,4)統計粒子直方圖,5)計算粒子質心位置,6)計算粒子權重,7)輸出目標位置,8)判斷跟蹤狀態,9)顯示目標狀態與位置。本發明在節省存儲空間的前提下,提高了算法的跟蹤精度及計算效率,保證了跟蹤的準確性與實時性。
【專利說明】
基于FPGA的質心糾正且狀態可辨的粒子濾波算法
技術領域
[0001]本發明涉及數字圖像處理、目標跟蹤算法等先進技術,具體涉及一種基于FPGA的質心糾正且狀態可辨的粒子濾波算法,屬于電子信息領域。
【背景技術】
[0002]粒子濾波算法與CamShift算法是兩種經典的基于顏色直方圖統計的目標跟蹤算法。CamShift算法的復雜度低,計算量小,易于實現,但其跟蹤精度差且跟蹤錯誤率較高。粒子濾波算法的復雜度高,其計算量隨粒子數的增加而增加,但其跟蹤精度較高且錯誤率較低。FPGA的并行運算機制對粒子濾波算法進行硬件加速,提高了其算法效率與跟蹤的實時性。
[0003]CamShif t算法的基本思想是:第一幀,根據目標框內像素值出現的概率,生成目標的反投影圖。設置一個略大于目標框的搜索框。每一幀計算搜索框內目標質心的位置,并將其作為下一幀搜索框的位置。當目標快速運動,搜索框只能覆蓋目標的較小一部分,因此僅根據搜索框內的像素計算目標質心會產生較大的誤差。當誤差不斷積累以至于目標徹底離開搜索框時,會導致跟蹤錯誤,且無法被糾正。若搜索框過大,則會引入過多的背景信息,影響目標質心位置的計算。
[0004]粒子濾波算法的基本思想是:第一幀,根據目標框內像素值出現的概率,生成目標的直方圖。每一幀在特定的約束下隨機產生若干粒子,計算各粒子的權重,并將權重最大的粒子的中心作為目標所在位置。隨機產生的粒子位置與目標的實際位置總是存在隨機的誤差。當產生的隨機粒子的數目足夠多時,可以縮小誤差的范圍,但其代價是消耗更多的存儲空間與計算單元。
[0005]因此,本發明綜合考慮了目標跟蹤精度與資源消耗兩方面的因素,將CamShift算法的質心計算的方法應用到粒子濾波算法的各粒子質心糾正中,增加了目標的跟蹤與丟失狀態判斷機制,并利用FPGA的并行運算機制保證了算法效率與跟蹤的實時性,提出了基于FPGA的質心糾正且狀態可辨的粒子濾波算法。
【發明內容】
[0006]原粒子濾波算法中,統計各粒子的權重,將權重最大的粒子判定為目標,并將權重最大的粒子的中心作為目標的中心。由于粒子的位置是隨機產生的,因此計算出的目標中心與實際的目標中心存在隨機的誤差。本發明的目的在于針對上述已有技術的不足,提供一種基于FPGA的質心糾正且狀態可辨的粒子濾波算法,引入了 CamShif t算法中計算質心位移的方法,并將其應用到每個粒子的質心糾正上,克服了隨機粒子帶來的隨機誤差。原粒子濾波算法通過增加粒子數即大量占用FPGA存儲資源的方法,提高跟蹤精度。在保證精度相同的條件下,改進后的粒子濾波算法比原算法節省了大量的FPGA存儲資源。利用FPGA的并行運算機制,粒子的質心糾正與直方圖統計同時執行,保證了算法效率。
[0007]目前的跟蹤算法大多旨在提高跟蹤精度與速率,極少考慮到判斷目標的跟蹤與丟失狀態。本發明比較了當前幀中權值最大的粒子的權重與前十幀中目標的權重,若兩者的權重相差過大,則認為目標丟失。本發明在節省FPGA存儲資源的前提下,改進粒子濾波算法的跟蹤精度,增加跟蹤狀態判斷機制,并結合FPGA的結構化設計及并行化的硬件加速特點,在FPGA上設計改進的粒子濾波算法。本發明跟蹤準確度高,精度高,實時性高,資源消耗少。
[0008]一種基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于操作步驟如下:I)選擇目標,2)提取目標特征,3)產生隨機粒子,4)統計隨機粒子直方圖,5)計算粒子的質心位置,6 )計算粒子權重,7 )輸出目標位置,8 )判斷跟蹤狀態,9 )顯示跟蹤狀態與位置。
[0009]各狀態的切換是通過狀態機的設計實現的,各狀態所執行的具體步驟如下:
1、選擇目標:根據目標所在的位置,移動跟蹤框并調節跟蹤框大小。當確定目標在跟蹤框內時,開始跟蹤算法。
[0010]2、計算目標特征:HSV顏色空間有較好的抗光照能力。為減少計算量,將輸入的圖像轉換為HSV顏色空間中的H分量。統計第一幀中目標框內的H分量的顏色直方圖,并將其作為目標特征。顏色直方圖統計通過讀寫RAM實現,將H分量作為RAM的寫地址,該H分量每出現一次,對應地址內的值加I。統計完成后,RAM的地址為H分量,地址所對應的值為該H分量在跟蹤框內出現的次數。
[0011]3、產生隨機粒子:由于目標的運動往往是連續的,下一幀目標出現在當前幀目標的周圍的可能性較大。因此,在目標周圍散布較多的隨機粒子,而在遠離目標的區域散布較少的隨機粒子,這些粒子可以保證當物體快速運動時,仍保持跟蹤。當目標處于丟失狀態時,由于無法預測目標會從監控畫面的哪一邊進入,其概率是均等的,因此全屏散布粒子。
[0012]4、統計粒子直方圖:粒子的位置隨機產生,粒子框的大小與跟蹤框一致。每個粒子統計其對應的顏色直方圖,統計方法如步驟2。若多個粒子所覆蓋的監控區域有部分重疊,則根據FPGA的并行運算機制,重疊部分各粒子的直方圖統計能并行地執行,而不降低算法的計算效率。
[0013]5、計算粒子質心位置:由于粒子的位置是隨機產生的,若將隨機粒子的位置作為目標可能出現的位置,則會產生隨機的誤差。當目標在畫面中靜止不動時,目標的位置仍會被隨機刷新,且誤差的范圍不可控。當粒子數較少,權重最大的粒子所覆蓋的目標面積較少時,將粒子中心作為目標的中心,跟蹤的精度會產生較大的誤差。因此,原粒子濾波算法的跟蹤精度是以增加粒子個數為代價的。而每個粒子均需要一定的邏輯資源與存儲資源來進行直方圖統計與權重計算。增加粒子數無疑會占用大量的FPGA存儲資源。因此,引入粒子的質心糾正機制的目的在于:在節省FPGA存儲資源的提前下,縮小隨機粒子對目標位置確定所帶來的隨機誤差的范圍。
[0014]粒子直方圖統計與粒子質心位置的位置均需要掃描到的當前粒子的信息。粒子直方圖統計需要當前粒子的顏色信息,而粒子質心位置的計算需要當前粒子的顏色信息與位置信息。如果這些信息不立即進入計算處理,則需要占用FPGA的片內RAM來保存這些信息,而且無疑會耗費額外的計算時間。為了節約FPGA存儲資源并加快計算效率,在統計粒子顏色直方圖的同時,FPGA可以并行地執行粒子的質心位置計算。將粒子框中各像素的位置即橫縱坐標,與H分量的值所對應的目標直方圖中的出現次數相乘后求和,除以所有H分量的值之和,得到粒子的質心位置。
[0015]6、計算隨機粒子權重:當所有粒子的顏色直方圖全部統計完成后,計算各粒子的權重。所有粒子的權重計算均為并行執行。將各粒子直方圖與第一幀中目標直方圖的對應位相乘開方后求和,得到各粒子的權重。
[0016]7、輸出目標位置:當所有粒子權重計算完畢后,將各粒子的權重進行排序,找出其中權重最大的粒子,該粒子為當前幀的目標粒子。將權重最大的粒子的質心位置作為當前幀的目標所在位置輸出到顯示模塊。
[0017]8、判斷跟蹤狀態:由于目標是連續運動的,在跟蹤狀態下,幀間目標權重的差異不會很大。當目標逐漸退出監控范圍內時,目標權重會隨著粒子框所覆蓋的目標面積減少而逐漸減少。因此在跟蹤到丟失狀態之間臨界的幾幀間的目標權重減少的幅度較小,但其與跟蹤狀態下目標粒子的權重相比,減少幅度就較為明顯。為了區分目標權重的變化是目標移動造成的還是目標離開監控畫面所造成的,將當前幀與前第十幀進行比較。
[0018]保存跟蹤狀態下連續十幀的目標粒子的權重。若當前幀目標粒子權重除以前第十幀目標粒子權重的比例高于預設的比例閾值,則判定目標仍處于被跟蹤的狀態。反之,低于則判定為丟失狀態,并不保存該幀權重,將前第十幀的目標權重作為跟蹤狀態下的目標權重。丟失狀態下,每一幀各粒子繼續進行運算,直到該幀的目標粒子權重與跟蹤狀態下的目標權重的比例再次高于預設閾值,則判定目標重新進入畫面,處于被跟蹤狀態。
[0019]9、顯示跟蹤狀態與位置:當目標處于跟蹤狀態,在屏幕上顯示目標粒子的質心、粒子框及跟蹤的提示字幕。當目標處于丟失狀態,只顯示監控畫面,不顯示目標位置與跟蹤框,并出現丟失的提示字幕。返回步驟3產生隨機粒子。
[0020]本發明能帶來的有益效果在于:
1、在節省FPGA存儲資源的前提下,提高了粒子濾波算法的跟蹤精度。原粒子濾波算法通過增加隨機粒子的個數,盡可能多的覆蓋目標可能出現的位置。因此,原算法以占用更多資源為代價,提高了算法的跟蹤精度。本發明在粒子濾波算法的基礎上,引入質心糾正機制,在節省FPGA存儲資源的前提下,縮小了由粒子隨機性所導致的目標位置的隨機誤差。8個粒子的改進粒子濾波算法比原粒子濾波算法在跟蹤誤差上減少了 54%。8個粒子的改進粒子濾波算法比32個粒子的原粒子濾波算法在FPGA存儲資源占用上減少了 23%。
[0021]2、判斷目標的跟蹤與丟失狀態。目標跟蹤算法不僅需要提供一個高精度高效率的目標計算方法,而且需要提供一種跟蹤與丟失狀態判斷的機制。通過比較數幀之間目標粒子權重的變化,分辨目標權重變化是由跟蹤狀態下目標運動所引起的還是由目標逐漸退出監控畫面而引起的。本發明不僅可以正確地檢測跟蹤與丟失狀態,并且具備目標從丟失狀態恢復到跟蹤狀態后找回目標的功能。
[0022]3、利用FPGA的并行運算機制,對改進的粒子濾波算法進行硬件加速,提高了運算效率。對于視頻處理算法而言,保證算法的實時性是至關重要的。FPGA的并行運算機制,使得各粒子的直方圖統計與質心計算等等的計算步驟可以并行地執行。在提高算法復雜度與計算量的同時,仍能保證算法的計算效率,保證了跟蹤算法的實時性。
【附圖說明】
[0023]圖1算法流程。
[0024]圖2目標直方圖統計方法。
[0025]圖3跟蹤時隨機粒子產生示意圖。
[0026]圖4粒子質心計算。
[0027]圖5判斷目標跟蹤與丟失狀態。
【具體實施方式】
[0028]本發明的優選實施例結合附圖詳細闡述如下:
實施例一:
參見圖1?圖5,本基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于操作步驟如下:1)選擇目標,2)計算目標特征,3)產生隨機粒子,4)統計粒子直方圖,5)計算粒子質心位置,6)計算粒子權重,7)輸出目標位置,8)判斷跟蹤狀態,9)顯示目標狀態與位置。
[0029]實施例二:本實施例與實施例一基本相同,特別之處如下:
1、所述步驟I)選擇目標:手動選擇感興趣目標,跟蹤框的大小和位置即為目標的大小與初始位置,開始跟蹤。
[0030]2、所述步驟2)計算目標特征:將RGB圖像轉換為HSV圖像,并提取H分量作為目標特征,統計范圍為跟蹤框內的所有像素點;使用RAM來統計目標的顏色直方圖,RAM的地址為H分量的取值范圍,各地址內存放的值表示該H分量在跟蹤框內出現的次數,即跟蹤框內有多少個像素等于該H分量值。
[0031]3、所述步驟3)產生隨機粒子:當目標在監控畫面中處于跟蹤狀態,由于目標的運動是連續的,下一幀目標出現在當前位置周圍的可能性較大;因此,在目標周圍產生較多的隨機粒子,在監控畫面中的其他區域內,產生較少的隨機粒子;當目標在監控畫面中處于丟失狀態,目標處于屏幕中任一位置的概率是相等的;因此,在全屏范圍內散布隨機粒子。
[0032]4、所述步驟4)統計粒子直方圖:粒子直方圖的統計方法與所述計算目標特征的方法相同;利用FPGA的并行運算機制,多個粒子的直方圖統計是并行的;當多個粒子覆蓋同一個區域,該區域的所有粒子能夠同時進行直方圖統計,節省了計算時間。
[0033]5、所述步驟5)計算粒子質心位置:引入CamShif t跟蹤算法中計算目標質心的方法,對于粒子框中的每一個像素,根據目標的顏色直方圖,查找目標中每一個像素出現的幾率;將粒子框中的每一個像素的位置即橫縱坐標與該像素出現的幾率相乘,將框內所有像素的乘積結果相加,除以各像素的出現幾率之和,得到各粒子的質心;當粒子數為8個時,改進后的粒子濾波算法,相比原粒子濾波算法,其跟蹤誤差降低了 54%,在保證跟蹤精度的條件下,節省了 FPGA的存儲資源,原粒子濾波算法通過增加粒子的個數,提高跟蹤的精度;但粒子數的增加是以犧牲FPGA片內存儲資源為代價,通過粒子的質心糾正后,能夠提高跟蹤的精度;當改進后的粒子濾波算法使用較少的粒子時,其精度就能達到原粒子濾波算法使用較多粒子時的精度;8個粒子的改進后的粒子濾波算法與32個粒子的原粒子濾波算法的跟蹤精度接近,但其FPGA存儲資源節省了 23%;各粒子的直方圖統計與質心計算并行執行,質心糾正計算需要當前像素的顏色特征值和位置信息;如果將其保存在RAM里,最后計算其質心將會占用大量FPGA存儲資源,粒子的顏色直方圖統計也需要當前像素的顏色特征值;因此,利用FPGA的并行機制,將粒子顏色直方圖統計與質心計算同時執行,不增加算法的計算時間,保證了算法的效率。
[0034]6、所述步驟6)計算粒子權重:當所有粒子的直方圖統計完成后,計算各粒子的權重,將各粒子直方圖與第一幀中目標直方圖的對應位相乘開方后求和,利用FPGA的并行運算機制,得到粒子權重,所有粒子的權重計算并行執行。
[0035]7、所述步驟7)輸出目標位置:根據所述計算得到的各粒子的權重,將其排序,其中權重最大的粒子所在的位置作為目標位置輸出。
[0036]8、所述步驟8)判斷目標跟蹤與丟失狀態:根據目標的權值變化,判斷目標是否仍在監控范圍內,由于目標在監控畫面中的變化往往是連續的,目標的大小會隨著目標與攝像頭的距離,其在監控畫面中的大小會不斷變化;當目標逐漸離開監控畫面時,幀間的目標權值差異也逐漸變化而非突變;因此,考慮到目標連續變化且非突變的特點,將當前幀中權值最大的粒子的權重與第前十幀中的目標粒子的權重相除,若比例高于預設閾值,則說明目標仍處于被跟蹤狀態,反之,則認為目標丟失;當目標判斷為丟失時,鎖定丟失前第十幀的目標權值,系統仍執行跟蹤算法,各粒子繼續計算其權重;當權值最大的粒子的權重與丟失前的目標權重大于預設的閾值時,目標重新回到監控畫面中,繼續跟蹤,反之,則認為目標仍處于丟失狀態。
[0037]9、所述步驟9)顯示跟蹤狀態與位置:當目標處于跟蹤狀態時,監控畫面中顯示目標的質心、目標框及目標正在跟蹤的提示字幕;當目標處于丟失狀態時,監控畫面中不顯示目標的質心與目標框,顯示目標已丟失的提示字幕。
[0038]實施例三:
參見圖1,8個粒子的一種基于FPGA的質心糾正且狀態可辨的粒子濾波算法的具體實施步驟如下:
為減少光對跟蹤算法的影響,將輸入圖像的顏色空間轉換為HSV顏色空間,并提取其中的H分量參與跟蹤算法的計算,從而減少計算量。
[0039]各步驟的切換由狀態機實現。若當前的步驟滿足一定條件,則跳轉至下一狀態。
[0040]1、選擇目標:指定紅外遙控器上的特定按鍵為上、下、左、右移動,跟蹤框放大、縮小,開始跟蹤、結束跟蹤。FPGA識別紅外遙控器信號,控制跟蹤框及跟蹤狀態。當確定目標在跟蹤框內,按下開始鍵,進入跟蹤狀態。
[0041]2、計算目標特征:第一幀,統計跟蹤框內像素的顏色直方圖,計算方法參見圖2。通過讀寫RAM來計算與存儲目標的顏色直方圖。將H分量作為RAM的地址,其出現的次數保存在對應的地址內容內。由于H分量的取值從O到360變化,因此RAM地址為O到360。本發明中設計的跟蹤框最大為80像素*80像素,因此一個H分量出現次數的范圍為O到6400,即一個RAM地址保存的數據大小為13位。對每個像素,將H分量作為讀地址,將原數據讀出后加I。同時將讀地址賦給寫地址,將加I后數據送入輸入端,重新寫入RAM。由于數據讀出與數據加I送入輸入端均消耗一個時鐘,因此讀寫地址賦值之間相差兩個時鐘。讀使能會像素掃描到跟蹤框內時有效,寫使能比讀使能延時兩個時鐘,使得數據正確寫入相應地址,完成目標直方圖的統計。在計算粒子的質心時,由于粒子之間會有重疊部分,因此,需要同時訪問直方圖中的各地址。在完成統計后,將RAM中的內容全部讀出,做一個副本,每個地址對應一個13位的寄存器,寄存器中的內容直至跟蹤結束不會被改變。當第一幀結束時,進入跟蹤模塊。
[0042]3、產生隨機粒子:跟蹤狀態下,參見圖3,在目標所在位置周圍散布較多的隨機粒子,在背景中散布較少的隨機粒子。當目標被判斷為丟失狀態,則全屏均勻散布隨機粒子。
[0043]4、統計粒子直方圖:當像素掃描到各粒子框內,粒子開始統計其顏色直方圖,統計方法與步驟2相同。本例中采用8個粒子,則8個粒子均分配了一個大小與目標直方圖一致的RAM來計算與保存本粒子的顏色直方圖。
[0044]5、計算粒子質心位置:粒子質心計算參見圖4,方框為粒子框,橢圓形為目標,黑點為隨機粒子的中心位置,紅點為經過粒子的質心糾正后的結果。粒子的質心涉及到目標直方圖與粒子內像素位置等信息。每個像素根據其H分量的值查詢目標直方圖所對應的寄存器。將像素的橫坐標與該像素在目標中出現次數相乘后求和,除以目標中所有像素在目標出現次數之和。縱坐標的處理方式相同。該操作將粒子框中的各像素的位置進行加權,若該像素在目標直方圖中出現的次數較多,則該像素出現的位置是目標所在的可能性越高,反之則越低。計算所得的橫縱坐標即為粒子的質心位置。每個粒子具有對應的寄存器來保存其質心位置,直至下一幀到來時被刷新。
[0045]6、計算粒子權重:粒子的活動范圍不會超過屏幕顯示的有效范圍內,而視頻信號除了有效信號外,還有一段消影時間。當像素進入消影時間內,說明所有粒子的直方圖統計均已完成。此時,將目標直方圖及所有8個粒子的直方圖的讀使能全部置為有效,讀地址從O加至360 ο目標與所有粒子直方圖的讀取均為并行操作。各粒子分別與目標進行權重計算,即目標與粒子直方圖的對應位相乘后開方,再求和。每個粒子均分配了寄存器來保存其對應的權重,直至下一幀到來時被刷新。
[0046]7、輸出目標位置:8個粒子有8個粒子權重,占用8個時鐘節拍比較粒子權重。每一拍將一個粒子的權重與當前最大的權重進行比較,若大于最大權重,則替代該粒子成為最大權重的粒子。權重最大的粒子的質心位置即作為目標所在位置輸出給顯示模塊。
[0047]8、判斷目標跟蹤與丟失狀態:步驟參見圖5。設置一個移位寄存器,保存十幀的目標粒子權重數據。進入跟蹤算法后的第一幀,計算得出的目標粒子權重填滿移位寄存器中前十幀的值。當下一幀計算得出新的目標粒子權重時,與移位寄存器最高位保存的目標粒子權重進行比較,若滿足預設的比例閾值,則認為目標處于被跟蹤狀態。通過多次實驗,得到比例閾值的經驗值,其設置為86%至92%即能判斷目標處于跟蹤狀態還是丟失狀態。同時,將移位寄存器左移,在最低位填入當前幀的目標粒子權重。當目標從跟蹤狀態被判斷為丟失狀態時,移位寄存器不左移,將跟蹤狀態下前第十幀的粒子權重保存下來并替換移位寄存器之后九幀數據。丟失狀態下,移位寄存器中的所有值不被更新。當監控畫面中的目標粒子權重與移位寄存器中保存的目標粒子權重的比例閾值再一次符合條件時,系統判斷目標重新回到跟蹤狀態,并更新移位寄存器。設置一個狀態判斷標志位,丟失時該標志位置I,跟蹤時該標志位清O。
[0048]9、顯示目標狀態與位置:經過跟蹤算法處理后的屏幕上會顯示監控畫面、目標軌跡、跟蹤框、以及跟蹤與丟失狀態提示字幕。跟蹤軌跡即為目標位置。跟蹤框即以目標位置為中心,邊長為初始目標框大小的正方形。當狀態判斷標志位置I,則屏幕右上角顯示“丟失”。反之,顯示“跟蹤”。字幕的制作與顯示過程如下:計算好字幕顯示區域的像素大小。在PC上畫好字幕,保存為BMP格式。再將其轉換成MIF格式,其排序順序按像素逐行逐個順序排列,字所在像素用I表示,背景所在像素用O表示。將生成的MIF文件存入一塊ROM中。根據像素位置與ROM地址顯示字幕。
【主權項】
1.基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于操作步驟如下:I)選擇目標,2)計算目標特征,3)產生隨機粒子,4)統計粒子直方圖,5)計算粒子質心位置,6)計算粒子權重,7)輸出目標位置,8)判斷跟蹤狀態,9)顯示目標狀態與位置。2.根據權利要求1所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟I)選擇目標:手動選擇感興趣目標,跟蹤框的大小和位置即為目標的大小與初始位置,開始跟蹤。3.根據權利要求1所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟2)計算目標特征:將RGB圖像轉換為HSV圖像,并提取H分量作為目標特征,統計范圍為跟蹤框內的所有像素點;使用RAM來統計目標的顏色直方圖,RAM的地址為H分量的取值范圍,各地址內存放的值表示該H分量在跟蹤框內出現的次數,即跟蹤框內有多少個像素等于該H分量值。4.根據權利要求1所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟3)產生隨機粒子:當目標在監控畫面中處于跟蹤狀態,由于目標的運動是連續的,下一幀目標出現在當前位置周圍的可能性較大;因此,在目標周圍產生較多的隨機粒子,在監控畫面中的其他區域內,產生較少的隨機粒子;當目標在監控畫面中處于丟失狀態,目標處于屏幕中任一位置的概率是相等的;因此,在全屏范圍內散布隨機粒子。5.根據權利要求3所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟4)統計粒子直方圖:粒子直方圖的統計方法與所述計算目標特征的方法相同;利用FPGA的并行運算機制,多個粒子的直方圖統計是并行的;當多個粒子覆蓋同一個區域,該區域的所有粒子能夠同時進行直方圖統計,節省了計算時間。6.根據權利要求1所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟5)計算粒子質心位置:引入CamShift跟蹤算法中計算目標質心的方法,對于粒子框中的每一個像素,根據目標的顏色直方圖,查找目標中每一個像素出現的幾率;將粒子框中的每一個像素的位置即橫縱坐標與該像素出現的幾率相乘,將框內所有像素的乘積結果相加,除以各像素的出現幾率之和,得到各粒子的質心;當粒子數為8個時,改進后的粒子濾波算法,相比原粒子濾波算法,其跟蹤誤差降低了 54%,在保證跟蹤精度的條件下,節省了FPGA的存儲資源,原粒子濾波算法通過增加粒子的個數,提高跟蹤的精度;但粒子數的增加是以犧牲FPGA片內存儲資源為代價,通過粒子的質心糾正后,能夠提高跟蹤的精度;當改進后的粒子濾波算法使用較少的粒子時,其精度就能達到原粒子濾波算法使用較多粒子時的精度;8個粒子的改進后的粒子濾波算法與32個粒子的原粒子濾波算法的跟蹤精度接近,但其FPGA存儲資源節省了 23%;各粒子的直方圖統計與質心計算并行執行,質心糾正計算需要當前像素的顏色特征值和位置信息;如果將其保存在RAM里,最后計算其質心將會占用大量FPGA存儲資源,粒子的顏色直方圖統計也需要當前像素的顏色特征值;因此,利用FPGA的并行機制,將粒子顏色直方圖統計與質心計算同時執行,不增加算法的計算時間,保證了算法的效率。7.根據權利要求1所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟6)計算粒子權重:當所有粒子的直方圖統計完成后,計算各粒子的權重,將各粒子直方圖與第一幀中目標直方圖的對應位相乘開方后求和,利用FPGA的并行運算機制,得到粒子權重,所有粒子的權重計算并行執行。8.根據權利要求7所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟7)輸出目標位置:根據所述計算得到的各粒子的權重,將其排序,其中權重最大的粒子所在的位置作為目標位置輸出。9.根據權利要求1所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟8)判斷目標跟蹤與丟失狀態:根據目標的權值變化,判斷目標是否仍在監控范圍內,由于目標在監控畫面中的變化往往是連續的,目標的大小會隨著目標與攝像頭的距離,其在監控畫面中的大小會不斷變化;當目標逐漸離開監控畫面時,幀間的目標權值差異也逐漸變化而非突變;因此,考慮到目標連續變化且非突變的特點,將當前幀中權值最大的粒子的權重與第前十幀中的目標粒子的權重相除,若比例高于預設閾值,則說明目標仍處于被跟蹤狀態,反之,則認為目標丟失;當目標判斷為丟失時,鎖定丟失前第十幀的目標權值,系統仍執行跟蹤算法,各粒子繼續計算其權重;當權值最大的粒子的權重與丟失前的目標權重大于預設的閾值時,目標重新回到監控畫面中,繼續跟蹤,反之,則認為目標仍處于丟失狀態。10.根據權利要求1所述的基于FPGA的質心糾正且狀態可辨的粒子濾波算法,其特征在于所述步驟9)顯示跟蹤狀態與位置:當目標處于跟蹤狀態時,監控畫面中顯示目標的質心、目標框及目標正在跟蹤的提示字幕;當目標處于丟失狀態時,監控畫面中不顯示目標的質心與目標框,顯示目標已丟失的提示字幕。
【文檔編號】G06T7/20GK105869186SQ201610254140
【公開日】2016年8月17日
【申請日】2016年4月23日
【發明人】王姝慧, 陸小鋒, 黃睿, 鐘寶燕, 裴棟彬, 顏柯, 崔微, 王橋元
【申請人】上海大學