• 沒有找到結果。

頭部偵測

第三章 偵測人體的方法

3.2 頭部偵測

在這個段落,將介紹如何利用人體切割的結果,更進一步將頭位置給 偵測出來的方法,在此提出兩種頭部偵測的方法,頭部大小比例(Head Size Ratio)方法,以及區塊比對(Block Matching)方法。而這兩種方法皆分 為兩個步驟。在第一個步驟中,所使用的方式是相同的。其作法為,從切 割出的人形結果裡,找出通過頭部的 y 軸(y-axis)。而第二個步驟中,頭 部大小比例方法,是沿著此 y 軸使用頭部長寬的比例將頭部偵測出來;區 塊比對方法,則是沿著此 y 軸利用一個近似頭部形狀的遮罩,找出頭部最 有可能出現的位置。

3.2.1 找出人體切割結果的質心

在人體的特徵中,頭頂在一般的情況下,會是人體中最高的部分。因 此,我們在人體切割的結果中,找出垂直方向擁有最長距離的y軸。但是,

如果發生圖 20(a)中,手部高舉的情況時,就會發生誤判。因此,我們 考慮到人體的對稱性,推測出通過質心的y軸,應該也會通過人體的頭部。

而且,既使發生像圖20中手部高舉的情況,會造成質心x座標改變的部分,

也只有高舉的手部。其所造成的影響相對於整個身體,僅僅是讓質心稍微

向右邊移動,如圖20(b)。所以,我們改採用找出人體切割結果中的質心 所在。而通過質心的y軸,在絕大多數的情況,也都會通過人體的頭部。

(a)垂直方向最長的 y 軸     (b)通過區域質心的 y 軸 圖 20 找出人形切割結果中通過頭部的 y 軸

3.2.2 頭部大小比例

找出通過頭部的y軸之後,我們沿著此y軸將分割結果中,垂直方向最

長的線段偵測出來。而我們利用此線段上方 1/P(P=8)的部分線段,計 算該部分線段,其水平方向的分割區域平均寬度,用來近似頭部的寬度,

將寬度乘上1.5 倍近似頭部的長度,藉此將頭部給偵測出來,如圖 21。

圖 21 頭部大小比例的結果

3.2.3 區塊比對

在找出通過頭部的y軸之後,我們利用一個近似頭部形狀的遮罩,如圖 22所示。沿著此y軸以及鄰近的y軸上每個點做計算,讓原始影像的資料和 此遮罩做迴旋積(convolution),找出其迴旋積值最大的座標。而此座標就是 最有可能的頭部中心所在。

此遮罩的的大小 原始大小為 8 × 8 ,因為希望遮罩在頭部的時候,

得到最大的迴旋積值。故遮罩中頭部位置的值設定為+1,當遮罩的頭部和 原始影像的頭部重疊在一起時,能夠產生較大的迴旋積;頭部和環境周圍 的位置,因為會有溫度擴散的現象,為了不影響迴旋積,所以將遮罩中此 部分的值設定為 0;而遮罩中背景的部分值取為-1,是為了讓遮罩的背景 部分落在原始影像中的頭部時,能產生較低的迴旋積。

圖 22 近似頭部的遮罩

而針對不同大小的頭部,需要將原始的遮罩縮放成不同大小做迴旋 積。若遮罩的大小和頭部不符合,就有可能產生配對錯誤的情況。如圖23

(a),使用大小為40 × 40 的遮罩,頭部偵測的情況良好;但是在圖 23(b),

使用大小為32 × 32 的遮罩,卻配對成脖子的部分。

(a)遮罩大小為 40 × 40     (b) 遮罩大小為 32 × 32 圖 23 使用不同大小的遮罩做頭部偵測

第四章 實驗結果

本章內容將依照前一章所提及的臨界值化、區域生長和等高線圖等三 個人體切割的方法,以及頭部偵測的方法,利用程式實驗其結果,而程式 的部分主要是利用Microsoft Visual C++ 6.0 及 MFC 做開發。本實驗將測試 人體處於不同環境時,是否能夠被正確的分割出來。再利用人體切割的結 果,測試頭部是否能夠正確的被找出來。

4.1 人體切割

首先,我們先來看環境溫度為攝氏 22 度,畫面中僅有 1 人時的人形 偵測結果,如圖 24。從圖 24中的實驗結果來看,三個方法偵測人體的結 果大致上都相當都不錯。但是,我們發現到區域生長演算法所偵測出來的 人形,容易受到溫度擴散的影響。在圖 24(e)中特別明顯,人體背部的 黃色區域,就是受到溫度擴散影響,而生成的錯誤區域。

相關文件