2026-08-24 · 1 分で読めます

モバイル向けニューラルOCR:CRAFT、CRNN、EasyOCR、ExecuTorch

従来のフィルタ処理によるOCRは、今や深層学習ベースの手法に置き換えられています。スマホ向けのアプリでは、テキストを検出する段と文字を認識するの2段構成が一般的です。EasyOCRはこの方式を広めました。そのアーキテクチャは、ExecuTorchという実行ランタイムを使うことで、手元のスマホで直接動作できます。本記事では、CRAFTとCRNNの役割、画像サイズの制約、そしてEasyOCR相当の処理をExecuTorchに移植する流れを整理します。

CRAFTとCRNNによる典型的方法

CRAFTはCharacter Region Awareness for Text Detectionの略で、テキスト検出を担当します。文字単位の領域マップと、隣り合う文字の親和度マップを出力するのが特徴です。あらかじめ単語や行全体の矩形を予測する手法と違い、回転・曲線・密集したテキスト対じて汎用的に使えます。そのため、スマホで撮影した写真にも強い結果が得られます。

検出された領域から文字を読みとるのはCRNN、つまり畳み込みリカレントニューラルネットワークです。VGGやResNetの畳み込み層により画像の特徴を抽出し、双方向LSTM が時系列として処理します。最後のCTCデコーダが文字列に変換するため、アプリ側で1文字ごとの位置合わせを実装する必要はありません。この組み合わせは、短い文字列を低レイテンシで読み取るときに特に適しています。

モバイルにおける画像サイズと制約

スマートフォンはメモRD、バッテリー、熱に関する余裕が限られています。カメラの原寸画像をそのままCRAFTに入力すると、中間テンソルが大きくなって処理速度が急落します。通常の実装では、長辺を512ピクセル、768ピクセル、または960ピクセルにリサイズし、アスペクト比を保したままゼロ埋めをしてからモデルへ渡します。

さらに重要なのは、動的入力の扱いです。ExecuTorchはコンパイルされたモデルに対し、入力を固定形状で定義することが一般的です。与えるテンソルのサイズを変えると、モデルを再コンパイルしなければなりません。このため、CRAFTは768×768などの正方形に、CRNNは高さ32ピクセル固定、幅は128・256・512ピクセルといった複数サイズに対してそれぞれエクスポートするのが鉄則です。

重いモデルを全画像に適用しないために、前処理で輪郭抽出などの簡易的な領域露出を行い、その領域だけ後段のモデルに通す方式があります。入力画像のかなりの部分を除外できるため、モバイル環境で速度ひも大きな改善を確認できます。

EasyOCRのアプローチをExecuTorchに移植する

EasyOCRはPyTorchで書かれたPythonライブラリで、検出にCRAFT、認識にCRNNと同様の構造を使っています。このモデルをExecuTorchに移すと、ONNXやTFLiteを介きの変換をするく複数パイプラインの相互誤差がなく、デバッグ情報も保持され、プログラムが容易です。

実装手順として、まずCRAFTを固定サイズの入力に合わせて書き出し、計算精度をfloat16またはint8に量子化します。モデル容量が小さく、GPUやNPUでも推論が速くなります。同時に、認識部分は複数の幅(128、256、512)で別々にエクスポートしておき、検出されたテキストの長さで使い分けます。

アプリ側では、画像の切り取り、定規、パディング、CRAFTの出力のマップを文字列の矩形に変換、検出領域の切り出し、CRNNへの計算といった一連の処理を実装します。CTCデコーダによるデコードまでを端末内で完結するため、インタラネット接続や中継サーバが不要です。応答性が高く、ユーザーのプライバシーも保護されます。

モバイルOCR処理における2つのモデルの役割比較
項目CRAFTCRNN
役目テキスト検出テキスト認識
出力文字領域+親和力文字列
入力形状固定正方形高さ固定・幅可変
負荷大きい小領域なので中程度
← 右にスクロールして続きを見る →

まとめると、CRAFTとCRNNによるニューラルOCRは、モバイル環境でも十分実用的です。サイズ制約は、リサイズ、領域抽出、固定ブイテンサー入力、そして量子化といった工夫で克服できます。ExecuTorch上にEasyOCR系のパイプラインを載せれば、完全オフラインで動作する高性能なOCRアプリを構築できます。

一緒に取り組みましょう

さらに詳しい情報やプロジェクトのヘルプ、またはアイデアの構築が必要ですか?

簡単な質問でもフルプロジェクトでも、お気軽にどうぞ。お問い合わせいただき、あなたのアイデアを一緒に実現しましょう。

お問い合わせ

トピックを切り替える

探索する専門トピックを選択してください: