傳統的手勢辨識主要採用影像處理手法,針對手部圖片進行影像分析,著重在於形狀及特徵點的取得,缺點是需要控制嚴格的外在環境因子(如燈光、背景、顏色等),才能避免造成影像分析時的干擾,而近年來得利於 AI 技術,透過深度學習自動萃取特徵並進行影像分類及物件偵測,可讓手勢辨識變得更加精確,也不易受外在環境所干擾。
不過,如果您打算自行訓練一個手勢辨識模型,首先要面對的第一項工作便是圖片的搜集及標記,這是一項相當繁雜且花時間的人力密集工作,因此如果有個方便好用的工具能自動將影片或攝影機中的手勢,自動裁切並依手勢類型分類好,甚至還能將手勢自動標記好,是不是非常方便呢?
這是可能的,只要先訓練好一個偵測手部的模型,便可以利用它來製作一個手勢自動分類及標記的工具,產生兩種類型的 dataset:
- Classified image dataset
- VOC labeled dataset
本文目的是希望透過該工具,節省圖片資料搜集、圖片分類、圖片標記這三項工作的時間,而我們唯一的工作僅是準備影片、在鏡頭前比出需要的各種手勢,讓該工具直接替我們產生出可直接用來訓練影像分類或物件偵測使用的 dataset。
製作手部偵測模型
在設計這套工具前,我們需要訓練一個手部偵測模型,這個模型的目的是「無論任何姿勢,只要是人的手掌都要能偵測到」,至於如何訓練該模型,您可使用任何常用的開源物件偵測 framework,下方我們分別以 YOLOV3-Tiny 以及 SSD-Mobilenet 2 作為訓練示範,dataset 則是使用兩種開源 hand dataset 以及一個自製的 hand dataset 來訓練。
- 訓練的 dataset
下方介紹兩個開源的 dataset 以及一個自己製作的 dataset:
A)EgoHands:A Dataset for Hands in Complex Egocentric Interactions,該 dataset 來源為 48 個影片(二個人在進行互動遊戲,以第一人稱視角拍攝);圖片尺寸為 720x1280 px,每個影片匯出 100 frames並已 labeled,總計 4800 張;Label 的格式為 matlab 的 mat 檔,poly 多邊形(每個手部約 200~300 points)。
(圖片來源:Indiana University)
B)VGG hand dataset:VGG(Visual Geometry Group)為牛津大學工程科學系的社群。內容分為train/test/validation 三個 dataset,圖片來源為其它開源影像資料庫(如 PASCAL VOC)及電影片段;
Label 為依物體長寬而變化傾斜的矩形,不是常用的左右垂直上下水平的 label,格式為使用 Matlab 的 mat 檔;圖片尺寸不定,長寬一般介於 300~600 px 之間。
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏
2021/06/06
請問 “程式請參考附錄”, 沒有看到附錄,方便傳送嗎? 謝謝
2021/06/07
本文為轉載文章,作者不太會來回覆,可以到他的部落格試試~
2020/06/09
你好,最近在學習yolo,看到了這篇文章想要學習,但是將mat檔案轉為voc格式這邊我一直想不到怎麼做,請問可以再說明的詳細一點嗎?
2021/06/06
請問auto_labeling_hand_gestures.py可以分享或傳送嗎?