space ocr
ガイド記事料金ドキュメント
developer

同じ書類、同じスキーマ、違う答え: space-ocr vs Mistral

難しい書類8枚・463フィールド・エンジンごと3回の統制ベンチマーク。読取率、実行間の安定性、そしてスコア表に見えない座標の差。

6 分で読了· 2026-08-08

OCRベンダーのデモはどこも、きれいに印刷された請求書を完璧に読む。うちも例外ではない。ただ、それは導入判断には何の情報にもならない。本当に重要な問いは三つ。難しい書類ではどうなるのか。同じページを二度走らせたら答えは変わるのか。そして間違った値を、全件を手で確認し直さずにどう見つけるのか。

だから測った。自社の回帰コーパスから最も難しい8枚を選び、space-ocrとMistral Document AIにまったく同じリクエストを送り、同じスクリプトで採点した。この記事はその結果で、反論したい人が正確に反論できるだけの方法を書いてある。

設計はこうだ。実物の書類8枚(日本語の納品書数枚、商品名と数量・単価が2行に分かれるスーパーのレシート、モニターを撮影した22行の卸売相場表、報酬明細書)、採点可能なフィールド463個。3つのアームすべてに同じ画像、同じフィールドスキーマ、同じ「印字どおりに抽出」の指示。space-ocr本番のフィールド抽出API、MistralのOCR+JSONスキーマ注釈(mistral-ocr-latest)、Mistralのビジョン LLM+構造化出力(mistral-medium)。アームごとに3回実行し、空白除去後の完全一致で採点、72回分の生出力をすべて保存。2026年8月。

ベンチマーク結果カード: 書類8枚463フィールドでspace-ocr 91.1%、Mistral OCR 70.0%、Mistralビジョン LLM 73.5%
難しい書類8枚、463フィールド、各3回、同じスキーマと採点スクリプト。2026年8月。

結果から。space-ocrは463フィールドの91.1%を完全一致で読んだ(3回平均)。MistralのOCR注釈は70.0%、ビジョンLLMは73.5%。差が書式ノイズでないことを確かめるため、区切り記号や空白だけが違う不一致をすべて除いて内容の誤りだけ数えても、1回あたりspace-ocr約23件に対しMistralの2アームは119件と93件だった。

一般化する前に知っておくべきことがある。Mistralは文字をよく読む。このセットで最もきれいな書類、22行の印刷された相場表では141中139でうちと同点だった。差が開くのは書類が構造的に厄介になるときだ。商品名が上の行、数量と単価が下の行に印字されるレシートでMistralは1回あたり13中2.3にとどまった。合計ブロックを商品行に取り込み、2行を対にできなかった。乱雑な納品書では数量が規格の列に入った。文字はおおむね合っている。その文字が収まった表が違うのだ。

一貫性はそれ自体が発見だった。同一入力の3回で、うちの合計は16フィールド動いた。Mistral OCRは100フィールド動いた。1時間前に72中58を読んだ書類が次の実行で3になり、43行の表のすべての列が音もなく入れ替わっていた。いま支払った実行がどちらの類いだったのか、レスポンスのどこにも書いていない。

並べて比較: space-ocrは22行の相場表にフィールドごとの枠138個を描き、Mistralは表全体を覆う長方形1つを返す
同じ相場表を両エンジンに通した結果。左はフィールドごとに枠が1つ、右は表全体でブロック1つ。

この画像こそが本当の論点で、どのスコア表にも出てこない。あの相場表でspace-ocrは138個の枠を返した。フィールドごとに1つ、読み取ったピクセルに結び付いて。Mistralは表全体に長方形1つを返した。レスポンスにフィールド単位の座標というものが存在しないからだ。どの書類でも。ブロックの輪郭が最高解像度になる。検証シグナルも一切ない。Mistralの値が間違うときは静かに間違い、見つける方法は全件の確認しかない。

