• 沒有找到結果。

中華大學

N/A
N/A
Protected

Academic year: 2022

Share "中華大學"

Copied!
60
0
0

加載中.... (立即查看全文)

全文

(1)

中華大學

碩士論文

即時手勢追蹤技術

Real time gesture tracking technique

系所別:資訊工程學系碩士班 學號姓名:M09702035 陳禹仲 指導教授:黃雅軒 博士

中華民國 101 年 02 月

(2)

I

摘要

本論文提出一種具創新性的即時手勢追蹤技術,其主要的技術優點在於具有 (1)能針對各種不同膚色的人種與光線變化之適應性學習功能,和(2)能在重疊狀 況中分離出被追蹤的手勢物件之處理功能。在適應性學習方面,本論文設計了負 向顏色學習與雙重膚色模型的兩種改善機制,可有效地提升膚色偵測正確性。負 向顏色學習機制是為了解決膚色模型錯誤地學習到非膚色範圍而所提出的改良 方法,它使用手部物件外圍區域來建立負向顏色學習的範圍區域,接著在這兩種 區域中針對每一種顏色來統計所包含的像素點比例,之後即可藉由這樣的比例資 訊來判斷出哪些顏色不應當在手部膚色模型中出現。雙重膚色模型是為了能在不 同環境光源下都能夠準確地偵測到膚色影像而設計的方法,藉由產生嚴格膚色模 型來學習手部膚色主要的色域範圍,與寬鬆膚色模型來描述手部完整膚色可能使 用的色域範圍,再根據這兩種模型在影像中所偵測到膚色結果的差異程度,來選 擇當前應使用何者膚色模型較為恰當。

在手勢追蹤技術上,為了能夠提供使用者於任何環境中自由地使用,本論文 提出了一種可偵測追蹤的手部和其它膚色物件間狀態的方法,它包含分離、接近 與重疊等三種狀態,而每一種狀態有其相對應的處理方式。分離狀態是指手部與 其它膚色物件間的位置彼此保持著相當的距離,此時因為手部的位置與範圍並沒 有被其他膚色物件所影響,所以較能正確地進行追蹤;接近狀態為手部與其它膚 色物件距離很近,小於所設定的分離距離,所以在不久後可能會發生重疊。此時 演算法將以接近的膚色物件之位置與範圍來建立一組分離模板影像,以做為當重 疊時能夠用來區分手部與其它膚色物件上的特徵點。重疊狀態是手部與其它膚色 物件因互相遮蔽而合在一起,形成了一個相連的物件,此時演算法將進行特徵點 偵測,並針對每個特徵點於分離模板影像中尋找其最佳的匹配位置與分數,假如 此特徵點屬於手部物件,則在分離模板影像中一般是無法找到與它非常相似的特

(3)

II

徵對應點,因此也就不會得到很高的最佳匹配分數。然而,如果特徵點是屬於其 它膚色物件上的特徵點,則其通常能夠於分離模板影像中找到相似的特徵對應點,

而且也會有較高的匹配分數。所以可以根據匹配分數來決定哪些特徵點是位於其 它膚色物件上,而哪些是屬於手部物件,再根據屬於手部物件的特徵點即可得到 手部於重疊狀態中的位置。

系統在一開始將以 Adaboost 演算法針對邊緣差異影像來進行啟動手勢偵測,

當確認使用者已經擺出啟動手勢之後,則以所提出的適應性膚色模型來學習使用 者的膚色並持續地更新,直到系統判斷已蒐集足夠的使用者手部膚色,再切換成 追蹤模式來進行手部追蹤。進入追蹤模式後,系統將對手部與其它膚色物件來進 行狀態偵測,然後根據狀態的種類來進行手部物件的追蹤。

由於並沒有符合本論文啟動手勢的手勢追蹤公共資料庫,因此本論文以自行 拍攝的手部影片來進行實驗,影片包含了不同環境、光源與動作,總共建立了 8 組手勢資料,而每組包含 200~800 的影像張數。以提出的改良方法所找出的手掌 心位置與人工建立的正確位置計算平均偏離誤差,實驗整體的誤差皆低於 4 個像 素,執行時間可達到每秒 40 至 50 張影像,與其它手部追蹤技術論文比較,本論 文中的改良方法能夠提供精準與快速的追蹤效果。

關鍵字:手部追蹤、特徵點、區塊比對、膚色學習、邊緣差異影像

(4)

III

Abstract

We proposed a novel algorithm for real-time hand tracking. The proposed algorithm contains two main advantages. The first one is to use adaptive learning algorithm to fit different skin-colors of races and illumination changes. And the second one is can separate the proper hand of tracking object from the overlapped object like faces.

The adaptive skin-color learning algorithm is designed by two learning strategies.

First one is using non-skin colors to training a non-skin color model. This model is used to avoid when learning the skin-color model that contains non-skin color in it.

The second strategy is using two-stage skin-color models. The first stage skin-color model is called strict skin-color model and the second stage is non-strict skin-color model. The main goal of the strict skin-color model is to learning the mainly skin-color space from the hand and the non-strict skin-color model is trying to cover all the skin-color space of the hand. In the running, we will choice one from the both of the skin-color detection results.

For proper detecting hands freely in any environments, we also proposed an algorithm to detect proper hand object between other skin-color objects in three states, such as separating, closing and overlapping. Separating state means the hand object is far from the skin-color object, and closing state means the hand object is closing the skin-color object but not really overlapped by others. And the final state, overlapping, means the overlapped area of hand object is more than the threshold. At overlapping state, it is hard to using tracking algorithm to separate which one is hand object and which one is not. So the proposed algorithm is used to solve this problem.

The experimental results show the proposed algorithm has highly accurate

(5)

IV

detection results and is robust to overlapping of objects. In running stage, the proposed algorithm reaches at 40-50 frames per second in real-time. Finally, the proposed algorithm can provided robust, accurate and rapid tracking results and it will provides for the later gesture recognition used.

Keyword: Hand tracking, Feature points, Block matching, Skin color learning, Edge

difference image

(6)

V

致謝

感謝指導教授 黃雅軒教授,在我研究所的學習生涯中,對我的耐心指導與 教誨。在課業研究上給予我相當多的指導與鼓勵,經常的討論並指點我正確的方 向,使我在這些年中獲益匪淺。老師對於學術研究的認真與做事態度的執著,是 我所要學習的最重要精神。

感謝實驗室的同學彭國達、李允善、周泫廷與廖辛隆,在一同研究時互相幫 助和砥礪,並從旁提供了我寶貴的建議,給予我在研究過程中很多幫助。還有感 謝學長劉偉成、張倞禕、顏華慶、莊順旭、許廷嘉、王勻駿,與學弟陳冠豪、歐 志鴻、林啟賢與劉禹廷在許多方面的協助,讓我能更快速的完成研究。

最後感謝我最愛的家人與親戚朋友,感謝他們給我的關心、支持與鼓勵。特 別感謝我的父母,讓我在就學期間不用擔憂生活,能專心致力於研究工作。僅以 此文獻給我摯愛的親人朋友。

(7)

VI

目錄

摘要 ... 1

Abstract ... 3

致謝 ... 5

目錄 ... 6

圖目錄 ... 8

表目錄 ... 10

第一章 緒論 ... 1

1.1 研究背景與動機 ... 1

1.2 相關研究 ... 1

1.3 論文架構 ... 3

第二章 系統處理架構 ... 4

第三章 啟動手勢偵測 ... 6

3.1 邊緣差異影像 ... 6

3.2 Adaboost 啟動手勢偵測器 ... 8

3.3 適應性膚色學習 ... 12

3.4 啟動手勢驗證 ... 19

3.5 手部資訊建立與儲存 ... 22

3.6 偵測與追蹤混和流程 ... 23

第四章 手部追蹤 ... 26

4.1 卡爾曼濾波器 ... 26

4.2 特徵點偵測 ... 27

4.3 快速區塊比對 ... 28

4.4 狀態偵測 ... 35

4.5 分離模板建立 ... 39

(8)

VII

4.6 特徵點分離 ... 40

4.7 手心點修正 ... 41

第五章 實驗與分析 ... 44

5.1 實驗設計 ... 44

5.2 實驗結果 ... 45

第六章 結論 ... 48

參考文獻 ... 49

(9)

VIII

圖目錄

圖 1、 系統執行框架 ... 4

圖 2、 設定的啟動手勢 ... 5

圖 3、 Sobel 濾波器所使用的的運算遮罩 ... 8

圖 4、 LBP 編碼範例 ... 9

圖 5、 光線變化之 LBP 影像結果 ... 9

圖 6、 啟動手勢正向樣本 ... 10

圖 7、 Adaboost 挑選弱分類器和更新權重示意圖 ... 12

圖 8、 Codebook Model 的訓練流程 ... 14

圖 9、 定義手心位置 ... 15

圖 10、 內層白框為啟動手勢的區域,外層紅框為負向顏色學習邊界 ... 17

