Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

手勢辨識與 MediaPipe

此專案展示了使用攝像頭、OpenCV 和 MediaPipe Hands 進行即時手勢辨識。用戶可以執行特定手勢來觸發預定的“咒語”,例如使用單手或雙手畫圓或水平線。

功能

  • 咒語一:用單根手指畫圓。
  • 咒語二:用單根手指畫水平線。
  • 咒語三:雙手同時畫圓。

每個手勢在即時被辨識後,會在畫面上顯示回饋。

先決條件

請確保已安裝以下工具與套件:

  • Python 3.7~3.10 (我是用3.10.5啦)
  • OpenCV
  • MediaPipe
  • NumPy

執行以下命令以安裝所需的 Python 套件:

pip install opencv-python mediapipe numpy

如何執行

  1. 將此專案倉庫克隆或下載到本地。
  2. 在專案目錄中打開終端機。
  3. 執行以下命令啟動程式:
    python gesture_recognition.py
  4. 攝像頭的視訊畫面將在新視窗中打開。
  5. 按照畫面上的提示執行手勢。
  6. q 鍵退出程式。

程式概述

手勢辨識邏輯

  1. 圓形偵測

    • 跟蹤食指尖的軌跡。
    • 根據半徑變化、一致性、起點與終點的接近度,以及路徑長度計算圓形度量。
    • 閾值判斷軌跡是否為圓形。
  2. 水平線偵測

    • 跟蹤食指尖的軌跡。
    • 檢查起點和終點的水平距離。
    • 確保垂直偏移最小。
  3. 雙手圓形偵測

    • 同時跟蹤雙手的軌跡。
    • 分別對雙手的軌跡進行圓形度量分析。

冷卻機制

為防止同一手勢在短時間內被重複偵測,程式設置了冷卻計時器,確保用戶體驗更加順暢。

自訂化

  • 圓形偵測靈敏度:調整 calculate_circularity 函數中的閾值。
  • 水平線靈敏度:修改 check_horizontal_line 函數中的距離與偏移檢查條件。
  • 冷卻時間:更改 COOLDOWN_FRAMES 常數以縮短或延長冷卻時間。

已知問題

  • 手勢辨識可能會受到光線條件或手部相對於攝像頭位置的影響。
  • 若手部移動過快或不穩定,準確度可能下降。

About

手部辨識系統

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages