28
南南南南南南 南南南南南南南 南南 ANDROID 南南南南南南南南 南南南南 : 南南南 南南南 : 南南南 南南 : 南南南南南南 南南 :MA290110 南南 : 南南南 1

南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

Embed Size (px)

DESCRIPTION

南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪. 班級 : 碩研資管二甲 學號 : MA290110 姓名 : 陳靜宜. 目錄. 緒論 文獻探討 系統架構 實 作 結論. 緒論. 研究動機: 智慧型產品大多使用「體驗筆」或「觸控」方式。 手勢 辨識可以應用於「瘖啞人士」。 臉部辨識、車牌辨識以及監視器紀錄人數之使用。 研究目的 : 打破限制將手勢辨識帶出門。. 文獻探討 2.1 影像構成. 影像: 長*寬 = 像素。 像素: R 、 G 、 B 三種顏色構成。 - PowerPoint PPT Presentation

Citation preview

Page 1: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

1

南台科技大學 電子工程研究所使用 ANDROID 手機實現手勢辨識

指導教授 : 薛雲太研究生 : 許育豪

班級 : 碩研資管二甲學號 :MA290110

姓名 : 陳靜宜

Page 2: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

2

目錄壹. 緒論貳. 文獻探討參. 系統架構肆. 實作伍. 結論

Page 3: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

3

壹. 緒論研究動機:① 智慧型產品大多使用「體驗筆」或「觸控」方式。② 手勢辨識可以應用於「瘖啞人士」。③ 臉部辨識、車牌辨識以及監視器紀錄人數之使用。

研究目的 :

④ 打破限制將手勢辨識帶出門。

Page 4: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

4

貳. 文獻探討2.1 影像構成

① 影像:長 * 寬 = 像素。② 像素: R 、 G 、 B 三種顏色構成。③ 色相 (H) :基本屬性,顏色名稱。 飽和度 (S) :色彩的純度,越高顏色越濃烈,越低越黯淡。 明度 (V) :反光之強度,取 0-100% 。

Page 5: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

5

2.2 灰階影像① 影像由 Camera 所拍攝之彩色影像轉為灰階影像,以便做邊緣偵

測。② 顏色比例 : 由人眼對綠色的亮度感最大,而對藍色最小。③ 舉例 : 像素 (27,129,67) ,套用公式轉換為 91.434 ,電腦判 定色階 91 。

Page 6: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

6

2.3 邊緣偵測2.3.1 邊緣偵測簡介① 目的:尋找物體輪廓及辨識影像中變化明顯的點。② 方格與方格之間變化較大,容易用邊緣偵測找到邊緣。深度上不連續。表面方向不連續。物質屬性變化。物體光線變化。

邊界:① 影像灰階落差較大的地方。② 主要辨別物體粗估形狀或結果。

Page 7: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

7

2.3.2 梯形① 梯度的計算:假設一個二維影像的灰

階值函數,那麼灰階變化梯度為斜率變化的向量。

② 計算梯度方法:對於不連續的數位影像有三種方法。

水平方向垂直方向

第一種方法

對影像進行迴旋積而得到近似結果

Page 8: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

8

第二種方法

第三種方法

可以讓計算所得之梯形剛好是 f(x,y)

所得到

Page 9: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

9

2.3.3 邊緣偵測種類介紹梯形運算方式: Sobel 、 Prewitt 、 Robert 、 Laplacian 及LoG 。Robert :設計簡單,容易受雜訊干擾。Laplacian :常常出現雙邊緣。Prewitt :可偵測八個方向的梯形值。Sobel :與 Prewitt 相似,常用運算方法。

理想邊緣偵測:好的檢測:演算法能盡量得多標示出實際正確邊緣。好的定位:演算法所認定出來的邊界與實際物體邊界越近越好。

最小影響:想像中的邊界只會標記一次。

Page 10: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

10

2.3.4 Canny 邊緣偵測① 傳統的邊緣偵測只能滿足檢測和好定位。② 以較大的值去除偵測到的雜訊。③ 以較小的值去偵測變化較不明顯的邊緣達到去除雜訊,又把較不明顯的邊緣忽略掉達到最佳的結果。

Page 11: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

11

2.4特徵提取• 特徵點分為不同的「集」。• 相同特徵的點為一個集。• 其他相似之特徵的數點再歸類為一個「集」。

• 邊緣:影像之輪廓,區別物體與背景的像素。• 角:先偵測邊緣,再開始分析邊緣的方向尋找變化極大的

地方。• 脊:長條形之物體都稱為脊。• 區域:區域檢測可以代替角檢測器檢測那些對於角檢測太過平滑的區域。

