本發明屬于計算機技術領域,更進一步涉及計算機視覺跟蹤技術領域中的一種基于特征塊優選的運動目標跟蹤方法。本發明可以用于對視頻場景中的車輛、坦克、行人等運動目標進行實時跟蹤。
背景技術:
運動目標跟蹤方法主要分為單目標跟蹤與多目標跟蹤。單目標跟蹤主要對視頻場景中感興趣的單個目標持續跟蹤,獲得目標在視頻每一幀中的位置。多目標跟蹤只要對視頻場景中多個目標進行跟蹤。近幾年,跟蹤性能比較高的運動目標跟蹤方法主要有struck、kcf、stc等跟蹤方法。struck將跟蹤問題轉化為分類問題,在線訓練樣本來更新目標模型,然而訓練的樣本和實際目標并不一定一致,從而影響分類效果。kcf跟蹤器采用核化相關濾波方法,利用循環矩陣和傅里葉變換完成樣本的訓練,獲得高效的目標分類器,然而該方法不能應對目標遮擋,在目標發生遮擋時,容易造成跟蹤失敗。stc跟蹤算法對目標和它上下文的空間關系進行建模,該方法可以很好的應對目標遮擋問題。視覺目標跟蹤普遍存在場景光照復雜、目標遮擋、尺度變化、目標形變等問題,導致跟蹤算法的精度、魯棒性不高。
浙江生輝照明有限公司在其申請的專利文獻“一種基于核化相關濾波高速自動多目標跟蹤”(專利申請號201410418797.7,公開號cn104200237a)中公開了一種基于核化相關濾波高速自動多目標跟蹤方法。該方法采用嶺回歸訓練方案,通過加速傅里葉變換訓練目標樣本獲得分類器,完成對大量樣本的快速訓練,獲得高性能的目標分類器。但是,該方法依然存在的不足之處是,沒有考慮在連續幀上目標發生遮擋的問題,在目標發生遮擋時,容易造成跟蹤失敗,從而不能長時間持續跟蹤目標。
山東大學在其申請的專利文獻“一種新型的基于分塊策略的視頻跟蹤方法”(專利申請號201510471102.6,公開號cn105139418a)中公開了一種新型的基于分塊策略的視頻跟蹤方法。該方法將目標區域分成若干個小塊,利用每一個小塊的顏色直方圖與周圍的小塊的顏色直方圖來比較,判斷目標是否發生遮擋,當發生遮擋時,在后面的粒子濾波算法中降低該塊的權重,降低遮擋對目標跟蹤造成的影響。但是,該方法依然存在的不足之處是,顏色直方圖的魯棒性不高,在發生關照變化時,容易丟失目標,造成跟蹤失敗。
技術實現要素:
本發明的目的在于克服上述現有技術存在的不足,提出了一種基于特征塊優選的運動目標跟蹤方法。
實現本發明的思路是,基于特征點并利用光流跟蹤獲得特征點對,根據兩個特征點判斷準則篩選特征點,從而獲得有效塊。利用核化相關濾波kcf得到響應圖、峰值旁瓣比psr以及目標分類器,以響應圖作為特征點的權重,進而得到平移變化和尺度變化。通過峰值旁瓣比psr判斷,獲得目標的遮擋狀態,依據遮擋狀態采用相應不同的策略,從而完成對目標持續魯棒性跟蹤,提高算法應對遮擋和尺度變化的能力,增強算法的魯棒性和精度。
為了實現上述目的,本發明的具體步驟如下包括:
(1)從視頻攝像頭中讀取待跟蹤的運動目標視頻:
(2)初始化:
(2a)從待跟蹤的運動目標視頻中讀入第一幀圖像;
(2b)在待跟蹤的第一幀圖像上用鼠標框出待跟蹤的運動目標;
(2c)利用分塊方法,對待跟蹤的運動目標區域進行分塊,得到運動目標區域的子塊區域;
(2d)利用特征檢測器fast,從待跟蹤的第一幀圖像運動目標區域的每一個子塊中檢測特征點,將檢測到的所有特征點作為初始化特征點;
(2e)采用核化相關濾波跟蹤器kcf訓練樣本的方法,訓練目標區域樣本,得到第一幀圖像上運動目標區域的分類器,將目標區域分類器作為初始化運動目標區域分類器;
(3)檢測特征點:
(3a)從待跟蹤的運動目標視頻中任意讀入一幀圖像;
(3b)利用分塊方法,在所讀入幀圖像上對得到的運動目標區域進行分塊,得到所讀入幀圖像上運動目標區域的子塊區域;
(3c)利用特征檢測器fast,檢測運動目標區域的每一個子塊區域,得到每一個子塊區域的特征點;
(4)篩選特征點:
(4a)利用光流向前跟蹤方法,在當前讀入的圖像幀上的所有特征點中,找到與上一次讀入的圖像幀上特征一一對應的特征點,組成一個特征點對,將所有的特征點對構成一個特征點集,存到當前讀入的圖像幀中;
(4b)按照下式,計算特征點集中的每一對特征點的向前向后誤差:
其中,
(4c)按照下式,計算特征點集中的每一對特征點歸一化誤差:
其中,
(4d)按照下式,計算所有特征點的歸一化誤差均值;
其中,μ表示所有特征點的歸一化誤差均值,m表示運動目標區域所分的子塊區域數目,ql表示第l子塊中的跟蹤點對的數目總數;
(4e)從特征點中選取所有滿足劃分條件的的特征點,將滿足劃分條件的特征點歸入可靠特征點集;
(5)獲得優選特征塊:
(5a)從子塊區域中選取所有滿足精度條件的子塊,將子塊歸入優選塊集中;
(5b)合并優選塊集中的所有特征點,獲得優選特征點集;
(6)計算目標區域的響應圖和峰值旁瓣比:
(6a)利用目標區域分類器檢測目標區域,得到目標區域的響應圖,以該響應圖作為特征點的權重;
(6b)按照下式,計算目標區域的響應圖的峰值旁瓣比;
其中,psr(o)表示目標區域o的響應圖的峰值旁瓣比,max(r(o))表示響應圖r(o)的最大值,μ(r(o))表示響應圖r(o)的均值,標準差σ(r(o))表示響應圖r(o)的標準差;
(7)更新目標區域狀態;
(7a)按照下式,計算目標區域的尺度變化;
其中,s(ic)表示當前讀入的圖像幀上目標區域的尺度變化,
(7b)按照下式,計算目標區域的尺寸;
wc=wb*s(ic)
hc=hb*s(ic)
其中,wc表示當前讀入的圖像幀上目標區域的寬,hc表示當前讀入的圖像幀上目標區域的高,wb表示上一次讀入的圖像幀上目標區域的寬,hb表示上一次讀入的圖像幀上目標區域的高;
(7c)按照下式,計算目標區域的平移變化:
其中,d(ic)表示當前所讀入的圖像幀上目標區域的平移變化,η表示變換因子一般取0.35,d(ib)表示上一次讀入的圖像幀上目標區域的平移變化,wi表示對應可靠特征點的權值,
(7d)按照下式,計算目標區域位置:
cc=cb+d(ic)
其中,cc表示當前讀入圖像幀上目標的位置,cb表示上一次讀入圖像幀上目標的位置;
(7e)利用目標區域的尺寸和目標區域位置,更新當前讀入圖像幀上的目標區域狀態;
(8)更新目標區域分類器;
(8a)使用核化相關濾波方法kcf訓練目標區域樣本,得到當前讀入的圖像幀上運動目標區域的分類器;
(8b)判斷目標區域分類器是否滿足更新條件,若是,則執行(8c),否則,執行(8d);
(8c)目標區域未發生遮擋,更新目標區域分類器,用步驟(8a)得到的當前讀入的圖像幀上目標區域的分類器替換上一次讀入的圖像幀上得到的目標區域分類器;
(8d)目標區域發生遮擋,不更新目標分類器,保持上一次讀入的圖像幀上得到的目標區域分類器不變;
(9)將目標區域狀態信息,以矩形框的形式輸出到所讀入幀圖像中;
(10)判斷是否讀完待跟蹤視頻的所有幀,若是,則執行步驟(11),否則,執行步驟(3);
(11)結束運動目標的跟蹤。
本發明與現有技術相比具有以下優點
第一,由于本發明采用特征檢測器fast檢測特征點,克服了現有技術特征點描述能力不足,檢測速度慢的問題,使得本發明在運動目標跟蹤過程中具有很好的實時性。
第二,由于本發明采用目標區域分塊方法,克服了現有技術中不能應對目標遮擋下的跟蹤,使得本發明能夠在遮擋下很好的跟蹤運動目標。
第三,由于本發明采用目標區域分類器檢測圖像獲得特征點權重的方法,客服了現有技術中特征點權重不精確描述的問題,使得本發明獲得能夠獲得高精度的目標尺寸。
第四,由于本發明采用光流向前跟蹤方法,客服現有技術中特征點跟蹤精度低的問題,使得本發明能夠高精度的運動目標位移。
附圖說明
圖1為本發明的流程圖;
圖2為本發明仿真實驗中對davidce3視頻序列中運動目標跟蹤的中心位置誤差曲線對比圖;
圖3為本發明仿真實驗中對davidce3視頻序列中運動目標跟蹤的重疊率曲線對比圖;
圖4為本發明仿真實驗中對jogging視頻序列中運動目標跟蹤的中心位置誤差曲線對比圖;
圖5為本發明對仿真實驗中jogging視頻序列中運動目標跟蹤的重疊率曲線對比圖;
圖6為本發明仿真實驗中對car視頻序列中運動目標跟蹤的中心位置誤差曲線對比圖;
圖7為本發明仿真實驗中對car視頻序列中運動目標跟蹤的重疊率曲線對比圖。
具體實施方式
下面結合附圖對本發明做進一步的描述。
參照圖1,對本發明的具體步驟做進一步的描述。
步驟1,從視頻攝像頭中讀取待跟蹤的運動目標視頻。
步驟2,初始化。
從待跟蹤的運動目標視頻中讀入第一幀圖像。
在待跟蹤的第一幀圖像上用鼠標框出待跟蹤的運動目標。
利用分塊方法,對待跟蹤的運動目標區域進行分塊,得到運動目標區域的子塊區域。
第一步,依據目標區域能夠分成整數個子塊區域的標準,子塊區域邊長是大于等于10個像素,將待跟蹤的運動目標區域的四個邊界同時擴展,得到擴展運動目標區域。
第二步,對擴展運動目標區域分塊,得到運動目標區域的子塊區域,子塊區域是邊長大于等于10個像素的正方形區域,且每一個子塊區域大小相同。
利用特征檢測器fast,從待跟蹤的第一幀圖像運動目標區域的每一個子塊中檢測特征點,將檢測到的所有特征點作為初始化特征點。
采用核化相關濾波跟蹤器kcf訓練樣本的方法,訓練目標區域樣本,得到第一幀圖像上運動目標區域的分類器,將目標區域分類器作為初始化運動目標區域分類器。
步驟3,檢測特征點。
從待跟蹤的運動目標視頻中任意讀入一幀圖像。
利用分塊方法,在所讀入幀圖像上對得到的運動目標區域進行分塊,得到所讀入幀圖像上運動目標區域的子塊區域。
第一步,依據目標區域能夠分成整數個子塊區域的標準,子塊區域邊長是大于等于10個像素,將待跟蹤的運動目標區域的四個邊界同時擴展,得到擴展運動目標區域。
第二步,對擴展運動目標區域分塊,得到運動目標區域的子塊區域,子塊區域是邊長大于等于10個像素的正方形區域,且每一個子塊區域大小相同。
利用特征檢測器fast,檢測運動目標區域的每一個子塊區域,得到每一個子塊區域的特征點。
步驟4,篩選特征點。
利用光流向前跟蹤方法,在當前讀入的圖像幀上的所有特征點中,找到與上一次讀入的圖像幀上特征一一對應的特征點,組成一個特征點對,將所有的特征點對構成一個特征點集,存到當前讀入的圖像幀中。
按照下式,計算特征點集中的每一對特征點的向前向后誤差:
其中,
按照下式,計算特征點集中的每一對特征點歸一化誤差:
其中,
按照下式,計算所有特征點的歸一化誤差均值;
其中,μ表示所有特征點的歸一化誤差均值,m表示運動目標區域所分的子塊區域數目,ql表示第l子塊中的跟蹤點對的數目總數。
從特征點中選取所有滿足劃分條件的的特征點,將滿足劃分條件的特征點歸入可靠特征點集,所述的劃分條件是指:
ncc(plk)>μ且fb(plk)<qfb
其中,qfb表示特征點的先前向后誤差閾值,根據目標移動速度或者相機移動速度而定,可取8~12中的整數,移動速度小,該值越小,反之,該值越大。
步驟5,獲得優選特征塊。
從子塊區域中選取所有滿足精度條件的子塊,將子塊歸入優選塊集中。
合并優選塊集中的所有特征點,獲得優選特征點集。
步驟6,計算目標區域的響應圖和峰值旁瓣比。
利用目標區域分類器檢測目標區域,得到目標區域的響應圖,以該響應圖作為特征點的權重。
按照下式,計算目標區域的響應圖的峰值旁瓣比。
其中,psr(o)表示目標區域o的響應圖的峰值旁瓣比,max(r(o))表示響應圖r(o)的最大值,μ(r(o))表示響應圖r(o)的均值,標準差σ(r(o))表示響應圖r(o)的標準差。
步驟7,更新目標區域狀態。
按照下式,計算目標區域的尺度變化;
其中,s(ic)表示當前讀入的圖像幀上目標區域的尺度變化,
按照下式,計算目標區域的尺寸;
wc=wb*s(ic)
hc=hb*s(ic)
其中,wc表示當前讀入的圖像幀上目標區域的寬,hc表示當前讀入的圖像幀上目標區域的高,wb表示上一次讀入的圖像幀上目標區域的寬,hb表示上一次讀入的圖像幀上目標區域的高;
按照下式,計算目標區域的平移變化:
其中,d(ic)表示當前所讀入的圖像幀上目標區域的平移變化,η表示變換因子一般取0.35,d(ib)表示上一次讀入的圖像幀上目標區域的平移變化,wi表示對應可靠特征點的權值,
按照下式,計算目標區域位置:
cc=cb+d(ic)
其中,cc表示當前讀入圖像幀上目標的位置,cb表示上一次讀入圖像幀上目標的位置;
利用目標區域的尺寸和目標區域位置,更新當前讀入圖像幀上的目標區域狀態。
步驟8,更新目標區域分類器。
使用核化相關濾波方法kcf訓練目標區域樣本,得到當前讀入的圖像幀上運動目標區域的分類器;
(8b)判斷目標區域分類器是否滿足更新條件,若是,則執行(8c),否則,執行(8d),所述的更新條件是指:
psr(o)≥t
其中,t表示更新閾值,根據目標大小和在相機視場中的移動速度決定,取20~30中的整數,目標越小,該值越小,目標越大,該值越大,目標運動速度越快,該值越大,目標運動速度越慢,該值越小;
(8c)目標區域未發生遮擋,更新目標區域分類器,用當前讀入的圖像幀上目標區域的分類器替換上一次讀入的圖像幀上得到的目標區域分類器;
(8d)目標區域發生遮擋,不更新目標分類器,保持上一次讀入的圖像幀上得到的目標區域分類器不變;
步驟9,輸出目標區域狀態信息。
將目標區域狀態信息,以框的形式輸出到當前所讀入的一幀圖像上。
步驟10,判斷是否讀完所有的幀,若是,則執行步驟3,否則,執行步驟11。
步驟11,運動目標跟蹤結束。
下面結合本發明的仿真實驗對本發明扥效果做進一步的說明。
1、仿真條件:
本發明的仿真實驗是在amda10-6700,4gb內存的電腦上采用vs2010和opencv2.4.4軟件進行的。仿真實驗采用的視頻是,標準測試視頻集visualtrackerbenchmarkdataset2013。
2、仿真內容:
將本發明的跟蹤器our與三個現有技術進行仿真,該三個現有技術采用的目標跟蹤算法是kcf方法、struck方法、stc方法,分別進行了三組仿真。
第一組仿真實驗,利用本發明和三個現有技術對davidce3視頻進行中心位置誤差和重疊率的仿真,得到四條目標中心位置誤差曲線如圖2所示,得到四條目標區域重疊率曲線如圖3所示。
第二組仿真實驗,利用本發明和三個現有技術對jogging視頻進行中心位置誤差和重疊率的仿真,得到四條目標中心位置誤差曲線如圖4所示,得到四條目標區域重疊率曲線如圖5所示。
第三組仿真實驗,利用本發明和三個現有技術對carscale視頻進行中心位置誤差和重疊率的仿真,得到四條目標中心位置誤差曲線如圖6所示,得到四條目標區域重疊率曲線如圖7所示。
3、仿真結果分析:
圖2,圖3,圖4,圖5,圖6,圖7中以
由圖2可見,本發明和kcf方法一直保持較低的目標中心位置誤差率,struck方法的目標中心位置誤差經歷一個增大和降低的過程,stc方法的目標中心位置誤差逐漸增大。由圖3可見,本發明、struck方法和kcf方法的目標區域重疊率都經歷一個降低又回升過程,stc方法的目標重疊率一直降低。本發明和現有三個技術跟蹤的運動目標是視頻中的行人,由于在第100幀到第160幀行人經過電線桿發生了遮擋,struck方法直接跟蹤失敗,但是在后面又逐漸恢復跟蹤,stc方法發生跟蹤失敗,并且沒有恢復跟蹤,綜合來看,本發明的跟蹤精度較高,能夠更好的應對目標遮擋。
由圖4可見,本發明和kcf方法維持較低中心位置誤差持續跟蹤,stc方法和struck方法的中心位置誤差逐漸增大。由圖5可見,本發明和kcf方法的目標區域重疊率維持較高水平,但是kcf方法的中心位置誤差有一個降低和回升的過程,stc方法和struck方法的目標區域重疊率逐漸降低,一直降低到0。本發明和現有三個技術跟蹤的運動目標是視頻中穿白色短袖的人,由于在第48幀時,行人被電線桿完全遮擋,導致stc方法和struck方法迅速發生跟蹤失敗,并且從失敗沒有恢復,kcf方法的跟蹤精度也出現了暫時的降低,而本發明則以低的目標中心位置誤差和高的目標重疊率持續跟蹤,綜合來看,本發明的抗目標遮擋能力最強,能夠更好的應對目標遮擋下的跟蹤問題。
由圖6可見,本發明和現有三個技術的目標中心位置誤差逐漸增大,但是本發明的目標中心位置誤差一直是最低的。由圖7可見,本發明和現有三個技術的目標區域重疊率均逐漸下降,但是本發明的目標區域重疊率降低速度最慢,在四條曲線中維持較高目標區域重疊率。本發明和現有三個技術跟蹤的運動目標是一輛由遠到近行駛的車輛,由于車輛由遠到近行駛,尺度變化明顯,隨著鏡頭離車輛越來越近,目標也越來越大,在第150幀以后,本發明和現有三個技術的目標中心位置誤差都逐漸變大,目標區域重疊率逐漸降低。跟蹤精度都有所降低,但是本發明的跟蹤依然是四個算法中性能最好的,本發明能夠更好應對目標尺度變化劇烈下跟蹤的問題。