---
document_type: "test_doc"
service: "MOMENTRY_CORE"
title: "處理器效能評估報告"
date: "2026-04-01"
version: "V1.0"
status: "active"
owner: "Warren"
created_by: "OpenCode"
tags:
  - "處理器效能評估報告"
ai_query_hints:
  - "查詢 處理器效能評估報告 的內容"
  - "處理器效能評估報告 的主要目的是什麼？"
  - "如何操作或實施 處理器效能評估報告？"
---

# 處理器效能評估報告

| 項目 | 內容 |
|------|------|
| 測試日期 | 2026-04-01 |
| 測試者 | OpenCode |
| 測試環境 | M4 Mac Mini 16GB |
| Python版本 | 3.9 |
| PyTorch加速 | MPS (Metal Performance Shaders) |

---

## 測試影片

### 短影片：ExaSAN PCIe series
- **檔案**: `ExaSAN PCIe series - Director Ou Yu-Zhi Shares His Experience.mp4`
- **時長**: 159.6 秒 (2分40秒)
- **大小**: 6.5 MB
- **FPS**: 22.0
- **總幀數**: 3,512
- **解析度**: 未知
- **場景**: 辦公室/會議室環境

### 長影片：Old_Time_Movie_Show_-_Charade_1963
- **檔案**: `Old_Time_Movie_Show_-_Charade_1963.HD.mov`
- **時長**: 6,879.3 秒 (114分39秒)
- **大小**: 2.2 GB
- **FPS**: 59.94
- **總幀數**: 412,343
- **解析度**: 1920x1080 (HD)
- **場景**: 電影（多場景）

---

## 處理器效能測試結果（短影片）

| 處理器 | 狀態 | 處理時間 | 加速比 | 備註 |
|--------|------|----------|--------|------|
| **ASR** | ✓ | 12.68s | 12.6x | 語音識別 |
| **OCR** | ✓ | 36.87s | 4.3x | 文字識別（全幀處理） |
| **YOLO** | ✓ | 65.72s | 2.4x | 物體檢測（全幀處理） |
| **Face** | ✓ | 1.22s | 130.5x | 人臉識別 |
| **Pose** | ✓ | 65.87s | 2.4x | 姿態檢測（全幀處理） |
| **CUT** | ✓ | 0.08s | 2036.5x | 鏡頭切換檢測 |
| **ASRX** | ✓ | 4.79s | 33.3x | 高級語音識別 |
| **Scene** | ✓ | 4.09s | 39.0x | 場景分類（2秒取樣） |

---

## 長影片處理時間預估

基於短影片效能數據，預估長影片（114分鐘）處理時間：

| 處理器 | 短影片 (159.6s) | 長影片預估 (6879.3s) | 線性外推倍率 |
|--------|----------------|---------------------|-------------|
| **ASR** | 12.68s | ~547s (9.1分鐘) | 43x |
| **OCR** | 36.87s | ~1,588s (26.5分鐘) | 43x |
| **YOLO** | 65.72s | ~2,831s (47.2分鐘) | 43x |
| **Face** | 1.22s | ~53s (0.9分鐘) | 43x |
| **Pose** | 65.87s | ~2,838s (47.3分鐘) | 43x |
| **CUT** | 0.08s | ~3s | 43x |
| **ASRX** | 4.79s | ~206s (3.4分鐘) | 43x |
| **Scene** | 4.09s | ~176s (2.9分鐘) | 43x |

### 總處理時間預估

- **順序處理**: ~47 分鐘
- **並行處理**: ~47 分鐘（受限於 YOLO/Pose 最長處理時間）
- **實際測試**: 313.3s（5.2分鐘，Scene Classification）

---

## 效能分析

### 快速處理器（加速比 > 10x）

| 處理器 | 加速比 | 特點 |
|--------|--------|------|
| **CUT** | 2036.5x | 極快，基於幀差異檢測 |
| **Face** | 130.5x | 快速，使用優化算法 |
| **Scene** | 39.0x | 快速，採樣策略有效 |
| **ASRX** | 33.3x | 快速，高級ASR模型 |
| **ASR** | 12.6x | 中等，依賴音頻長度 |

