Gemini Decision 1 に書類画像を見せて OCR の誤りを探させ、Jev・Decisions API と比べてみた

Gemini Decision 1 に書類画像を見せて OCR の誤りを探させ、Jev・Decisions API と比べてみた

書類5件の画像と OCR の値を Gemini Decision 1・Jev・Decisions API に渡し、誤りの検出結果を比較しました。Gemini Decision 1 は閾値 0.8 で20件中19件の誤りを検出した一方、正しい値61件中24件を誤検知し、閾値によって結果が大きく変わりました。
2026.11.14

こんにちは、けーまです。

書類からの OCR 処理では、 AWS であれば Amazon SageMaker で OCR モデルをホストして文字を抜き出し、文字認識の確信度スコアを使いつつ後段の LLM でキーと値を構造化するようなアプローチがあります。
しかし、SageMaker でモデルを常時ホストし続けると料金がかさみやすく、複数のサービスを組み合わせるため構成も重くなりがちです。

最近は VLM 自体の文字認識精度が向上してきたため、VLM 単体で抽出まで完結させる構成も実用的になってきました。
ただ、LLM が出力する確信度は自己申告になりやすく、誤読した値に対しても高いスコアを出してしまうことがあるなど、判定の根拠として信頼しきれない弱点があります。
そこで、書類の画像と読み取り結果を decision model に渡し、「この値は画像と合っているか」を項目ごとに確率で判定させれば、怪しい項目だけを人手による確認に回せます。

以前、Cloudflare の Clef で同じことを試しました。
詳しくは Cloudflare の Clef に書類画像(日本語)を見せて、OCR 結果の誤りを見つけさせてみた | DevelopersIO をご覧ください。

本記事では、2026年11月11日に Google が公開した Gemini Decision 1 に書類画像と OCR の値を渡して誤りを探させ、同じく画像入力に対応している TypeSafe の Jev、および OpenAI の Decisions API と同条件で比較してみました(検証日は 2026年11月13日です)。OCR に強いと言われている Google のモデルがどれくらいなのか気になりますね

1. 検証の方法

1.1 書類

記事への掲載が可能な実物の書類を5件使用しました。
内訳は日本語2件、英語3件です。

書類 言語 出典・ライセンス
イオン マックスバリュ松山店のレシート(2019年) 日本語 Wikimedia Commons(パブリックドメイン)
キャメルマート秋田八幡平店のレシート(2022年) 日本語 Wikimedia Commons(Yauchi、CC BY-SA 4.0。高さ 1400px に縮小)
論文掲載料の請求書 英語 Wikimedia Commons(パブリックドメイン)
米国 IRS の申告書 Form 1040 のテスト用記入例(2ページ目) 英語 IRS(米国政府の著作物)
マレーシアの書店のレシート 英語 SROIE(ICDAR 2019)(CC BY 4.0)

左からイオン マックスバリュ松山店、キャメルマート秋田八幡平店、マレーシアの書店のレシート
左からイオン マックスバリュ松山店、キャメルマート秋田八幡平店、マレーシアの書店のレシート

左から論文掲載料の請求書、Form 1040 のテスト用記入例の2ページ目
左から論文掲載料の請求書、Form 1040 のテスト用記入例の2ページ目

各画像の出典とライセンスは上の表のとおりです。いずれも当ブログにて縮小し、横に並べて1枚にまとめています。

1.2 OCR の値と、わざと入れた誤り

各書類から5〜6項目を選び、正しい値を書き起こしました(例:イオンのレシートであれば店名・日付・外税8%・合計・お釣りなど)。
書類全体ではなく一部の項目に絞ったのは、正解データを人手で確実に確認できる分量にするためです。

検証用のデータとして、次の3パターンを用意しました。

  • 誤りなし:書き起こした正しい値のまま

  • 誤りA・誤りB:2項目ずつ、値をわざと変えたもの

誤りの入れ方は次の3種類で、書類5件で合計20件の誤りを作成しました。

  • 数字の入れ替え・抜け(¥246 → ¥264、36,852 → 36,582)

  • 形の似た文字への置き換え(マックスバリュ → マックスバリユ、UCSFD00005 → UCSFDO0005)

  • 別の値への差し替え(お釣りの欄に預り金の ¥500)

1.3 質問

画像と値の一覧をあわせてモデルに渡し、項目ごとに次のような yes/no の質問を行いました。

{
  "field__total": {
    "type": "noul",
    "instructions": "抽出した「total」の値 \"¥264\" は、画像に印字されている内容と1文字も違わず同じか。空白の数の違いだけは同じとみなす。"
  }
}