space-ocrの値には枠、その枠の下の文字が値と一致するかを示すtext_verified、理由付きのneeds_reviewが付き、今回のリリースからはocr_confidenceのスコアと、ページ内で繰り返される値のためのlabelアンカーも付く。このベンチマークの正直な要約は、Mistralが読めない、ではない。きれいな印刷物なら読める。片方のAPIはどの答えを信じてよいか示し、もう片方は全部信じろと求める。それが要約だ。

✓ Verified

検証の仕組み: 言語モデルは値とワードトークンのヒントだけを返し、座標は決して作らない。エンジンは返された値の一つひとつを、OCRパスが実際にページ上で検出したシンボルと文字単位で照合し、match_ratioとして採点する(0.85以上が確信マッチ)。さらに2つのエンジンを相互照合し、不一致は理由付きのneeds_reviewになる。枠はxmin/ymin/xmax/ymaxの0〜1000正規化。上の数字への公平性ノートを一つ: 正解データはうちのパイプラインの出力慣行で凍結されているため、うちを含むすべてのライブエンジンが境界分割の差で減点される。絶対値は下限として、相対比較を結論として読んでほしい。方法の全文と72回分の生出力は保存してある。

価格も、ベンチマーク記事らしく率直に。成功したスキャン1枚$0.05、失敗は自動返金、毎月最初の100枚はカード登録なしで無料。誰かのグラフを信じる前に、この記事のグラフも含めて、自分の書類5枚を両方のAPIに通してみてほしい。下の手順が、うちが使った手続きそのものだ。

  1. デモではなく痛い書類を選ぶ
    複数行レコード、繰り返す値、画面を撮った写真、密な表など、実際に苦労させられるページを5〜10枚。きれいなサンプルではベンダーの差は出ません。
  2. スキーマと指示を1つに固定する
    フィールド一覧を一度だけ書き、同じ名前と説明で全エンジンに同一送信します。値は印字どおりに要求してください。
  3. 正解データは先に手で書く
    何かを走らせる前にフィールドごとの期待値を書き写し、その後は編集しません。
  4. 各エンジンを最低3回走らせる
    1回の実行は不安定さを隠します。すべての実行を同じスクリプトで採点し、平均ではなくばらつきを見てください。
  5. 静かな誤りを別に数える
    間違った値ごとに、エンジンがフラグを付けたかを記録します。フラグ付きの誤答は一瞥のコストですが、シグナルのない誤答はその上に築いたプロセス全体のコストです。
Mistral OCRは書類を読めないということですか?
いいえ。きれいで密な印刷物では文字の読み取りはうちと同点でした。測定された差は、書類構造の扱い(複数行レコードの対応付け、表の列の維持)、実行間の安定性、そしてフィールド単位の座標と信頼シグナルの不在にあります。
このベンチマークは再現できますか?
はい。コーパスの定義、実際のリクエスト、採点スクリプト、72回分の生出力がすべて保存されています。同じ画像、同じスキーマ、同じ指示、同じ採点、アームごと3回という方法を本文に記載しています。
ベンダー自身のベンチマークをなぜ信じるべきですか?
結論ではなく出発点として読んでください。方法と注意点、Mistralが同点だったケースまで公開しています。最も強い根拠は、1回の呼び出しで自分で確かめられる構造的な差です。片方はフィールド単位の座標とレビューフラグを返し、もう片方は返しません。
space-ocrはすべての書類で勝ちますか?
いいえ。最もきれいな印刷の表では両エンジンが同じ数のフィールドを読みました。コーパス全体で維持された差は、構造の扱い、実行間の一貫性、検証レイヤーでした。
フィールド単位の座標は実際に何をくれますか?
監査可能性です。値をクリックしてどこから読まれたかを確認し、全件ではなくフラグの付いたフィールドだけをレビューし、間違った値がスプレッドシートやERPに入る前に捕まえられます。

自分でベンチマークを

毎月100枚無料。すべての値が枠と信頼判定つきで返ってくる。