### 慢速處理器（加速比 < 10x）

| 處理器 | 加速比 | 特點 |
|--------|--------|------|
| **OCR** | 4.3x | 較慢，全幀處理 |
| **YOLO** | 2.4x | 慢，深度學習推理 |
| **Pose** | 2.4x | 慢，深度學習推理 |

---

## 瓶頸分析

### 1. YOLO 和 Pose（最慢）

**原因**:
- 全幀處理（無採樣）
- 深度學習模型推理
- 無GPU加速（使用MPS）

**優化建議**:
- 添加採樣參數（如 `--sample-interval`）
- 使用Core ML模型（M4優化）
- 實現批次處理

### 2. OCR（次慢）

**原因**:
- 全幀處理
- 文字檢測+識別兩階段

**優化建議**:
- 添加採樣參數
- 使用場景變化檢測（CUT）觸發OCR
- 區域ROI優化

---

## 處理策略建議

### 短影片 (< 5分鐘)

```bash
# 全處理器運行（總時間 ~3分鐘）
順序運行所有處理器
```

### 中等影片 (5-30分鐘)

```bash
# 快速處理器 + 必要處理器
1. CUT（鏡頭切換）
2. ASR（語音識別）
3. Scene（場景分類）
4. Face（人臉識別）

# 可選處理器（採樣）
5. OCR（每5秒採樣）
6. YOLO（每5秒採樣）
```

### 長影片 (> 30分鐘)

```bash
# 分階段處理
Phase 1: 快速分析
- CUT（鏡頭切換）
- Scene（場景分類，5秒採樣）
- ASR（語音識別）

Phase 2: 關鍵片段處理
- 根據CUT結果，只處理場景變化點
- OCR/YOLO/Pose只在關鍵片段運行

預估時間：
- Phase 1: ~15分鐘
- Phase 2: 視關鍵片段數量而定
```

---

## 處理器詳細數據

### ASR（語音識別）

```json
{
  "duration": 12.68,
  "speedup": 12.6,
  "model": "whisper",
  "notes": "處理音頻長度159.6秒"
}
```

### OCR（文字識別）

```json
{
  "duration": 36.87,
  "speedup": 4.3,
  "frame_count": 3512,
  "fps": 22.0,
  "notes": "全幀處理"
}
```

### YOLO（物體檢測）

```json
{
  "duration": 65.72,
  "speedup": 2.4,
  "output_size": "4.3 MB",
  "notes": "全幀處理，包含檢測結果"
}
```

### Face（人臉識別）

```json
{
  "duration": 1.22,
  "speedup": 130.5,
  "frame_count": 3512,
  "fps": 22.0,
  "output_size": "12 KB",
  "notes": "快速處理"
}
```

### Pose（姿態檢測）

```json
{
  "duration": 65.87,
  "speedup": 2.4,
  "frame_count": 3512,
  "fps": 22.0,
  "output_size": "603 KB",
  "notes": "全幀處理，深度學習推理"
}
```

### CUT（鏡頭切換）

```json
{
  "duration": 0.08,
  "speedup": 2036.5,
  "output_size": "52 B",
  "notes": "極快，基於幀差異"
}
```

### ASRX（高級語音識別）

```json
{
  "duration": 4.79,
  "speedup": 33.3,
  "output_size": "40 B",
  "notes": "快速，高級模型"
}
```

### Scene（場景分類）

```json
{
  "duration": 4.09,
  "speedup": 39.0,
  "frame_count": 3512,
  "fps": 22.0,
  "sample_interval": "2.0s",
  "samples": 79,
  "notes": "採樣策略有效"
}
```

---

## 測試命令

### 短影片測試

