こんにちは。エンジニアの山下です。今回は OCR について書こうと思います。
OCR は画像中の文字を文字データに変換するシステムの総称で、DX の前段階にあたるペーパーレスの推進などの文脈でしばしば見かけます。昨今の AI ブームの恩恵を受けて OCR の精度は非常に高くなっており、実際、以下のように粗悪な質の画像であってもそれなりの精度で機能します。
しかし、DX の前段階という文脈では、単に OCR の読み取り精度が高いだけでは十分とは言えません。というのは、多くの場合、OCR の出力は構造化されたデータではなく、読み取った文字列を列挙しただけのデータ片になりがちだからです。
以下に実際の OCR の出力から一部を抜粋したものを示します。
金額 NO. 数量 単価 10,000 1 1,000 2 0000002 · 用紙2 15 500
この問題は特に表データなどを含む画像において顕著で、これではデータに十分な質を要求する DX の第一歩としては不十分と言わざるを得ないでしょう。
この問題への対処方法の1つに OCR の出力を LLM を使って整理するという方法があります。非構造化データの構造化は LLM が得意とする仕事の1つなので、それなりの精度で紙データを適切な電子データに変換できそうという期待があります。
一方で、LLM を使うのであれば、マルチモーダル LLM を使って画像を直接 LLM に入力して電子データに変換するという方法も考えられます。OCR の出力を受け取るパイプラインを構築せずに済むので、開発工数上はこちらの方が有利そうですね。
こうして LLM を使った紙データの電子データ化の方法が2つ挙がったわけですが、2つ並ぶとどちらの方法がよいのかが気になるところです。というわけで、今回はこの2つの方法を比較検証してみます。
続きを読む