こんにちは。バナナデスクです。
画像から文字を取り出せると、受付票やメモの転記が楽になります。ただ、文章の大部分が読めても、参加費の数字が一つ読めなければ、そのまま受付処理へ進めないことがあります。
今回、架空の受付票を使って画像を実際に読み取ったところ、ぼけた画像では「18:30」「3」「2」は読めても、受付番号や金額などは確定できませんでした。大事なのは、読めた文字を増やすことだけでなく、読めなかった項目を残して次の確認へ回すことです。
この記事では、AI-OCRの考え方、同じ票を3条件にした読み取り例、文字と項目を別々に集計する方法を説明します。元画像と結果も配布するので、自分で照合できます。
AI-OCRとは、画像の文字を再利用できるデータにする技術
OCRは、画像に写った文字をテキストとして認識・抽出する技術です。AI-OCRという言葉は、機械学習などを使う文字認識や帳票の読み取りを指して使われます。「普通のOCRは必ずAIを使わない」というきれいな区分があるわけではありません。
MicrosoftのOCR資料でも、機械学習による認識と、単語・行・段落などの抽出が説明されています。さらに帳票の項目や関係を扱う処理は、文字の抽出を土台に組み合わせるものです。
たとえば「12800」という文字を読めることと、それを参加費の欄へ入れることは別です。隣の人数や資料部数へ入れば、文字自体が正しくても転記結果は間違いになります。
| 作業 | 受付票での例 | 点検すること |
|---|---|---|
| 文字の抽出 | 画像から12800を取り出す | 1と7、3と8などを取り違えていないか |
| 項目への対応 | 12800を参加費へ入れる | 人数や受付番号の値と入れ替わっていないか |
| 表への保存 | 1件の受付データを1行にする | 空欄、判読不能、0を同じ値にしていないか |
| 業務上の確認 | 必要な項目がそろった受付として扱う | 番号や金額が未確定のまま処理していないか |
実在の個人情報を使わず、同じ受付票を3条件で作った
教材として、1280×720pxの架空受付票を作成しました。実在の顧客・申し込み・請求を扱ったものではありません。欄の値は次のとおりです。受付日や参加費も説明用の設定です。
| 項目 | 正解として用意した値 |
|---|---|
| 受付番号 | RC-0718 |
| 受付日 | 2026-11-05 |
| コース | 文章整理教室 |
| 時間 | 18:30 |
| 人数 | 3 |
| 参加費 | 12800 |
| 資料部数 | 2 |
| 会場 | 第1室 |
| 備考 | 空欄 |
この票から、鮮明な画像、5度傾いた画像、ぼけた画像の3つを作りました。傾きは回転処理、ぼけは半径4.2pxのガウスぼかしを加えた合成条件です。実際にスマートフォンで撮影した3種類の紙を比べたものではありません。
2026年10月1日、教材作成を担当したAIとは別の編集担当AIが画像を読み取りました。正解表と作成コードを見せず、ぼけ、傾き、鮮明の順で結果を保存し、後の画像を見て先の結果を書き換えない方法です。
ただし、同じ票を順番に見ているため、各条件が完全に独立した試験ではありません。画像を理解できるAIによる単一の読み取り例であり、Microsoft製品など特定の業務用OCRサービスを実行した比較や、一般的な認識精度の測定ではありません。
分からない値を推測で埋めさせない
読み取りを依頼するときは、出力の形と、不明な場合の扱いを先に決めます。この例では、次の方針を渡しました。
画像に見える9項目の値を、位置・項目名・値に分けて取り出してください。
判読できない値はnull、見えている空欄は空文字にしてください。
一部だけ読めても、推測して完成させないでください。
不確かな候補はuncertain欄へ分け、確定した値に混ぜないでください。
元画像以外の正解資料は参照しないでください。
ぼけ画像の参加費は、「12で始まり00で終わるように見えるが、中間が8か3かを確定できない」という結果でした。この候補は参考欄に残し、確定値には入れていません。後で正解が12800と分かっても、最初から12800を読み取れたことにはしません。
資料部数の位置にある「2」は読めましたが、ぼけ画像では項目名自体を読めませんでした。今回は固定様式の同じ位置として値を照合しています。知らない帳票でも、その2を必ず資料部数へ割り当てられるという結果ではありません。
文字の一致と、必須項目の完成を別に数える
正解表と照合した結果は次のとおりです。文字の分母は欄の値だけを対象にした38文字で、項目名・見出し・注記は含みません。備考の空欄は文字を持たないため、文字数の分母へ加えていません。
| 条件 | 値の文字の一致 | 9項目の値が完全一致 | 非空の必須8項目が一致 | 必須8項目が全部そろうか |
|---|---|---|---|---|
| 鮮明 | 38/38文字 | 9/9項目 | 8/8項目 | そろった |
| 5度の傾き | 38/38文字 | 9/9項目 | 8/8項目 | そろった |
| ぼけ | 7/38文字 | 4/9項目 | 3/8項目 | そろわない |

