---
status: completed
priority: medium
assignee: Backend
start_date: 2025-11-09
end_date: 2025-11-09
tags: [M3, api, engine]
depends_on:
---

# タスク概要
検出・認識パイプラインを統合するファサード `OcrEngine` を実装し、外部からの操作を単純化する。

## 要件
- パイプライン各コンポーネントの初期化とライフサイクルを管理する
- 同期・非同期の実行モードについて設計判断を文書化する
- 公開 API を安定させるためのモジュール構成と可視性を整備する
- 単体テストまたはモックを用いた統合テストを実装する

## 実装メモ
- `OcrEngine` に検出・認識両パイプラインを内包する `DetectionPipeline` / `RecognitionPipeline` を追加。ビルダーでロード済みの `tract` セッション・辞書を `Arc` で共有させ、ライフサイクルを一元管理する。
- `OcrEngineConfig` を拡張し、前処理・後処理・スケーリング各ステージの設定値を束ねて保持。将来の API 拡張時にも `OcrEngine::config()` から一貫した参照が可能。
- 同期実行ポリシーをドキュメント化。エンジン自体は同期的に動作するが、構成要素を `Arc` 化しているため、呼び出し側で複数スレッドから共有／複製して並列実行できる設計とした。
- 検出パイプライン・認識パイプラインが正しく初期化されていることを確認するユニットテストを追加。資産パスやバッチサイズのアクセサも検証し、公開 API の安定性を担保。

