************ Hand-Gesture-Based Windows HCI Interface

Download Report

Transcript ************ Hand-Gesture-Based Windows HCI Interface

研究生:陳佑鈞
指導教授:楊傳凱 博士
台灣科技大學資訊管理系
序論
相關文獻
基礎原理
實作與改良
創新Windows人機介面
結論
序論 1 / 4

人機互動領域 Human Computer Interaction 是一個
專門研究人類和機器互動方式的研究領域。
序論 2 / 4

在科幻電影中的人機互動介面
◦ 關鍵報告 Minority Report (左)
 年份: 2002
◦ 鋼鐵人 Iron Man (右)
 年份: 2008
序論 3 / 4

目標:實作出透過手勢來操作電腦的人機介面




以一般camera做為硬體介面
在即時運算 (real-time) 的限制下偵測出手的變化
能夠偵測點擊、拖曳、以及深度判斷的手勢
提出一套創新的Windows介面,讓使用者在操作系統上
更方便
序論 4 / 4

手勢人機互動介面的優點:
◦ 不需額外的硬體設備,即可達成多樣化的互動方式
 可自由的調整輸入角度和方式
◦ 適用於不便裝設鍵盤滑鼠的情況
 如:深海中、攀岩中、街道上
◦ 適用於醫院的無菌設備
◦ 讓使用者能夠以更直覺的方式與電腦溝通
相關文獻 1 / 6

以電腦視覺 (Computer Vision) 為基礎的手部辨視
方法已經被廣泛的研究,主要可以區分為
◦
◦
◦
◦
◦
立體影像法
膚色偵測法
影像差法
機器學習法
輪廓追蹤法
相關文獻 2 / 6

Rehg在1995年提出使用兩台攝影機,且在黑色背
景下,進行手部偵測的系統。
◦ 優點:手部自由度較高
◦ 缺點:影像分析方法和設備較複雜
相關文獻 3 / 6
Manresa等人在2005年提出的系統
• 將手伸到影像的中央進行初始化,在影像的中間的小方格內擷取使用者膚色
的分佈,進而使用整隻手的方向和形狀來與系統進行簡單的互動。
Zaletelj等人在2007年提出的系統
• 系統會先偵測人臉的位置,再以人臉的膚色分佈判斷出使用者的手的顏色,
再用手的重心到輪廓距離的建立出一組分佈,並分析分佈的波型以達到虛擬
點擊的功能。
◦ 缺點:較易受環境的光線和複雜度影響
相關文獻 4 / 6

影像差法通常都會維護一張背景影像,進而計算目前影像和背
景影像的差異,在Hardenberg and Bérard (2001) 和Letessier
and Bérard (2004) 所提出的系統中,將影像轉換到rg平面,以
色差來計算差異性,能夠免除光線的影響。
◦ 缺點:當camera在移動狀態時難以維護背景影像
相關文獻 5 / 6

採用機器學習的臉部偵測法
◦ Rowley等人於1998年使用類神經網路的技術偵測臉部
◦ Viola and Jones於2001年使用AdaBoost的方式來偵測,
系統能夠自動決定最佳的特徵要素來建立分類器,再藉由
Cascade的方法進行加速

因此,手部偵測也有人結合機器學習的方法
◦
◦
◦
◦
Wu等人於2003年也使用類神經網路來進行手部偵測
Fahn等人於2009年即以AdaBoost技術來偵測雙手指尖
優點:較Robust
缺點:複雜度較高,且當手指彎曲時較難偵測指尖
相關文獻 6 / 6



輪廓追蹤的方法在很早以前就提出來,在Blake 和 Isard
於1998 所提出的方法中,就介紹了定義輪廓來進行追蹤
物件的方法。
而Tosas在2006年對該方法進行改良,加入了膚色偵測和
追蹤關節化物件的加速法,使其更適合追蹤手部。
本篇即採用了上述兩者所提出的輪廓追蹤法為基礎,並降
低其演算法計算量,以增進效能。
基礎原理 1 / 8

本篇手部追蹤法建立於下列基礎上
◦ 可變型模版
◦ 測量機率模型
◦ Condensation演算法
基礎原理 2 / 8


為了能夠以少量的點來表示複雜的形狀,採用Nonuniform Cubic B-spline來定義可變型模版
其中
◦
◦
◦
◦
◦
為控制點的座標
Bn 為基底函數 (basis function)
L 為控制點的數量
NB = L+M+1-d 為基底函數的數量
M 為多重Knot的數量,d 為曲線的階數
基礎原理 3 / 8


但一組完整的輪廓還是需要大量的控制點來定義,
因此,我們對每一條B-spline各使用一組狀態向量 x
來定義
其中
◦
◦
即為定義B-spline形狀的原始模版座標
為狀態向量
基礎原理 4 / 8

x = ( 0 0 1 1 0 0 )T 與原始模版相同的輪廓

x = ( 0 0 2 1 0 0 )T 即為對x方向擴展的輪廓

x = ( 0 0 cosθ cosθ -sinθ sinθ )T 即為旋轉θ角的輪廓
基礎原理 5 / 8

