Ollama の画像認識で伝票を読めるか — Gemma 4・Qwen3.6・qwen3-vl を、架空の見積書・注文書 13 枚で比べた(RTX 5060 Ti 16GB)
CONTENTS目次(7)
この記事の結論
- PDF と中程度の劣化のスキャン 8 枚では、Qwen3.6-35B-A3B の派生モデルが 48 項目中 47、Gemma 4 26B が 46 を正しく読めた。1 枚 17〜21 秒(平均)。6.1GB の qwen3-vl:8b-instruct は 43、Gemma 4 12B は 41 で、取りこぼしは金額の読み違いと、税率ごとに 2 行に分かれた消費税の合計に集まった。
- 強い劣化のスキャンでは、Gemma 4 26B だけが 24 項目中 19 を保ち、ほかの 3 本は 7〜8 に落ちた。発行日の年(2026 → 2025)と金額の桁の読み違いが多い。赤字で単価を手書きで直した注文書で、訂正を反映して合計まで計算し直せたのは Qwen3.6 の派生モデルだけだった。
- Ollama の既定の
qwen3-vl:8bは「考える版」で、think: falseを付けても裏で考え続けた。注文書 3 枚のうち 2 枚は、出力の上限 4,096 トークンを考えるだけで使い切り、本文が空だった。考えない版のqwen3-vl:8b-instructを指定すれば起きない。
画像を読める LLM(VLM。Vision Language Model)は、写真や PDF の中身を読んで、文章や JSON で返せます。見積書・注文書を読んで転記する作業を、画像をクラウドに送らずに手元の GPU で済ませられるかを確かめました。使ったのは、Ollama でそのまま動く画像対応のモデル 4 つです。数字は 2026年9月29日〜10月1日時点のものです。
試したのは、架空の会社の見積書・注文書 13 枚です。枚数が少ないので、モデルを選ぶときの目安として読んでください。途中で、指示文に入れた例が試す伝票と重なっていたことに気づき、例を替えて測り直しました。その経緯も下に書いています。
測った環境
| 項目 | 内容 |
|---|---|
| GPU | GeForce RTX 5060 Ti 16GB(電力の上限 180W) |
| CPU・メモリ | Core i5-12400F・DDR4-3200 32GB |
| OS・ドライバ | Windows 11・NVIDIA ドライバ 610.47 |
| Ollama | 0.34.4。/api/chat に画像を添えて 1 枚ずつ送った |
| 共通の設定 | temperature 0.1、format: "json"(JSON だけを返させる指定)、思考を持つモデルには think: false |
| 文脈と出力の上限 | 文脈 16,384・出力 4,096 トークン |
| モデル(Ollama のタグ) | 中身 | 大きさ |
|---|---|---|
| qwen3-vl:8b-instruct | Qwen3-VL-8B の考えない版(Q4_K_M) | 6.1GB |
| gemma4:12b-it-qat | Gemma 4 12B(量子化を前提に学習した QAT 版) | 7.2GB |
| gemma4:26b-a4b-it-qat | Gemma 4 26B-A4B(MoE・QAT 版) | 16GB |
| (Hugging Face から取り込み) | Qwen3.6-35B-A3B の派生モデル(MoE・Q4_K_M)。VRAM に入りきらず、一部はメインメモリで動く | 約 21GB |
大きさは Ollama の表示。MoE(Mixture of Experts)は、1 トークンごとに一部の層(専門家)だけを使う作りで、大きさの割に速い。
最初の注意: Ollama の qwen3-vl:8b は「考える版」
Ollama で qwen3-vl:8b を取り込むと、考える版(qwen3-vl:8b-thinking と同じもの)が入ります。考える版は答えの前に思考のトークンを書くモデルで、think: false を付けて送っても思考を止めませんでした。
「1+1 は?」と聞くと、答えは「2」だけですが、think: false を付けると 224 トークン(思考 887 字)、付けないと 163 トークン(思考 670 字)を使いました。Ollama の説明でも、think: false はモデルが対応している場合に思考を止める指定とされています。伝票では、次のようになりました。
| 同じ注文書 | qwen3-vl:8b(既定・考える版) | qwen3-vl:8b-instruct |
|---|---|---|
| 明細 2 行の PDF | 1,726 トークン・34.8 秒 | 487 トークン・14.7 秒 |
| 明細 10 行の PDF | 4,096 トークンで打ち切り・本文なし(74.7 秒) | 1,342 トークン・28.5 秒 |
| 手書きの訂正入りのスキャン | 4,096 トークンで打ち切り・本文なし(78.6 秒) | 487 トークン・14.8 秒 |
出力のトークン数(思考を含む)と 1 枚の時間。考える版には think: false を付けて送った。明細 10 行の伝票でも JSON は 1,300〜1,500 トークンで収まるので、上限が足りないのではなく、思考が上限を使い切った。2026年9月29日に測定。
JSON を返させる使い方では、考える版は時間がかかるうえに、本文が空で返ることがあります。qwen3-vl は qwen3-vl:8b-instruct のように考えない版を指定してください。以下の qwen3-vl の数字は、考えない版で測ったものです。ほかの 3 つは、この設定で思考が 1 字も出ませんでした。
伝票の読み取り: 測り方
架空の会社の見積書・注文書を 4 通作り、それぞれを PDF と、スキャンしたように劣化させた画像 2 段階の、3 通りで用意しました。これに、手書きの訂正を書き込んだ 1 枚を足して 13 枚です。
| 伝票 | 中身 |
|---|---|
| 注文書 A | 明細 2 行・標準税率(10%)だけ |
| 注文書 B | 明細 10 行・製造業の仕様欄つき |
| 見積書 C | 明細 3 行・軽減税率(8%)と標準税率(10%)が混ざる。消費税は税率ごとに 2 行 |
| 見積書 D | 明細 4 行・建設業の「一式」と諸経費 |
| 画像の種類 | 作り方 | 枚数 |
|---|---|---|
| 文字の入った PDF を、200dpi の画像にして渡した | 4 | |
| 中程度の劣化 | 150dpi・JPEG の品質 65・ぼかし・1.2° の傾き・ノイズ | 4 |
| 強い劣化 | 100dpi・JPEG の品質 45・ぼかし・2° の傾き・強いノイズ・暗め(FAX で受けたくらい) | 4 |
| 手書きの訂正 | 注文書 A の中程度の劣化の画像に、赤字の手書きで単価の訂正(¥500 → ¥800)と「※単価訂正」を書き込んだもの | 1 |
指示文は、伝票を決めた形の JSON で返させるものです(読めない所は null、金額は数値、日付は YYYY-MM-DD など)。架空の伝票 3 通ぶんの入出力の例も入れています。例の会社名・日付・金額・明細の数は、試す 13 枚のどれとも重ならない値にしました。採点は、発行日・小計・消費税・合計・取引先名・明細の行数の 6 項目が、正解と一致するかで見ました。手書きの訂正の 1 枚は、訂正を反映して計算し直した額(小計 ¥11,000・合計 ¥12,100)を正解としています。
伝票の読み取り: 結果
| モデル | 中程度の劣化 | 強い劣化 | 手書きの訂正 | 1 枚(秒) | |
|---|---|---|---|---|---|
| Qwen3.6 の派生モデル | 24 | 23 | 8 | 6 | 20.6(13.0〜33.2) |
| gemma4:26b-a4b-it-qat | 22 | 24 | 19 | 3 | 16.9(12.2〜25.8) |
| qwen3-vl:8b-instruct | 23 | 20 | 7 | 3 | 17.5(10.9〜28.7) |
| gemma4:12b-it-qat | 19 | 22 | 8 | 3 | 20.9(13.5〜34.2) |
正しく読めた項目の数(PDF・中程度の劣化・強い劣化は各 4 枚で 24 項目、手書きの訂正は 1 枚で 6 項目)。時間は、PDF と中程度の劣化の 8 枚について、要求を送ってから答えが返るまでの平均(最短〜最長)。長いのは明細 10 行の注文書 B で、出力が 1,300〜1,500 トークンある。どのモデルも、13 枚すべてで JSON として読める形で返した。2026年10月1日に測定。
- PDF と中程度の劣化の 8 枚(48 項目)では、Qwen3.6 の派生モデルが 47、Gemma 4 26B が 46 を読めました。明細の行数は、4 本とも 8 枚すべてで合っています
- 取りこぼしの多くは見積書 C の消費税です。C の消費税は「8%: ¥4,040」「10%: ¥200」の 2 行に分かれていて、正解はその合計の ¥4,240 です。qwen3-vl は 8% の行の ¥4,040 だけを返し、Gemma 4 の 2 本は ¥4,440〜¥4,640 と足し算を誤って、合計もその税で計算し直していました(Gemma 4 26B の取りこぼしは、PDF のこの 2 項目だけです)
- ほかに、qwen3-vl(中程度の劣化)と Gemma 4 12B(PDF)は、注文書 A の小計 ¥8,000 を ¥9,000 と読みました。Qwen3.6 の派生モデルの取りこぼしは、見積書 D で宛先の会社名を取引先名として返した 1 項目だけです
- 強い劣化では、Gemma 4 26B が 24 項目中 19 を読み、ほかの 3 本は 7〜8 に落ちました。多いのは発行日の年の読み違い(2026 → 2025)と、金額の桁の読み違い(小計 ¥691,200 を ¥261,200・¥671,200、¥122,460 を ¥122,400 など)です
- 手書きの訂正を反映して、小計・消費税・合計(¥11,000・¥1,100・¥12,100)まで計算し直せたのは、Qwen3.6 の派生モデルだけでした。Gemma 4 の 2 本は印刷された額(¥8,000・¥800・¥8,800)のまま答え、qwen3-vl は ¥9,000 と読みました。どれも、印刷された合計は直していない伝票です
指示文の例は、試す伝票と分けておく
最初(2026年9月29日)は、読み取りの仕組みの試作で使っていた指示文をそのまま使いました。測った後で確かめると、その例 3 通のうち 1 通は注文書 A と 6 項目すべてが同じ値で、残りの 2 通も、見積書 C・注文書 B と発行日と取引先名が同じでした。例を写すだけで点が入る状態です。例の値だけを重ならないものに替えて、同じ 4 本・同じ 13 枚・同じ設定で測り直したのが上の表です。
| PDF と中程度の劣化 8 枚の一致率 | 例が重なっていたとき | 例を替えた後 |
|---|---|---|
| Qwen3.6 の派生モデル | 0.958 | 0.979 |
| gemma4:26b-a4b-it-qat | 0.917 | 0.958 |
| qwen3-vl:8b-instruct | 0.958 | 0.896 |
| gemma4:12b-it-qat | 0.854 | 0.854 |
qwen3-vl は例を替えると下がり、ほかの 2 本は逆に上がりました。手書きの訂正の 1 枚では、例が重なっていたとき 4 本とも、例と同じ ¥8,000・¥8,800 を答えています。例は答えの形を教えるためのものですが、値まで写されることがあります。自分の伝票でモデルを比べるときは、例に使う伝票と、試す伝票を分けてください。
使い分けの目安
- 任せやすい: PDF や読みやすいスキャンから、発行日・取引先名・合計・明細の行数を拾って JSON にする作業。Gemma 4 26B(16GB)か、Qwen3.6-35B-A3B 系(MoE・一部をメインメモリに置いて動く)で、1 枚 17〜21 秒でした
- 人が確かめる前提にする: 税率が 2 つある伝票の消費税の合計、強く劣化したスキャン(最も強かった Gemma 4 26B でも 24 項目中 5 を誤った)、手書きの訂正
- VRAM が 8GB 前後なら: qwen3-vl:8b-instruct(6.1GB)は PDF をほぼ読めたが、中程度の劣化で金額の読み違いが出た
- Ollama のタグ: qwen3-vl は
-instructの付いた考えない版を指定する(既定のqwen3-vl:8bは考える版)
測っていないこと
- 明細の中身(品名・数量・単価・金額)の正しさ。今回は明細の行数だけを見た
- 実物の伝票。今回は架空の会社の伝票を作り、スキャンの劣化も画像処理で付けた。写真で撮った伝票や、複数ページの伝票も試していない
- 同じ 13 枚での、クラウドのモデルとの比較
- 同じ条件の繰り返し。各 1 回(temperature 0.1)なので、1〜2 項目の差は偶然の範囲かもしれない
- 量子化(Q8_0 など)や、画像の解像度を変えた場合
- 伝票以外の画像。監視カメラ風の画像の説明も試したが、正解を用意できたのが図形で描いた合成画像だけで、精度を測るには向かないので載せていない
まとめ
- PDF と中程度の劣化のスキャンなら、上位 2 本は発行日・取引先名・金額・明細の行数の 9 割以上を読めた(Qwen3.6 の派生モデル 47/48・Gemma 4 26B 46/48・1 枚 17〜21 秒・RTX 5060 Ti 16GB・2026年10月1日時点)
- 強い劣化に強いのは Gemma 4 26B(24 項目中 19。ほかは 7〜8)
- 税率が 2 つある消費税の合計と、手書きの訂正は、人が確かめる前提にする(訂正を反映して計算し直せたのは 4 本中 1 本)
- 指示文の例と試す伝票は分ける。重なっていると、点が高めに出るモデルがある
- Ollama で qwen3-vl を使うなら
qwen3-vl:8b-instructを指定する。既定の考える版はthink: falseでも考え続ける
出典
- Ollama の qwen3-vl のタグ一覧(大きさ・既定の 8b は考える版): https://ollama.com/library/qwen3-vl/tags
- Ollama の gemma4 のタグ一覧(大きさ・画像の入力): https://ollama.com/library/gemma4/tags
- Qwen3-VL-8B-Instruct(Hugging Face): https://huggingface.co/Qwen/Qwen3-VL-8B-Instruct
- Qwen3.6-35B-A3B(Hugging Face・派生モデルの元): https://huggingface.co/Qwen/Qwen3.6-35B-A3B
- Ollama の思考の設定(think): https://docs.ollama.com/capabilities/thinking
- Ollama の JSON の出力(format): https://docs.ollama.com/capabilities/structured-outputs
この記事は、手元の機材で行った測定をもとにした一般的な技術情報の提供を目的としており、特定の製品・ソフトウェアの購入や利用を推奨・勧誘するものではありません。伝票はすべて架空の会社のもので、実在の取引とは関係ありません。数値は 2026年9月29日〜10月1日時点の測定で、モデル・ソフトの版・設定・機材によって変わることがあります。