五. 實驗與結果
5.1.1. 實驗設計
由於現行的大部分方法,要捕捉人體的3D 動作都較為麻煩;而對於資料的處理,
也需要花非常大的工夫;因此,在實際資料測試的部份,本論文選擇由2D 的特定視 角影片來做,直接利用在影像上看到的人體形狀來做分析。
本篇論文利用單一攝影機,針對特定視角(側面)的人體動作進行分析,並試著 去辨識八種不同的動作:彎腰、彎腰起身、蹲下、蹲下起身、踢腿、出拳、上勾拳、
正步。
主要的處理流程分為前置處理、訓練、辨識等幾部分。
前置處理
在對動作進行分析前,先必須先由影像序列中將特徵擷取出來,轉換為觀察值的 序列。由於此部分並非本研究的重點,因此大多使用現有的簡單方法來進行,其流程 如下:
′
′
H
V Hist
Hist R, ,
圖 5-1 前置處理流程圖
擷取人體輪廓
對於去除背景的方法,也有不少影像處理方面的研究、方法可以作為參考或直接 拿來使用,不過由於此部分並非本論文重點,因此在此是先行架構一個背景單純、光 影變化不明顯的環境來做試驗。而採用的去除背景的方法,是先建立背景的影像,然 後將動作影像序列和背景相減,來把有變化的部份找出來當作前景影像。
(a) 背景 (b) 影像 (c) 去背景結果-前景影像
圖 5-2 去背景例圖
接著,再由前景影像中,去找最大的連續區塊當做人的形狀。
選取出的區塊 圖 5-3 擷取出的人形
當然,如果擷取出來的人形越完整,在計算特徵時的效果也會越好。而如果在找 到的影像區塊中,有過大的破洞、缺塊,將嚴重影響特徵所代表的意義;所以在遇到 此問題時,將要另行去做處理,將洞補起。
特徵計算
在特徵擷取的部份,主要參考論文”Ghost: A Human Body Part Labeling System Using Silhouettes”[5],使用人體形狀對水平、垂直兩個方向的投影累積量(The vertical and horizontal normalized projection histograms)來當作主要的特徵資料。
選取出的人形二值影像 (binary image) IMAGE投影出來的結果,可以用兩個一維 陣列HistV 、HistH來表示:
[ ]
∑
[ ]=
= max
min
,
Y
Y y
V x IMAGE x y
Hist , Xmin ≤ x≤ Xmax
[ ]
∑
[ ]=
= max
min
,
X
X x
H y IMAGE x y
Hist , Ymin ≤ y≤Ymax
(五.1)
Hist 、V 在某種程度上可以表現出人的姿勢,雖然對於細部的變化沒有辦法很明
確的表現出來,但是對於變化比較大的情況,大多能做出區分。如下圖 (a) 所示,水 平方向的投影很明顯可以看出有伸出一個部份,而圖 (b) 則是有兩個;而在垂直方向 的投影方面,也可以看出圖 (a) 所凸出的方向是向左方,而圖 (b) 則是左右兩方均有
HistH
凸出。
(a) 出拳中的姿勢 (b) 正步中的姿勢
圖 5-4 投影累積量例圖
而實際要對 、 做分群的話,要能夠計算之間的差異;因此要再對
、 各別去調整。首先,要先使整個序列的 、 的大小一致(於本
實驗中,統一將其大小改為128 的陣列),並做 normalize,使的 HistV HistH
HistV HistH HistV HistH
[ ]=1
∑
′x
V x
Hist , ∑ ′[ ]=1
y
H y
Hist (五. 2)
如此,經過修改過的資料 ′、
HistV HistH′就可以利用Euclidean Distance 的方法,來計 算其差異性。
但在調整大小的時候,也會同時失去兩者之間的比例關係,因此也要先計算調整 前兩者大小的比值
的寬度 的高度 IMAGE
IMAGE
R= 。
如此, ′ ′
H
V Hist
Hist
R, , 就是之後來用來做動作辨識用的三組特徵序列。
分群與符號化
由於 ′ ′
H
V Hist
Hist
R, , 這三組特徵序列都是連續的數值資料,因此在訓練、辨識
前要先轉換為離散的符號。
在訓練階段時,當得到所有訓練資料的的特徵值列後,對三組特徵的空間個別利
用「K-Means 分群法」去分群(要分成幾群要由使用者指定);而分群後,再對各群各
HistV : 5.77E-05 7.76E-05 0.00019 0.00012 K 0.000057 0.000020
′
HistH : 0.00052 0.0015 0.00196 0.00235 K 0.003057 0.002157
而經過分群後,可以發現R、 ′
R : 1, 3, 0, 6, 4, 2
′
HistV : 0, 2, 2, 14, 8, 8
′
HistH : 6, 12, 14, 0, 13, 13,
最後,就以這種形式的資料來代表每一個連續的動作。
訓練、辨識
在本論文的實驗中,為了測試在各種情況下,原始HMM/MFS 的辨識方法效果以 及本論文「雜訊干擾下的資料辨識」方法的效果,所以除了一般較大量的訓練資料試 驗外,也刻意降低訓練資料量來增加無法辨識的資料量。
而對於辨識結果的影響,主要分成「可控制的參數、方法」與「無法控制的因素」
兩部份。
可控制的參數、方法
包含訓練資料的數量,主要可以拿來調整、影響辨識結果的部分有下列幾點:
1. 訓練資料、測試資料的樣本數目
分別對每一種動作各取5、10、20 筆資料來當作訓練資料,並取 10 筆資料當作 測試用。
2. 分群時的分群數目設定
也就是K-Means 演算法中 K 的值。拿來測試的三組觀察值分群數目組合為 3, 7, 7、5, 10, 10、7, 15, 15、10, 20, 20 共四種。
3. 權重的計算方式
包含不特別處理權重,直接使用均勻分布,總共有五種不同的方法:
A. 不加權重(Uniform) 各組特徵的權重相同
B. 各狀態獨立權重,每次計算(IW) C. 各狀態獨立權重,計算一次(IWO)
D. 各狀態單一權重,每次計算(SW) E. 各狀態單一權重,計算一次(SWO) 4. 辨識方法
除了「雜訊干擾下的資料辨識」中所提的三種方法外,包括只使用原始的辨識 方法,而不做額外處理,總共有四種不同的方法:
1. 不做額外處理(None)
2. 拋棄無法對應的部份觀察值(FeatureSkip) 3. 拋棄權重小的部份觀察值(StepFeatureSkip) 4. 忽略無狀態轉移可能性的時刻(TimeStataSkip)
在此,我們將對上面所提到所有可能的組合都進行測試。也就是對於資料,總共 有12 種組合(訓練資料數目、分群數目);而對每一種資料,都再做 5 種不同的訓練
(權重的計算)。最後,再對上述共60 組模型,進行 4 種不同的辨識方式。
無法控制的因素
除了上述的參數會影響辨識結果外,另外還有三個無法控制的因素也會影響結果:
1. 訓練樣本
訓練的樣本的選取對於辨識的結果影響非常大,選到好的樣本,會大幅的提升 辨識的正確率,反之則會大幅降低。所以在選取訓練資料和測試資料時,都是 採用隨機選取的方法;而為了確保實驗的有效性,每一次測試都選出五組不同 的訓練資料、辨識資料,並對他們的辨識結果取平均。
2. K-Means 的結果
目前在得到訓練資料後,必須先將所有訓練資料的各組特徵做分群,並以分群 的結果將訓練資料和測試資料轉換為符號序列;但是由於目前所使用的
K-Means 分群的方法,必須用亂數取起始的分群中心,所以每次分出來的結果
次的分群,每一次的結果各別去做辨識。
3. 亂數的起始模型
在HMM 中訓練用的 EM Method 必須要先給予一組起始的參數,讓他來作收 歛;因此,不同的起始參數結果也會有不同的辨識率。而由於本論文對於HMM 的起始參數有部份是採用亂數,因此,對同樣的資料也會產生不完全相同的結 果。為了避免實驗時的結果碰到特例,也對同一組資料產生數個不同的起始模 型進行訓練、辨識,並取以結果的平均值。
在此,由於考量到重複實驗次數過多時會耗費非常多的時間,所以對於上述所提 及的因素,都各做5 次取其結果來平均。