---
document_type: "spec"
service: "MOMENTRY_CORE"
title: "OCR Processor V1.0.0"
date: "2026-05-02"
version: "V1.0"
status: "active"
owner: "Warren"
created_by: "OpenCode"
parent: "PROCESSOR_SELECTION_V1.0.0.md"
tags:
  - "momentry"
  - "core"
  - "processor"
  - "ocr"
  - "paddleocr"
  - "optical-character-recognition"
  - "v1.0.0"
ai_query_hints:
  - "OCR 使用 PaddleOCR PP-OCRv4 模型支援 80+ 語言"
  - "OCR 處理 159.6s 影片全幀約 36.87s，即時倍率 4.3x"
  - "OCR 輸出 102 frames, 234 texts, 65KB"
  - "OCR 不使用 GPU，CPU 使用率 0.8"
  - "OCR 精度 > 95%，支援繁體中文"
related_documents:
  - "PROCESSOR_SELECTION_V1.0.0.md"
  - "../YOLO_V1.0.0.md"
  - "../CAPTION_V1.0.0.md"
  - "../VISUAL_CHUNK_V1.0.0.md"
  - "../CHUNK_DEFINITION_V1.0.0.md"
---

# OCR Processor V1.0.0

| 項目 | 內容 |
|------|------|
| 建立者 | OpenCode |
| 建立時間 | 2026-05-02 |
| 文件版本 | V1.0 |

**狀態**: ✅ 100% | **模型**: PaddleOCR PP-OCRv4 | **GPU**: 否

## 關鍵術語定義

| 術語 | 定義 |
|------|------|
| OCR | Optical Character Recognition，光學字元辨識 |
| PaddleOCR | 百度開發的 OCR 引擎，PP-OCRv4 為最新版本 |
| PP-OCRv4 | PaddleOCR 第四代模型，支援 80+ 語言 |
| real-time factor | 即時倍率，處理時間與影片時長的比值 |
| full-frame processing | 全幀處理模式，對影片每一幀進行 OCR |

---

## 選型過程

選擇 PaddleOCR 原因：
- 支援 80+ 語言（含繁體中文）
- 精度 > 95%
- EasyOCR 經測試不如 PaddleOCR

---

## 效能實測（ExaSAN 159.6s 影片, 全幀處理）

| 指標 | 值 |
|------|-----|
| 處理時間 | 36.87s |
| 即時倍率 | 4.3x |
| 輸出 | 102 frames, 234 texts, 65KB |

---

## 版本歷史

| 版本 | 日期 | 目的 | 操作人 | 工具/模型 |
|------|------|------|--------|-----------|
| V1.0 | 2026-05-02 | 初始版本 | OpenCode | deepseek-chat |

## 資源預估

| 資源 | 值 |
|------|-----|
| CPU | 0.8 |
| 記憶體 | 1024 MB |
| GPU | 不使用 |
| 依賴 | 無 |

---

## Apple Vision Framework 替代實作

### POC 結果

| 指標 | Python PaddleOCR (PP-OCRv4) | Swift Vision (VNRecognizeTextRequest) |
|------|----------------------------|---------------------------------------|
| **文字偵測** | 多筆低品質 ("1", "48219 %,") | **9 blocks, conf=1.0~0.3** ("A08S2-TS", "4101") |
| **速度/幀** | 慢（batch 處理） | **0.43s / 幀** (640x360) |
| **記憶體** | ~1GB（PaddleOCR 模型） | **低**（系統框架） |
| **語言** | 80+ | **30 種**（含 zh-Hans/Hant） |
| **ANE 加速** | ❌ CPU only | ✅ **是** |
| **逐幀處理** | 需要 batch 加速 | ✅ 獨立快速 |

### 選型結論

Vision Framework OCR 在速度、記憶體、準確度上均優於 PaddleOCR，且使用 ANE 加速。

**決定**: 以 Swift Vision OCR 取代 Python PaddleOCR。

### 實作

`scripts/swift_processors/swift_ocr.swift` 為完整 OCR processor，支援：
- 影片逐幀 / 取樣處理
- JSON 輸出格式與 Python 版相容
- 可透過 `ocr_processor.py` wrapper 被 PythonExecutor 呼叫
- 自動語言偵測

---

## 版本歷史

| 版本 | 日期 | 目的 | 操作人 | 工具/模型 |
|------|------|------|--------|-----------|
| V1.0 | 2026-05-02 | 初始版本 | OpenCode | deepseek-chat |
| V1.1 | 2026-05-04 | 以 Apple Vision Framework 取代 PaddleOCR | OpenCode | deepseek-chat |
