RENOY
生成AI・OCR

手書き帳票をOCRでデータ化する方法|スマホ撮影から業務システム連携まで

目次

「手書きの帳票が、いまだに紙のまま回っている」——中小企業の現場では珍しくありません。誰かが後からシステムに手で打ち直し、その転記に時間がかかり、たまに打ち間違える。この繰り返しです。

最近は生成AIの画像認識が進み、手書きの紙をスマホで撮るだけで、そこそこ読めるようになりました。ただ、これを「業務で毎日使える仕組み」にするには、読み取りの精度以外に決めることがいくつもあります。

先日、手書きの日程表を生成AIのOCRで構造化し、担当者が画面で確認・修正してから基幹データへ書き込む——という仕組みを実案件(匿名)で構築しました。この記事では、そこで分かったことを整理します。

作った仕組みの全体像

流れはシンプルです。紙をスマホで撮る、AIが読んで項目ごとに分解する、担当者が画面で確認して直す、確定したら基幹データに書き込む。

ポイントは3番目の「人が確認して直す」を、最初から工程に組み込んでいることです。ここを省こうとすると、たいてい失敗します。

精度を上げたのは、モデルではなくプロンプト

手書きの読み取り精度は、最終的に85〜90%程度まで出せました。

意外に思われるかもしれませんが、この精度に効いたのは「どのAIモデルを使うか」ではありませんでした。効いたのは、その業務の知識をプロンプトに書き込むことです。

具体的には、次のようなルールを言語化して渡しました。

  • 元号の判定ルール:日付欄に元号が省略されて書かれている場合、どう解釈するか
  • 記載ゆれの正規化ルール:同じ意味で複数の書き方がある項目を、どの表記に寄せるか

汎用のOCRに「読んでください」と投げると、書いてある文字をそのまま返してきます。しかし業務帳票には、その現場でしか通じない省略や書き癖があり、それを知らないと正しく解釈できない欄が必ずあります。逆に言えば、そのルールを渡せば精度は上がります。

つまり、AI-OCRの精度改善は技術の話というより、現場の暗黙知を文章にする作業に近いのです。ここは業務を知っている人でないと書けません。

なお、生成AIの仕様やモデルは頻繁に変わるため、実装時の最新条件は必ず公式で確認してください。

100%を目指さない:プレフィル前提の設計

85〜90%という数字を見て「残りの10〜15%はどうするのか」と思われるはずです。答えは、人が直すです。

ここは意図的な設計です。手書き文字の読み取りで100%を狙うと、コストが跳ね上がるわりに、結局どこかで誤りが出ます。しかも「たまに間違う自動化」は、人が全件を疑って見直すことになり、かえって手間が増えます

そこで、AIの出力は「完成品」ではなく**下書き(プレフィル)**と位置づけました。

全自動を目指す設計プレフィル前提の設計
AIの役割正解を出す下書きを埋める
人の役割例外のときだけ介入必ず確認して確定する
誤りの扱い気づかず通過するリスク確定前に必ず止まる
現場の心理信用しきれず二重チェック直すのが前提なので安心

手作業でゼロから入力していた工程が、「埋まっているものを見て、違うところだけ直す」に変わります。全部を自動化しなくても、入力の大部分が消えれば十分に効果が出るわけです。

そして「人が確認する」を前提にすると、次の論点が最重要になります。確認と修正がやりやすい画面かどうかです。

つまずいたのはUI:AppSheetからGAS WebAppへ

当初はAppSheetのダッシュボード機能で確認画面を作ろうとしました。撮った画像と、AIが読み取った項目を並べて表示し、その場で直せればいい——という発想です。

ところが、実際に触ってみると分かりにくい。画像と入力欄の対応が追いにくく、「いま何行目を確認しているのか」が見失われやすい。毎日使う画面としては厳しい、という判断になりました。

そこで、GAS(Google Apps Script)のWebApp単独で確認画面を作り直しました。左に撮影した帳票の画像、右に読み取り結果の入力欄、という2ペイン構成です。ノーコードツールの枠に収まらない要件だったため、必要な形をそのまま作った、という選択です。

GAS WebApp特有の罠

ただし、GAS WebAppには独特の癖があります。実際に踏んだものを2つ挙げます。

  • iframe内でviewportが効かない:GAS WebAppはiframeの中で動くため、スマホ向けのviewport指定が期待どおりに効きません。画面幅を前提としたレイアウト設計をやり直すことになりました。
  • stickyが効かない:ヘッダーや画像を固定表示しようとしてもCSSのstickyが機能せず、左右の2ペインをそれぞれ独立してスクロールする構成に変更しました。結果的には、画像を追いながら入力欄を送れるので、この形の方が使いやすくなりました。

いずれも「調べれば分かる」類の話ですが、やってみるまで出てこない種類のつまずきでもあります。ノーコードで済ませるか、WebAppまで作り込むかは、こうした実装コストを含めて判断する必要があります。

教訓:分担の設計と、UIの作り込み

この案件から持ち帰った学びは、次の3つに集約されます。

  1. 精度はプロンプトで上げる:モデル選びより、元号の扱いや表記ゆれといった現場のルールを言語化する方が効きます。
  2. AIと人の分担を先に決める:100%を狙わず、AIは下書き、人が確定。この線引きを最初に決めると、設計がぶれません。
  3. UIまで作り込んで初めて定着する:読み取れても、確認しづらい画面なら現場は使いません。毎日使える画面が最後のハードルです。

特に3つ目は見落とされがちです。「AIで読める」と「業務が回る」の間には、確認画面という地味だが決定的な工程があります。ここに手を抜くと、精度がいくら高くても紙の運用に戻ります。

自社で検討するときの進め方

手書き帳票のデジタル化を考えるなら、次の順で確認するのが現実的です。

手順確認すること
1. 対象を1帳票に絞る一番枚数が多く、転記に時間がかかっている帳票はどれか
2. 業務ルールを書き出す省略記法・表記ゆれ・日付の書き方など、現場の暗黙知
3. 精度の目標を決める100%ではなく「人が直す前提で何%あれば楽になるか」
4. 確認画面を設計する誰が、いつ、どの端末で確認するか
5. 書き込み先を決める確定データをどのシステムのどこに入れるか

いきなり全帳票を対象にすると、まず止まります。枚数が多く、様式が決まっている1種類から始めるのが失敗しない入り方です。

まとめ

  • 手書き帳票は、生成AIのOCRで85〜90%程度まで読み取れた(実案件・匿名)
  • 精度を上げたのはモデル選定より、元号や表記ゆれのルールをプロンプトに書き込むこと
  • 100%を目指さず、AIは下書き・人が確認して確定するプレフィル設計にした
  • 確認画面はAppSheetでは分かりにくく、GAS WebApp単独で構築。iframe内のviewportやstickyの制約も踏んだ
  • 成否を決めるのは「AIが読む+人が確認する」の分担設計と、毎日使えるUIの作り込み

RENOYでは、手書き帳票やアナログな紙の業務について「どこまでAIで読めて、どこから人が見るべきか」の切り分けから、確認画面の設計・開発までご相談を承っています。「紙が多くて自動化できないと思っていた」という段階のご相談も歓迎です。まずはお気軽に無料個別相談(オンライン・60分)をご利用ください。サービス内容をまとめた資料は資料請求からご覧いただけます。

#AI-OCR#生成AI#GAS#業務自動化#中小企業