🧍 Raspberry Pi 5 + PiCamera2 + MediaPipe Pose 偵測教學
適用於健身監測、手勢互動、跌倒辨識、AI 體感遊戲等應用。
🧰 一、硬體與軟體需求
✅ 硬體需求:
-
Raspberry Pi 5
-
Raspberry Pi Camera Module v2/v3(使用 CSI)
-
顯示器 或 VNC / SSH
✅ 軟體環境:
-
Raspberry Pi OS Bookworm(64-bit)
-
Python 3.9+
-
OpenCV + Picamera2
-
MediaPipe 0.10.9(支援 ARM64)
🛠️ 二、環境安裝步驟
1️⃣ 啟用相機
sudo raspi-config
# → Interface Options → Camera → Enable
sudo reboot
2️⃣ 安裝必要套件
sudo apt update
sudo apt install -y python3-picamera2 python3-opencv libatlas-base-dev
3️⃣ 安裝 MediaPipe
pip install mediapipe==0.10.9
確認成功安裝:
python3 -c "import mediapipe as mp; print(mp.__version__)"
📸 三、PiCamera2 + Pose 偵測完整程式
🔹 檔名:pose_detection_picamera2.py
import cv2
import mediapipe as mp
from picamera2 import Picamera2
import time
# 初始化 MediaPipe Pose 模組與繪圖工具
mp_pose = mp.solutions.pose
mp_drawing = mp.solutions.drawing_utils
pose = mp_pose.Pose(static_image_mode=False,
model_complexity=1,
enable_segmentation=False,
min_detection_confidence=0.5,
min_tracking_confidence=0.5)
# 初始化 PiCamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (640, 480)
picam2.preview_configuration.main.format = "RGB888"
picam2.configure("preview")
picam2.start()
time.sleep(2)
while True:
# 讀取影像
frame = picam2.capture_array()
image = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
# 姿勢分析
results = pose.process(image)
# 畫出關鍵點與連線
if results.pose_landmarks:
mp_drawing.draw_landmarks(
image,
results.pose_landmarks,
mp_pose.POSE_CONNECTIONS,
mp_drawing.DrawingSpec(color=(0,255,0), thickness=2, circle_radius=2),
mp_drawing.DrawingSpec(color=(0,0,255), thickness=2))
# 顯示畫面
cv2.imshow("RP5 + Pose Detection", image)
if cv2.waitKey(1) & 0xFF == 27:
break
cv2.destroyAllWindows()
picam2.stop()
✅ 執行方式
python3 pose_detection_picamera2.py
若一切順利,你會看到攝影畫面中的人體部位會被標出,如頭、手肘、膝蓋、腳踝等,並有線條連接。
📍 MediaPipe Pose 偵測到的身體關鍵點(共33個)
常用的如:
-
LEFT_SHOULDER,RIGHT_SHOULDER -
LEFT_ELBOW,RIGHT_ELBOW -
LEFT_KNEE,RIGHT_KNEE -
NOSE,LEFT_EYE,RIGHT_EYE
可以進一步作為動作偵測、角度分析的依據。
🧠 延伸應用建議
| 應用方向 | 技術建議 |
|---|---|
| 手勢控制 | 根據手掌與肩膀距離設計手勢命令 |
| 健身監測 | 判斷關節角度(例如深蹲、平板支撐正確性) |
| 體感互動 | 將肢體動作轉換成輸入控制(例如跳舞機) |
| 錄影分析 | 記錄每一秒的人體關鍵點用來後處理(CSV或JSON) |
📦 常見錯誤排除
| 問題 | 解決方式 |
|---|---|
| ImportError: mediapipe not found | 請確認已使用 pip install mediapipe==0.10.9 |
| 黑畫面 / 沒畫面 | 確保相機模組連接良好,並有 picam2.start() |
| cv2.error 顯示參數錯誤 | 通常是 OpenCV 或 Mediapipe 安裝版本不對,重新安裝即可 |
📚 延伸資源
文章標籤
全站熱搜