主要目的:測量輪廓目前的適合度 (fitness)
基礎原理 6 / 8


Condensation = Conditional Density Propagation
即為一套結合粒子濾波法(Particle filter)和可變型模
版進行視覺追蹤的架構,強項是能夠在有限的資源
下,在複雜的背景中進行追蹤。
每一個粒子上含有兩個資訊
◦ 狀態向量 x :代表著假設輪廓的型狀
◦ 權重 π:代表著輪廓的適合度 (fitness)
基礎原理 7 / 8

而Condensation演算法分為三個不斷重覆的動作
◦ 重新取樣 resampling
 從前一個時間點的粒子集合中,取樣出 n 個粒子
◦ 預測 prediction
 對每個粒子未來的變化方向進行預測,使用second-order
auto-regressive processes (ARPs)來做為動態預測的函式
 xt即為 t 時間點下的狀態向量
 A1和A2代表決定性的元件,B代表隨機性的元件
 而w為獨立的隨機變數
◦ 測量 measurement
 依照每個粒子上的狀態計算出假設輪廓和目標物件的適合度,
做為該粒子的權重
基礎原理 8 / 8
實作與改良 1 / 14

接下來,即介紹本篇實作的方法和改良的部份,其
中包括了
◦
◦
◦
◦
◦
◦
◦
◦
有關節的手部輪廓模型
動態模型
測量模型
膚色分類器
改良重新取樣機制
改良Sweep tracker演算法
改良手指長度偵測演算法
動態雜訊機制修改
實作與改良 2 / 14

本篇使用的手部輪廓以B-spline畫成,包含了50個
控制點。整個手部輪廓的運動自由度為14,使用一
個較大的狀態向量來控制。
控制物體: 手掌
控制物體:
四指
姆指
x: x軸座標
θ4:θ:
1節旋轉角度
旋轉角度
y:
y軸座標
θ5 α:
:l:2節旋轉角度
手指長度
旋轉角度
λ: 縮放大小
實作與改良 3 / 14


手部輪廓模型上共有70條垂直於輪廓且長度約20像素的測量線
為了檢查線上的每一個點,以Bresenham Line演算法實作每一
條線,並且由外而內的檢查膚色邊,當檢查到連續兩個點皆為
膚色時,則紀錄下該點,並計算膚色邊與測量點的距離。
實作與改良 4 / 14


為了效率,預先計算好測量線上的高斯
分佈,在得到膚色邊與測量點的距離後,
即可以查表的方式求得分數。
精簡計算距離的計算量
◦ 在檢測時,變數Distance在每檢查一個像素即加1
◦ 當檢測到膚色時即回傳
L為測量線的長度
距離
分數
0
2.0000
1
1.9995
2
1.9922
3
1.9610
4
1.8801
5
1.7232
6
1.4805
7
1.1767
8
0.8737
9
0.6408
10
0.5000
實作與改良 5 / 14

採用Linear Container Classifier
實作與改良 6 / 14

在使用者的手放入輪廓中時,以手部輪廓建立遮罩
SkinMask來調整目前膚色分類器的適合度
TI為一個可調整的權重,設定為 2
分類器初始值
BGhmin = -1.2
BGhmax = -1.2
BGvmin = 0.76
BGvmax = 0.76
BRmin = 0.973
BRmax = 1.55
GRmin = 0.104
GRmax = 0.476
實作與改良 7 / 14
膚色邊距離
影像邊距離

0
1
2
3
4
5
6
7
8
9
10
0
2.000
1.987
1.977
1.952
1.903
1.825
1.714
1.571
1.399
1.206
1.001
1
1.987
1.985
1.976
1.950
1.901
1.824
1.713
1.570
1.398
1.205
1.001
2
1.977
1.976
1.966
1.941
1.892
1.815
1.705
1.563
1.392
1.199
0.996
3
1.952
1.950
1.941
1.916
1.868
1.791
1.683
1.543
1.374
1.184
0.983
在手指的部份加上影像邊的判斷
機制,以達成合併手指的動作。
4
1.903
1.901
1.892
1.868
1.821
1.746
1.641
1.504
1.339
1.154
0.958
5
1.825
1.824
1.815
1.791
1.746
1.675
1.573
1.442
1.284
1.107
0.919
6
1.714
1.713
1.705
1.683
1.641
1.573
1.478
1.355
1.207
1.040
0.863
7
1.571
1.570
1.563
1.543
1.504
1.442
1.355
1.242
1.106
0.953
0.791
8
1.399
1.398
1.392
1.374
1.339
1.284
1.207
1.106
0.985
0.849
0.705
9
1.206
1.205
1.199
1.184
1.154
1.107
1.040
0.953
0.849
0.731
0.607
10
1.001
1.001
0.996
0.983
0.958
0.919
0.863
0.791
0.705
0.607
0.500
實作與改良 8 / 14



Blake 與 Isard 在1998
年的方法是以粒子的
權重來取樣。
Tosas在2006年則改
為只由前百分之10的
粒子來取樣
本篇則只保留最高權
重的粒子進行取樣,
節省了排序的時間,
且粒子數量為250 。
實作與改良 9 / 14