ぼけ画像で一致した7文字は、時刻18:30の5文字、人数3の1文字、資料部数2の1文字です。備考が空欄であることも一致したため、値の完全一致は9項目中4項目。一方、備考以外の必須8項目では3項目の一致となります。
文字を数える前に、全角・半角の表記をNFKCで正規化し、空白を除いています。正解の値と抽出値を項目ごとに比べ、文字の置換・欠落・挿入を編集距離として計算しました。今回は読めない欄をnullにしたため、その欄の文字を欠落として数えています。参考比率は鮮明・傾きが100%、ぼけが7÷38×100=約18.4%です。
この100%を「このAIのOCR精度は100%」と書くことはできません。同じ架空票1種類の値38文字に対する結果であり、ほかの様式、手書き、文字サイズ、画質へは広げられません。3画像のうち必須項目がそろったのは2画像ですが、独立した3件の受付処理の成功率でもありません。
読めないときは、指示より先に画像を見直す
「もっと正確に読んで」と繰り返すだけでは、画像に残っていない文字の細部は増えません。可能なら元のPDFや鮮明なスキャンを用意し、撮影なら紙全体が欠けず、影や反射が重ならない条件で取り直します。
MicrosoftのOCRの制約に関する資料も、解像度、コントラスト、照明、回転、文字の大きさや密度などが結果へ影響すると説明しています。単一の数字をうのみにせず、自分が扱う資料で確認することが必要です。
今回、5度の傾きで全値を読めたことは、傾きが影響しないという証明ではありません。文字がさらに小さい、画像の端が欠ける、影が重なる、といった条件は試していません。どこまで読めるかは資料と方法に応じて変わります。
読取後の表には、未確定を残す
受付データへ移すなら、元画像、読み取った値、確認状態を結び付けて残します。空欄と不明を区別すれば、確認が必要な行だけを探せます。
| 項目 | 最初の結果 | 確認状態 | 次に行うこと |
|---|---|---|---|
| 時間 | 18:30 | 読み取り値あり | 必要に応じ元画像と照合 |
| 人数 | 3 | 読み取り値あり | 別の欄の値ではないか確認 |
| 参加費 | null | 判読不能 | 鮮明な元資料へ戻り、確認できるまで確定しない |
| 資料部数の位置 | 2 | 値は読めるが項目名は不明 | 様式と欄の対応を確認 |
| 備考 | 空文字 | 空欄として認識 | 0や「なし」という別の値を勝手に入れない |
AIから返る「自信があります」という文章と、OCRサービスが返す数値のconfidenceも別です。サービスの数値がある場合でも、その値を実際の正解率と同一視せず、自分の資料で誤りと照合して確認基準を決めます。
サービスを選ぶときは、自分の票で最後まで試す
無料か有料かだけで決める前に、扱う言語・手書きの有無・表の複雑さ・1回のページ数・出力形式を確認します。無料枠や料金は製品と版で変わるため、今回の単一の読み取り例から各社の利用上限を比較したことにはしません。
試すときは、文字が出るところで止めず、必要な列へ入ったか、不明な行だけ戻せるかまで確認してください。機密資料や個人情報を含む実票を使う前に、入力できるデータの範囲と利用条件も確認します。架空票で手順を固めてから対象を広げると、何を点検するかが明確になります。
AI-OCRの便利さを生かすには、すべてを確定値へ変える必要はありません。読めた部分は使い、読めない部分は分かる形で止める。その区別が、転記の手間を減らしながら誤った処理を防ぐ土台になります。