イントロダクション
このタスクは実際には OCR タスクの「前段階」と言えます。
ここ数年、さまざまな汎用 OCR モデルが非常に成熟しており、前処理なしで制限のないシーンで文字を見つけて認識結果を提供することができるようになりました。
しかし、それは少し高価です。
この「高価」の意味をいくつかの側面から切り出すことができます:
推論コスト
実際のシーンでは、文書認識タスクは OCR 領域で非常に大きな割合を占めています。なぜなら、私たちは生活の中で常に文書を扱うからです。これらの活動では、通常「能動的」ではなく「受動的」にスキャンを受けることが多いです:
- 銀行口座を開設する際、証明書を見せる必要がある?
- 海外に行く際、パスポートを見せる必要がある?
- ビザを申請する際、証明書を見せる必要がある?
- 保険に加入する際、契約書を見せる必要がある?
これらの割合は非常に大きいですが、必ずしも儲かるビジネスとは言えません。なぜなら、この分野には多くの競合企業があり、質の良い製品が手頃な価格で溢れているからです。
つまり、汎用 OCR モデル(通常は LLM)を使ってこの問題を処理すると、推論コストだけで大きな赤字を出す可能性があります...
その赤字を逆転させることもできます。
ここでは、経済的に余裕のある人々を除外しています。
文字は通常非常に密集している
文書内の文字は通常密集しており、つまり、情報を見逃したくない場合、高解像度で文書をスキャンする必要があるということです。
例えば、物体検出を行う際に一般的に使用する解像度は ですが、文書の位置決めシーンでは、この解像度は や 、さらにはそれ以上に拡大されることがあります。
もしモデルの機能を分割せず、直接高解像度の環境で LLM を強引に適用すると、推論コストはさておき、V100 トレーニング用の GPU が 30,000 ~ 50,000 ドルもすることを知っていますか?LLM は本当に高すぎます!
中国語の文字数が膨大
中国語の文字分類は、簡体字と繁体字を含むため、文字数は 10 万種類にも及びます。ラテン系言語の文字と比較すると、分類数が 3 桁多いことになります。
モデルは複雑な背景から文字を見つけ、さらに文字の細部(数ピクセルしかない場合もあります)から重要な特徴を見つける必要があるため、必要なパラメータ数と計算量が大幅に増加します。
私たちはもちろん、端から端までの解決策を望んでいます。できれば、何もせず、1 つのモデルで全てを解決できるものが理想です。そのようなモデルは現在も存在しており、今後はさらに増えていくでしょう。
しかし、推論は高価で利益は少なく、現段階ではどんなに見ても赤字ビジネスです。
機能の分割
したがって、より経済的で実用的な方法が必要であり、ここでモデルの分割が必然的な選択となります。
これが、このプロジェクトの目的です:
- 騒がしい環境の中で、関心のある文書領域を正確に特定し、それをフラットにして、その後の文字認識やその他の処理を可能にすること。
文書の位置決めができれば、次に文字の位置決め、そして文字認識、最後に意味解析理解へと進みます。
このプロセスは少し煩雑かもしれませんが、コストと効果のバランスを取ると、これは比較的良い選択肢です。
モデル機能
このモデルは、画像内の文書を特定し、その 4 隅を正確に見つけ、ユーザーがその文書をフラットにして後続の文字認識やその他の処理を行えるようにするために設計されています。
ここでは、2 種類の異なるモデルを提供しています:「ヒートマップモデル」と「ポイント回帰モデル」で、それぞれ特徴と適用シーンがあり、これらは後の章で詳細に説明します。
技術面では、PyTorch をトレーニングフレームワークとして選び、推論時にはモデルを ONNX フォーマットに変換し、異なるプラットフォームでの展開を可能にしています。また、ONNXRuntime を使用してモデルの推論を行うことで、CPU と GPU の両方で効率的に動作するようにしています。
私たちのモデルは性能面で最先端(SoTA)レベルに達しており、モバイルデバイスでの推論速度は約 10〜20 FPS に達します。これにより、ほとんどのアプリケーションシーンのニーズに対応することができます。
深層学習の分野「外」では、『Localization』は通常、文書を異なる言語に翻訳することを指します。
しかし、深層学習の分野では、画像内の文書を位置決めし、それをフラットにするプロセスを指します。
フラット化:三次元空間で歪んだ文書を、透視変換などの方法で二次元平面に投影し、平面上に表示させること。
定義
私たちは、この分野の先駆者たちの定義に従い、文書の座標点の:
- 起点を左上角に設定
- 終点を左下角に設定
とし、4 つの座標点を使って文書の位置を表現します。順番は:『左上 > 右上 > 右下 > 左下』です。
可視化結果では、異なる座標点に異なる色を使用していますが、その色は文書自体の向きを示すものではありません。
つまり:文字がどんなに回転しても、モデルは常に左上角を起点、左下角を終点として定義します。
遊び場
このモデルをウェブページに組み込んでおり、遊び場で試すことができます。
AI エンジニアとして、他の人がモデルを試せるようにウェブデプロイや前後端の接続を自分で行うのはよくあることです。
使用中にバグを見つけた場合は、悪用を避けるため、私たちにプライベートで通知してください。迅速に対応します。
最後に
実は、最初に目指していたのは Zero-shot のモデルで、モバイルデバイスで快適に動作するものを作ることでした。つまり、世界中のさまざまな文書に一般化でき、何も注釈をつけず微調整もせずにそのまま使えるものを目指していました。
しかし、モデル規模の制限により、この目標は少し遠くなりました。
これは非常に難しい選択でした:モデル規模を大きくすると、最初の目的から外れてしまいます。モデルを大きくしないと、構造を変更する必要があり、構造を変更するとモデルの一般化能力に影響を与えてしまいます。
最終的に、数ヶ月の努力の後、Zero-shot をあきらめ、精度を第一に優先しました。
このトピックに興味がある方は、ぜひ自分でテストしてみてください。フィードバックをお待ちしています。
また、アドバイスがあれば、ぜひお知らせください。喜んで交流させていただきます。