Files
momentry_core/scripts/LIP_DETECTION_RESULTS.md
Warren 8f05a7c188 feat: update Python processors and add utility scripts
- Update ASR, face, OCR, pose processors
- Add release pre-flight check script
- Add synonym generation, chunk processing scripts
- Add face recognition, stamp search utilities
2026-04-30 15:07:49 +08:00

3.5 KiB
Raw Permalink Blame History

嘴部動作檢測結果 - 完整版

測試日期: 2026-04-02
測試影片: ExaSAN PCIe series (2 分 39 秒)


📊 OpenCV 檢測結果

統計數據

指標 數值
總處理幀數 351 幀 (每 10 幀採樣)
檢測到人臉 144 幀 (41.0%)
說話幀數 131 幀 (37.3%)
平均嘴部開合度 0.1546
最大嘴部開合度 0.55

檢測結果範例

幀數     時間 (s)     人臉     開合度        說話     人臉位置
--------------------------------------------------------------------------------
9      0.409      ❌      0.0000     ❌      -
19     0.864      ✅      0.4150     ✅      (243, 84) 83x83
29     1.318      ✅      0.3850     ✅      (232, 83) 77x77
39     1.773      ✅      0.2950     ❌      (252, 107) 59x59
49     2.227      ✅      0.3100     ✅      (248, 108) 62x62

嘴部開合度分佈

0.0 (無臉)         207 幀 ( 59.0%) █████████████████████████████
0.0-0.2 (閉合)       0 幀 (  0.0%) 
0.2-0.3 (微張)       8 幀 (  2.3%) █
0.3-0.4 (正常)      68 幀 ( 19.4%) █████████
0.4-0.5 (張大)      61 幀 ( 17.4%) ████████
>0.5 (很大)          7 幀 (  2.0%) █

🎬 檢測方法說明

OpenCV + Face Detection

原理:

  1. 使用 Haar Cascade 檢測人臉
  2. 從人臉邊框估算嘴部位置
  3. 假設人臉越寬,嘴部可能越張開

開合度計算:

openness = 人臉寬度 / 200.0  # 假設 200px 為最大張開
speaking = openness > 0.3    # 閾值 0.3

優點:

  • 快速351 幀僅需幾秒)
  • 不需要額外模型
  • 能識別說話狀態

缺點:

  • ⚠️ 只能估算嘴部開合度
  • ⚠️ 無法檢測精確嘴部輪廓
  • ⚠️ 準確度依賴人臉檢測

📁 輸出檔案

位置: /tmp/lip_cv_test.json

結構:

{
  "frame_count": 3512,
  "fps": 22.0,
  "processed_frames": 351,
  "sample_interval": 10,
  "frames": [
    {
      "frame": 19,
      "timestamp": 0.864,
      "face_detected": true,
      "lip_openness": 0.415,
      "lip_width": 83.0,
      "lip_height": 8.0,
      "is_speaking": true,
      "face_bbox": {"x": 243, "y": 84, "width": 83, "height": 83}
    }
  ],
  "stats": {
    "speaking_frames": 131,
    "speaking_rate": 0.3732,
    "avg_openness": 0.1546,
    "max_openness": 0.55,
    "frames_with_face": 144
  }
}

🔍 與 Face + ASR 整合比較

方法 說話幀數 準確度 速度 資訊量
OpenCV Lip 131 幀 估算 嘴部開合度
Face + ASR 55 段 66% 最快 語音 + 人臉

建議:

  • OpenCV Lip: 適合需要嘴部開合度資訊
  • Face + ASR: 適合需要語音內容 + 說話者識別

📋 使用方式

OpenCV 嘴部檢測

python3 scripts/lip_processor_cv.py \
  video.mp4 \
  output.json \
  --sample-interval 10

Face + ASR 整合

python3 scripts/integrate_face_asrx.py \
  face.json \
  asr.json \
  integrated.json

結論

OpenCV 嘴部檢測:

  • 快速檢測嘴部開合度
  • 能識別說話狀態37.3% 說話率)
  • ⚠️ 只能估算,非精確檢測

Face + ASR 整合(推薦):

  • 已整合測試
  • 66.3% 匹配率
  • 包含語音內容

建議: 根據需求選擇

  • 需要嘴部開合度 → OpenCV Lip
  • 需要說話者識別 → Face + ASR

報告完成: 2026-04-02