VAON Multilingual OCR APPI compliance Offshore AI Development

GPUとクラウドAPI依存の罠、132MBのCPU専用OCRエンジンはどう抜け出したか

2026年09月08日 1 分で読めます 13 ビュー

RPAの自動化やRAG型チャットボットへのデータ取り込みのために、文書処理にOCR(光学文字認識)を組み込もうとする企業は、たいてい同じ2つの壁にぶつかります。

1つ目の壁はGPUのコストです。 特に大規模なVision-Language系の多言語OCRモデルは、実用的な速度で動かすためにGPUでの推論を必要とします。 クラウドのGPUインスタンスは、同等のCPUインスタンスに比べて時間あたりの料金が何倍にもなり、しかも文書処理の負荷は波があるため、ピークに合わせて確保した容量の多くが普段は使われずに残ります。

2つ目の壁はデータリスクです。 金融機関、医療機関、そして日本の個人情報保護法(APPI)やGDPRの対象となる企業にとって、個人情報を含む文書を外部のクラウドAPIに送信すること自体が許されない場合があります。 従量課金のAPI料金体系も、文書量が増えるほどコストの予測を難しくします。

よくある回避策は、Tesseractのような軽量なCPU向けエンジンを使うことですが、これはコストとプライバシーの問題は解決しても、鮮明でない実写画像に対する精度が弱く、非ラテン文字の言語も苦手とします。

実際に作ったもの、そして主張していないこと

VAONは、製品ラベルの実写画像から識別番号(シリアル番号、IMEI、型番)を読み取るOCRマイクロサービスを必要としていました。 撮影条件は傾き、照明のムラ、時にはピントのズレも含む、実際の作業現場そのものです。 最初からCPU専用、GPUに依存しないことが要件でした。

すべての言語を1つのモデルで高い精度でカバーしようとする代わりに、私たちは処理を2つのエンジンに分けました。

メインエンジンには、既存のオープンソースモデルであるPP-OCRv6_mediumを採用しています。 検出モデル59MBと認識モデル73MBの2部構成で、合計132MBです。 英語、日本語、中国語、ラテン文字の認識を担当し、CPUのみで動作します。 実写ラベル画像で検証した結果、英語で信頼度0.997、日本語で信頼度0.999を記録し、いずれも完全に正しく読み取れています。

2つ目のエンジンは、ある具体的な問題への対応として存在します。 ベトナム語をメインエンジンでテストしたところ、声調記号が完全に脱落してしまいました。 「Sản phẩm Việt Nam」という文字列は「Sn phm Vit Nam」となり、劣化ではなく丸ごと消えていました。 メインエンジンをファインチューニングすると、他の言語で既に得られている精度を損なうおそれがあるため、ベトナム語専用のVietOCRを別途追加する方式を選びました。 こちらは重みファイルだけで145MB、PyTorchランタイムを含めると約623MBとかなり大きいため、ベトナム語のリクエストが実際に来たときだけ、環境変数のフラグで読み込む構成にしています。 VietOCRを使うことで、信頼度は0.913まで改善しました。 ベトナム語に関してはほぼ使い物にならなかったメインエンジンからの大きな改善です。

各エンジンは共有のロックではなく、それぞれ専用のセマフォで排他制御しています。 重いVietOCRのリクエストが、はるかに軽いPP-OCRv6側のリクエストを待たせてしまう事態を避けるためです。

識別番号そのものを抽出する部分に、専用モデルは使っていません。 既知のラベル形式に対する正規表現によるパターン照合、画像上の座標の近さによる関連付け、IMEI向けのLuhnチェックサムという、ルールベースのロジックで処理しています。 抽出された値は必ずどのルールが根拠になったか追跡できるため、誤検出が起きたときの原因調査がしやすくなっています。

セキュリティとテスト、掛け声だけではなく

このサービスでは、アップロード画像を25メガピクセルまでに制限してdecompression-bomb攻撃を防ぎ、ダウンロードした重みファイルはすべてSHA256で検証し、CVE-2023-4863を修正済みのPillowバージョンで稼働させています。 テストはユニットテスト42件、実モデルを使った統合テスト12件の合計54件で構成されており、モックではなく実際のモデルに対して実行しています。

これが示すこと、そして限界はどこにあるか

CPU専用で動作することで、コスト項目からGPUがなくなります。 また処理がすべてお客様自身のインフラ内で完結するため、画像や抽出後のテキストが外部に出ることはなく、APPIやGDPRの対象となる組織にとって直接意味のある点です。 特定の認証を取得済みだと申し上げているわけではありません。 VAONは現時点でISO27001の認証は取得しておらず、当社のセキュリティ運用はISO27001の枠組みに基づいて構築している段階で、認証取得は今後のロードマップに含まれています。

上記の132MBという数値や信頼度は、今回検証に用いた実写ラベルの画像セットで測定した結果です。 ラベルのデザイン、カメラの角度、照明条件が変われば、個別の検証が必要になります。 特定の導入案件で同じ数値をそのままお約束することはできません。 この検証工程は、実際の案件の範囲を決める際に必ず含めているステップであり、最初から大きな数値を掲げるために省略しているものではありません。

CPU専用またはオンプレミスのOCRパイプラインをご検討中の企業様は、テスト方法と本記事で挙げた数値の根拠をすべてまとめた技術ケーススタディをご覧いただくか、無料相談にお申し込みください。

ケーススタディ: https://vaon.com.vn/ja/case-studies/multilingual-ocr-running-cpu-only-in-132-mb-extracting-identifiers-from-real-world-photos

公式サイト: https://vaon.com.vn/ja

ビジネス変革の準備はできていますか?

AIとデジタル変革の活用について、ぜひご相談ください。

よくある質問

この方法は、あらゆる場面でGPU方式のOCRの代わりになりますか。
なりません。 1分あたりの処理ページ数を極端に高く求められるなど、GPUのコストが既に見合う規模の処理では、GPU方式のモデルが速度面で上回る場合もあります。 本エンジンが対象とするのは、処理速度そのものよりも、GPUコストとデータの社内保持が制約になっている、より一般的なケースです。
インターネット接続なしで、完全にオンプレミスで動かせますか。
はい。 エンジンとモデルは社内のサービスとして動作します。 OCR処理自体のために、画像やテキストを外部のAPIへ送信する必要はありません。
なぜ4言語をまとめて1つのモデルでファインチューニングしなかったのですか。
最初にその方法を試しました。 4言語すべてが同じ重みを共有するため、ベトナム語の声調記号のためにメインエンジンをファインチューニングすると、既に得られていた英語・日本語・中国語の精度を損なうリスクがありました。 エンジンを2つに分けることで、ベトナム語だけを直し、既にうまく機能している部分には触れずに済みました。
自社のラベルや文書に導入する場合、何が必要ですか。
お客様の文書が、今回検証した実写ラベルにどれだけ近いかによります。 実際の運用条件に近い実写画像で同じ検証方法をお客様の文書サンプルに適用したうえで、初めて具体的な精度をお約束できます。

記事をシェア