【要約】日本語OCRモデルを比較 ー 速度・性能・メモリから最適解を探る [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
Acompanyの開発チームは、セキュアチャットにおける画像内の機密情報マスキングという課題に直面した。画像に含まれる個人情報(PII)を検知し、自動でマスキングする仕組みが必要である。
- 処理をTEE(Trusted Execution Environment)上で行う必要がある。
- TEE特有の厳しいメモリ制約が存在する。
- ユーザー体験を損なわない実行速度が求められる。
- マスキング漏れを防ぐための高いOCR性能が不可欠である。
- 処理をTEE(Trusted Execution Environment)上で行う必要がある。
- TEE特有の厳しいメモリ制約が存在する。
- ユーザー体験を損なわない実行速度が求められる。
- マスキング漏れを防ぐための高いOCR性能が不可欠である。
// Approach
検証チームは、OCRの工程を「Detector」と「Recognizer」に分離し、最適なモデルの組み合わせを模索した。
- 6種類のOCRモデル(EasyOCR, Surya OCR, PaddleOCR, RapidOCR, NDLOCR-lite, YomiToku)を比較した。
- XFUNDデータセットを用い、CERとBBox F1で定量評価を行った。
- DetectorとRecognizerの性能を個別に測定し、各モデルの特性を特定した。
- 高性能なDetectorと高速なRecognizerを組み合わせるハイブリッド構成を検証した。
- 6種類のOCRモデル(EasyOCR, Surya OCR, PaddleOCR, RapidOCR, NDLOCR-lite, YomiToku)を比較した。
- XFUNDデータセットを用い、CERとBBox F1で定量評価を行った。
- DetectorとRecognizerの性能を個別に測定し、各モデルの特性を特定した。
- 高性能なDetectorと高速なRecognizerを組み合わせるハイブリッド構成を検証した。
// Result
本検証により、単体モデルでは困難だった「高精度」と「高速動作」の両立が可能であることを示した。開発者は用途に応じた最適な構成を選択できる。
- YomiToku DetectorとNDLOCR-lite Recognizerの組み合わせにより、精度を維持したまま実行速度を約3倍(12.44s → 4.47s)に改善した。
- PaddleOCR DetectorとNDLOCR-lite Recognizerの組み合わせにより、メモリ最小(53.57 MiB)かつ実用的な性能を確保できることを示した。
- YomiToku DetectorとNDLOCR-lite Recognizerの組み合わせにより、精度を維持したまま実行速度を約3倍(12.44s → 4.47s)に改善した。
- PaddleOCR DetectorとNDLOCR-lite Recognizerの組み合わせにより、メモリ最小(53.57 MiB)かつ実用的な性能を確保できることを示した。
Senior Engineer Insight
> リソース制約が厳しい現場では、単一モデルの性能に依存するのは危険だ。コンポーネントを分離し、個別に最適化する設計思想が極めて重要となる。本記事のように、Detectorの弱点をRecognizerで補う、あるいはその逆といった「モジュール化による最適化」は、実運用におけるコストと性能のバランスを取るための定石である。特にTEEのような特殊環境では、精度・速度・メモリ・ライセンスの4軸で評価を行うべきだ。