A2和A1為前幾個狀態的權重,設為-0.6和1.6 。
B則是雜訊量的變動大小,採用2nd-order ARPs來
計算。
w為一個常態分佈的隨機變數
,採用moro在
1995年提出的轉換法計算得。
實作與改良 10 / 14


在B大於下界時將B乘上0.5倍,大於上界時乘上1.75倍
雜訊變動下界
雜訊變動上界
X軸座標 x 變化量
2 pixels
4 pixels
Y軸座標 y 變化量
2 pixels
4 pixels
角度 α 變化量
0.03 rad
0.05 rad
大小 λ 變化量
0.02
0.03
能夠追蹤移動速度更快的情況,且在靜止時抖動較小
實作與改良 11 / 14

Sweep tracker演算法:在決定手掌的狀態之後,即
使用手指輪廓來測量各個可能的角度,來決定手指
的方向
小指頭
無名指
中指
食指
大姆指第一節
大姆指第二節
最小角度
-0.55 rad
-0.3 rad
-0.3 rad
-0.6 rad
-0.6 rad
-1.1 rad
最大角度
0.55 rad
0.25 rad
0.3 rad
0.5 rad
0.6 rad
0.2 rad
實作與改良 12 / 14


增加搜尋比前狀態長度加0.2的長度
且將搜尋範圍縮小為前次手指角度的正負0.3
實作與改良 13 / 14

Tosas提出的手指長度偵測演算法的五個步驟
◦
◦
◦
◦
◦
將測量線上的值存入陣列中,膚色設為1,非膚色設0。
採用1個像素大小的侵蝕運算子去除雜訊。
採用25像素大小的擴張運算子,將破碎的空洞填滿。
再使用的是24像素的侵蝕運算子。
最後,由內而外掃描陣列,以決定哪個位置為膚色邊。
實作與改良 14 / 14

維護變數count25,並考慮三種情況
(c)
(b)
(a)
(a)
(b)
(c)
(c)
(結束點)
◦ 結束機制
 在count25的值大於25時則記錄該位置並回傳。
 到底時回傳最後一個紀錄的點,若無則回傳最後一點。

此方法能降低計算量,並且節省額外的儲存空間。
創新Windows人機介面 1 / 10







系統流程
初始化程序
點擊偵測
拖曳事件
手掌深度事件偵測
減緩輪廓振動
虛擬Windows介面
創新Windows人機介面 2 / 10
創新Windows人機介面 3 / 10

在適合度分數高於門檻值的10個影格中 (綠色階段),
使用最高分的影像進行膚色分類器的調校。
創新Windows人機介面 4 / 10

使用手掌中心做為滑鼠位置設定的依據
螢幕

為了減緩輪廓振動對滑鼠指標的影響,將目前的滑
鼠位置設為前一個位置PreviousPosition和目前位置
CurrentPosition的加權平均
創新Windows人機介面 5 / 10

使用EWMA (Exponentially Weighted Moving
Average)來計算手指的長度門檻值LCL (Lower
Control Limit)
 α = 0.65, k = 0.5, σ = 0.1
創新Windows人機介面 6 / 10

在點擊事件發生時,即會儲存手指長度ClickLength,而拖
曳門檻值即為DragThreshold,在手指長度較門檻值高時才
會視為放開,Margin即為一個可調整的變數。
創新Windows人機介面 7 / 10

以手掌的大小來判斷深度,若深度大於門檻值
ScaleThreshold時,則視為”推”這個事件
創新Windows人機介面 8 / 10
創新Windows人機介面 9 / 10
手部追蹤系統按鈕
應用程式快捷鍵
組合鍵
創新Windows人機介面 10 / 10
數字符號鍵
字母鍵
功能鍵
系統環境 1 / 1




處理器:Intel Core 2 6320 1.86GHz
記憶體:3GB
作業系統:Windows XP Service Pack 3
攝影機:Logitech QuickCam快看高手版
 每秒30影格

程式語言:C#
 並採用DirectShow函式庫擷取攝影機影像

手部追蹤系統速度:每秒可處理30張影像
結論 1 / 2


本篇論文實作了手部輪廓追蹤系統,並且著重於演
算法計算量的降低,讓手勢追蹤更能與其他系統
並行運作,並且提出了一套創新的人機互動方式,
能夠偵測使用者的點擊、拖曳、深度變化等等的動
作,並開發了滑鼠快捷鍵與虛擬鍵盤的介面,讓使
用者能夠更直覺的操作系統。
貢獻
◦ 對前人所提出的手部輪廓追蹤演算法,進行計算量的精簡
◦ 對手指追蹤的演算法進行改良
◦ 開發了一套創新的Windows人機互動介面
結論 2 / 2

未來展望
◦
◦
◦
◦
讓手部輪廓能自動fit使用者的手的形狀,使得追蹤更精確
在手進入攝影機範圍時即自動起始追蹤
將手部輪廓追蹤系統推廣到追蹤三維的手部變化
開發更適合手部輪廓追蹤系統的應用程式