圖 11、 負向顏色候選(白色)與膚色候選(黑色) ... 17

圖 12、 雙重膚色模型偵測結果 ... 19

圖 13、 白色內框為手勢候選區域的矩形輪廓𝐻𝐷 ... 20

圖 14、 對膚色二元影像使用距離轉換所找出的手心位置 ... 21

圖 15、 距離轉換所使用的 local window ... 21

圖 16、 啟動手勢之手心點應落於實心內框中 ... 22

圖 17、 偵測與追蹤混和流程 ... 23

圖 18、 紋理特徵點擷取方法示意圖 ... 28

圖 19、 紋理特徵點擷取結果 ... 28

圖 20、 影像金字塔的執行順序與區塊示意圖 ... 30

圖 21、 Block1(左) 與 Block2(右) ... 31

圖 22、 Direct-address table 範例 ... 32

圖 23、 樣板區塊與搜尋影像 ... 32

圖 24、 投票暫存器投票過程 ... 33

(10)

IX

圖 25、 迴圈結構中誤差門檻值改變造成的投票結果 ... 33

圖 26、 適用於 LBP 影像的空間強度分佈演算法 ... 34

圖 27、 LBP 數值 XOR 誤差表範例 ... 35

圖 28、 物件間的位置變化狀態 ... 36

圖 29、 物件間所定義的範圍示意 ... 37

圖 30、 狀態偵測流程圖 ... 39

圖 31、 特徵點分離結果 ... 41

圖 32、 手心點補償設計 ... 42

圖 33、 手部範圍,DT 為手心點位置的距離轉換數值 ... 42

圖 34、 資料庫圖片 ... 45

圖 35、 啟動手勢驗證器所使用的負向樣本 ... 45

圖 36、 啟動手勢驗證器所使用的正向樣本 ... 45

(11)

X

表目錄

表 1、手部追蹤實驗所使用的資料庫... 52

表 2、啟動手勢驗證所使用的資料庫... 53

表 3、啟動手勢驗證比較... 54

表 4、手部追蹤精度進行實驗結果... 54

(12)

1

第一章 緒論

1.1 研究背景與動機

由於科技產業的蓬勃發展,科技產品的不同操作方法已經陸續地出現,從傳 統的鍵盤、滑鼠,到當前的觸碰板、攝影機與物件感測裝置等等,其目的都是為 了讓使用者能以自然的方式來操作周邊設備。

近年來,虛擬實境與人機互動的各種應用相當熱門,像是互動遊戲、遠端遙 控與手語辨識等,其中手勢追蹤與辨識一直都是一項重要的研究議題。手勢是人 與人在日常互動中常用的溝通方式之一,透過手部追蹤的技術,使用者能以更人 性化的方式與設備進行溝通。在開發相關的應用時,常在裝置上使用紅外線與雷 射機等感測器來取得前方物件的深度資訊,擷取出肢體骨架,進而產生手勢的位 置資訊。不過這種作法一般都得付出昂貴的硬體成本,使得在推廣上受到很大的 限制,因此在這幾年來,許多專家學者陸續提出根據電腦視覺理論,並使用單隻 或多隻攝影機的解決方案,來節省硬體裝置的成本,降低使用者消費門檻來達到 推廣應用的目的。

然而,在手部追蹤的技術開發上,至今仍存在許多問題和困難,例如複雜的 背景、不良的光影、手部的形變與物件的遮蔽等等,考驗著學者們對於這些難題 的設計方法,本文將針對這些現象提出解決方案,並實現一套可運用在實際環境 的手勢偵測與追蹤處裡系統。

1.2 相關研究

在視覺追蹤的研究領域中有許多應用上的限制,而研究學者們提出的方法與 文獻相當多,針對各種問題所採取解決方案可說是玲瑯滿目。其中又以手勢追蹤 其困難度可說是相當高,通常解決的方法可分成以「手套為基礎的方法,

(13)

2

Glove-Based Methods」與「視覺為基礎的方法, Vision-Based Methods」兩大項。

在視覺為基礎的方法的研究方面的相關研究,Lin, E.等人在 2002 年的論文[5]中 提出,使用 7400 筆膚色資料來產生高斯分佈機率,來產生膚色模型。對單純背 景的手部使用特徵比對的方式,來找出手指、指節與指縫等地方,以幾何比對的 方式來形成手部資訊。

J. Han 於 2009 年提出使用通用膚色模型來產生訓練資料,來產生 SVM 膚色 模型的論文[6],結合 JSEG[7]演算法的區域解析方法來找出膚色物件輪廓。對物 件的輪廓使用卡爾曼濾波器(Kalman filter)[4]預估其位置,對於預測手部物件的 位置,提出建立不同的搜尋區域,來解決手部消失於邊界、手部物件與其他膚色 重疊和被其他非膚色物件所遮蔽的解決方法。

在 2010 年浙江大學的潘志庚博士提出論文[8]中,使用貝氏機率模型進行膚 色訓練,透過線下學習膚色樣本,再結合線上膚色學習,以固定比例的方式來控 制線下與線上的可靠度比例。透過啟動手勢檢查來對物件進行追蹤,透過特徵點 偵測,採用 KLT(Kanade-Lucas-Tomasi)特徵追蹤器,來判斷物件特徵點的運動行 為,再用特點群聚判斷來決定手部位置。

本文是以視覺為基礎的手部追蹤技術,提出以邊緣差異影像為特徵影像,來 降低背景造成的影響,並提出適應性膚色學習方法,透過各種不同膚色的人種進 行膚色學習,以膚色為基礎進行手部追蹤,並以最佳化動態標準判斷與負向膚色 排除機制,增加膚色偵測品質,以克服因手部形變造成無法得到正確輪廓抽取的 問題。針對追蹤的手部物件與其它顏色和膚色相似的物件發生重疊時,將以特徵 點抽取與分離模板的設計,主動地於的重疊的膚色物件中,將手部物件分離出來。

本文所提出的演算法在執行速度上有相當優秀的執行時間,能夠達到每秒 40~50 張。

(14)

3

1.3 論文架構

本論文共分為六章,各章節內容安排如下:

第一章為緒論,說明這篇論文的研究動機及相關研究。

第二章為系統處理架構,介紹手勢追蹤技術的整體流程。

第三章為啟動手勢偵測包含的步驟,包含了邊緣差異影像,Adaboost 偵測器 訓練、適應性膚色學習、手部驗證與偵測追蹤結合流程。

第四章為手部追蹤,將介紹使用卡爾曼濾波器來建立搜尋區域,LBP 特徵點 偵測介紹,快速區塊比對法,物件狀態偵測,特徵點分離機制與手心候選點選擇。

第五章為實驗,將比較使用以 LBP 為特徵的啟動手勢偵測與 SVM 啟動手勢 驗證的優劣,與比較本論文所提出的方法所找到的手心與實際的手心位置的差異 比較。

第六章為結論,對本篇論文提出總結。

(15)

4

第二章 系統處理架構

本論文提出了一種單隻攝影機且易於使用的啟動手勢偵測與追蹤方法,可達 到即時且穩健的手勢處理效果,能夠適用於人機互動的多種應用。下圖 1 為本論 文所提出的演算法執行框架:

圖1、 系統執行框架

在啟動手勢偵測與追蹤處理流程的開始階段,由於尚未有追蹤物件的初始位 置,因此本論文將使用 Adaboost[1][2]啟動手勢偵測的方式來偵測手勢的位置,

並判斷使用者是否於攝影機前擺出指定的啟動手勢(如下圖 2 所示)。當偵測到使 用者擺出啟動手勢,就會根據該手勢位置的膚色,使用 Codebook Model[9]來建 立適應性膚色模型,以解決常用的通用膚色模型對不同膚色的人種與光源變化會 發生不穩定的現象。然後演算法將以所偵測的手勢位置,作為初始化的追蹤位置,

並轉換為追蹤模式,對此膚色物件進行追蹤。

(16)

5

圖2、 設定的啟動手勢

當追蹤手勢物件時,可將前一畫面的追蹤物件位置,透過卡爾曼濾波器 (KalmanFilter)[4]來預估當前畫面中追蹤物件的位置,再根據此預估位置來建立 搜尋區域,然後使用所建立的適應性膚色模型,針對此搜尋區域來進行膚色二值 化運算,以決定追蹤物件的位置與範圍。結合特徵點偵測與追蹤資訊,使用狀態 偵測的方式來處理物件當發生與其他膚色物件重疊而無法正確追蹤的問題。接下 來本論文將針對啟動手勢偵測、手部追蹤的執行方法,逐步地講解其處理步驟。

(17)

6

第三章 啟動手勢偵測

本章節為手勢追蹤技術之前處理階段,當使用者於攝影機前擺出指定的啟動 手勢之後,系統將從影像中抽取使用者手部資訊(如使用者的膚色、手心位置與 手部範圍)。本論文提出使用邊緣差異影像做為特徵影像,來保留移動物件的邊 緣資訊,使用 Adaboost 驗算法來訓練啟動手勢偵測器。以 Codebook 模型為基礎,

