Opus 4.6で評価
NDLOCR-Lite(Python版) vs あなたの実装(EasyOCR)
1. アーキテクチャ比較
2. 技術的に重要な違い
依存関係の軽さが圧倒的に違う
NDLOCR-Liteのrequirements.txtを見ると:
PyTorch が一切不要です。EasyOCRはPyTorch + torchvision が必須で、これだけで2GB以上のインストールサイズになります。NDLOCR-Liteは ONNX Runtime のみで動作するため、環境構築が格段に簡単で軽量です。
モデルの世代が新しい
DEIMv2は「Real-Time Object Detection Meets DINOv3」がベースで、CRAFTより5年以上新しいモデルです。PARSeqも「Permuted Autoregressive Sequence Models」で、EasyOCRの内蔵モデルより世代が新しいです。
カスケード認識が賢い
NDLOCR-Liteのソースコードを読むと、単純に3モデルを使い分けるだけでなく、フォールバック機構が実装されています:
- PARSeq-30で認識 → 結果が25文字以上なら → PARSeq-50にフォールバック
- PARSeq-50で認識 → 結果が45文字以上なら → PARSeq-100にフォールバック
これにより、文字数予測が外れた場合でも精度が担保されます。
3. あなたの用途(残高数値読み取り)に対する評価
NDLOCR-Lite Python版: 適合度 ★★★☆☆
前回のWeb版(★★☆☆☆)より評価を上げた理由:
これにより:
- PyTorch依存を完全に排除(2GB+ → 50MB程度に軽量化)
- 推論速度が向上(ONNX Runtimeの方がCPU推論で高速)
- DEIMv2は使わない(テンプレートマッチングで十分)
- PARSeq-30のみ使用(短い数字列には十分)
parse_balance_value()の後処理はそのまま維持
総合評価
NDLOCR-Liteでの使われ方
NDLOCR-Liteでは、PARSeqを3つのサイズ違いで使い分けている:
入力幅が異なるだけで、アーキテクチャは同じ。短い行に大きなモデルを使うと無駄が出るので、効率化のためにカスケード方式を採用している。
| モデル | 年代 | 役割 |
|---|---|---|
| DEIMv2 | 2025年 (arXiv:2509.20787) | レイアウト検出(テキスト行の矩形を見つける) |
| PARSeq | 2022年 (arXiv:2207.06966) | テキスト認識(切り出した画像から文字を読む) |
まとめ
- 現在EasyOCRで問題なく動いているなら、無理に変える必要はない。
- 環境構築の簡便さ・軽量さを重視するなら、NDLOCR-LiteのPARSeqモジュールだけをONNX Runtimeで使う方式は検討の価値がある。
- NDLOCR-Liteは日本語文書OCRとしては非常に優秀だが、ゲーム画面の短い英数字読み取りという用途には設計思想が異なる。
- 特にN100等の低スペック環境では、PyTorchを排除できるメリットは大きい。
0 件のコメント:
コメントを投稿