第三章 以人頭偵測為主的人群計數與追蹤
3.1 垂直視角的人頭偵測
3.1.3 梯度源頭的群聚
點,相當於消除雜訊(de-noise)的動作。
而所謂較具參考價值的點,即是放射出較多梯度向量的梯度源頭,我們將 其稱為放射點(radiate point)。我們對每一個點,計算其鄰近 3×3 區域中的梯度源 頭個數,如式(3.2)的r( ji, )。
若r( ji, )的值大於臨界值λ ,則將點 判定為一放射點,不足的則當作雜 訊去除。之所以使用鄰近 3×3 區域的原因是,由於影像的像素是離散的,經由灰 階梯度方向所計算出的梯度源頭,未必會落在影像的像素上,故須將計算出的梯 度源頭量化(quantize)至某一像素。圖 3.7 說明了這個情況,圖中白色的點 p 為經 由計算得到的梯度源頭位置,其落在 a、b、c、d 四個點的中間。若將 p 量化至 鄰近四點中某一點看待,如此即造成了其他三點的誤差,但若考慮 a 的鄰近 3×3 區域,則 p 不論量化至四點中任何一點,均會被包含在此 3×3 區域內。如此便不 會有所謂量化的問題,並且更能夠找出具代表性的放射點。以圖 3.6(b)的梯度源 頭分布為例,圖 3.8 為以兩種方式所找出的放射點分布。
) , ( ji
c a
p
b d
圖 3.7 梯度源頭的量化問題
(a) (b) 圖 3.8 以不同方式所找出的放射點
(a) 只考慮單一點 (b)考慮 3×3 區域
經由以上步驟來找出放射點後,可以看到放射點的分布較原始梯度源頭的 分布單純許多,並且在人頭的部份,仍然具有區域式集中的趨勢。故我們以針對 放射點的群聚,來取代直接對梯度源頭進行群聚。直覺的群聚方法是,以相鄰的 放射點中,梯度源頭個數最多的一點為中心,以人頭半徑 R 為半徑的區域內,
所 包 含 的 放 射 點 則 視 為 同 一 群 。 此 群 聚 方 式 我 們 稱 為 固 定 區 域 的 群 聚 (Fixed-region clustering),圖 3.9 為此一群聚方式的示意圖,3.10(b)則為圖 3.10(a) 中的放射點群聚結果。
圖 3.9 固定區域的群聚
(a) (b) 圖 3.10 固定區域式群聚的結果 (a)原始放射點分布 (b)群聚結果
但是,這樣的群聚方式只適用於放射點分布近似於圓形,也就是形狀近似
針對這種情況,我們使用 Mean-shift 的群聚方式(Mean-shift clustering, [13,14])來解決這個問題。Mean-shift 的群聚演算法為,以任一點為中心,計算其 固定區域內的放射點座標的 Mean。在以此 Mean 為中心,重複計算其固定半徑 R 區域內的放射點座標之 Mean,直到 Mean 不再移動,或移動距離小於一臨界值 時停止。Mean-shift 演算法的過程可描述如下:
( )
(3.3) 其中,M,M′ 均為空間中的點,R 為用以群聚的區域半徑,ε 為 Mean 移,ri 動距離的臨界值。以本論文的情況來說, 即為影像上的放射點,R 則是人頭半 徑。圖 3.12 為 Mean-shift 演算法的示意圖。經由 Mean-shift 演算法,我們可以找 到此點的鄰近區域中,放射點密度最密集的位置,即所謂的區域最佳解(local optimum)。有關 Mean-shift 演算法的相關証明可以參考[13]。
ri
圖 3.12 Mean-shift 演算法的示意圖
雖然 Mean-shift 演算法所找出的只是區域最佳解,但由群聚的觀點來看,
此區域最佳解卻正是我們想要的。經由 Mean-shift 演算法所找出的區域最佳解,
我們將其視為包含此點的群的中心點。我們對每一個放射點進行 Mean-shift 演算 法,並將最後停止在同一點上的放射點視為同一群,以達到群聚的目的。
採用 Mean-shift 演算法進行群聚的好處有二:
1. 對於非正圓形的人頭(如橢圓),亦可準確的群聚其放射點:Mean-shift 演算法不會受到資料分布形狀的影響,不會發生如固定區域式群聚中,
無法正確群聚長條形資料分布的情況。
2. 可以更正確的找到人頭的正確位置:在固定區域的群聚中,中心的決定 僅止於區域內放射點所包含的梯度源頭個數最高的位置,但此位置未必 為真正人頭的中心點。而 Mean-shift 的群聚方式則為找到放射點密度最 高的位置,其位置能夠更接近人頭真正的中心位置。
圖 3.13 為固定區域式群聚與 Mean-shift 的群聚方式所得到結果的比較,可 以很明顯的看出 Mean-shift 的群聚方式將放射點群聚為同一群,而不像固定區域 式群聚將放射點分割為兩群。
(a) (b) 圖 3.13 兩種群聚方式結果的比較
(a)固定區域式群聚的結果 (b)Mean-shift 群聚方式的結果
最後我們定義一放射點個數臨界值 T,來與每一群所包含的放射點個數做 比較,若此群的放射點個數大於 T,即認為是人頭,小於 T 則不是。