書類5件 × 3パターンの計15回のリクエストを、3つのモデルに対して同じ画像・同じ質問で送信しました。
Jev は画像入力が preview 版のため、ヘッダーに TypeSafe-Danger-Zone-Images: true を付与し、画像を assets に含めて送信しています。

1.4 指標

  • 見つけた誤り:あらかじめ仕込んだ20件の誤りのうち、「画像と同じ」である確率が 0.8 未満と判定された件数

  • 誤検知:正しい値61件のうち、「画像と同じ」である確率が 0.8 未満になってしまった件数(この数が多いほど、人手で見直す項目が増えてしまいます)

  • 正しい値を正しいと判定:正しい値61件のうち、「画像と同じ」である確率が 0.8 以上と判定された件数(誤検知と合わせて 61件になります。何でも「誤り」と答えれば見つけた誤りは増えるので、正しい値をきちんと通せたかもあわせて見ます)

判定には、表示用に小数第2位で丸める前の確率を使っています(そのため、表で 0.90 と表示されている値でも、閾値 0.9 では「0.9 未満」になる場合があります)。

2. 結果

2.1 見つけた誤り・誤検知・正しい値を正しいと判定

閾値 0.8 での、見つけた誤り・誤検知・正しい値を正しいと判定した件数

項目 Gemini Decision 1 Jev Decisions API
見つけた誤り(20件中) 19 18 17
うち日本語(8件中) 8 8 7
誤検知(正しい値 61件中) 24 11 7
正しい値を正しいと判定(61件中) 37 50 54
応答時間の中央値 約1.12秒 約0.31秒 約0.63秒
入力トークン(1回平均) 1,749 3,268 2,257

Gemini Decision 1 は誤りの見落としが最も少なかった一方で、正しい値についても24件を誤りと判定してしまい、正しいと判定できたのは61件中37件にとどまりました。
正しい値を正しいと判定できた件数は、Decisions API が54件、Jev が50件でした。
誤検知となったケースの多くは、正しい値に対して 0.5〜0.8 程度の確率を出力したものでした。
たとえば、SROIE のレシートの店名(BOOK TA .K (TAMAN DAYA) SDN BHD)については、正しい値であるにもかかわらず 0.26〜0.38 という確率を出力しています(印字がかすれていて読みにくい箇所であり、Jev と Decisions API も同様に 0.8 未満でした)。

2.2 閾値を変えたとき

Gemini Decision 1 の確率は正しい値であっても低めに出る傾向が見られたため、判定の閾値を変えて比較してみました。

閾値ごとの、見つけた誤り・誤検知・正しい値を正しいと判定した件数

表内の数値は、見つけた誤り/誤検知/正しい値を正しいと判定を表しています。

閾値 Gemini Decision 1 Jev Decisions API
0.5 18/4/57 15/3/58 16/5/56
0.6 19/6/55 16/6/55 16/6/55
0.7 19/12/49 16/10/51 16/6/55
0.8 19/24/37 18/11/50 17/7/54
0.9 20/55/6 19/17/44 17/9/52

Gemini Decision 1 は、閾値を 0.8 や 0.9 に上げると、正しい値を正しいと判定できる件数が極端に減ります(61件中、0.8 で37件、0.9 で6件)。
一方で、誤りのすり抜けはどの閾値でも少なく、0.6〜0.8 では20件中19件を検出できています。
このグラフを見る限り、Gemini Decision 1 は閾値を 0.7 くらいにしておくと、ちょうどよいバランスになりそうだと感じました。

2.3 見落とした誤り

3モデルのうち、どれか1つでも見落とした誤りを載せます。
数値は「画像と同じ」の確率で、太字が閾値 0.8 以上、つまり誤りを見落としたものです。

書類 項目 渡した値 正しい値 Gemini Decision 1 Jev Decisions API
IRS の申告書 名 Lynnette Lynette 0.90 0.98 0.00
IRS の申告書 16a 年金 36,582 36,852 0.48 0.87 1.00
キャメルマート 日付 2022年9月7日 13:07 2022年9月17日 13:07 0.12 0.00 0.99
論文掲載料の請求書 顧客 ID UCSFDO0005 UCSFD00005 0.41 0.15 1.00

申告書の名前の n が1文字多い誤りについては、Gemini Decision 1 と Jev の両方が見落とす結果となりました。
一方の Decisions API は、数字の並び替えや 0 と O の違いといった誤りに対して、確率 1.00 で「同じ」と判定してしまっています。

3. 全件の結果

結果はこちらになります。太字は、閾値 0.8 の条件で判定を外してしまった項目です

