#AI
公開日:

レシートや請求書の入力作業は、多くの会社で今も人手に頼っています。金額を見て、日付を見て、店名を見て、フォームに転記する。単純な作業ですが数が多く、地味に時間を取られる仕事です。
この作業は生成AIで巻き取れるのではないか。その仮説を検証するため、実際に動くサンプルアプリケーションを作ってみました。書類をスマートフォンで撮影し、AIに読み取らせ、人が確認して確定させる、という一連の流れをCloudflare Workers上に構築し、GoogleのGemini APIとCloud Vision APIを使って読み取り方式を比較しました。
結論から言うと、AI-OCRは書類入力を「魔法のように全自動化する」ものではありません。「人の確認作業を前提にしつつ、入力の初速を上げる」ものとして捉えるのが現実的だというのが、今回の検証の結論です。
検証では、読み取り方式を3パターン用意して比較しました。
いちばん素直なのは、撮影した画像をそのままGeminiに渡し、項目をJSON形式で抽出する方法です。実装がシンプルで、画像の文脈理解にも強みがあります。文字だけを検出するなら、Cloud Vision APIという選択肢があります。純粋な文字起こしにとどまり、項目の意味づけは行いません。そこで、Vision APIで拾ったOCRテキストをGeminiに渡して項目抽出させる、ハイブリッド方式も試しました。文字認識と意味理解を分業させる形です。
あわせて、「どの書類にも対応できる仕組み」を目指し、書類の種類ごとに読み取る項目を定義する仕組みも用意しました。レシートと請求書はあらかじめ組み込んでおき、それ以外の書類については、ユーザーが見本を1枚撮影するだけでAIが項目候補を自動で洗い出し、テンプレートとして登録できるようにしています。
このテンプレートの有無で、読み取り結果は大きく変わります。テンプレートがない状態では、AIは「これは何の書類か」を撮影のたびに推測するため、項目名の表記が揺れたり(「合計」「合計金額」「税込合計」など)、明細の列構成もそのつど変わったりします。一方でテンプレートを登録しておけば、項目名も項目数もあらかじめ固定でき、抽出スキーマとして厳密に指定できるようになります。
検証の結果、最も使えたのは、画像をそのままGeminiに渡す方式でした。理由は、Geminiに何が届くかの違いにあると考えています。ハイブリッドにも同じテンプレートを渡していますが、Geminiに届くのは文字起こしされたテキストだけで、位置関係やレイアウトの情報が落ちます。テンプレートで「どんな項目が書かれているか」を伝えたうえで、画像そのものを読ませるほうが、項目の取り違えが減りました。
なお、税率のような一見固定値として埋め込みたくなる項目も、あえてコードには書き込まず、「書類に書かれている数値をそのまま読み取る」設計にしました。将来の税制変更にコード修正なしで追随できるようにするためです。こうした細部の設計判断も含めて、精度と運用性の両面を見ながら検証を進めました。
まずぶつかったのが、読み取り精度が100%にはならないという壁です。頭では最初からわかっていたつもりでしたが、実際に手を動かすと、その意味を思い知らされました。感熱紙は色あせや折れ皺で文字が欠けやすく、色あせて文字がほぼ消えた画像を渡されたときは、人間でも読めないと感じるほどでした。なかでも手を焼いたのが金額の桁で、10,800円を108,000円と読み違えた出力に気づかず、一瞬そのまま流しそうになりました。
手書きの請求書や、税率ごとの内訳が並ぶ複雑な明細でも誤読が目立ちました。AIは「それらしい値」を返してはくれますが、絶対の正解を保証してはくれません。
「AIに撮らせて終わり」という運用は成立せず、人が最終確認をする工程は当面のあいだ前提として残りそうです。
ただ、精度の壁にぶつかって終わり、というわけでもありませんでした。ゼロから全項目を手入力する作業と、AIが埋めた候補を確認・修正する作業とでは、体感の負荷がまったく違います。人間の役割が「入力する」から「検算する」に変わるだけで、作業の質そのものが変わる感覚がありました。これは精度が100%でなくても成立する効果で、「完璧に読めること」よりも「確認さえすれば早い」という状態を作れるかどうかのほうが、実務では効いてくるのだと気づかされました。
さらに、書類の様式をあらかじめテンプレート登録しておくと、認識精度がはっきり上がることもわかりました。「なんの書類で、どの項目が、どこにあるか」を先にAIへ伝えられるかどうかで、抽出結果の安定度が大きく変わります。
毎回フォーマットが変わる不特定多数の書類をその都度AIに推測させるより、業務で反復して使う様式(自社の請求書フォーマット、取引先ごとの発注書など)を先にテンプレート化しておいたほうが、AIは迷わず必要な項目だけを狙って読みにいけます。
今回の検証結果を踏まえると、社内で繰り返し発生する定型書類(経費精算のレシート、取引先ごとに書式が決まっている請求書など)は、事前にテンプレートを整備することで、精度と作業スピードの両方を底上げできる見込みが立ちました。
一方で、書式が毎回異なる書類や、手書き・劣化した紙の書類を完全自動で処理する用途にはまだ限界があります。
今回作成した検証用アプリケーションは、Cloudflare Workers上で動く小規模な実装ですが、書類の読み取りから確認・保存までの一連の流れを実際に体験できる形にしてあります。
自社の書類フォーマットでどこまで読み取れるか、具体的な導入検討や精度検証にご関心があれば、お気軽にお問い合わせください。