Skip to content

Latest commit

 

History

History
103 lines (77 loc) · 2.98 KB

File metadata and controls

103 lines (77 loc) · 2.98 KB

效能優化報告

📊 macOS (Apple Silicon M1 Max) 優化配置

✅ 已啟用的硬體加速

  1. AVFoundation 視訊框架

    • 路徑: cv2.VideoCapture(camera_id, cv2.CAP_AVFOUNDATION)
    • 狀態: ✅ 已啟用
    • 效果: 攝影機讀取使用 macOS 原生硬體加速
  2. Metal GPU 加速

    • MediaPipe: GL version: 2.1 (2.1 Metal - 90.5), renderer: Apple M1 Max
    • 狀態: ✅ 自動啟用
    • 效果: 手部追蹤使用 GPU 運算
  3. XNNPACK CPU 優化

    • TensorFlow Lite: Created TensorFlow Lite XNNPACK delegate for CPU
    • 狀態: ✅ 已啟用
    • 效果: CPU 運算使用 SIMD 指令集加速
  4. PyQt6 OpenGL/Metal 渲染

    • 設定: pg.setConfigOptions(useOpenGL=True)
    • 狀態: ✅ 已啟用
    • 效果: macOS 自動使用 Metal 兼容層

🎯 效能優化措施

優化項目 原始值 優化值 效果
攝影機解析度 640x480 480x360 減少 50% 像素處理
攝影機幀率 30 fps 15 fps 減少 50% 讀取頻率
MediaPipe 處理頻率 200 Hz (每幀) 100 Hz (每 2 幀) 減少 50% 運算
MediaPipe 模型 完整模型 (1) 輕量級 (0) 減少 30-40% 運算
UI 更新頻率 200 Hz 15 Hz 減少 93% UI 開銷
圖像縮放模式 Smooth Fast 提升 2-3x 速度

📈 預期效能指標

閒置狀態(無攝影機):

  • CPU 使用率: 5-10%
  • 記憶體: 60-80 MB
  • GPU 使用率: <5%

錄影中(攝影機 + MediaPipe):

  • CPU 使用率: 20-40%(優化前: 60-80%)
  • 記憶體: 100-150 MB
  • GPU 使用率: 10-20%(Metal 自動調度)

🔧 進一步優化建議

如果仍感到卡頓,可嘗試:

  1. 降低 EMG 採樣率(需硬體支援)

    • 從 200 Hz 降至 100 Hz
  2. 增加 MediaPipe 處理間隔

    • 修改 _process_every_n_frames 從 2 改為 3 或 4
  3. 禁用骨架繪製(僅錄影時)

    • 預覽視窗不繪製骨架,只顯示原始畫面
  4. 使用更小的預覽視窗

    • 從 480x360 降至 320x240

💡 系統資源分配

Apple Silicon (M1 Max) 架構特點:

  • 統一記憶體架構 (UMA): CPU/GPU 共享記憶體,減少數據複製
  • Neural Engine: MediaPipe 可能自動使用 ANE 加速
  • 高效能核心: macOS 會自動將繁重任務分配到高效能核心

✅ 驗證方法

使用 Activity Monitor (活動監視器) 查看:

  1. 打開 "活動監視器" 應用程式
  2. 尋找 "python3.11" 進程
  3. 查看 "CPU"、"記憶體"、"能源" 標籤
  4. 錄影時 GPU 使用率應該會上升

或使用終端命令:

# 實時監控 CPU 使用率
top -pid $(pgrep -f "python.*main.py") -stats pid,cpu,mem

🎉 優化總結

硬體加速已全面啟用

  • AVFoundation (攝影機)
  • Metal (GPU)
  • XNNPACK (CPU SIMD)

軟體優化已完成

  • 降低解析度和幀率
  • 使用輕量級模型
  • 實施快取機制
  • 降低處理頻率

預期效能提升

  • CPU 使用率降低 40-50%
  • UI 更新更流暢
  • 錄影不會卡頓