書類 版 項目 渡した値 正しい値 Gemini Jev Decisions API
aeon 誤りなし store マックスバリュ松山店 マックスバリュ松山店 0.83 0.64 0.99
aeon 誤りなし date 2019/11/9(土) 20:20 2019/11/9(土) 20:20 0.50 0.70 1.00
aeon 誤りなし tax_8 ¥18 ¥18 0.86 0.94 1.00
aeon 誤りなし total ¥246 ¥246 0.85 0.98 1.00
aeon 誤りなし change ¥254 ¥254 0.83 0.96 1.00
aeon 誤りA store マックスバリユ松山店(誤り) マックスバリュ松山店 0.52 0.74 0.00
aeon 誤りA date 2019/11/9(土) 20:20 2019/11/9(土) 20:20 0.48 0.60 1.00
aeon 誤りA tax_8 ¥18 ¥18 0.88 0.97 1.00
aeon 誤りA total ¥264(誤り) ¥246 0.13 0.00 0.00
aeon 誤りA change ¥254 ¥254 0.86 0.98 0.94
aeon 誤りB store マックスバリュ松山店 マックスバリュ松山店 0.91 0.60 0.10
aeon 誤りB date 2019/11/8(土) 20:20(誤り) 2019/11/9(土) 20:20 0.08 0.01 0.00
aeon 誤りB tax_8 ¥18 ¥18 0.78 0.95 1.00
aeon 誤りB total ¥246 ¥246 0.79 0.98 1.00
aeon 誤りB change ¥500(誤り) ¥254 0.20 0.02 0.00
camel 誤りなし store キャメルマート 秋田八幡平店 キャメルマート 秋田八幡平店 0.81 0.96 1.00
camel 誤りなし date 2022年9月17日 13:07 2022年9月17日 13:07 0.80 0.95 1.00
camel 誤りなし tax_10 ¥33 ¥33 0.82 0.97 1.00
camel 誤りなし tax_8 ¥24 ¥24 0.72 0.88 1.00
camel 誤りなし total ¥697 ¥697 0.84 0.99 1.00
camel 誤りなし cash ¥702 ¥702 0.81 0.98 1.00
camel 誤りA store キャメレマート 秋田八幡平店(誤り) キャメルマート 秋田八幡平店 0.47 0.50 0.06
camel 誤りA date 2022年9月17日 13:07 2022年9月17日 13:07 0.77 0.96 1.00
camel 誤りA tax_10 ¥38(誤り) ¥33 0.05 0.00 0.00
camel 誤りA tax_8 ¥24 ¥24 0.77 0.97 0.97
camel 誤りA total ¥697 ¥697 0.83 0.99 1.00
camel 誤りA cash ¥702 ¥702 0.75 0.99 1.00
camel 誤りB store キャメルマート 秋田八幡平店 キャメルマート 秋田八幡平店 0.83 0.98 1.00
camel 誤りB date 2022年9月7日 13:07(誤り) 2022年9月17日 13:07 0.12 0.00 0.99
camel 誤りB tax_10 ¥33 ¥33 0.84 0.98 1.00
camel 誤りB tax_8 ¥24 ¥24 0.67 0.94 0.95
camel 誤りB total ¥697 ¥697 0.77 0.99 1.00
camel 誤りB cash ¥697(誤り) ¥702 0.11 0.01 0.00
wiki 誤りなし invoice_no 000277511 000277511 0.90 0.89 1.00
wiki 誤りなし invoice_date 8/12/2016 8/12/2016 0.89 0.94 1.00
wiki 誤りなし customer_id UCSFD00005 UCSFD00005 0.93 0.88 1.00
wiki 誤りなし amount_due $3,900.00 $3,900.00 0.85 0.91 1.00
wiki 誤りなし due_date 11 Sep 2016 11 Sep 2016 0.86 0.88 1.00
wiki 誤りA invoice_no 000277517(誤り) 000277511 0.29 0.00 0.00
wiki 誤りA invoice_date 8/12/2016 8/12/2016 0.69 0.96 1.00
wiki 誤りA customer_id UCSFDO0005(誤り) UCSFD00005 0.41 0.15 1.00
wiki 誤りA amount_due $3,900.00 $3,900.00 0.75 0.92 1.00
wiki 誤りA due_date 11 Sep 2016 11 Sep 2016 0.82 0.95 1.00
wiki 誤りB invoice_no 000277511 000277511 0.85 0.86 1.00
wiki 誤りB invoice_date 8/12/2016 8/12/2016 0.72 0.91 1.00
wiki 誤りB customer_id UCSFD00005 UCSFD00005 0.88 0.87 1.00
wiki 誤りB amount_due $3,600.00(誤り) $3,900.00 0.09 0.00 0.00
wiki 誤りB due_date 8/31/2016(誤り) 11 Sep 2016 0.17 0.00 0.00
irs 誤りなし first_name Lynette Lynette 0.93 0.99 1.00
irs 誤りなし last_name Heather Heather 0.90 0.98 1.00
irs 誤りなし address 2525 Juniper St. 2525 Juniper St. 0.84 0.97 1.00
irs 誤りなし line_8a_taxable_interest 623 623 0.88 0.98 0.73
irs 誤りなし line_10_tax_refunds 375 375 0.86 0.95 1.00
irs 誤りなし line_16a_pensions 36,852 36,852 0.81 0.94 1.00
irs 誤りA first_name Lynnette(誤り) Lynette 0.90 0.98 0.00
irs 誤りA last_name Heather Heather 0.85 0.98 0.88
irs 誤りA address 2525 Juniper St. 2525 Juniper St. 0.81 0.97 1.00
irs 誤りA line_8a_taxable_interest 623 623 0.86 0.98 0.96
irs 誤りA line_10_tax_refunds 375 375 0.80 0.96 1.00
irs 誤りA line_16a_pensions 36,582(誤り) 36,852 0.48 0.87 1.00
irs 誤りB first_name Lynette Lynette 0.92 0.99 1.00
irs 誤りB last_name Heather Heather 0.88 0.98 1.00
irs 誤りB address 2552 Juniper St.(誤り) 2525 Juniper St. 0.09 0.02 0.00
irs 誤りB line_8a_taxable_interest 375(誤り) 623 0.08 0.00 0.00
irs 誤りB line_10_tax_refunds 375 375 0.64 0.96 0.83
irs 誤りB line_16a_pensions 36,852 36,852 0.77 0.90 0.98
sroie 誤りなし company BOOK TA .K (TAMAN DAYA) SDN BHD BOOK TA .K (TAMAN DAYA) SDN BHD 0.26 0.61 0.14
sroie 誤りなし document_no TD01167104 TD01167104 0.89 0.05 0.57
sroie 誤りなし date 25/12/2018 8:13:39 PM 25/12/2018 8:13:39 PM 0.79 0.26 1.00
sroie 誤りなし total 9.00 9.00 0.64 0.97 1.00
sroie 誤りなし cash 10.00 10.00 0.77 0.92 1.00
sroie 誤りA company BOOK TA .K (TAMAN DAYA) SDN BHD BOOK TA .K (TAMAN DAYA) SDN BHD 0.31 0.58 0.07
sroie 誤りA document_no TD01161704(誤り) TD01167104 0.35 0.00 0.18
sroie 誤りA date 25/12/2018 8:13:39 PM 25/12/2018 8:13:39 PM 0.69 0.52 1.00
sroie 誤りA total 9.08(誤り) 9.00 0.11 0.00 0.00
sroie 誤りA cash 10.00 10.00 0.66 0.95 1.00
sroie 誤りB company BOOK TA .K (TAMAN DAYA) SDN BHD BOOK TA .K (TAMAN DAYA) SDN BHD 0.38 0.57 0.42
sroie 誤りB document_no TD01167104 TD01167104 0.89 0.13 0.33
sroie 誤りB date 25/12/2018 8:18:39 PM(誤り) 25/12/2018 8:13:39 PM 0.14 0.00 0.78
sroie 誤りB total 9.00 9.00 0.60 0.99 1.00
sroie 誤りB cash 1.00(誤り) 10.00 0.22 0.71 0.00

4. まとめ

Gemini Decision 1・Jev・Decisions API に、書類5件の画像と OCR の値を渡し、わざと入れた誤りを探させてみました。

Gemini Decision 1 でも、OCR の値の誤りは見つけられるようになっています。
また、同じ画像を渡しても入力トークンが他の2モデルより少なく済みました。
以前 Gemini のモデルを検証したときも同じ結果だったので、Gemini 系のモデルの特徴なのかもしれません。
日本語の書類にも実用レベルで使えそうな感じがあります。

ただし、閾値の感覚は Jev とは違います。
実際に組み込むときは、用途に近いテストデータを用意して、どの閾値にするかを判断する必要があると感じました。

参考


AI白書2026 配布中

クラスメソッドが独自に行なったAI診断調査をもとに、企業のAI活用の現在地を調査レポートとしてまとめました。企業規模別の活用度傾向に加え、規模を超えてAI活用を進める企業に共通する取り組みまで、自社の現在地を捉えるためのヒントにぜひ。

AI白書2026

無料でダウンロードする

この記事をシェアする

関連記事