本論文提出 Codebook 膚色模型來達到膚色適應性的效果,並提出負向顏色學習 技巧與主動式模型參數調整方法來改善膚色偵測的效果。在啟動手勢驗證的機制 上,使用以區域二元特徵(LBP,Local Binary Pattern)的啟動手勢偵測器與掌心位 置驗證做為錯誤率除的方法。最後提出偵測與追蹤合併流程,來決定當前手部物 件是否儲存足夠的資訊,由偵測模式切換至追蹤模式,並對於偵測模式發生偵測 失敗的時候,能以追蹤演算法進行補救。

3.1 邊緣差異影像

在手勢偵測上,本論文提出使用 Sobel 濾波器與差異影像結合,作為輸入偵 測器的特徵影像,其原因有三:其一為於影像中移動物件為本論文所感興趣的,

而手勢追蹤技術正是針對移動的手部進行追蹤,因此本論文使用了差異影像來找 出前後影像中有差異的資訊;其二為所設定的啟動手勢輪廓明顯,透過使用 Sobel 濾波器,根據其性質本論文能於影像中找出邊緣反應強烈的線條,並對光影有不 錯的抗性;其三為 Sobel 濾波器與差異影像結合後可保留前後影像中改變的邊緣 資訊,對於偵測移動中的手部可降低其運算量與減少錯誤偵測上有莫大的幫助。

下面將以三個步驟介紹如何產生邊緣差異影像。

第一步驟為計算差異影像,在本論文中所使用 Hunter 於 1976 年所提出的 CIE 1976 (L, a, b) 色彩空間[11],維度 L 表示亮度,A 和 B 表示顏色對立維度,

(18)

7

是基於了非線性壓縮的 CIE XYZ 色彩空間坐標改良而來,下面將簡寫 Lab 色彩 空間來表示 CIE 1976 (L, a, b) 色彩空間。原始 RGB 影像可藉由下式來轉換為 Lab 色彩影像:

L = 0.2126 × R + 0.7152 × G + 0.0722 × B

a = 1.4749 × 0.2213 × R − 0.3390 × G + 0.1177 × B + 128 b = 0.6245 × 0.1949 × R − 0.6057 × G − 0.8006 × B + 128

藉由儲存 t-1 時刻的𝐿𝑎𝑏𝑡−1影像 𝐿𝑡−1, 𝑎𝑡−1, 𝑏𝑡−1 來對 t 時刻的𝐿𝑎𝑏𝑡影像 𝐿𝑡, 𝑎𝑡, 𝑏𝑡 計算其差異,來產生差異二值影像𝐿𝑎𝑏𝐷𝑖𝑓𝑓𝑡

𝐷𝐼𝐹𝐹𝑡 𝑥, 𝑦

= 𝐿𝑡−1 𝑥, 𝑦 − 𝐿𝑡 𝑥, 𝑦 + 0.5 × 𝑎𝑡−1 𝑥, 𝑦 − 𝑎𝑡 𝑥, 𝑦 + 0.5 × 𝑏𝑡−1(𝑥, 𝑦) − 𝑏𝑡(𝑥, 𝑦) 𝐿𝑎𝑏𝐷𝑖𝑓𝑓𝑡(𝑥, 𝑦) = 255, 𝑖𝑓 𝐷𝐼𝐹𝐹𝑡 𝑥, 𝑦 > 15

0, otherwise

式中(𝑥, 𝑦)為影像中的座標點,𝐷𝐼𝐹𝐹𝑡 𝑥, 𝑦 為t-1 時刻與 t 時刻的 Lab 影像(𝑥, 𝑦)的 像素上的差異程度,本論文設定當差異程度𝐷𝐼𝐹𝐹𝑡 𝑥, 𝑦 高於 15 時,則差異二值影 像上座標點 𝑥, 𝑦 值為 255,反之低於或等於 15 時則為 0。

第二步驟是計算 3x3 垂直方向和水平方向的 Sobel 濾波器,如圖 3 所示,來 計算影像中

( x , y )

影像點的水平方向的影像差異值Dx(x,y)和垂直方向的影像差 異值

D

y

( x , y )

,影像中(x,y)影像點的邊緣強度m(x,y)的計算式如下:

𝑚 𝑥, 𝑦 = 𝐷𝑥 𝑥, 𝑦 2+ 𝐷𝑦 𝑥, 𝑦 2

(a) 水平方向(b)垂直方向

(19)

8

圖3、 Sobel 濾波器所使用的的運算遮罩

將所計算的邊緣強度

m ( x , y )

以影像的方式來儲存,形成邊緣影像𝐸𝑑𝑔𝑒𝑡。 第三步驟將差異二值影像𝐿𝑎𝑏𝐷𝑖𝑓𝑓𝑡與邊緣影像𝐸𝑑𝑔𝑒𝑡結合,將兩張影像中所 有像素做 And 運算子計算,來形成邊緣差異影像𝐸𝑑𝑔𝑒𝐷𝑖𝑓𝑓𝑡

𝐸𝑑𝑔𝑒𝐷𝑖𝑓𝑓𝑡 = 𝐿𝑎𝑏𝐷𝑖𝑓𝑓𝑡(𝐴𝑛𝑑)𝐸𝑑𝑔𝑒𝑡

計算過後的邊緣差異影像將作為特徵影像,透過 Adaboost 來偵測啟動手勢。

3.2 Adaboost 啟動手勢偵測器

Adaboost[1][2]是一種特徵挑選的方法,訓練之前必頇先決定是從哪些特徵 當中來挑選,被採用的特徵通常有兩種特性:數量多和運算速度快。這是因為 Adaboost 是由許多特徵所建構而成,所以在訓練時,必頇有足夠數量的特徵來給 予 Adaboost 挑選,而在偵測時,也因影像中的各個區域必頇經過複數個特徵的 計算和判斷,所以具有很大的運算數量,因此每個特徵的計算速度必頇很快,否 則就無法達到即時物件偵測的速度要求。

3.2.1 區域二元化圖樣特徵

LBP(Local Binary Pattern) [3]特徵最早是由 Ojala 等人在 1996 年提出,由於 具有運算速度快和實作簡單的優點,再加上它是計算區域的紋理結構特徵,具有 相當程度容忍光線變化的能力,可以得到良好的辨識效果,因此獲得許多研究學 者的認同,常將其應用在影像紋理特徵的擷取上。原始 LBP 運算子為一大小為

(20)

9

33 的遮罩,在運算時,將對影像上任一點的位置,對其周圍相鄰的像素值,來 進行編碼。

而 LBP 影像的產生方法是對灰階影像,進行3 × 3遮罩運算所產生的結果,

而3 × 3的遮罩運算方法是比較遮罩中心點位置亮度值分別與周遭 8 個像素點亮 度值的大小關係,又影像中一個像素點的亮度值能用 8 位元來表示,故創造 8 個位元參數來表示周遭 8 個像素點亮度值的大小關係,當周遭像素點亮度值大於 中心點,則設定該位元值為 1,否則為 0。

下圖 4 為一 LBP 編碼的範例,左邊為一大小為 33 的 LBP 遮罩,在影像擷 取出像素值後,經過 LBP 運算,可以得到其對應的 LBP 二位元編碼,和其所對 應的 LBP 編碼值。

圖4、 LBP 編碼範例

因為 LBP 是一種區域性的亮度對比關係(即較亮或較暗),對光線變化有相 當程度的容忍能力,當光線變化時,LBP 影像通常是不太會變動的,如下圖 5 所示。

圖5、 光線變化之 LBP 影像結果

3.2.2 Adaboost 訓練原理

對於學習式的物件偵測器的建立是需要先收集大量的目標物件之正向樣本

(21)

10

(Positive Samples)和非目標物件之負向樣本(Negative Samples),正向樣本如圖 6 所示。

圖6、 啟動手勢正向樣本

再將所有的樣本去計算它們的特徵,然後利用這些特徵去訓練物件偵測器。

偵測時只需要將輸入影像計算其特徵,再利用偵測器去判斷這些特徵是不是屬於 目標物件即可。目前主流的方式是 Adaboost,其與 Boosting 演算法不同的是,

adaboost 算法不需要預先知道弱學習算法學習正確率的下限即弱分類器的誤差,

並且最後得到的強分類器的分類精度依賴於所有弱分類器的分類精度,這樣可以 深入挖掘弱分類器算法的能力。Adaboost 在訓練時必頇先提供大量的訓練樣本和 弱分類器(Weak Classifier)

h

t

(x )

給 Adaboost,所謂的弱分類器是只選用一個特徵和 閥值(Threshold)所構成的分類機制,在訓練的時候,它依據閥值來判斷物件的類 別(正向或負向),其分辨率需要達到當下訓練樣本權重分佈的 50%以上。第