```bash
# 運行所有處理器測試
python3 scripts/test_processor_performance.py

# 單個處理器測試
python3 scripts/asr_processor.py video.mp4 output.json
python3 scripts/ocr_processor.py video.mp4 output.json
python3 scripts/yolo_processor.py video.mp4 output.json
python3 scripts/face_processor.py video.mp4 output.json
python3 scripts/pose_processor.py video.mp4 output.json
python3 scripts/cut_processor.py video.mp4 output.json
python3 scripts/asrx_processor.py video.mp4 output.json
python3 scripts/scene_classifier.py video.mp4 output.json --sample-interval 2
```

### 長影片測試（優化參數）

```bash
# 場景分類（5秒採樣）
python3 scripts/scene_classifier.py long_video.mov output.json \
  --sample-interval 5.0 \
  --min-scene-duration 10.0

# ASR（全音頻）
python3 scripts/asr_processor.py long_video.mov output.json
```

---

## 硬體資源使用

### 記憶體使用

| 處理器 | 峰值記憶體 | 備註 |
|--------|-----------|------|
| ASR | ~2-3 GB | Whisper模型 |
| OCR | ~1-2 GB | 文字檢測+識別 |
| YOLO | ~2-3 GB | 深度學習模型 |
| Face | ~1-2 GB | 人臉檢測+識別 |
| Pose | ~2-3 GB | 深度學習模型 |
| CUT | ~500 MB | 幀差異計算 |
| ASRX | ~2-3 GB | 高級ASR模型 |
| Scene | ~2-3 GB | Places365模型 |

### GPU使用

- **MPS加速**: 啟用（Metal Performance Shaders）
- **GPU利用率**: 50-80%（深度學習處理器）
- **CPU利用率**: 20-40%（I/O密集操作）

---

## 效能優化建議

### 1. 添加採樣參數

為 YOLO、OCR、Pose 添加 `--sample-interval` 參數：

```python
parser.add_argument('--sample-interval', type=float, default=1.0,
                    help='取樣間隔（秒）')
```

**預期效果**:
- 5秒採樣：處理時間減少 80%
- 10秒採樣：處理時間減少 90%

### 2. 使用Core ML模型

將PyTorch模型轉換為Core ML：

```bash
# 轉換YOLO模型
python3 scripts/convert_yolo_to_coreml.py

# 轉換Pose模型
python3 scripts/convert_pose_to_coreml.py
```

**預期效果**:
- M4 Mac加速 2-3x
- 功耗降低 50%

### 3. 批次處理

實現GPU批次推理：

```python
# 批次處理（批次大小=8）
batch_size = 8
frames_batch = []

for frame in frames:
    frames_batch.append(frame)
    if len(frames_batch) == batch_size:
        results = model.predict_batch(frames_batch)
        frames_batch = []
```

**預期效果**:
- YOLO加速 2x
- Pose加速 2x

### 4. 並行處理

使用多線程並行處理：

```python
import concurrent.futures

with ThreadPoolExecutor(max_workers=4) as executor:
    futures = []
    for processor in ['asr', 'ocr', 'yolo', 'face']:
        futures.append(executor.submit(run_processor, processor))
    
    for future in concurrent.futures.as_completed(futures):
        print(future.result())
```

**預期效果**:
- 總時間減少 30-50%

---

## 結論

### ✅ 效能表現良好

- **快速處理器**: CUT、Face、Scene、ASRX
- **中速處理器**: ASR
- **慢速處理器**: OCR、YOLO、Pose

### ⚠️ 優化空間

- YOLO/Pose 需要採樣策略
- OCR 可以與CUT整合
- 長影片需要分階段處理

### 📋 下一步

1. 為YOLO/Pose/OCR添加採樣參數
2. 轉換為Core ML模型（M4優化）
3. 實現批次處理
4. 測試長影片處理策略

---

## 附錄：測試環境

```bash
# 系統信息
sw_vers
# ProductName:    macOS
# ProductVersion: 15.3.2
# BuildVersion:   24D81

# 硬件信息
sysctl -n machdep.cpu.brand_string
# Apple M4

# Python版本
python3 --version
# Python 3.9.x

# PyTorch版本
python3 -c "import torch; print(torch.__version__)"
# 2.8.0

# MPS支持
python3 -c "import torch; print(torch.backends.mps.is_available())"
# True
```
