OpenCV學習筆記(二十二) 粒子濾波跟蹤方法

2021-08-26 10:16:03 字數 802 閱讀 2236

粒子濾波法是指通過尋找一組在狀態空間傳播的隨機樣本對概率密度函式進行近似,以樣本均值代替積分運算,從而獲得狀態最小方差分布的過程。

對於粒子濾波跟蹤方法,這裡有一篇很淺顯易懂的部落格,我分享給大家他的工作也是參考rob hess的程式做的,感謝老外的開源精神,我看了他的程式,我也提出了我的幾點改進,作者本身的設想是想做多目標的運動跟蹤,但函式介面寫的還是有些混亂,以至於最後不能實現(估計是我才疏識淺,沒能領會作者的精神),而且用到了gsl數學庫,這個庫我是不熟悉的,開了一下程式,主要也就只用了裡面的隨機數的功能,這功能在新版本的opencv裡已經整合啦,作者用的資料結構還是老版本的結構,好多函式還是作者自己寫的,我這裡用新版本的資料結構重新寫了一遍這個演算法,簡化跟蹤目標為乙個。下面介紹一下我的設計流程

具體的演算法流程為

我的實際程式設計步驟大概可以分為如下幾步:

// step 1: 提取目標區域特徵

// step 2: 初始化particle(粒子的個數很影響跟蹤的速度)

// step 3: 求particle的transition(這一步的引數會很影響粒子的變化區域,需要對不同的跟蹤物件進行調整引數)

// step 4: 求particle區域的特徵直方圖(特徵選取的不合適也很影響結果)

// step 5: 特徵的比對,更新particle權重(特徵比較的方法也是影響結果的因素)

// step 6: 歸一化粒子權重

// step 7: resample根據粒子的權重的後驗概率分布重新取樣

// step 8: 計算粒子的期望,作為跟蹤結果

c語言學習筆記二十二

自動處理標頭檔案的依賴關係 all test34 test34 test34.o test33.o test31.o gcc o test34.o test34.c test29.h test30.h test32.h test33.o test33.c test32.h test29.h test...

二十二 Oracle學習筆記 Oracle異常

一 oralce異常 1.oracle低層定義了很多異常,每個異常都有乙個唯一的編碼,這些異常之中,有一些是比較常見的,oracle 給這些異常定義了名稱,可以直接使用,其他沒有名稱只有編碼的不能直接使用。2.異常的分類 1 預定義異常 既有編碼又有名稱的異常是預定義異常,此類異常可以直接使用 2 ...

c語言學習筆記二十二

自動處理標頭檔案的依賴關係 all test34 test34 test34.o test33.o test31.o gcc o test34.o test34.c test29.h test30.h test32.h test33.o test33.c test32.h test29.h test...