j

個 弱分類器

h

j

(x )

的定義如下:

𝑕𝑗 𝑥 = 1 if𝑝𝑗𝑓𝑗 𝑥 < 𝑝𝑗𝜃𝑗 0 otherwise

其中

h

j

(x )

為弱分類器的值,

j為閥值,

p

j為不等號的方向,只能為+1 或-1,x 表示某一樣本,

f

j

(x )

表示為特徵值(任一位置的任一大小矩形區塊的某種海爾特 徵), j

1,2,...,n。假設輸入 n 個訓練樣本:

x

1

, y

1

 , x

2

, y

2

  , L , x

n

, y

n

,其中,

  i L n

y

1

 0 , 1 ,  1 , 2 , ,

,0 代表負向樣本,1 代表正向樣本,假設訓練樣本中有 a

(22)

11

個負向樣本,b 個正向樣本,接著初始化誤差權重

W

1,i,對於

y

i

 0

的負向樣本,

a W

i

2 1

,

1

,對於

y

i

 1

的正向樣本,

W

i

b

2 1

,

1

,對於 t=1,2,L,T,T 為訓練的次數,進行以下的四個步驟:

1. 正規化權重:

n

j t j

i t i

t

W

q W

1 , , ,

2. 對每個特徵值

f

,訓練一個弱分類器

h

j,計算對應所有特徵的弱分類 器的加權錯誤率

jj i i

i j t

j

  W

,

h ( x )y

3. 選取最佳的弱分類器

h

t

(x )

(擁有最小的錯誤率

j),加入強分類器當中

4. 依照這個最佳的弱分類器,調整權重:

W

t1,i

w

t,i

t1ei

其中,ei

0表示x 被正確的分類,i ei

1表示x 被錯誤的分類,另外i

t t

t

 

 

1

形成最後的強分類器:



 

 

  

others

a x

h x a

h

T

t

T

t t t

t

0

2 ) 1 ( ) 1

