レシートをAIで読み取る精度検証
12行の明細と、軽減税率の※印の読み取り・プロンプト
レシートは明細が多く、文字は小さく、感熱紙は薄い。書類の中でもAIに読ませにくい部類です。それでも経費精算や家計簿で需要は高い。明細の取りこぼしと軽減税率の区別という2つの難所を、12明細のスーパーのレシートと、傾き+低コントラストのカフェのレシートで確かめました(架空サンプル)。
検証方法
難易度の違うレシートを2パターン自作し(架空データ)、画像として生成AIに読み取らせ、各明細・税区分・合計を元データと1項目ずつ照合しました。レシートで難しいのは、明細の取りこぼしと、軽減税率(※)の区別です。
結果1:12明細+軽減税率のスーパーレシート → 全項目正確
商品12行を1つも取りこぼさずに抽出。さらに、緑茶・ヨーグルトに付いた ※(軽減8%対象)の印を認識し、8%対象 256円/10%対象 2,644円/消費税 284円/合計 3,184円 と、税区分ごとの集計まで正確に読み取りました。お預かり・お釣り・獲得ポイントも一致しています。
見本の※の付け方は、実際の軽減税率の区分と違います。軽減税率(8%)の対象は「酒類・外食を除く飲食料品」です(国税庁「軽減税率制度の概要」)。実際の区分では、牛乳・食パン・たまご・鶏もも肉・トマト・きゅうり・絹豆腐・納豆・サラダ油も8%の対象で、10%はキッチンペーパーだけになります。この検証で確かめたのは、レシートに印字された※と集計欄をそのとおりに読み取れるかで、どの商品が8%の対象かをAIが自分で判断できるかは試していません。
結果2:傾き+低コントラストのカフェレシート → これも正確
わずかに傾き、文字色も薄いカフェのレシートでも、5品目・小計・支払い方法、さらに クレジットカード番号の下4桁(****3847) まで正確に抽出できました。軽い傾きや低コントラストには耐性があります。
わかったこと
- 明細が多くても取りこぼさない。12行のスーパーレシートを全行正確に抽出した。
- 軽減税率(※)を区別できる。印字された※の付いた商品と「8%対象(※)」の欄を結び付け、税区分ごとの集計を読み取れた(どの商品が8%の対象かをAIが判断できるかは試していない)。
- 軽い傾き・低コントラストに耐性。薄い文字・わずかな傾きでも崩れなかった。
レシートの読み取りプロンプト(コピーして使えます)
ChatGPT・Gemini・Claudeなど、画像を読み込めるチャットAIにレシートの画像と一緒に貼り付けて使う形にしています。当社が結果を確かめたのはClaudeだけで、ChatGPT・Geminiでの精度は検証していません。
添付したレシートの画像から、次を読み取ってください。 1. 店名、日付・時刻、支払方法 2. 明細:商品名/金額/軽減税率の印(※など)の有無 を、上から順にすべて 3. 小計、税率ごとの対象額、消費税、合計、お預かり、お釣り ルール: - 明細は1行も省かずに出し、最後に「明細は全部で◯行」と行数を書く - 軽減税率の印の意味は、レシート下部の表示(「8%対象(※)」など)から判断する - 金額が税抜か税込かを、小計・消費税・合計の関係から判断して書く - 検算する。明細の合計=小計、小計+消費税=合計(税込表示なら小計=合計)になるかを確かめ、合わなければ指摘する - 最後に経費精算用のCSVを1行付ける(日付,店名,合計,支払方法)
2026年9月の再確認(Claude Opus 5.5)
上のプロンプトで、この記事の2枚をもう一度読み取らせ、元データと照合しました。
| サンプル | 読み取り結果 | 検算 |
|---|---|---|
| スーパー(12明細) | 12行すべて。※の付いた緑茶・ヨーグルトを8%対象と判断し、8%対象256円・10%対象2,644円・消費税284円・合計3,184円、お預かり5,000円・お釣り1,816円まで一致 | 明細の合計2,900円=小計。小計+消費税=合計なので税抜表示と判断 |
| カフェ(傾き・薄い文字) | 5行すべて、合計2,090円、支払方法(VISA 下4桁3847・一括)まで一致 | 「小計(税込)」の表示と、小計=合計から税込表示と判断 |
答えを知っている同じサンプルでの再確認なので、初めて見るレシートでの精度を示すものではありません。
使うときのコツ
- 行数を数えさせる。明細の取りこぼしは、読み取った行数とレシートの行数を比べると見つけやすくなります。
- 税抜か税込かを判断させる。スーパーのレシートは税抜の明細に消費税を足す形、カフェは税込の形でした。店によって違うため、経費精算の入力前に確かめる価値があります。
- 合計金額だけは人が見る。検算が合っていても、合計そのものを読み違えると全体がずれます。精算に使う合計は、画像と見比べる1手間を残すのが安全です。
合計欄を1か所書き換えたレシートの点検結果(2026年9月)
数字を1か所書き換えたレシートの記載の食い違いを、読み取りのついでに点検できるかを試しました。上のスーパーのレシートと同じ12明細を作り直し、合計欄だけを3,184円から3,148円に書き換えた画像を用意しました(架空。元の画像の生成元が残っていないため作り直しており、字体・幅は元の画像と同じではありません。※の付け方も元のサンプルのままで、牛乳・食パンなどの食品にも※が付いていない作りです)。小計2,900円+消費税284円は3,184円なので、合計欄だけが合わず、お預かり5,000円との差もお釣り1,816円と合わなくなります。見積書の金額・消費税の計算ミスをAIに検出させた結果は見積書の計算ミスをAIで検出する検証にまとめました。
答えを知らないAI(Claude Opus 5.5・Haiku 4.5)に、上の読み取りプロンプトそのままと、下の1行を足したプロンプトの2通りで読ませました(各1回)。
| 条件 | 合計欄の食い違い | ほかの指摘・読み取り |
|---|---|---|
| Opus・読み取りプロンプトそのまま | 指摘した(3,184円になるはずで36円少ない) | 誤った指摘なし。明細12行を正しく読んだ |
| Opus・1行を足したプロンプト | 指摘した(3,184円と3,148円の両方を書いた) | 誤った指摘なし。明細12行を正しく読んだ |
| Haiku・読み取りプロンプトそのまま | 見落とした | トマト398円を598円と読み、明細の和と小計が合わない、消費税は304円になるはず、と誤って指摘 |
| Haiku・1行を足したプロンプト | 指摘した(差は36円) | トマトを598円と読み、明細の和と小計が合わないとの誤った指摘も1つ |
- Opus は、どちらのプロンプトでも合計欄だけが合わないことを見つけた。読み取りプロンプトそのままの回答は「合計欄だけが書き換えられた可能性があります」と書き、経費精算用のCSVには印字の3,148円ではなく、お預かりとお釣りから逆算した3,184円を入れて、その旨を添えました。同じ回答は「牛乳や食パンなどの食品にも※が付いていませんが、読み取ったとおりに書いています」とも添えています。
- Haiku は、トマトの読み違いで検算そのものがずれた。読み取りプロンプトそのままでは、読み違いから計算した「正しい合計」3,404円を出し、「レシートの小計・消費税・合計・お釣りが改ざんされています」と書きました。1行を足すと合計欄の36円の差は指摘しましたが、読み違いに由来する200円の差も並べています。
- この検証で確かめたのは、レシートの記載どうしの食い違いを見つけられるかです。画像がAIで作られたかどうかを見分けられるかは確かめていません。この点検の仕組み上、数字どうしの辻褄が合うように作られたレシートは、食い違いとしては出てきません。
読み取りプロンプトの「ルール」に足す1行
- 合計欄の数字を、明細の和から計算した合計と1桁ずつ見比べ、1桁でも違えば、合計欄の数字と計算した数字の両方を書く。お預かり−合計=お釣りになるかも確かめる
各1回の結果です。AIが「改ざん」と書いても、それは記載の食い違いからの推測です。食い違いが出たレシートは、原本やお店への確認で確かめてください。登録番号の桁、税率ごとの税額、曜日の食い違いをAIに点検させた結果は、レシートの記載の矛盾をAIで点検する検証にあります。
AIが読み違えた文字・数字の実例(回答の原文から)
この記事と、関連する2つの検証(レシートの記載の矛盾をAIで点検する検証・手書き領収書の読み取り検証)で、実際に読み違えた箇所を回答の原文から並べます。読み違えたのはいずれもHaiku 4.5で、Opus 5.5には読み違いがありませんでした(各条件1回、架空のレシート)。
| 検証 | 正しい値 | AIの読み | どう間違えたか |
|---|---|---|---|
| 合計欄を書き換えた12明細のレシート(2条件とも) | トマト 398円 | 598円 | 百の位を取り違え、明細の和が小計と合わないと誤って指摘した |
| 記載の矛盾の点検・画像2(プロンプトあり) | T1701000123456(13桁) | T17010000123456 | 0が1つ多く、14桁と誤って指摘した |
| 記載の矛盾の点検・画像3(プロンプトあり) | T1701000123456(13桁) | T17010001234456 | 4が1つ多く、14桁と誤って指摘した |
| 記載の矛盾の点検・画像5(ただ頼んだ) | T1701000123456(13桁) | T17010000123456 | 0が1つ多く、14桁と誤って指摘した |
共通するのは、同じ数字が続く場所や、桁の多い数字で、1文字だけずれていることです。金額は合計との照合、登録番号は桁数の確認を、読み取りのあとに機械的に行ってください。一方、手書き風の領収書3枚(金額・日付・宛名・但し書き)は、4条件とも読み違いがありませんでした。ただし実際の手書きの写真ではなく、手書き風のフォントで作った画像での結果です。
レシートではなくカードの利用明細を読ませたときは、クレジットカードの利用明細をAIに読ませる検証で、支払区分別の合計の取り違えを調べています。
まとめ
12行を1行も落とさず抽出し、※印の軽減税率も税区分ごとに集計できました。経費の処理では、明細を取りこぼさないことと、税率の区分ごとに分けられることが役に立ちます。ただし今回はクリーンな画像での結果。実物の感熱紙は退色・折れ・かすれが出るうえ、数十明細の長いレシートは別物です。経費で使うなら合計金額の照合を一枚かませるのが安全です。合計・税率ごとの税額・登録番号の桁・曜日の矛盾をAIに点検させた結果はレシートの記載の矛盾をAIで点検する検証にまとめました。
よくある質問
レシートの明細が多くても、AIは取りこぼしませんか?
当社の検証では、架空の12明細のスーパーレシートを1行も取りこぼさずに読み取りました。傾きと薄い文字のあるカフェレシートの5品目も正確でした。ただしHTMLで作ったきれいな画像での結果です。実物の感熱紙の退色や数十明細の長いレシートは試していないため、プロンプトで読み取った行数を数えさせ、レシートの行数と比べます。
レシートの合計金額が書き換えられていたら、AIは気づきますか?
合計欄だけを3,184円から3,148円に書き換えた架空のレシートで試しました(各条件1回)。Opus 5.5は、プロンプトそのままでも1行足した場合でも食い違いを指摘しました。Haiku 4.5は、プロンプトそのままでは見落とし、1行足した場合は指摘しましたが、トマト398円を598円と読む誤りもありました。精算に使う合計は、画像と見比べる手間を残します。
軽減税率の対象は、AIが判断してくれますか?
この検証で確かめたのは、レシートに印字された※と集計欄をそのとおりに読み取れるかどうかで、どの商品が軽減税率の対象かをAIが自分で判断できるかは試していません。サンプルの※の付け方も、実際の区分とは違う架空のものです。税区分は国税庁の「軽減税率制度の概要」で確かめます。
AIはレシートの文字や数字を読み違えますか?
Haiku 4.5で読み違いがありました。合計欄を書き換えたレシートでトマトの398円を598円と読み、別の検証では登録番号を13桁のところ14桁に読んだ例が3件ありました(各条件1回、架空のレシート)。Opus 5.5には読み違いがありませんでした。金額は合計との照合、登録番号は桁数の確認を、読み取りのあとに行います。
合同会社フューチャープロンプト(AIプロダクト開発・業務自動化/東京・渋谷)が2026年6月に実施した一次検証です。2026年9月25日に、同じサンプルをClaude(Opus 5.5)で再確認し、使ったプロンプトと結果を追記しました。マルチモーダル生成AI(Claudeを使用)に実際のサンプルを処理させ、結果を自社で記録しました。当社は「今日の一皿」「LLM News」「資格問題ドリル」などのAIプロダクトを自社開発・本番運用しています。会社の詳細はトップページをご覧ください。
検証の進め方は実測の進め方をご覧ください。
レシート・領収書の経費データ化の仕組みづくりのご相談
合同会社フューチャープロンプトは、レシートや領収書をAIで読み取り、経費・会計データに変換する仕組みを、課題の洗い出しから運用定着まで支援します。
お問い合わせ →