TensorFlow實現:卷積神經網絡識別手勢動作(有代碼與演示)

完整代碼見我的GitHub地址:https://github.com/xingjianzhang1997/gesture-recognition

主要思路:1.構建數據集          2.建立神經網絡         3.訓練並調參        4.保存並調用

另外我還加了界面設計和機械臂控制(通過串口通信把判斷結果發給單片機,所以代碼中有serial模塊)

效果演示:

                              

              

project清單:

一共識別5種手勢動作 1. 剪刀動作 2.石頭動作 3.布動作 4.OK動作 5.good動作

訓練集: 1~4號動作各有1300張照片,5號動作有1450張照片 測試集: 1~5號動作各有200張照片

文件解釋:

1.data文件裏面存放test數據集,train數據集,實時保存的圖像(用於在線檢測)。

2.ges_ico文件裏面存放界面窗口顯示的各種圖標。

3.log文件裏面存放訓練好的CNN網絡的模型參數。

4.CallFrame.py是界面窗口的邏輯文件,用來調用界面文件並編寫信號與槽函數。

5.Frame.py是界面窗口的界面文件,通過PyQt5的designer工具生成。

6.GetTestImage.py是利用OpenCV獲取圖片並標記,用來製作測試集。

7.GetTrainImage.py是利用OpenCV獲取圖片並標記,用來製作訓練集。

8.SaveGesture.py是利用OpenCV實時獲取圖片,並進行預處理,用於在線檢測手勢。

9.TestGesture.py是將實時獲取的圖片送入已訓練好的CNN中判斷其手勢動作。

10.TestInTest.py是將測試集送入已訓練好的CNN中判斷該網絡模型的準確率。

11.Train.py是訓練CNN模型函數,並將訓練好的模型參數保存在本地。

12.Train_inputdata.py是用來讀取數據集的圖像和標籤,並打包成batch形式。

13.Train_model.py是模型結構,這裏用的是AlexNet結構。

使用方法: 先用Train.py訓練好模型參數,然後運行CallFrame.py調用出界面窗口, 點擊窗口的相應按鈕就可以在線檢測手勢動作,其中的執行手勢按鈕是和下位機通信(如STM32),通過串口函數將識別結果傳給下位機,實現根據手勢動作控制的功能。

測試結果: 使用該模型訓練到900步的時候在測試集上正確率可以穩定在95%左右。

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