( 1 1 ,其中,

t

a

t

 log 1

挑選每一個弱分類器的權重更新示意圖,如圖 7 所示。

(23)

12

圖7、 Adaboost 挑選弱分類器和更新權重示意圖

3.3 適應性膚色學習

在偵測到啟動手勢的範圍之後,本文將藉由學習其掌心的顏色來產生使用者 手部的代表膚色,並持續地更新來克服環境光源的影響與不同膚色人種的限制。

本文所採用的膚色模型是以 Codebook 方式來建立,可隨時間來適應膚色的各種 變化。結合最佳化動態標準差設計,可以適時地根據環境,選擇不同的模型來進 行膚色偵測,並能夠對學習到的錯誤膚色進行排除,來達到更佳的膚色偵測結 果。

3.3.1 Codebook 模型

Codebook Model 是由 Kyungnam Kim 等人[9]於 2005 年所提出可用於即時 前後景分割的技術。Codebook 方法則是於訓練樣本中,將每個像素點的色彩變 化及其出現時間和頻率的資訊分別記錄起來,對具有相似色彩的記錄資料做結合,

(24)

13

構成一個 Codeword 來表示這些資料。一個像素點隨著時間改變可能有不同程度 的色彩變化,因此常常需要多個 Codeword 才能記錄這些主要的變化資訊,而這 些 Codeword 的集合則稱為一個 Codebook。因為每個像素點都有其各自的 Codebook,所以 Codebook 的數量等同於影像像素點的數目,可用來描述訓練影 像背景模型所出現的色彩變化、出現時間與頻率等資訊。

本論文中在色彩空間上使用 LAB 空間來學習背景模型,對一個影像點的 Codebook 而言,其第 i 個 Codeword

𝐶

𝑖包含的資訊有色彩向量𝑣𝑖 = 𝐿 , 𝐴𝑖 , 𝐵𝑖 與參𝑖 數𝑃𝑖 = 𝐼 , 𝐼 , 𝜆𝑖, 𝑓𝑖, 𝑝𝑖, 𝑞𝑖 ,其中

𝐼 , 𝐼

為像素亮度變化的最大值與最小值,

𝜆

𝑖

𝐶

𝑖不 連續出現的記錄中之最長時間間隔,

𝑓

𝑖表示

𝐶

𝑖出現的頻率(次數),

𝑝

𝑖

𝐶

𝑖第一次

出現的時間(以影像編號表示),

𝑞

𝑖

𝐶

𝑖最後一次出現的時間(以影像編號表示)。

下圖 8 為 Codebook Model 的建立流程。

(25)

14

圖8、 Codebook Model 的訓練流程

在比對階段,要判斷任何一個輸入的色彩向量

𝑥 = 𝐿, 𝐴, 𝐵

是否可歸屬於

某一個

𝐶

𝑖,則可先算與

𝐶

𝑖間的距離,比較其距離是否超過臨界值,若小於臨 界值時,則可判斷該色彩向量

𝑥

屬於

𝐶

𝑖,即代表

𝑥

為背景影像點;若色彩向 量 x 與 Codebook 內所有的 Codeword 皆超過臨界值,則代表它是前景影像 點。下面為像素

𝑥

𝐶

𝑖的距離計算方式:

𝑥 2 = 𝐿2+ 𝐴2+ 𝐵2 𝑣𝑖 2 = 𝐿𝑖2+ 𝐴𝑖2+ 𝐵𝑖2

𝑥 與 𝑣𝑖 為在 LAB 色彩空間上的向量長度,比較

𝑥

𝐶

𝑖的關係:

(26)

15

𝑙2 = 𝑥 2𝑐𝑜𝑠2𝜃 = 𝑥, 𝑣𝑖 2 𝑣𝑖 2 colordist 𝑥, 𝑣𝑖 = 𝑥 2− 𝑙2

l 為色彩向量𝑥在

𝐶

𝑖上的投影長度,根據畢氏定理,colordist 𝑥, 𝑣𝑖

𝐶

𝑖到色彩向

量𝑥的距離。

3.3.2 Codebook 膚色學習

Codebook 除了能用來判斷前景與背景影像點以外,它也可以藉由學習膚色 來對膚色與非膚色進行判斷。當 Adaboost 所偵測的手部候選區域後,將對此區 域定義出手掌掌心的相對區域,便能使用 Codebook 背景模型來學習手部膚色的 Codeword,然後即可進行初步的膚色與非膚色判斷。下圖 9 為掌心相對位置的 定義,外框矩形為啟動手勢區域 HD,包含了四項訊息(x,y,w,h),其中 x 與 y 為 此物件的左上角座標,而 w 與 h 為此手勢的寬度與高度。實心矩形為相對的掌 心區域 HC,其位置與大小式根據啟動手勢區域 HD 來決定,其左上角座標為 (x+0.4w, y+0.55h),寬度與高度分別為 0.2w 與 0.2h。

圖9、 定義手心位置

建立膚色模型時,像素點常因手掌轉動與光影變化,造成色彩相當大的改變,

使用固定的臨界值來判斷是否為膚色,可能會造成涵蓋的範圍不正確(太大或太 小)。因此本論文使用統計的方式,藉由計算掌心區域膚色的平均值和標準差來

(27)

16

動態調整 Codeword 的臨界值,期計算方法如下:

𝜇𝐶 = 1

𝑎𝑟𝑒𝑎(𝐻𝐶) 𝑋𝐶𝑖

𝑖∈𝐻𝐶

𝜎𝐶 = 1

𝑎𝑟𝑒𝑎(𝐻𝐶) 𝑋𝐶𝑖 − 𝜇𝐶 2

𝑖∈𝐻𝐶

其中 C 為通道索引,代表 LAB 色域的通道編號,𝜇𝐶表示通道 C 於掌心區域內的 平均值,𝑎𝑟𝑒𝑎(𝐻𝐶)為掌心區域的矩形面積,i 為掌心區域內像素索引,𝑋𝐶𝑖為通道 C 於掌心區域內第 i 的像素值,𝜎𝐶為通道 C 於掌心區域內的標準差。

計算出平均值與𝜇𝐶標準差𝜎𝐶後,便可建立本次手部的 Codeword,即色彩向量 𝑣𝑖 = 𝜇𝐿, 𝜇𝐴, 𝜇𝐵 與參數𝑃𝑖 = 𝐼 , 𝐼 , 𝜆𝑖, 𝑓𝑖, 𝑝𝑖, 𝑞𝑖 ,其中𝐼 與𝐼 計算將考慮常態分佈規則,

設計為:

𝐼 = 𝜇𝐿+ 𝑛𝜎𝐿, 𝜇𝐴+ 𝑛𝜎𝐴, 𝜇𝐵 + 𝑛𝜎𝐵 𝐼 = 𝜇𝐿− 𝑛𝜎𝐿, 𝜇𝐴− 𝑛𝜎𝐴, 𝜇𝐵 − 𝑛𝜎𝐵

其中 n 為標準差範圍控制變數,當 n 值設定較小時,標準差所涵蓋的範圍較小,

所能偵測的膚色色域較窄;反之 n 值設定較大時,標準差所涵蓋的範為較大,所 能偵測的膚色色域則較寬。

3.3.3 負向顏色學習

所學習的膚色 Codebook 中,每個 Codeword 投影在 LAB 色彩空間都是一個 個立方體,這些立方體所描述顏色並不是所有的顏色都是使用者身上的膚色,且 在數量上與真正的膚色有些差距,這些顏色若被判定為成膚色時,就很容易會造 成演算法的干擾,如何排除這些顏色就顯得相當重要了,下面本論文將介紹如何 建立這些該排除的負向顏色方法。

(28)

17

首先,將所偵測到啟動手勢區域 HD 的範圍放寬,做為負向顏色學習的邊界 NS,如下圖 10 所示,內層白色矩形為啟動手勢區域 HD,外層紅框為負相膚色

學習邊界 NS,這裡設定 NS 的左上角座標為(x–0.2w, y – 0.2h),寬度與高度分別 為 1.4w 與 1.4h。

圖10、 內層白框為啟動手勢的區域,外層紅框為負向顏色學習邊界

接著在負向顏色學習邊界內進行初步的 Codebook 膚色偵測,由於本論文使用雙 重膚色模型設計,不失其一般性,使用寬鬆的膚色模型𝑆𝑀𝑠𝑜𝑓𝑡做為偵測用模型。

所偵測到的膚色位於啟動手勢區域 HD 外時,則記錄為負向顏色候選;位於啟動 手勢區域 HD 內者則記錄為膚色候選。如下圖 11,白色點為負向顏色候選,黑 色點為膚色候選。

圖11、 負向顏色候選(白色)與膚色候選(黑色)

以𝑁𝑎,𝑏表示負向顏色候選於 LAB 色彩空間中的 AB 平面中,顏色(a, b)的累計數 量,𝑆𝑎,𝑏則表示膚色候選的累計數量,根據下式來判斷顏色(a, b)是否為負向顏色:

NegSkin a, b = True, if Sa,b × 1.1 < 𝑁𝑎,𝑏 False, otherwise

(29)

18

當顏色(a, b)被判斷為負向顏色時,則將其記錄起來,用於消除 Codebook 膚色偵 測時所多判斷的顏色。

3.3.4 雙重膚色模型偵測

在真實的情況下,Codebook 膚色偵測使用較寬的判定,即標準差範圍 控制變數 n 較大,在某些環境下會使得許多的顏色被錯誤判斷,造成嚴重的干擾,

如昏黃的燈光與木質家具背景等等;反之在一些情況下使用嚴格的判定會因為手 部膚色變化過大時,使得膚色不容易被判斷,造成手部膚色支離破碎,如向光等,

這是因為膚色模型使用固定的標準差控制變數 n 所造成的結果。因此本論文以建 立嚴格膚色模型𝑆𝑀𝑕𝑎𝑟𝑑來學習手部膚色主要的色域範圍(n 為 2),與寬鬆膚色模 型𝑆𝑀𝑠𝑜𝑓𝑡來描述手部完整膚色可能使用的色域範圍(n 為 3.5),再根據這兩種模型 在影像中所偵測到膚色結果的差異程度,來選擇當前應使用何者膚色模型較為恰 當。

首先於畫面中使用嚴格膚色模型𝑆𝑀𝑕𝑎𝑟𝑑進行 Codebook 膚色偵測,記錄其偵 測為膚色的數量𝐴,再根據其偵測結果的結果,對嚴格膚色判斷為非膚色的向速 點,使用寬鬆膚色模型𝑆𝑀𝑠𝑜𝑓𝑡進行膚色偵測,並記錄其所偵測為膚色的個數𝐵,

來表示寬鬆膚色所額外增加的膚色數量。最後使用負向顏色學習機制來消除不使 用的顏色,嚴格膚色個數𝐴將減少為𝐴,寬鬆膚色所額外增加的膚色個數𝐵減少 為𝐵,計算寬鬆膚色增益𝐶:

C =𝐴− 𝐵 A

當寬鬆膚色模型真正額外增加的膚色數量𝐵大於消除負向後的嚴格膚色數量𝐴 時,表示寬鬆膚色所增加的膚色數量過大,會使得大量膚色被判斷,偵測錯誤的 機率就會相對變高,其寬鬆膚色增益𝐶將小於 0,如下圖 12(a);反之,當𝐴的數 量大於𝐵時,表示當前畫嚴格膚色佔有大部比例,且寬鬆膚色所額外增加的膚

(30)

19

色並不會太多,此時寬鬆膚色增益𝐶將大於 0,如下圖 12(b)。

(a) C= -2.10741 (b) C=0.425179 圖12、 雙重膚色模型偵測結果

使用嚴格膚色模型所偵測的膚色為白色

寬鬆膚色模型較嚴格膚色模型額外所偵測到的膚色為灰色

根據寬鬆膚色增益𝐶的數值,當其高於門檻值 T(本論文使用 0)時,演算法將 於當前挑選寬鬆膚色模型𝑆𝑀𝑠𝑜𝑓𝑡,反之等於或小於門檻值 T 時,將於挑選嚴格膚 色模型𝑆𝑀𝑕𝑎𝑟𝑑。當確定膚色模型之後,便對 LAB 影像進行膚色偵測,再由負向 顏色來消除多於顏色,來形成二元影像,0 表示非膚色,255 表示膚色。

3.4 啟動手勢驗證

在 Adaboost 手部偵測後,可能存在多個候選區域,如何在多個候選區中選 出使用者的手部區域,手部驗證就成為相當重要的關鍵,下面將介紹本論文所使 用的兩種啟動手勢驗證的方法。

(31)

20

3.4.1 以 LBP 為特徵的啟動手勢偵測

本論文除了以邊緣差異影像作為特徵來訓練 Adaboost 啟動手勢偵測器之外,

也對區域二元特徵(LBP)影像來訓練 Adaboost 啟動手勢偵測器,透過不同的特徵 影像來驗證所偵測到的區域是否為啟動手勢。

以邊緣差異影像作為特徵的啟動手勢偵測器將會抽取出啟動手勢的候選區 域,根據其候選區域之矩形輪廓𝐻𝐷放大 1.4 倍形成驗證區域𝐻𝐷+,其範圍與負 向顏色學習邊界相同,如下圖 13 所示,在驗證區域𝐻𝐷+上以 LBP 特徵所訓練的 啟動手勢偵測器進行偵測。

圖13、 白色內框為手勢候選區域的矩形輪廓𝐻𝐷 紅色外框為手勢候選區域放大 1.4 倍的矩形輪廓𝐻𝐷+

若 LBP 啟動手勢偵測器也在驗證區域𝐻𝐷+內偵測到啟動手勢,則該啟動手勢候 選區域𝐻𝐷將被保留;反之偵測器沒有在𝐻𝐷+內偵測到啟動手勢,則刪除該啟動 手勢候選區域𝐻𝐷。

3.4.2 手心點位置

將膚色偵測所產生的膚色二元影像,於啟動手勢候選區域𝐻𝐷範圍內,使用 距離轉換(Distance Transform)演算法來找出手心點位置。距離轉換是一種應用在

(32)

21

二值影像的演算法,運算後的結果為灰階影像距離影像上的數值,反應著物件上 每一個位置與物件邊緣於上下左右四方向中的最短距離,故接近物件邊緣的位置 其數值較小,離物件邊緣遠的位置其數值較大,如下圖 14 所示,根據距離影像 的性質,本論文選擇具有最大距離者的像素點位置作為手心點的位置。

圖14、 對膚色二元影像使用距離轉換所找出的手心位置

距離轉換使用兩個 local window 進行兩步驟的計算,分別為前向計算 (forward pass)與後向計算(backward pass),如下圖 15 所示,(a)圖中 NW,N,NE,W 為前向計算的 local window 像素點,(b)圖中 SE,S,SW,E 為後向計算的 local window 像素點,而 i 為計算中心像素點。

(a) (b)

圖15、 距離轉換所使用的 local window

(a)前向計算的 local window,與(b)後向計算的 local window

距離轉換演算法操作如下:

1. 初始化二元影像:

NW N NE

W i

i E

SE SW S

(33)

22

標記每個二元影像的像素值為: ( 1~ ) 當像素值像素值

0,

當像素值像素值

,

1 i m n

di

 

 

 

2. 針對所有前景像素點 i 以由左而右和由上而下的方式做前向計算:

, , ,

1

min

W NW N NE

i d d d d

d

3. 針對所有前景像素點 i 以由右而左和由下而上的方式做後向運算:

1, 1, 1, 1

min

   

E SE S SW

i d d d d

d

再找出手心點之後,本論文將根據其所在位置來判斷該手勢候選區域𝐻𝐷是否為 啟動手勢。下圖 16 中,外框為所偵測到的手勢後選區域𝐻𝐷,實心內框為建立時 膚色模型時所學習的掌心區域,若所計算出的手心位置為啟動手勢時,其位置應 落於該掌心區域內;反之若手心位置並不在該掌心區域範圍時,則判斷非啟動手 勢,並刪除該手勢後選區域𝐻𝐷。

圖16、 啟動手勢之手心點應落於實心內框中

3.5 手部資訊建立與儲存

在通過啟動手勢驗證之後,本文將輸出手部資訊並加以儲存,需儲存的手部 資訊包含掌心點位置與其位置上的距離轉換量(Distance Transform)、啟動手勢區 域𝐻𝐷、當前所使用的膚色模型與負向膚色模型,手部資訊編號,手部資訊的更 新次數 U,手部資訊的生存時間(TTL, Time to live),以及當前更新的時間與追蹤

(34)

23

模式切換旗標。其中手部資訊編號為所儲存的資料累計次數,用於區分手部使用;

手部資訊更新次數為同一編號的手部資訊被更新的次數;手部資訊的生存時間 TTL 表示當前手部資訊是否過久不被更新,當更新時則設定𝑇𝑇𝐿 = 𝑈,反之不 更新時則 TTL 減少 1,當 TTL 等於 0 時,則刪除該手部資訊,代表該手部物件 已不存在。更新的時間為當前手部資訊的更新時間,用於追蹤時使用卡爾曼濾波 器(Kalman Filter)預估位置使用。追蹤模式切換旗標則為判斷啟動手勢偵測是否 已蒐集足夠的資訊來進行手部追蹤,預設為偵測模式,一旦儲存足夠的手部資訊 時,則切換成追蹤模式,之後再以追蹤演算法來進行手部追蹤處理。

3.6 偵測與追蹤混和流程

啟動手勢偵測在建立手部資訊之後,可藉由以下圖 17 的流程設計來判斷所 記錄的手部資訊於當前影像是否採取偵測模式或是追蹤模式,當所儲存的手部資 訊在偵測模式下偵測失敗時,本論文之設計還能夠以追蹤的方式進行資訊更新。

圖17、 偵測與追蹤混和流程

(35)

24

流程開始時將逐一的檢查是否有手部資訊為追蹤模式,若存在手部資訊為追 蹤模式時,則系統將以追蹤演算法來更新該手部資訊;若所有的手部資訊皆為偵 測模式,則對當前影像進行啟動手勢偵測與驗證,來產生當前影像的手部資訊。

逐一取出儲存手部資訊中矩形輪廓𝐻𝑠𝑎𝑣𝑒𝑛 ,n 為所選擇的手部資訊編號,與當 前產生的所有手部資訊矩形輪廓𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 判斷是否疊合,m 為產生的手部資訊編號,

若兩矩形輪廓疊合,則必定存在一個交集(intersection)矩形𝐻𝑖,反之兩矩形之交 集矩形𝐻𝑖為空集合。矩形輪廓具有四項資訊 𝑥, 𝑦, 𝑤, 𝑕 ,x 與 y 為此物件的左上角 座標,而 w 與 h 為此物件的寬度與高度,假如 R 代表一個矩形輪廓,則其中的 4 項訊息分別表示為 R.x、R.y、R.w 和 R.h,矩形面積定義為𝐴𝑟𝑒𝑎(𝑅)。計算兩個矩 形之交集矩形的最左(𝑋𝑙𝑒𝑓𝑡)、最右(𝑋𝑟𝑖𝑔 𝑕𝑡)、最上(𝑌𝑡𝑜𝑝)和最下(𝑌𝑏𝑜𝑡𝑡𝑜𝑚)的位置 數值:

𝑋𝑙𝑒𝑓𝑡 = 𝑚𝑎𝑥 𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 . 𝑥, 𝐻𝑠𝑎𝑣𝑒𝑛 . 𝑥 𝑌𝑡𝑜𝑝 = 𝑚𝑎𝑥 𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 . 𝑦, 𝐻𝑠𝑎𝑣𝑒𝑛 . 𝑦

𝑋𝑟𝑖𝑔 𝑕𝑡 = 𝑚𝑖𝑛 𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 . 𝑥 + 𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 . 𝑤, 𝐻𝑠𝑎𝑣𝑒𝑛 . 𝑥 + 𝐻𝑠𝑎𝑣𝑒𝑛 . 𝑤 𝑌𝑏𝑜𝑡𝑡𝑜𝑚 = 𝑚𝑖𝑛 𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 . 𝑦 + 𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 . 𝑕, 𝐻𝑠𝑎𝑣𝑒𝑛 . 𝑦 + 𝐻𝑠𝑎𝑣𝑒𝑛 . 𝑕

假如𝑋𝑙𝑒𝑓𝑡 > 𝑋𝑟𝑖𝑔 𝑕𝑡或者𝑌𝑡𝑜𝑝 > 𝑌𝑏𝑜𝑡𝑡𝑜𝑚 ,代表此交集矩形為空集合,即𝐻𝑠𝑎𝑣𝑒𝑛

𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 沒有相交。當𝐻𝑠𝑎𝑣𝑒𝑛 與𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 有相交時,它們的疊合比例𝐵𝑚計算方式為

𝐵𝑚 = 𝑋𝑟𝑖𝑔 𝑕𝑡− 𝑋𝑙𝑒𝑓𝑡 × (𝑌𝑏𝑜𝑡𝑡𝑜𝑚 − 𝑌𝑡𝑜𝑝) 𝑚𝑎𝑥⁡ 𝐴𝑟𝑒𝑎(𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 ), 𝐴𝑟𝑒𝑎(𝐻𝑠𝑎𝑣𝑒𝑛 )

對所有當前產生的所有手部資訊矩形輪廓𝐻𝐷𝑒𝑡𝑒𝑐𝑡𝑚 逐一計算疊合比例𝐵𝑚,來找出 具有最高疊合比例的𝑚,也就是

𝑚 = arg max𝑚𝐵𝑚

得到𝑚之後,根據其數值來判斷是否當前所產生的手部資訊 m,為儲存的手部 資訊 n 於當前影像中對應的手部資訊。根據疊合比例𝐵𝑚分成三種狀態:當𝐵𝑚於 0.5 時表示儲存的手部資訊 n 與當前所產生的手部資訊𝑚具有相當高的疊合

(36)

25

程度,判斷兩者於前後張影像為同一物件,於是將產生的手部資訊𝑚的資訊更 新到儲存的手部資訊 n 中,並更新其存活時間 TTL 與累加更新次數,這裡本論 文設定更新頇達到 10 次以上,來切換為追蹤模式;當𝐵𝑚小於 0.5 時表示儲存 資訊於當前所偵測所產生手部可能不為同一個物件,此時將以追蹤演算法來對所 儲存的手部資訊來更新,並減少該資訊的存活時間 TTL,若 TTL 歸零,則判斷該 物件資訊為錯誤偵測而刪除。若存在當前產生的手部資訊不被儲存的手部資訊對 應時,則判斷其為新偵測的啟動手勢,將其資訊儲存並給予新的儲存編號,以區 隔其他已儲存的手部資訊。

(37)

26

第四章 手部追蹤

在手部追蹤部份,根據先前所儲存的手部位置資訊,以卡爾曼濾波器(Kalman Filter),來預估使用者手部的位置來建立搜尋區域,做為膚色偵測所使用的範圍。

膚色偵測後的二元影像將進行相連元素分析(Connect Component),用於狀態偵測 使用,其偵測結果將分成分離、接近與重疊三種狀態,根據不同的狀態給予不同 的處理方式。接者演算法將於追蹤的手部膚色物件上進行特徵點偵測,以產生特 徵點資訊,用於特徵點分離與手心點判斷使用。當狀態偵測判斷手部物件接近其 它膚色物件時,將於該接近的膚色物件上建立分離模板影像以儲存重疊前的特徵 資訊;若手部物件與該接近的膚色物件合併時,則以特徵點分離技術,來使用特 徵點將重疊物件的手部物件給抽取出來。最後,透過手心點修正的方式,來找出 最佳的手掌心來產生手部資訊來更新。

4.1 卡爾曼濾波器

卡 爾 曼 濾 波 器 (Kalman Filter)[4] 是 一 種 「 Optimal Recursive Data Processing Algorithm(最佳化資料遞迴演算法)」,被廣泛地應用在多個研究 領域上,例如機器人導航、飛行控制、軍事雷達系統以及導彈追蹤等。卡爾曼濾 波器的通式可表示如下:

𝑋𝑡 = 𝐴𝑡𝑋𝑡−1+ 𝐵𝑡𝑢𝑡

其中𝑋𝑡為預估狀態,𝑋𝑡−1為前一時刻的真實狀態,𝐴𝑡為作用於前一時刻的狀態轉 換模型,𝑢𝑡為控制向量,𝐵𝑡為控制模型。本計畫假設物件於短時間內的運動為線 性,並且物件上無其它控制動量(即𝑢𝑡 = 0),而狀態包含了位置、速度與加速度 等資訊。因此,上述方程式可改寫成

(38)

27

𝑆𝑡 𝑉𝑡

𝐴𝑡 = 1 𝛥𝑡 1 2𝛥𝑡2 0 1 𝛥𝑡 0 0 1

𝑆𝑡−1 𝑉𝑡−1 𝐴𝑡−1

其中𝑆𝑡為被追蹤物件的預估位置,𝑉𝑡為被追蹤物件的預估速度,𝐴𝑡為被追蹤物件 的預估加速度,而Δ𝑡為觀測的時間變化量。根據之前所記錄的物件狀態,便能預 測現在的物件的狀態。藉由紀錄前一刻追蹤物件的狀態與追蹤時間,透過卡爾曼 濾波器的位置預測,就能預估出當前物件的位置來建立搜尋區域,並在搜尋區域 內找出與預測位置相符的膚色物件來持續的追蹤。

4.2 特徵點偵測

為了能夠達到即時的應用,在特徵點偵測部分本論文使用 LBP 特徵點偵測 方法來產生特徵點資訊,其原因在於計算上容易且對於光線變化具有相當程度的 容忍性,並能將影像中鑑別度較高的紋理特徵點偵測出來,下面將介紹 LBP 特 徵點的偵測原理。

在 LBP 影像中,一個像素點所代表的是 8 個灰階影像像素點與區塊中心像 素點的亮度大小關係,利用互斥(XOR)邏輯運算,將兩個要比對的 LBP 像素點,

進行漢明距離計算,而當 1 的個數較多時,則表示此漢明距離較大,也就是具有 較大的差異度。

在 7x7 的範圍內,如下圖 18 所示,在中心點位置 p,計算 p 點位置的 LBP 值與周遭 16 個位置點的 LBP 值之漢明距離,設定一臨界值 t,Hp->x為 p 點和 x 位置的 LBP 值之漢明距離,且 x

{1,…,16};在 x 集合裡,當連續有 n 個位置

滿足 Hp->x > t 條件時,則定義此 p 點為所要擷取的一個紋理特徵點,因為當 Hp->x

> t 表示 x 位置的 3x3 區域與中心點之 3x3 區域差異較大,也就是說當影像為平 滑區域時其 Hp->x會比較低,又連續 n 個 Hp->x > t 成立則表示此特徵點紋理的幾

(39)

28

何角度程度,比較 p 為角點與 p 為直線邊緣上的點之間的差異,當 p 為角點時,

n 的個數會比 p 為直線邊緣上的點大且角度也較小,在這裡利用此參數 n 來區分 與剔除比對時容易比對錯誤的直線邊緣點。

圖18、 紋理特徵點擷取方法示意圖

對 LBP 影像進行特徵點擷取後所產生的結果如下圖 19,其中每一個圓點都 是所擷取出的紋理特徵點。

圖19、 紋理特徵點擷取結果

4.3 快速區塊比對

在區塊比對法部分,本論文採用影像金字塔與快速區塊比對搭配的方式來達

(40)

29

到加速的目的。

4.3.1 影像金字塔

影像金字塔的觀念是由上而下,逐步逼近來找尋匹配的位移候選點位置的技 巧,一來是因為縮小後的影像所建立的樣板區塊所包含的資訊較為豐富,二來是 可達到使用較少的搜尋次數來獲得大範圍搜尋的目的。影像金字塔會將原始影像 縮小倍率成較小的影像,根據本論文所設定的層數來依序產生縮小影像。將時間 連續的前一張影像 A 與當前影像 B 做縮小處理後,計算原始影像 B 中特徵點投 影在各個縮小影像中的位置,來當作該階層樣板區塊的中心位置,而每一層的樣 板區塊面積大小皆相同。接著從目前縮小影像中最小張的影像開始﹝即為影像金 字塔最頂層﹞,將投影到縮小影像 B 的特徵點位置對應在同一層的影像 A 上,

再以該對應點為搜尋中心,建立搜尋區域來作區塊比對,其結果為目前影像 B 之特徵點在縮小影像上,於前一張影像 A 縮小後的移動位置。

在影像金字塔頂層找到縮小影像 B 的投影特偵點對應在縮小影像 A 的位移 點之後,本論文將該位移點向下投影在影像 A 下一層較大的影像上,來獲得新 的搜尋區域中心,分別對同一層的影像 B 的每一個樣板區塊做區塊比對,來獲 得更準確的位移量,而影像 A 所建立的搜尋區域在每一層都是相同的大小。根 據新的位移量來更新位移點的位置,並重複向下投影,直到在原始影像 A 上做 完區塊比對為止。執行的順序如下圖 20 所示:

(41)

30

右圖紅色方框表示樣板區塊,左圖黃色方塊表示搜尋區域 綠色表示上一層對應的搜尋範圍。

圖20、 影像金字塔的執行順序與區塊示意圖

本論文使用兩層的影像金字塔,倍率為 0.5,即表示縮小影像為原始影像的 四分之一。由於本論文在每一層影像金字塔中使用固定大小的搜尋範圍,所以影 像金字塔在影像縮小後,所搜尋的範圍是原始影像的四倍大小,因執行兩次同面 積搜尋,相較傳統全域搜尋(Full Search)約能夠減少一半的搜尋時間。

4.3.2 區塊比對

本 論 文 在 快 速 區 塊 比 對 採 用 空 間 強 度 分 佈 法 [10](Spatial Intensity Distribution)來做為特徵比對的部分,它是利用樣板區塊(Template Block)的幾何 分佈在搜尋區域內的強度來加速的方式,下面將介紹其設計原理。

比較下圖 21 中的 Block1 與 Block2,能找出共有 6 處不同和 10 處相同的位 置,其不同的地方並不是透過複雜的計算而來,而是單純的比較數值是否相同。

(42)

31

圖21、 Block1(左) 與 Block2(右)

這種差異比較的方法類似 MPC(Matching Pel Count)的使用門檻值為 0 的情 況:

𝑀𝑃𝐶 𝑥, 𝑦, 𝑢, 𝑣 = 𝑇 𝑥, 𝑦, 𝑢, 𝑣, 𝑖, 𝑗

𝑁

𝑗 =1 𝑁

𝑖=1

𝑇 𝑥, 𝑦, 𝑢, 𝑣, 𝑖, 𝑗

= 1, if 𝐼𝑡−1 𝑥 + 𝑖, 𝑦 + 𝑗 − 𝐼𝑡 𝑥 + 𝑢 + 𝑖, 𝑦 + 𝑣 + 𝑗 < 𝑇𝑕

0, otherwise

式子中,(𝑥, 𝑦)為 t-1 時刻的影像上的座標,(𝑢, 𝑣)為位移向量,(𝑖, 𝑗)為樣板區塊 的掃描引索,其樣板區塊所使用的寬度與高度皆為 N。𝑇 𝑥, 𝑦, 𝑢, 𝑣, 𝑖, 𝑗 表示在 t-1 時刻的影像上,以(𝑥, 𝑦)作為樣板區塊的基準點,平移(𝑖, 𝑗)的像素點與在 t 時刻的 影像位移(𝑢, 𝑣)後,於(𝑥 + 𝑢, 𝑦 + 𝑣)上作為基準點,平移(𝑖, 𝑗)的像素點是否有相 同,當兩像素誤差低於誤差門檻值𝑇𝑕時,則判定(𝑢, 𝑣)相同,否則則認為其不相 似。所以𝑀𝑃𝐶 𝑥, 𝑦, 𝑢, 𝑣 為 t-1 時刻的影像上(𝑥, 𝑦)位置在 t 時刻的影像上位移(𝑢, 𝑣) 的相似分數,越高則表示兩者越像。根據這一點,空間強度分佈以下式做為加速 根據:

𝑀𝑃𝐶 𝑥, 𝑦, 𝑢, 𝑣 ≥ 𝑅 × 𝑁2

式子中 R 為匹配相似度,𝑁2為總分。調整參數 R 可以控制匹配程度的品質,用 來產生匹配分數底標,以做為所能接受的匹配程度門檻值,下面將講解其加速設

(43)

32

計。

首 先 將 匹 配 計 算 中 所 有 會 使 用 到 的 像 素 灰 度 值 , 建 立 出 一 個 直 接 定 址 表 (Direct-Address Table),藉由這個定址表,將能夠直接的取得所有具有相同灰階 值的像素座標,如下圖 22 所示。

圖22、 Direct-address table 範例

接著利用相對座標的計算來取得基準點的位置,以圖 23 為例子,樣板區塊中,

當(i, j) = (1,0)時,它的灰階值為 45,而搜尋區域 (u,v)=(3,1)的灰階值也是 45,若 這兩點是對應點時,則基準點位置 (U,V)的計算方法就成為 (u-i , v-j),即 (3-1,1-0)=(2,1)。

圖23、 樣板區塊與搜尋影像

在獲得基準點之後,需要一個投票暫存器,以儲存匹配的投票結果,對樣板 區塊每個像素來做投票。首先從樣板區塊中(0, 0) 開始,取出其灰階值後,藉由 查詢直接定址表來取得誤差在門檻值(初始為 0)內所有灰階值的位置座標,然後

(44)

33

根據前面計算基準點的方法得到個別對應的基準點(U, V),並在投票暫存器中(U, V)的位置投票,如圖 24 所示。

圖24、 投票暫存器投票過程

若投票分數有兩個以上的基準點超過底標分數,則對這些基準點做 SSD 或 SAD 來找出最小匹配誤差。演算法中誤差門檻值 Th 為 MPC 匹配的門檻值,會 隨著匹配過程發生找不到候選點時而遞增,直到找到等於或超過底標分數為止,

如圖 25 所示。

圖25、 迴圈結構中誤差門檻值改變造成的投票結果

4.3.3 以 LBP 為特徵的空間強度分佈演算法

在原來的做法中,它是以灰度值影像來運算,而論文則是依據 LBP 影像,

(45)

34

來做為空間強度分佈的輸入影像,因此必頇將原來的加速方法做一些調整,才能 有效的計算 LBP 影像間的距離。圖 26 為本論文所設計的空間強度分佈演算流 程:

圖26、 適用於 LBP 影像的空間強度分佈演算法

對於一個特徵點,調整後的空間強度分佈演算法所需的輸入包含(1)目前的 LBP 影像,(2)前一張的 LBP 影像,(3)特徵點的位置和(4)搜尋區域的中心位置。

在本論文中採用的樣板區塊大小為 11× 11,搜尋區域為 17× 17。

演算法開始 前會以 搜 尋中心建立 搜尋區 域 中 LBP 影 像的直接 定址表 (Direct-Address Table)以及 LBP 數值的 XOR 誤差表。直接定址表的功能在於紀 錄前一張 LBP 影像中位於搜尋區域內,所包含的不同 LBP 數值的所有位置資訊;

而 LBP 數值 XOR 誤差表則是記錄在每一個漢明距離的誤差下所有可能的 LBP 數值。下面圖 27 為 LBP 數值 XOR 誤差表的示意圖。

(46)

35

圖27、 LBP 數值 XOR 誤差表範例

演算法會依序將目前 LBP 影像的特徵點為中心建立樣板區塊,並依序從樣 板區塊中計算他們的 LBP 數值,透過查詢 XOR 誤差表中漢明距離為 0 的數值,

在搜尋區域內以直接定址表來取出與樣板區塊中所包含的每一個 LBP 數值的所 有可能對應位置對應的 LBP 數值位置,並於計算基準點後,在投票暫存器內投 票。

當樣板區塊內的數值皆完成投票動作後,檢查投票暫存器中,是否有基準點 的得票量超過本論文所設定的門檻值。若暫存器內的得票量都沒有超過門檻值,

則將漢明距離放寬加 1,重新再做投票,並將新的得票量再加入投票暫存器;若 暫存器內有一個點的數值超過門檻值,則將該點輸出做為匹配點;若暫存器內有 多個點超過門檻值,則使用 SAD 來做篩選,將輸出最小誤差者做為匹配點。

假設(𝑥1, 𝑦1)為在當前畫面中的一個特徵點位置,而(𝑥2, 𝑦2)為此特徵點在上 一畫面經上述區塊比對所得到的最佳對應點位置,則此特徵點的相對移動向量 (𝑢, 𝑣)即為𝑢 = 𝑥1− 𝑥2和𝑣 = 𝑦1− 𝑦2

4.4 狀態偵測

一般而言,二個物件間的位置關係會保持如下圖 28 的狀態,根據物件間的相 對位置關係給予不同的狀態判斷。其中,追蹤物件與另一個非追蹤物由分離狀態

(47)

36

到重疊狀態,其位置逐漸逼近,必定發生接近狀態。

圖28、 物件間的位置變化狀態

每個物件具有各自的矩形輪廓描述,通常包含 4 項訊息 𝑥, 𝑦, 𝑤, 𝑕 ,其中 x 與 y 為此物件的左上角座標,而 w 與 h 為此物件的寬度與高度。為了追蹤的目 的,本論文定義三種矩形輪廓符號:𝑅𝑡𝑖指在 t 時刻之第 i 個物件的矩形輪廓,𝑂𝑡在 t 時刻之追蹤物件的矩形輪廓,而𝐶𝑡為在 t 時刻之非追蹤物件的矩形輪廓。為 了表示上的方便,假如 R 代表一個物件的矩形輪廓,則其中的 4 項訊息分別表 示為 R.x、R.y、R.w 和 R.h。

在追蹤過程中,本論文常將當前影像中的物件,逐一計算第 i 個物件矩形輪 廓𝑅𝑡𝑖與前一時刻的追蹤物件矩形輪廓𝑂𝑡−1的疊合比例𝐵𝑖。本論文定義𝐴𝑟𝑒𝑎(𝑂𝑡−1) 為 t-1 時刻的追蹤物件的矩形面積,𝐴𝑟𝑒𝑎(𝑅𝑡𝑖)為在 t 時刻之第 i 個物件的矩形面

積,𝑋𝑙𝑒𝑓𝑡、𝑋𝑟𝑖𝑔 𝑕𝑡、𝑌𝑡𝑜𝑝和𝑌𝑏𝑜𝑡𝑡𝑜𝑚分別為第 i 個物件與 t-1 時刻追蹤物件之交集矩

形的最左、最右、最上和最下的位置數值,也就是 𝑋𝑙𝑒𝑓𝑡 = 𝑚𝑎𝑥 𝑂𝑡−1. 𝑥, 𝑅𝑡𝑖. 𝑥

𝑌𝑡𝑜𝑝 = 𝑚𝑎𝑥 𝑂𝑡−1. 𝑦, 𝑅𝑡𝑖. 𝑦

𝑋𝑟𝑖𝑔 𝑕𝑡 = 𝑚𝑖𝑛 𝑂𝑡−1. 𝑥 + 𝑂𝑡−1. 𝑤, 𝑅𝑡𝑖. 𝑥 + 𝑅𝑡𝑖. 𝑤 𝑌𝑏𝑜𝑡𝑡𝑜𝑚 = 𝑚𝑖𝑛 𝑂𝑡−1. 𝑦 + 𝑂𝑡−1. 𝑕, 𝑅𝑡𝑖. 𝑦 + 𝑅𝑡𝑖. 𝑕

假如𝑋𝑙𝑒𝑓𝑡 > 𝑋𝑟𝑖𝑔 𝑕𝑡或者𝑌𝑡𝑜𝑝 > 𝑌𝑏𝑜𝑡𝑡𝑜𝑚,代表此交集矩形為空集合,即𝑅𝑡𝑖與𝑂𝑡−1沒 有相交。當𝑅𝑡𝑖與𝑂𝑡−1有相交時,它們的疊合比例𝐵𝑖計算方式為

𝐵𝑖 = 𝑋𝑟𝑖𝑔 𝑕𝑡− 𝑋𝑙𝑒𝑓𝑡 × (𝑌𝑏𝑜𝑡𝑡𝑜𝑚 − 𝑌𝑡𝑜𝑝) 𝑚𝑎𝑥⁡ 𝐴𝑟𝑒𝑎(𝑅𝑡𝑖), 𝐴𝑟𝑒𝑎(𝑂𝑡−1)

在所有物件中,本論文選擇具有最高疊合比例的物件𝑖為當前時刻的追蹤物件,

也就是

𝑖 = arg max

𝑖 𝐵𝑖

參考文獻

相關文件

The Tibet controversy involved confrontations of theories and believes in Lasa between a sect of Longshu Buddhism, which derived form India, and zen Buddhism from the China

In addition, geometric engineering also suggests an absence of walls conjecture stating an equivalence between refined DT invariants of large radius limit stable objects of D b (X)

For the proposed algorithm, we establish a global convergence estimate in terms of the objective value, and moreover present a dual application to the standard SCLP, which leads to

For the proposed algorithm, we establish its convergence properties, and also present a dual application to the SCLP, leading to an exponential multiplier method which is shown

We have also discussed the quadratic Jacobi–Davidson method combined with a nonequivalence deflation technique for slightly damped gyroscopic systems based on a computation of

(3) Juelang Daosheng’s view of Zhuangzi as an esoteric Confucian and Confucius as the great systematizer of the three traditions stands in sharp contrast to the views of

4. To apply the basic principles and techniques in preparing personal budget, and 5. To develop a proper attitude towards personal finance.. Resources for the TEKLA curriculum

In this thesis, we have proposed a new and simple feedforward sampling time offset (STO) estimation scheme for an OFDM-based IEEE 802.11a WLAN that uses an interpolator to recover