《手語圖像識別系統設計--人體動作識別》設計與實現

一、軟硬件環境

基於人體姿態的手語圖像識別系統採用了軟硬件相結合的方法。硬件部分主要是用於採集手語圖像的單目攝像頭。軟件部分主要是通過ffmpeg對視頻圖像進行處理,然後在Anaconda下配置Python3.6的開發環境,再結合Cmake編譯OpenPose模型,最後在VScode編譯器中結合OpenCV中的圖像算法,實現了對手語圖像識別系統所有程序的編譯,通過wxFromBuilder框架整合設計了系統主界面。
(1) 視頻處理工具:ffmpeg-20181115
(2) 集成開發環境:Microsoft Visual Studio Code、Anaconda3
(3) 界面設計工具:wxFromBuilder
(4) 編程語言環境:python3.6

二、系統功能設計

一個基於人體姿態研究的手語圖像識別系統。根據OpenPose人體姿態開源模型和YOLOv3自訓練手部模型檢測視頻和圖像,再把數字特徵進行分類器模型預測,將預測結果以文本形式展現出來。

基於人體姿態的手語圖像識別系統是由多模塊組成的,主要分爲訓練模塊和識別模塊兩個部分。

在這裏插入圖片描述
在這裏插入圖片描述

1. 視頻幀處理

Python+Opencv2(三)保存視頻關鍵幀

在這裏插入圖片描述
在這裏插入圖片描述

2. OpenPose人體姿態識別

Openpose人體骨骼、手勢–靜態圖像標記及分類(附源碼)
Openpose人體骨骼、手勢–靜態圖像標記及分類2(附源碼)

在這裏插入圖片描述
由於僅靠人體姿態4和7關鍵點不足以識別手部位置,容易誤判,因此在最終設計中引入了yolo手部識別。
在這裏插入圖片描述

3. yolov3手部模型訓練

環境:【GPU】win10 (1050Ti)+anaconda3+python3.6+CUDA10.0+tensorflow-gpu2.1.0
訓練模型:【Keras+TensorFlow+Yolo3】一文掌握圖像標註、訓練、識別(tf2填坑)
識別:【Keras+TensorFlow+Yolo3】教你如何識別影視劇模型

在這裏插入圖片描述

模型訓練參考代碼:https://gitee.com/cungudafa/keras-yolo3
yolo3識別這裏參考於:https://github.com/AaronJny/tf2-keras-yolo3

4. 人體姿態數字特徵提取

在OpenPose設計中闡述過求解距離和角度的公式及方法,最終因爲個體差異每個人的骨骼可能不同,目前優化爲距離比(即小臂3-4關鍵點的距離與脖子長度0-1關鍵點距離之比)。
在這裏插入圖片描述

5. beyes分類識別

【Sklearn】入門花卉數據集實驗–理解樸素貝葉斯分類器

在這裏插入圖片描述

三、應用

預期是通過手機移動端對視頻進行採集處理並應用,詳見視頻

在這裏插入圖片描述

四、總結

本文采用的是單人的骨骼識別,當然對多人骨骼標記分類是OpenPose的一大亮點,源碼中沒有擴展,Openpose多人骨骼特徵點標記

視頻幀的提取準確性也不夠高,擴展衍生爲HMM序列,視頻動態序列等方法。對於特徵提取還可以結合手勢動態軌跡特徵,能夠多維度的描述運動曲線。

手語識別關鍵在於手語種類的劃分,尤其是中國手語包含5600+詞彙,因此NLP自然語言處理融合進來是很有必要的,因此任總而道遠,有興趣的朋友可以試試。

手語識別不僅爲聾啞朋友們日常交流提供方便,更是爲人機交互發展做出貢獻,有創新意義和價值背景,值得一試哦。


備註:

(我最近辦理提前入職,太忙了,這篇博客也是很早寫了一半兒,沒時間發)

源碼會開源放在gitee(目前源碼項目有很多筆記過程,也很有價值,需要整理成封裝版本,太忙了呀~~不然這個項目還有很多發揮空間)

模型和視頻資料涉及專業學習範疇和多人版權因素,未徵得所有人授權,暫不提供

相關學習內容還可以私聊,閒暇時可以給出經驗指導意見。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章