Page 12: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

12

2.5Fast特徵偵測• Fast特偵提取:速度最快的檢測方法,只利用周圍的像素

比較訊息就可得特徵點。• 中心點與周圍選中的點灰度值差別大的時候,則認為該點

為一個特徵點。

Page 13: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

13

2.6特徵描述與比對• 特徵描述:分辦所有的特徵點為什麼為「集」。特徵點讓程式判斷,而要可以讓程式判斷就要先對特徵點做描述。• 特徵比對:不同的角度或光源下得到的兩張影像,把這兩張影像的特徵點互相對應到一樣的特徵點。檢測器:決定哪個點是特徵點,較不會產生錯誤的比對地

方,找出特徵點在哪。描述:特徵描述後,才能對兩個以上的點做特徵點比對。角偵測:一個角定義兩個邊緣的交叉點。

Page 14: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

14

2.7 OpenCV

① 跨平台的機器視覺函式庫。② 可使用在學術領域及商業且免費。③ 主要以 C++語言所撰寫。④ 支援 C# 、 CH 、 Ruby 。⑤ 運用:人機互動物體識別影像分割人臉辨識動作辨別運動跟蹤機器人

Page 15: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

15

2.8Android 智慧型手機① 免費且開放原始碼

之作業系統。② 分為「應用層、應

用框架層和函式庫層」。

Page 16: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

16

2.9 人機介面① 人們與電腦或 3C 產品的溝通。② 大部分運用於工業及商業,略分「輸入」和「輸出」。③ 互動:至少包含兩點,「使用者」和「系統」。④ Norman互動模式:1. 訂立目標2. 組成意圖3. 標明行動順序4. 執行5. 觀察系統6. 詮釋系統狀態7. 評估

Page 17: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

17

參. 系統架構

特徵辨識 手指辨識

Page 18: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

18

1.開啟Camera 架構流程 2. 邊緣偵測架構流程

OpenCV內 Canny 函式庫

Page 19: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

19

3.特徵提取之架構流程 4.特徵描述之架構流程

手勢特徵

標準手勢特徵

特徵提取的影像

Page 20: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

20

5.特徵比對 6. 最大輪廓之流程與架構

函式庫

Page 21: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

21

7. 尋找手掌中心點及角度 6. 尋找指尖架構與流程

計算面積

計算中心點

計算中心點

JavaCV裡的 cvMoment() ,使用 Moment 尋找出中心點再找出手指出現之合理角度。

Page 22: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

22

9. 為手指命名架構與流程

Page 23: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

23

四、實作1. 尋找手掌中心點及角度• 不儲存則將 Camera 偵測到的影像回傳當成拍照的

preview 。

2. 邊緣偵測• 透過 cvCanny處裡影像為灰階再將影像轉為 RGBA 格式完成邊緣偵測。

Page 24: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

24

3.特徵提取• 本文以 Fast ,速度較快、可靠度也較高加上在手機上運

行速度的要求比較高。

4.特徵描述與比對• 拍攝一張影像來跟標準手勢做比對。

Page 25: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

25

5. 尋找最大輪廓• 程式判斷白點為手掌而找出手掌的所在位置,之後將手掌之邊緣白點回傳即可找到手掌輪廓。

6. 尋找中心點• JavaCV裡的 Moment() 。• 參數為: m00,m10,m01,m11,m20,02 所有白點總和。

• M10 :白點 x座標總和。• M01 :白點 y座標總和。• x座標中心點: (m10/m00) 。• y座標中心點: (m01/m00) 。

Page 26: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

26

7. 尋找指尖• 判斷指尖與凹陷的地方則用任兩點連接起來。

• 連線中心點不在手掌內判斷為凹陷。• 反之則判斷指尖。

8.命名手指• 幫手指標上相對應的名字使用 labelTumbIndex() 。• 參數:指尖 (fingerTip) 和事先命名 (nameFingers) ,將自動對

應。• 食指和拇指另寫一副程式 getNewt() 。

Page 27: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

27

9.劃出手指名稱

實現辦別手指與標上對應之手指名稱

手勢五之手勢辨識失敗圖

手勢二 (勝利 ) 之手勢辨識成功

手勢二 (勝利 ) 之手勢辨識失敗

手勢一之手勢辨識成功

手勢一之手勢辨識失敗

Page 28: 南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪

28

五、結論① 手機上實現手勢辨識。

未來展望:② 瘖啞人士能使用手勢辨識啟動電器用品。③ 製作手機上手勢辨識遊戲。