Upload
belicia-romero
View
82
Download
0
Embed Size (px)
DESCRIPTION
南台科技大學 電子工程研究所 使用 Android 手機 實現 手勢辨識 指導 教授 : 薛雲太 研究生 : 許育豪. 班級 : 碩研資管二甲 學號 : MA290110 姓名 : 陳靜宜. 目錄. 緒論 文獻探討 系統架構 實 作 結論. 緒論. 研究動機: 智慧型產品大多使用「體驗筆」或「觸控」方式。 手勢 辨識可以應用於「瘖啞人士」。 臉部辨識、車牌辨識以及監視器紀錄人數之使用。 研究目的 : 打破限制將手勢辨識帶出門。. 文獻探討 2.1 影像構成. 影像: 長*寬 = 像素。 像素: R 、 G 、 B 三種顏色構成。 - PowerPoint PPT Presentation
Citation preview
1
南台科技大學 電子工程研究所使用 ANDROID 手機實現手勢辨識
指導教授 : 薛雲太研究生 : 許育豪
班級 : 碩研資管二甲學號 :MA290110
姓名 : 陳靜宜
2
目錄壹. 緒論貳. 文獻探討參. 系統架構肆. 實作伍. 結論
3
壹. 緒論研究動機:① 智慧型產品大多使用「體驗筆」或「觸控」方式。② 手勢辨識可以應用於「瘖啞人士」。③ 臉部辨識、車牌辨識以及監視器紀錄人數之使用。
研究目的 :
④ 打破限制將手勢辨識帶出門。
4
貳. 文獻探討2.1 影像構成
① 影像:長 * 寬 = 像素。② 像素: R 、 G 、 B 三種顏色構成。③ 色相 (H) :基本屬性,顏色名稱。 飽和度 (S) :色彩的純度,越高顏色越濃烈,越低越黯淡。 明度 (V) :反光之強度,取 0-100% 。
5
2.2 灰階影像① 影像由 Camera 所拍攝之彩色影像轉為灰階影像,以便做邊緣偵
測。② 顏色比例 : 由人眼對綠色的亮度感最大,而對藍色最小。③ 舉例 : 像素 (27,129,67) ,套用公式轉換為 91.434 ,電腦判 定色階 91 。
6
2.3 邊緣偵測2.3.1 邊緣偵測簡介① 目的:尋找物體輪廓及辨識影像中變化明顯的點。② 方格與方格之間變化較大,容易用邊緣偵測找到邊緣。深度上不連續。表面方向不連續。物質屬性變化。物體光線變化。
邊界:① 影像灰階落差較大的地方。② 主要辨別物體粗估形狀或結果。
7
2.3.2 梯形① 梯度的計算:假設一個二維影像的灰
階值函數,那麼灰階變化梯度為斜率變化的向量。
② 計算梯度方法:對於不連續的數位影像有三種方法。
水平方向垂直方向
第一種方法
對影像進行迴旋積而得到近似結果
8
第二種方法
第三種方法
可以讓計算所得之梯形剛好是 f(x,y)
所得到
9
2.3.3 邊緣偵測種類介紹梯形運算方式: Sobel 、 Prewitt 、 Robert 、 Laplacian 及LoG 。Robert :設計簡單,容易受雜訊干擾。Laplacian :常常出現雙邊緣。Prewitt :可偵測八個方向的梯形值。Sobel :與 Prewitt 相似,常用運算方法。
理想邊緣偵測:好的檢測:演算法能盡量得多標示出實際正確邊緣。好的定位:演算法所認定出來的邊界與實際物體邊界越近越好。
最小影響:想像中的邊界只會標記一次。
10
2.3.4 Canny 邊緣偵測① 傳統的邊緣偵測只能滿足檢測和好定位。② 以較大的值去除偵測到的雜訊。③ 以較小的值去偵測變化較不明顯的邊緣達到去除雜訊,又把較不明顯的邊緣忽略掉達到最佳的結果。
11
2.4特徵提取• 特徵點分為不同的「集」。• 相同特徵的點為一個集。• 其他相似之特徵的數點再歸類為一個「集」。
• 邊緣:影像之輪廓,區別物體與背景的像素。• 角:先偵測邊緣,再開始分析邊緣的方向尋找變化極大的
地方。• 脊:長條形之物體都稱為脊。• 區域:區域檢測可以代替角檢測器檢測那些對於角檢測太過平滑的區域。
12
2.5Fast特徵偵測• Fast特偵提取:速度最快的檢測方法,只利用周圍的像素
比較訊息就可得特徵點。• 中心點與周圍選中的點灰度值差別大的時候,則認為該點
為一個特徵點。
13
2.6特徵描述與比對• 特徵描述:分辦所有的特徵點為什麼為「集」。特徵點讓程式判斷,而要可以讓程式判斷就要先對特徵點做描述。• 特徵比對:不同的角度或光源下得到的兩張影像,把這兩張影像的特徵點互相對應到一樣的特徵點。檢測器:決定哪個點是特徵點,較不會產生錯誤的比對地
方,找出特徵點在哪。描述:特徵描述後,才能對兩個以上的點做特徵點比對。角偵測:一個角定義兩個邊緣的交叉點。
14
2.7 OpenCV
① 跨平台的機器視覺函式庫。② 可使用在學術領域及商業且免費。③ 主要以 C++語言所撰寫。④ 支援 C# 、 CH 、 Ruby 。⑤ 運用:人機互動物體識別影像分割人臉辨識動作辨別運動跟蹤機器人
15
2.8Android 智慧型手機① 免費且開放原始碼
之作業系統。② 分為「應用層、應
用框架層和函式庫層」。
16
2.9 人機介面① 人們與電腦或 3C 產品的溝通。② 大部分運用於工業及商業,略分「輸入」和「輸出」。③ 互動:至少包含兩點,「使用者」和「系統」。④ Norman互動模式:1. 訂立目標2. 組成意圖3. 標明行動順序4. 執行5. 觀察系統6. 詮釋系統狀態7. 評估
17
參. 系統架構
特徵辨識 手指辨識
18
1.開啟Camera 架構流程 2. 邊緣偵測架構流程
OpenCV內 Canny 函式庫
19
3.特徵提取之架構流程 4.特徵描述之架構流程
手勢特徵
標準手勢特徵
特徵提取的影像
20
5.特徵比對 6. 最大輪廓之流程與架構
函式庫
21
7. 尋找手掌中心點及角度 6. 尋找指尖架構與流程
計算面積
計算中心點
計算中心點
JavaCV裡的 cvMoment() ,使用 Moment 尋找出中心點再找出手指出現之合理角度。
22
9. 為手指命名架構與流程
23
四、實作1. 尋找手掌中心點及角度• 不儲存則將 Camera 偵測到的影像回傳當成拍照的
preview 。
2. 邊緣偵測• 透過 cvCanny處裡影像為灰階再將影像轉為 RGBA 格式完成邊緣偵測。
24
3.特徵提取• 本文以 Fast ,速度較快、可靠度也較高加上在手機上運
行速度的要求比較高。
4.特徵描述與比對• 拍攝一張影像來跟標準手勢做比對。
25
5. 尋找最大輪廓• 程式判斷白點為手掌而找出手掌的所在位置,之後將手掌之邊緣白點回傳即可找到手掌輪廓。
6. 尋找中心點• JavaCV裡的 Moment() 。• 參數為: m00,m10,m01,m11,m20,02 所有白點總和。
• M10 :白點 x座標總和。• M01 :白點 y座標總和。• x座標中心點: (m10/m00) 。• y座標中心點: (m01/m00) 。
26
7. 尋找指尖• 判斷指尖與凹陷的地方則用任兩點連接起來。
• 連線中心點不在手掌內判斷為凹陷。• 反之則判斷指尖。
8.命名手指• 幫手指標上相對應的名字使用 labelTumbIndex() 。• 參數:指尖 (fingerTip) 和事先命名 (nameFingers) ,將自動對
應。• 食指和拇指另寫一副程式 getNewt() 。
27
9.劃出手指名稱
實現辦別手指與標上對應之手指名稱
手勢五之手勢辨識失敗圖
手勢二 (勝利 ) 之手勢辨識成功
手勢二 (勝利 ) 之手勢辨識失敗
手勢一之手勢辨識成功
手勢一之手勢辨識失敗
28
五、結論① 手機上實現手勢辨識。
未來展望:② 瘖啞人士能使用手勢辨識啟動電器用品。③ 製作手機上手勢辨識遊戲。