OCRエンジン
役割
画像内テキスト抽出とインデックス化
エンジン
ndlocr-lite(国立国会図書館製、日本語特化)
- レイアウト解析: DEIMv2
- 文字認識: PARSeq
- フォーマット検出: 拡張子ベース
選定理由: PaddleOCR/EasyOCRと比較して日本語テキストの精度が大幅に高い。
処理パイプライン
画像アップロード → Apalis ジョブキューに OcrJob を積む → ワーカーがストレージからダウンロード → ndlocr-lite で抽出 → PostgreSQL ocr_text カラムに保存
スケーリング
Apalis + Redis バックエンドでワーカーの並行数を制御(デフォルト: concurrency=2)。 Redis は Valkey 互換のため Valkey での運用も可。
対応 MIME タイプ
- image/jpeg, image/jpg
- image/png
- image/tiff
- image/bmp
- image/webp
(GIF は ndlocr-lite の対応外のため除外)
タイムアウト
120 秒(超過時は Python プロセスを SIGKILL)