運動目標檢測與跟蹤

發表於2015-02-13

最近對運動目標檢測與跟蹤這一塊的知識進行了一個整體性的回顧,又看了幾篇綜述性的論文,所以這篇部落格算是做一個簡單的記錄,對幾個重要的概念進行了描述與分析。並沒有去研究現在這一領域那些最近的研究成果。因為在我看來,演算法的主體想法都是一致的,每種方法都有它適應的場景。抓住軸心就夠了!

前景檢測這一塊,我比較推薦引數方法,高斯混合模型與碼本方法都是經過驗證,在實際工程中表現極好的,但是你必須根據你需要的場景對演算法做一些改進。這篇文章只是初稿,後面會進行完善,加入一些論文連結,希望對運動檢測這一塊進行一個完整的綜述。

1. 運動檢測的簡介

用於安防的監控視訊大多數具有單鏡頭固定場景的特點。

2 運動目標檢測的基本方法

2.1 幀間差分法

通常相鄰兩幀影像在時間上的間隔很短(一般用於視訊監控的攝像機每秒可以拍攝8/12/24幀),所以當背景變化不是非常劇烈和迅速的時候可以利用前後兩幅影像的差值來判斷畫畫中運動的目標,通過設定閾值的調整可以改變方法檢測的靈敏度。

優點:運算量小,實現簡單,噪點較少,對光照不敏感。
缺點:不能檢測速度過慢的物體,物體內部會造成空洞,物體本身也不完整。速度過快的物體,會形成兩個前景區域。

2.2 光流法

對畫面中影像首先進行逐畫素向量賦值,當畫面中出現運動目標時,運動目標在畫面總所佔據的畫素點和背景畫素點之間的向量必然會有差異,如果沒有運動目標出現則畫面中的畫素點的向量變化應當為平滑的。正是由於有這樣的差異,才能利用差異檢測出運動目標在畫面中的畫素點。

優點:適合於背景不斷變換的場景(移動攝像頭),不需要預先的視訊進行訓練。
缺點:抗噪能力差,計算量大,光照影響比較大。

2.3 背景差法

幀間差分法的流程圖可以看出兩幅流程圖的基本框架大致相同,不同的地方在於背景差分法中有一個背景模型,這個背景模型是用來和所有的檢測幀進行差分運算的,而不同於幀間差分法的用上一幀影像和下一幀影像進行差分運算。

3 CodeBook背景模型

3.1 CodeBook的原理

\(X=\{x_1,x_2,\cdots,x_N\}\)為視訊序列中某位置畫素點在不同時刻的連續的色彩值。其中\(x_t\)\(t\)時刻取樣到的RGB向量值,\(N\)代表用於生成背景模型的幀數。

\(Cbook = \{c_1,c_2,\cdots,c_L\}\)為該畫素點彙總的各個聚類形成的碼書,其中\(c_i(i=1,\cdots,L)\)表示碼書中的一個碼字(codeword),其中每個碼字由\(v_t = (R_t,G_t,B_t)\)\(u_t=\)組成。其中\(1\(v_t\)表示碼字在RGB色彩空間中三個軸的向量值,\(u_t\)表示\(v_t\)的統計資訊,其中\(I_t^{min},I_t^{max}\)表示該碼字的最小的和最大的亮度值,\(f\)表示該碼字出現的頻率,\(\lambda\)表示碼字出現的最大時間間隙,\(p\)表示碼字第一次出現的時間,\(q\)表示碼字最後一次出現的時間。

碼書的構建中,用於判定一個畫素點是否屬於碼書中的某個碼字的條件是:

1) 比較色彩的空間距離\(colordist(x_t,v_i)\),其中\(x_t=(R_t,G_t,B_t)\)是當前影像中某一畫素的輸入色彩值,\(v_i\)為該畫素點碼書中的一個碼字的聚類,colordist的定義如下:

\(colordist(x_t,v_i) = \sqrt{||x_t||^2-p^2}\)

其中\(p\)\(x_t\)餘弦夾角下的投影值。如果上面計算到的距離小於某一閾值\(T_1\),則進行下一步判定。

2)畫素點的亮度必須在一定的範圍(\(I_{low},I_{hi}\))內。

