手把手手勢辨識 _ Train一個木葉忍者

『Hand by hand build a gesture recognition _ Train your ninja』

不曉得各位 80 年次的同期,有沒有同樣的經驗,一到學校就開始比拚大家的結印速度,然後念出各種不同的招式,到處火影跑,咬破自己的手指,召喚癩蝦蟆,幻想自己是拷貝忍者卡卡西和木葉最帥黃色閃光。藉由這次的手把手手勢辨識,來讓自己成為一位一流的忍者吧!

訓練手勢 – CNN 爐

這次以一到五的手勢先來做訓練,有興趣的夥伴可以再嘗試其他 data 囉!

關於 CNN 的細節及歷史,大家可以參考由 Hsiao-En Sun 分享的 卷積神經網路 (CNN) 的發展

Architecture

在開始訓練前,我們需要先做一下資料前處理,首先確定 dataset 的路徑,並使資料皆有 label 及能夠 input 至 model 的 dimension 等,最後再切成train/test。

Preprocess

接著前處理完後,就可以來訓練模型啦!在訓練模型的部分,如果之後有多種不同手勢要訓練,classes 的部分要記得再去做更改。訓練完之後就能將訓練完成的 model 存成 jsonh5 檔,待會再辨識時會需要用到。

Model

擷取影像 – OpenCV 慄‍♀️

這裡我們利用 OpenCV 來擷取我們 webcam 上的影像

get_webcam

蒐集 Data 擄

一個最簡單的蒐集方式,就是直接從 webcam 上進行蒐集,我們可以存下每一張 webcam 完成的 frame 當作我們的訓練資料,大家在試驗各種不同手勢時也能夠嘗試自己收集看看。

save image

畫面前處理 ‍

擷取到影像之後,實際上他是逐一個 frame 在進行更新,首先先框出一個手部的 ROI ,接著我們要將這 ROI 擷取到的每個 frame 前處理成我們訓練的data樣子。

ROI_preprocess

預測及辨識 ️‍♂️

完成上述幾個步驟後,我們就可以開始 predict 我們的手勢了!這邊比較常遇到,就是 input 跟 model 訓練時的 shape 不同,如果遇到可以再注意一下。

predict_recognition

新增 Command ‍

在開發能夠新增其他的 command 做更多應用或是立即調參上。

save_image_command
我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章