設計概念


本研究是以不在手上做顏色記號及不穿戴任何顏色手套或感應裝置之情況下,藉由一台CCD攝影機擷取手部影像,對手部動作進行分析。主要藉由過濾膚色來取得我們所需的手部影像,排除掉其他不需要的部份,再透過模版比對來取得指尖位置,進而對手指的移動做判斷。

相關理論


形態學

(1) 侵蝕 (Erosion)

侵蝕以AQB表示,A為輸入影像,B為結構元素 (structure element) 圖一,當輸入像素及其周圍像素相對於結構元素為 1 的像素值皆為 255,則將輸入像素的值設為 255,使用 3x3 結構元素對物體作一次侵蝕運算

erosion

(2) 擴張 (Dilation)

擴張以AÅB表示,當輸入像素及其周圍像素相對於結構元素為 1 的像素值有一個以上為 255 時,則將輸入像素的值設為 255,使用 3x3 結構元素對影像作一次擴張運算

dilation

模版比對法

先計算出影像中之目標區域,並將此區域定為搜尋視窗 (Search Window),然後使用其定義之指尖特徵模版,於此區域內進行比對工作。此法係將區域比對法和特徵比對法相結合,用以找出指尖之特徵資訊,其定義之模版具有固定大小及樣式,如下圖所示:

module

Sobel邊緣偵測

在數位影像處理中,常利用邊緣偵測來找出期望的特徵點。影像中任一點pixel在階位與鄰近點突顯變化,則可視為邊緣edge。因為數位影像是離散的,因此可將原始影像 I (x,y) 與梯度運算子gradient operator作迴旋運算convolution求得梯度向量。常見的梯度運算子有prewittSobelcandy….等。其中Sobel 最為常用。

Sobel 運算是微分運算和低通運算的結合,以3x3 遮罩mask,其定義如下:

其中hx x 方向微分,hy y 方向微分。取原始影像 I (x,y) hx, hy 做迴旋運算,其結果可得:

Gxx,y= hx* Ix,y

Gyx,y= hy* Ix,y

則總梯度強度Mgradient magnitude

細線化

細線化之主要目的是為了找出物體之骨架,如此助於減少資料儲存之空間,另外細線化也可運用於印刷字或是手寫字等等之辨識,因為線條或紋理之寬度對於辨識之工作並無太大之貢獻,有時反而會造成辨識上之困擾,故需先進行細線化步驟,將粗細不等之線條及紋理細化成等寬度,以便下一步之辨識處理。

細線化處理程序

 

系統設計


實作方法及操作步驟分為以下五個部份進行:

(1)   透過程式與攝影機連線取得連續影像

(2)   將手的部分從影像中分離出來

(3)   擷取特徵資訊,辨識手勢動作

(4)   決定手勢動作所代表之滑鼠事件

(5)   傳送訊息控制系統滑鼠動作

progress

系統流程圖