如果畫素與碼書中的某個碼字,則要對該碼字進行更新,顏色值按加權平均重新計算。如果當前的畫素點不滿足上面的兩種情況,則重新建一個新的碼字。

按上面的方法對每個畫素點建立碼本,這樣的情況下,前景畫素也會生成為碼本中的碼字(一個聚類單元)。對於那些出現的最大間隔\(\lambda\)小於\(N/2\)的碼字刪除。

 

3.2 碼書演算法的兩個改進

1)不要只單一的考慮單個畫素點,同時考慮其周圍鄰域的變化
2)RGB空間用夾角餘弦計算距離並不合適。可以考慮用YUV空間。

3.3 顏色空間

亮度(V):人的視覺最敏感的亮度變化,光的能量大小。
色調(H):也就是我們常說的顏色,用於顏色的命名。
飽和度(S):反映色調的鮮豔程度。

3.4 行列分塊的YUV碼書模型

有時候攝像機會存在抖動,且背景上有些畫素也會隨著環境做不穩定的變動。

對影像進行網格劃分,每5*5的網格共用一個碼本,這樣可以消除區域性的抖動。

還有一種方法,是將行碼書(1*5)與列碼書(5*1)分開考慮,一個畫素點的行碼書或列碼書判定為前景時,該點則為前景點。列碼書的判定可以對行碼書的閾值進行調整。

4. 運動目標跟蹤方法

4.1 運動目標的表示

目標跟蹤問題中,目標的表示形式是目標跟蹤的基礎。

最為常見的就是基於目標形態的表示方法。它可以有以下幾種方法:

1)點表示的方法。將目標通過一個點來表示,即其中心點來表示。對於比較大的目標可以選擇用一組點來表示。這種表示方式適合目標相對於整個影像來說比較小時。

2)幾何形狀表示法。通過定義橢圓或矩陣框來表示目標區域。只這種表示方法只適合不易發生形變的剛性物體的運動。

3)骨架表示法。將目標的輪廓經中軸變換後,即可提出物體骨架模型。

4)輪廓表示法。物體的輪廓表示物體的邊界。

其次比較重要的表示法還有目標的外觀特徵表示方法。一種有以下幾種:

1)目標概率密度表示方法。

2)模板表示方法。

3)主動外觀模型表示法。對目標的形狀和外觀同時建模。

4)多視點模型表示法。

4.2 多特徵組合

顏色特徵:Lab空間

邊緣特徵:不受光照變化的影響。

紋理特徵:LBP特徵,

4.3 跟蹤方法

1) 基於點的跟蹤

2)基於統計的跟蹤

3)基於輪廓的跟蹤

4.4 基於光流法的跟蹤

一般而言,光流是由於場景中前景目標本身的移動、相機的運動,或者兩者的共同運動所產生的。其計算方法可以分為三類:

1)基於區域或者基於特徵的匹配方法;

2)基於頻域的方法;

3)基於梯度的方法;

簡單來說,光流是空間運動物體在觀測成像平面上的畫素運動的“瞬時速度”。光流的研究是利用影像序列中的畫素強度資料的時域變化和相關性來確定各自畫素位置的“運動”。研究光流場的目的就是為了從圖片序列中近似得到不能直接得到的運動場。

光流法的前提假設:

1)相鄰幀之間的亮度恆定;

2)相鄰視訊幀的取幀時間連續,或者,相鄰幀之間物體的運動比較“微小”;

3)保持空間一致性;即,同一子影像的畫素點具有相同的運動。

光流法用於目標跟蹤的原理:

(1)對一個連續的視訊幀序列進行處理;

(2)針對每一個視訊序列,利用一定的目標檢測方法,檢測可能出現的前景目標;

(3)如果某一幀出現了前景目標,找到其具有代表性的關鍵特徵點(可以隨機產生,也可以利用角點來做特徵點);

(4)對之後的任意兩個相鄰視訊幀而言,尋找上一幀中出現的關鍵特徵點在當前幀中的最佳位置,從而得到前景目標在當前幀中的位置座標;

(5)如此迭代進行,便可實現目標的跟蹤;

相關文章