在行人計數階段中,為了要統計場景中的進出人數,必須藉由追蹤連續影像 中的前景區塊,得知行人的行進路徑,再利用追蹤的結果定義出行人進入或離開 場景以進行數量統計。本研究將行人計數分為兩個步驟:行人追蹤及行人數量統 計。由於行人追蹤步驟較為繁瑣,為了方便說明,本論文將先對所使用的追蹤技 術粒子濾波器作簡介,再針對行人追蹤技術的定義及流程做描述。接下來先說明 粒子濾波器追蹤單一目標的實作情況與步驟,才探討同時追蹤多人的實作方法及 注意事項。
本論文的4.1節為粒子濾波器簡介,4.2節為行人追蹤,在4.3節為實作粒子濾 波器追蹤單一行人的步驟,4.4節是相似程度的定義,而4.5節介紹粒子濾波器用 於多個行人追蹤。最後於4.6節中定義行人的進出狀態以進行數量統計。
4.1 粒子濾波器簡介
粒子濾波器運用了數值方法上非常成功的 Monte Carlo(MC)技術,能有效且 準確的算出因傳統方法無法逼近多維度或變因複雜的真實物理現象而不容易計 算出的數學方程式。Monte Carlo 法是由 Stanislaw Marcin Ulam, Enrico Fermi, John von Neumann 和 Nicholas Metropolis 等四位學者所提出,主要是由於 Los
Alamos(美國國家實驗室中子散射研究中心)為應曼哈頓計劃的需求而發展出來 的,當時這方法是用來研究模擬可引起核分裂的材料中中子的擴散運動,也就是
說為了發展原子彈而研究出的方法。因為這方法的機率、亂數的產生和賭博有 關,加上 Ulam 為了紀念他的賭徒舅舅,因此才以最著名的賭場 Monte Carlo 來 命名。
Monte Carlo 法主要理念為,當所要求解的問題是某種事物出現的機率或者 某隨機變量的期望值時,可以透過實驗的方法,求得該事物出現的概率或者該變 量的平均值,做為該問題的解。而 Monte Carlo 法來解決實際問題時,即是利用 尋找事物的運動過程或特徵,利用數學方法加以模擬實驗。Monte Carlo 方法的 應用有兩個核心觀念:仿真和取樣(sample),仿真是指提供近似於實際現象的隨 機程序並以數學模仿之的方法;取樣是指通過研究少量的子集來演繹大量母體集 合特性的方法,所以 Monte Carlo 法也是隨機過程和概率統計這兩大重要理論的 合併。當取樣的次數越多,也就是進行的模擬實驗次數越多,其模擬結果越接近 真實值。所以 Monte Carlo 法說明白了就是一種暴力解題的方法,但往往這種暴 力方法在處理複雜問題的時候是非常有效的。
粒子濾波器基於 Monte Carlo 法,藉由粒子模擬中子在空間中運動的方式,
對於物體的運動進行仿真。由於中子之間可能發生碰撞或漂移,其運動軌跡是類 似鋸齒形的隨機路徑,所以粒子的移動為模仿中子隨機運動方式。而粒子濾波器 使用一定數量的粒子來進行物體狀態的估測,則是基於 Monte Carlo 法中取樣的 動作。
粒子濾波器亦是傳統卡曼濾波器(Kalman filtering)的一般化技術,因為卡曼
濾波器是假設物體的運動模型是呈線性、高斯分佈的,而粒子濾波器是可以被運 用於非線性、非高斯模型的濾波器(filter),其特點是可以得到近似任意函數的期 望值,就是粒子濾波器的原始理念。粒子濾波器主要是利用粒子的質量(particle
mass)來表示機率的密度,利用一定數量隨機樣本粒子來表示系統狀態的事後機 率(posterior)分佈,並用粒子的期望值當作的估測結果。
將粒子濾波器應用於物體追蹤上時,由於所追蹤的物體通常為非線性的運動 方式,所以使用非線性的粒子濾波器追蹤效果會比較好。粒子濾波器之所以準確 度高而不容易將追蹤物追丟的原因,主要在於它對追蹤物的狀態一次提出了多個 隨機的假設,並同時保留多種可能性較高的狀態假設,並非只留下一種預測狀 態。所以當物體狀態驟變導致前一個時間的預測出現錯誤時,可以靠其他可能性 高的狀態也將錯誤狀態修正,也就是說系統具有能夠自動修正偵測結果的能力。
由於以上粒子濾波器特性,對於容易受到不同攝影機特性及架設環境影響的前景 區塊,無論其產生的各種類型的變化,粒子濾波器皆能準確追蹤。
在早期粒子濾波器剛提出來的時候,因為此方法在使用時往往需要大量且重
覆的產生亂數才能得到正確結果,受到計算時間影響,可以使用的應用受到限 制。所幸隨著電腦設備的進步,電腦運算速度越來越快,粒子濾波器也重新被學 者們重視,此技術應用也愈來愈廣,如物件偵測、物件追蹤等。
4.2 行人追蹤
完成行人偵測步驟後,我們所取得的行人區塊可能會隨著行人之間的移動發 點來看,假設時間點 k-1 時所需要的 pdf (probability density function) 1
1: 1
其中p(x xk k−1)稱為轉移模型(transition model)或運動模型(motion model)。
子xik會有一個質量權值wki ,而δ( )g 為 Dirac delta function。當Ns → ∞時後,
其中 q 函式為重要性密度(importance density) 函式,也就是取樣粒子分佈函數,
(x xik ik 1)
p − 為運動模型(motion model)。在實際(practical)情況中,當重要性密度 的選擇為事前機率時,使得:
step1. 初始粒子系統(Initialization)
0 0 1
{x ,i wi}iN= ,x0i 每個粒子初始狀態及初始權值w0i ,令k =1。
step2. 取樣(Sampling)
(a) 移動粒子
整個粒子濾波器步驟流程圖,如圖4.1,而粒子濾波器流程的示意圖,如圖4.2:
圖 4.1、粒子濾波器步驟流程圖
圖 4.2、粒子濾波器流程示意圖
4.3 實作粒子濾波器追蹤單一行人
由於多人追蹤需考慮更多細節,為了能說明整個粒子濾波器的追蹤流程,在 這邊我們先假設影像中只有一個行人,而且擷取出該行人的區塊是完整的。多人 追蹤的應用將留到 4.5 節再作說明。
由於粒子濾波器依賴大量的粒子來模擬追蹤物的事後機率,粒子個數多的 話,各類特徵所形成的狀態假設組合也愈多種,對於形狀或特徵較多變的物體,
能提出更多元的假設,而能更準確追蹤。然而根據相關研究顯示[Isa96],當粒子 個數大於一定個數的時候,系統的準確度無法獲得更多的提升,過多的粒子個數 可能會產生重複的組合,導致執行速度過慢、降低系統效能的缺點。本研究定義 粒子集合所需要的粒子個數N為100,因為N =100時,當使系統能正確追蹤
行人,卻又不會影響系統執行效能。而當N ≤50的時候,系統容易追蹤失誤。
當N ≥200時,則會有計算時間較久的問題。
在第二個影格(幀)(frame)進來後(第一個影格時,擷取前景資訊還不夠),我 們利用第三章前景擷取的方法,由前後兩張影像中得到的前景區塊,對於每個區 塊,計算其質心(mass center)(Xobj,Yobj)、面積(area)(Areaobj)、最小外接矩形
(bounding box)的長跟寬( ,width height)、及色彩直方圖(color histogram)等資 訊 。利用這些資訊,計算出行人的狀態值,以S = ⎣⎡x y v v a b, , x, y, , , , ,θ w t⎤⎦ 。 其
obj y , if moving direction is Out.
a f
出(out),並由行人的進與出決定運動模型的方向,至於如何判斷行人行進方向
(moving direction)將於第 4.6 節行人統計交代細節。
為了節省運算,本研究將重新取樣步驟中,隨機移動粒子的程序併入取樣步
來定義:粒子所形成之橢圓與行人前景之間的形狀大小相似程度(詳見 4.4.1. )、
圖 4.4、(N=6 時)期望值輸出結果 (a)時間為 t-2 時(b)t-1 時(c)t 時
由於粒子濾波器是基於隨機程序來產生出各種假設的狀態,其中有些粒子狀 態在計算權重後,會被給予極低的權重值,也就是說此粒子的狀態不是我們所期 望的結果。為了避免這樣的變化被保留下來,影響到後續的追蹤結果,我們有重 新取樣的動作,將不適合的變化去除(這也粒子濾波器別稱為 survival of the fittest 的原因)。
然而要注意的是因為分數化為整數時取 floor 函數(即捨去正小數至最近整數) 計算的關係,產生
∑
n≤ N的情況,所以當∑
n小於N時,這N-∑
n個粒子設定給權重最大的粒子。在重新取樣過後,我們完成了一次粒子濾波器預測。在 下一個影格進來的時候,將時間t加 1,回到取樣步驟,完成一個廻圈(iteration) 的計算。
4.4 相似程度及定義
前面提到本研究在判斷一個粒子所形成的橢圓跟擷取出來的前景物是否相 似時,使用了三種特徵來定義相似程度:(1) 粒子位置與行人區塊之間距離相似 程度、 (2) 粒子狀態橢圓與行人區塊之間的形狀大小相似程度、以及(3)粒子與 追蹤目標行人的色彩相似程度。其詳細方法分別詳述於 4.4.1、4.4.2、以及 4.4.3。
4.4.1 距離相似程度定義
粒子位置與行人區塊之間的距離定義方法有很多,如:Euclidean、
Manhattan、Chessboard、Chamfer(圖4.5),一般最常見的影像中物件之間的距離 是經由Euclidean distance方法求得,而Manhattan及Chessboard則非常少見。但是
Euclidean distance的計算需使用平方及開根號運算,若應用在粒子濾波器中,會 受到粒子數量多寡而影響效能。再者粒子集合與前景區塊的對應情況,不一定是 一個粒子集合對應到一個前景區塊,例如:當前景擷取出不完整或破碎的區塊
時,對於一個粒子集合而言,使用Euclidean distance並無法表現出這種多(破碎區 塊)對一(particle set)的關係。
取 chamfer distance 運算快速的優點,本系統採用 chamfer distance 作為粒子 位置與前景物體之間距離的描述,在每次影格輸入後,僅需計算一次 chamfer
distance map 即可。
圖4.5、各種類型的距離定義(a) Euclidean(b) Manhattan
(c)Chessboard(d)Chamfer
用來計算距離的 chamfer distance map 可以採用 Rosenfeld 與 Pfaltz 提出演算 法[Fou03],這個演算法利用 chamfer mask 在”forward pass”與”backward pass”中,
對影像做遮罩(mask)運算兩次,以快速計算出 chamfer distance map。當前景影像
(圖 4.6 a)I輸入後,由於考慮到之後行人判定步驟所需的邊界比對,我們先針對
前景做邊界偵測(boundary detection):對前景影像中每ㄧ個像素作檢查,如果不 是前景,則像素值設為 0,如果是前景則近一步檢查其八近鄰中有任一個像素的 像素值為 0,則像素值設為 255,否則設為 0,並令此影像為IB (圖 4.6 b),IB( , )x y
為影像IB於座標( , )x y 的像素值。
再來將邊界偵測後的影像IB轉換成 chamfer distance mapIC(圖 4.6 c)。整個
chamfer distance 演算法藉由二次遮罩運算達成,將 chamfer mask 分成兩個左上 半跟右下半部份 (圖 4.7 ),演算法步驟如下:
Step1. 令長為width,寬為height的影像IB中的為邊界的像素設為 0,否則設 為無限大(∞)
Step2. forward pass:對影像IB從左上到右下掃描計算:
Step2. forward pass:對影像IB從左上到右下掃描計算: