第二章 文獻探討
2.1 姿勢辨識文獻
2.1.3 姿勢行為分析
姿勢行為分析是將經由演算法計算完的影像資料加以統整分析,並且做行為 判別和分類,在 Xiaofeic 和 Ronald 等人[10]發表的論文當中提到有兩大分類:(1) 基於樣本的比對方法(Template Matching Based Method)和(2)狀態空間法(State
Space Approaches),如圖 2.3 所示。
1.基於樣本的比對方法
基於樣本的比對方法為利用姿勢的一些參數,如方向、速度、距離等代入 主成分分析法(Principal Component Analysis,簡稱 PCA)、支持向量機(Support
Vector Machine,簡稱 SVM) [11]來判斷姿勢差異,PCA 是一種分析和簡化數據 的技術,PCA 常被用來作為人臉辨識[12],其中有兩個理由: (1)PCA 的方法可以 快速且容易的計算出結果,(2)在線性投影上,PCA 可以利用降低維度留下最具 有代表性的特徵。而由文獻[13]所提出姿勢辨識研究中,將 PCA 用於人體姿勢 輪廓的特徵擷取上,在區分姿勢的特徵上也有不錯的成果。SVM 其運作原理為 將資料用一直線或者是超平面(Hyper plane)將不同類別的資料分開來達到辨識,
在文獻[14]所提出的人體辨識中,找出人體關節點並把關節點資訊儲存成特徵向 量,將關節點的特徵向量利用 SVM 分類。
圖 2.3 姿勢行為分析方法
2.狀態空間法
此法是將動作特徵轉換成狀態(State)來表示,一個連續的動作,可以看成一 連串的靜態姿勢所構成的狀態,可得到一個連續的狀態序列,然後在個別狀態之 間使用機率條件來產生連結。這方法最常使用的是在隱馬爾可夫模型(Hidden
Markov Model,簡稱 HMM)。由 Baum 和 Ted 所提出[15],是由有限狀態機(Finite State Machine)所衍生出的數學模型,如圖 2.4 所示。此法一開始用於語音辨識上 較多,而後由文獻[16]提出可以利用建立人體三維模型來表示每一個狀態,再利 用狀態轉換機率來表示動作,文獻[17]中為最早提出了可以辨識六種網球擊球動 作的姿勢辨識,在近年的研究如 Liu[18]和 Wang[19]中也顯示 HMM 在姿勢的辨 識上有不錯的效果。在概念上,HMM 有下列幾個主要元素:S { ,S S1 2,....SN}表 示為狀態的集合,V { ,v v1 2,...vM}表示為所有可能的觀察值集合,A 為狀態轉換
機率矩陣,B 為特定狀態下的觀察值分佈機率矩陣, 為初始狀態機率矩陣,這 三機率矩陣合在一起,稱為 HMM 的參數 ,( , , )A B 因此找出一組參數就 可以表示 HMM 的一個模型。
圖 2.4 HMM 模型示意圖
2.2 Kinect 架構和運作原理
微軟公司於 2010 年 11 月推出的 Kinect 控制器,由圖 2.5 所示。不同於以往 的網路攝影機只能處理二維資訊,對於偵測和分析人體是較為困難的,Kinect 是一個具有能夠偵測三維深度資訊的攝影機,有了深度資訊,人體就更容易由背 景分割出來,對於找到關節點也更容易,因此本論文使用了此硬體設備做為攝影 機輸入端。
Kinect 的硬體架構為一個 RGB 色彩攝影機鏡頭,一組三維深度感測器(包含 一個紅外線發射器及一個紅外線接收深度感應器)、一組陣列式麥克風和一個可 以調整俯仰角至 27 度並具備追焦功能的轉動馬達(圖 2.6)。經由 Kinect 所給予的 資訊可以得到(1)RGB 彩色影像、(2)深度影像、(3)聲音串流,並由透過 Kinect SDK
等使用者介面軟體我們可以得到人體 20 個關節點(圖 2.7)的座標資訊,故可以利 用其資料進行分析以利人體姿勢的辨識。
圖 2.5 Kinect 攝影機外觀[1]
圖 2.6 Kinect 硬體架構[1]
表 2.1 Kinect 硬體規格表[1]
感應項目 有效範圍
顏色與深度 1.2 ~ 3.6 公尺 骨架追蹤 1.2 ~ 3.6 公尺
視野角度 水平 57 度、垂直 43 度 底座馬達旋轉 上下各 28 度
每秒畫格 30 FPS
深度解析度 QVGA (320 x 240) 顏色解析度 VGA (640 x 480)
聲音格式 16KHz, 16 位元 mono pulse code modulation (PCM)
聲音輸入 四麥克風陣列、24 位元類比數位轉換 (ADC)、雜音消除
圖 2.7 Kinect 關節點[1]
Kinect 的深度影像主要是經由紅外線發射器發射出帶有標記的紅外線掃描 場景,使用光線編碼(Light Coding)[20]的方式建立點雲(Point Cloud)深度影像,
並且利用紅外線攝影機把資料回收並且分析場景深度,並且以不同顏色來代表不 同物件與 Kinect 之間的距離,如圖 2.8 所示。引用文獻[20]的描述,光線編碼技 術理論是利用連續光(近紅外線)對測量空間進行編碼,經感應器讀取編碼的光 線,交由晶片運算進行解碼後,產生成一張具有深度的圖像。光線編碼技術的關 鍵是 Laser Speckle 雷射光散斑,當雷射光照射到粗糙物體時,會形成隨機的反 射斑點,稱之為散斑。散斑具有高度隨機性,也會隨著距離而變換圖案,空間中
任何兩處的散斑都會是不同的圖案,等於是將整個空間加上了標記。當標示完成 後,即可以進行前景及背景的分離並辨識出使用者,最後將資料整理成骨架資 訊。當有了骨架資訊之後,就可以將其應用在人體的姿勢辨識上。
圖 2.8 三維感測器所構成的之深度場景[20]
第三章 研究方法
本研究提出一個人體姿勢辨識系統,並選用 Kinect 作為攝影機輸入端。本 章節將會從系統流程、資料前處理、特徵擷取、動態時間扭曲演算法、姿勢辨識 和系統實作說明進行敘述。
3.1 系統概述和流程圖
本文中的人體姿勢辨識分為三個部分:(1)骨架追蹤和正規化、(2)姿勢特徵 擷取和(3)姿勢辨識,如圖 3.1 所示。一開始經由 Kinect 可以得到人體骨架關節的 三維座標和深度影像。將所得的人體骨架資訊以肩膀中央點(Shoulder Center)為 新的原點做座標轉換(Transformations)做正規化(Normalized)的前處理,此為系統 第一部分。
在系統的訓練階段時,根據使用者姿勢快慢利用雙手六個關節點和門檻值
(Threshold)做比對,從比對結果做特徵擷取並將所產生的訓練樣本分類,此為系 統第二部分。
第三部分則是在測試階段時使用動態時間扭曲演算法將測試樣本並和訓練 樣本分別計算其歐幾里得距離,計算之後利用最近鄰居法將差距最小的樣本視為 辨識結果。
圖 3.1 系統流程圖
3.2 資料前處理
本節中將對 Kinect 所提供的三維骨架進行座標正規化的資訊前處理。Kinect 所提供的關節點資訊共 20 個,由於人體姿勢的變化大多由頭和雙手的上半身至 下半身的膝蓋所組成,故本研究在這裡所採用的關節點為 11 個,分別是:頭
(Head)、左手(Hand Left)、左手腕(Wrist Left)、左手肘(Elbow Left)、左肩膀(Shoulder Left)、左膝蓋(Knee Left)、右手(Hand Right)、右手腕(Wrist Right)、右手肘(Elbow Right)、右肩膀(Shoulder Right)、右膝蓋(Knee Right)。如圖 3.2 對應各關節點所 示。
圖 3.2 本研究使用之關節點,包含;(1)頭、(2)左手、(3)左手腕、(4)左手肘、(5) 左肩膀、(6)左膝蓋、(7)右手、(8)右手腕、(9)右手肘、(10)右肩膀、(11)右膝蓋
將上述的 11 個關節點利用文獻[21]所提到的方法來進行座標轉換,主要是 將一個圖形按照一定的方向移動一定的距離。 v 為原始的座標,v 為經過平移之 後的座標,dx 為 x 軸的平移向量,dy為y軸的平移向量,dz 為z軸的平移向量,
並且以平移矩陣來表示,把平移矩陣和原始三維座標做內積,即可將其原始座標 對應至一個新的空間座標系中,將關節點中的肩膀中央點當作新的原點並平移至 新的座標空間(0,0,0),在將其他的關節點以此為參考點,平移至新的座標,如圖
3.3 與圖 3.4 所示。
圖 3.3 座標轉換示意圖
3.3 特徵擷取
圖 3.5 特徵擷取流程圖
3.4 動態時間扭曲
動態時間扭曲(Dynamic Time Warping,簡稱 DTW)是一種基於動態規劃 (Dynamic Programming)的一維序列比對的演算法[22][23],可以有效率的將搜索 比對的時間縮短。在一般的情況下,如果要求兩個 n 維空間的向量 x 和y的距離 時,會使用歐幾里得距離(Euclidean Distance)(式 3.4) ,但是如果向量長度不同時 則不能單純使用此計算。此演算法一開始被應用在語音辨識上,因為可以依據時 間軸解決說話時間長度不一的時間扭曲(Time Warping)的問題,也就是找到訓練 樣本和測試樣本之間非線性的對應,進而決定兩個向量的相似程度,故此演算法 的目的為找出兩個長度不同的向量彼此之間的最短距離並進行相似的比對,因此 本研究使用了此演算法來解決特徵長度問題和找出樣本之間的相似性。
2 2 2 1/ 2
1 1 2 2
( , ) | | [( ) ( ) ... (
n n) ]
Dist x y x y x y x y x y
(3.4)3.3.1 演算法
假 設 有 兩 個 向 量 R 和 L , 其 長 度 分 別 為 m 和 n , 可 以 表 示 為
1 2
{ , ,..., m}
R R R R 和L{ ,L L1 2,...,Ln},那麼利用 DTW 比對向量時就是要找到 一組路徑{(R L1, 1), (R L2, 2),..., (R Lm, n)},其對應的各元素點之間距離和為最小,也 就代表兩個向量最相似,如圖 3.6 所示。
圖 3.6 DTW 演算法之路徑產生圖
( , )P x y 代表向量R的R 和x L的Ly的元素點比對。由圖 3.6 可知,各個點比 對距離會構成路徑,而各點之間的距離,稱為局部距離(Local Distance),以R 和x
Ly為例可以寫成 ( , )d x y 。
DTW 路徑必須滿足以下條件:
(1) 對稱關係:
(R ,1 L ) = (1, 1), (1 R ,m L ) = (n m , n )。代表第一次比對時必定是向量R的第一
圖 3.7 元素點之路徑圖
3.5 姿勢辨識
經由 DTW 計算出任兩個向量的最小距離後,就可以利用最近鄰居法 (1-Nearest Neighbor,簡稱 1-NN)來決定兩個向量彼此的關係。1-NN 是一種將特 徵空間中最靠近的訓練樣本進行分類的方法,概念於相同類別的樣本,彼此的相 似程度應越高。假設已定義一組含有i種類別資訊的 n 筆訓練資料,可以表示為
1 1 2 2
{( ,x y), ( ,x y ),..., ( ,x yn i)},其中 ( , )x y 代表第n i n 筆訓練資料的分類為y 。當對i 於一筆新的測試資料 x ,根據 1-NN 演算法,挑出最有可能的結果(式 3.6)
本系統中為了減少姿勢誤判,因此設定了一個距離門檻值,利用 1-NN 找出 最有可能的分類時,將此最小距離跟位置門檻值進行比較,如果低於門檻值,便 認定此分類為正確結果,反之若高於門檻值則判定姿勢錯誤。
( ) arg min ||
i||
2 iNN x x x
(3.6)3.6 系統實作
第四章 實驗和結果
4.1 實驗說明
本章節以實驗說明系統成效和可行性,實驗時的開發環境如表 4.1 所示,
實驗將分成兩個部分進行討論,分別是固定姿勢的辨識和自訂姿勢的辨識。
基於其他文獻[9][13]所定義的姿勢還有一般使用者能夠記憶的數量,將本系 統可容納的姿勢數量設為五種,設定每種姿勢二至五次的訓練樣本,實驗人數為 十七人,設定的訓練次數為五次,測試次數為十次,因此一組固定姿勢的資料量 為 425 個、850 個測試資料。固定姿勢會討論所需要的訓練次數、單一使用者建 立的訓練樣本準確率、多個使用者建立的概括樣本(General Sample)準確率。而自 訂姿勢也會討論訓練所需要的量、多個使用者所建立的訓練樣本準確率之外,並 且討論在增量(Incremental)的實驗中讓使用者在少量的訓練樣本下所能夠提升 的姿勢辨識率。
表 4.1 系統開發環境
4.2 固定姿勢辨識
本文中定義了十種固定姿勢並分成兩組如表 4.1、表 4.2 所示,以此進行所 需要訓練樣本數實驗、單一使用者的訓練樣本和多個使用者的概括樣本準確率。
本文中定義了十種固定姿勢並分成兩組如表 4.1、表 4.2 所示,以此進行所 需要訓練樣本數實驗、單一使用者的訓練樣本和多個使用者的概括樣本準確率。