第四章 利用雙相機做物體平面座標定位
5.4 手勢辨識
在此章節裡,我們將提到物件辨識相關的影像處理,其中又特別針 對手勢辨識的部分加以探討。針對不同的手勢樣式,要能分辨出各種手 勢樣式的不同,此動作稱為〝手勢辨識〞。以下將說明在進行手勢辨識 時,相關的運算流程及基本原理。
圖 5-4-1 手勢辨識運算流程
圖 5-4-1 列出了整個手勢辨識的運算流程,我們先介紹整個手勢辨
識的運算流程圖,先概略的知道其運算流程,等有了基本概念之後,再 去細看各子區塊的運算。
首先針對輸入影像進行物件抽取的動作。接著再利用預先 training 的手勢樣板資料,和剛才抽取出的物件影像進行樣板比對,依比對之後 的 difference 或 cross-correlation 的值判斷此人手部是舉起。如果 判斷出此人手部沒有舉起,則結束後續運算;反之,如判斷出此人手部
Method及Running Average Method[10]、[11]。用Average/Median Method
另一種常見的背景模型為使用Running Average Method,數學式如 下數學式(5.5)所示:
1 * (1 ) * (5.5)
i i i
B+ =α F + −α B
其中F為前景、B為背景、α 為學習速率(Learning rate)。此方法 是藉由每一影像畫面(Fi)的更新,逐步調整其背景(Bi+1)。
當背景模型建立好之後,便可利用背景相減法進行物件抽取的動 作,背景相減法的運算式如下[12]:
( , ) ( , )
IF frame background Th
THEN foreground frame
ELSE foreground
圖5-4-2 物件抽取流程圖
圖 5-4-2 為整個物件抽取的流程圖,從前端利用取像設備取得影像 資料,然後藉著輸入的影像資料建立背景模型。接著利用背景相減法取 得粗糙的前景影像,再來便將此粗糙影像送到影像的後置處理部分,進 行雜訊去除、漏洞填補等,使其前景影像較完整、正確。以下以一例子 顯示物件抽取的運算結果:
圖 5-4-3 原始影像(包含前景與背景)
圖 5-4-4 物件影像(前景)
圖 5-4-3 為原始影像,此影像是由前景影像及背景影像所組成。圖 5-4-4 是圖 5-4-3 經由物件切割運算後,所求得的物件影像。
[樣板比對]
樣板比對的相關技術與原理在章節 5.3 裡有完整的運算流程與說 明,在此僅說明手勢辨識相關的樣板比對技術。然而因為我們要進行的 是手勢的樣板比對,因此要事先定義手勢樣本,在此定義了五個手勢,
手勢樣本如圖 5-4-5 所示。
圖 5-4-5 手勢樣本
有了圖 5-4-5 的手勢樣本之後,便可以利用此手勢樣本和物件抽取 後的物件影像進行樣板比對的動作,比對完之後,便可依上述二者的 difference 或 cross-correlation 的值判斷比對者的手部是否舉起。判 斷的結果如手部沒有舉起,則結束手勢辨識動作;如手部舉起,則繼續 進行手勢辨識的後續動作。
雖然樣板比對的技術在章節 5.3 已有說明其運算方式,但是在此處 的比對方式和前述有所不同。不同之處在於原始樣板比對處理的對象為 整張完整影像,此處僅針對影像中前景部分加以處理。首先找出框出前 景的矩形框,此矩形框內的範圍為樣本比對的 Search 範圍,此作法可
減少樣板比對時 Search 的範圍。更進一步地,我們設定手部舉起時,
需有合理的位置分佈,只針對合理的手部位置進行比對,如此又可減少 樣板比對的 Search 範圍,上述說明的 Search Strategy 以圖 5-4-6 來 呈現。
圖 5-4-6 樣板比對範圍
我們藉由圖 5-4-6 來說明樣板比對時所處理的影像範圍,傳統樣板 比對的處理範圍為整張影像,即紅色矩形框內範圍,因此比對範圍大、
計算量大。進一步地,如果只針對前景影像處理的話,便可減少比對的 範圍,方法如下:首先計算前景影像中非零值像素的總像素及物件中心 點位置,依中心點位置及總像素的大小框出前景物件,即綠色矩形框,
此時樣板比對範圍較上述範圍小、計算量小。如果我們再進一步搭配手 部舉起時,合理的位置分佈,可進一步的縮小樣板比對範圍。上述所說
之合理的手部位置資訊,即定義在物件中心點的左、右上方區塊。以圖 5-4-6 為例,即兩藍色矩形框區域。樣板比對的 Search 範圍由原本的整 張影像縮小到前景,進一步的縮小到合理的手部分佈範圍,大大的減少 比對時所需的計算量及計算時間。樣本比對範圍經由上述步驟定義出之 後,便可利用 Coarse-to-Fine Search 方式的樣板比對,找出手部分佈 的位置。
[物件特徵點擷取]
如經樣板比對後,判斷出手部舉起時,便繼續進行物件特徵點的擷 取 動 作 。 此 處 所 執 行 的 特 徵 點 擷 取 動 作 , 是 利 用 Harris Corner Extraction Algorithm 所完成的,此演算法的運算流程在章節 5.2 有詳 盡的說明。
圖 5-4-7 物件特徵點分佈
圖 5-4-7 為圖 5-4-4(物件影像)進行 Harris Corner Extraction 運 算之後,所求得的特徵點分佈圖,以十字記號標記 Corner 的位置。當 我們得到物件的特徵點分佈圖之後,便可以搭配手勢特徵點樣式及手部 位置資訊,進行手勢特徵點比對的動作。
[手勢特徵點樣式]
當我們完成物件特徵點擷取的工作之後,接著要進行的運算流程便 是手勢特徵點的比對,藉由特徵點的比對結果,判斷出相對的手勢樣 本,於是便完成手勢辨識的運算流程。但在進行手勢特徵點比對之前,
需事先知道手勢特徵點樣式的資訊,以下將介紹手勢特徵點樣式的取得 方式及相關定義。以圖 5-4-8 來說明:
(a)
(b)
(c)
(d)
(e)
圖 5-4-8 手勢特徵點樣式
藉由圖 5-4-8(a)~(e)的圖形演進,說明手勢特徵點樣式的前置處理 過程。以下將說明各圖形是經由何種運算得來的:
(1)圖 5-4-8(a)是我們事先定義的手勢樣本,由左到右依序為手勢 5、
手勢 4、手勢 3、手勢 2、手勢 1。
(2)圖 5-4-8(b)、(c)為圖 5-4-8(a)的手勢樣本經特徵點擷取運算後,
再針對特徵點影像進行 thresholding 動作後,所求得特徵點分佈。
圖 5-4-8(b)是利用低門檻值進行 thresholding 動作所得的特徵點分 佈,圖 5-4-8(c)是利用高門檻值進行 thresholding 動作所得的特徵 點分佈。
+
(3)圖 5-4-8(d)是由圖 5-4-8(c)的特徵點分佈資訊,進行特徵點分群動 作所求得的影像。以下以一簡單例子說明特徵點分群:
圖 5-4-9 特徵點分群
我們以圖 5-4-9 來說明特徵點分群的動作,圖 5-4-9(a)為某一影像 的特徵點分佈情形。圖 5-4-9(b)為將每一特徵點,以自身的位置為圓 心,某一半徑的值畫出一圓。針對某一個特徵點,如畫出的圓包含另一 特徵點,則此二點屬於同一群體,針對每一特徵點反覆的進行群體分類
的動作,最後可將分佈相近的特徵點歸類為某一群體,如圖 5-4-9(c) 為將所有的特徵點分為三個群體。針對每一群體,任意的選取群體內的 某一特徵點,將其保留下來,其他的特徵點予以丟棄,如此例有 3 個群 體,保留下的特徵點為 3 點,其結果如圖 5-4-9(d)所示。
(4)圖 5-4-8(e)為最終的特徵點樣式分佈圖,是利用圖 5-4-8(d)影像,
保留指尖附近的特徵點,其餘距離指離指尖較遠的特徵點予以丟棄,
所得的特徵點樣式影像。以圖 5-4-10 說明:
圖 5-4-10 特徵點樣式求法
我們藉由圖 5-4-10 來說明最後的特徵點樣式是如何求得的。首先 針對每一個手勢樣本找其中心點的位置,再依手勢樣本的大小及中心點 的位置畫出一適當的圓。特徵點如分佈在圓外則保留特徵點,在圓內則 將其捨棄,以此方式可得最後的手勢特徵點樣式。
[手勢特徵點比對]
當物件特徵點及手勢特徵點樣式都已經藉由上述運算流程得到之 後,便可以著手進行手勢特徵點比對的動作,以下介紹手勢特徵點的比 對方式,以圖 5-4-11 為例。
圖 5-4-11 特徵點比對
首先對物件特徵點影像中,取出手部位置的特徵點影像,接著捨棄 不重要的特徴點資訊,保留指尖附近的特徵點資訊,接著計算此時的特 徵點數目,此時比對各手勢特徵點樣式的特徵點數目,二者一比較便可 知此時的手勢資訊。以此例而言,計算出的特徵點數目為 5,比對各手 勢的特徵點數目,可得此手勢為手勢 5。
第六章 系統實現
6.1 簡介
上述章節的討論都只著重在整個即時互動式監控系統所使用的傳 輸技術、互動機制、物件定位與手勢辨識的原理及說明,而在此章節將 會介紹系統的軟體實現部分,依序介紹Client/Server端的使用者介 面、Client/Server端架構、Client端程式運作流程、Client端之各 Thread間的互動關係。