OCRの仕組みとは?専門用語なしで解説するステップバイステップガイド

光学文字認識(OCR)は、画像のクリーニング、テキスト検出、文字認識、出力の精緻化という一連の処理を通じて、テキスト画像を機械が読み取り可能な文字に変換する技術です。スキャンした書類を見て、コンピュータがどのようにして印刷された文字を「魔法のように」読み取るのか、あるいは時々とんでもない誤認識をするのか疑問に思ったことがあるなら、この記事ではその仕組みを、難しい言葉を使わずに、一つひとつのステップを追ってわかりやすく解説します。

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す
登録不要 · カード不要 · 10秒で結果
光学文字認識(OCR)技術は、スキャンされた書類や画像をステップバイステップのプロセスで機械が読み取り可能なテキストに変換します

重要なポイント

  1. OCRは「読んでいる」のではなく、未知のピクセルの塊を、保存された文字の形のライブラリと比較する、精密なマッチングゲームをしているのです。「T」という文字を、それが「Total」の最初の文字だからではなく、そのストロークで認識します。
  2. OCRの最も危険なエラーは目に見えないことです。隣り合った文字が一つに結合してしまうと(「rn」が「m」になるなど)、出力は依然として有効な英単語のように見え、後続のすべての処理がその誤りを真実として扱います。
  3. 文字認識率が99%でも、データフィールドの15~40%にはエラーが含まれている可能性があります。なぜなら、OCRは「このページにどんな文字があるか?」という問いに答えるのであって、「これらの数字のうち、どれが請求書の合計金額か?」という問いに答えるわけではないからです。

OCRが実際に行うこと(そして行わないこと)

OCRは魔法のような単一の処理ではなく、ピクセルをテキストに変換する4段階の組み立てラインです。 あなたが、これまで文字言語を見たことのない人に読み方を教えなければならないと想像してみてください。まず、ページ上のいくつかの印が文字であり、他は単なる汚れや紙の質感であることを認識できるように助けることから始めるでしょう。次に、各文字には認識可能な形があること — 大文字のAは、どのフォントで表示されても、おおよそ三角形の形と横棒を持つこと — を教えます。その後初めて、文字を単語に、単語を文に組み合わせることを学び始めることができます。これこそがOCRエンジンの仕組みそのものです。文書を層ごとに処理し、基礎から段階的に理解を構築していきます。

しかし、重要な落とし穴があります。OCRは形を読み取るのであって、意味を理解するわけではありません。エンジンは一連のストロークが文字「T」を形成することを知っていますが、「T」が「Total」や「Tax」の最初の文字であることはまったく認識しません。文書をデジタル化するのであって、理解するわけではないのです。 この違いこそが、OCR出力が検索可能なPDFには有用である一方、スプレッドシートで構造化データが必要な場合には不十分である理由です。OCRとは何か、その3つの技術世代についての完全な概要は、OCRとは何か、そしてその進化に関するガイドをご覧ください。

一目でわかる4ステップのOCRパイプライン

無料のTesseractから商用システムに至るまで、すべてのOCRエンジンは同じ4ステップのワークフローに従います。 これを、各ステーションが1つの特定の役割を持つ工場の組み立てラインと考えてください。あるステーションの出力が次のステーションの入力になります。どのステーションでも仕事が不十分であれば、下流のすべてのステーションで結果が悪化します。

1

前処理

画像をクリーニング。ノイズ除去、傾き補正、コントラスト調整。エンジンは、はっきり見えないものは読み取れません。

2

テキスト検出

テキストを見つける。画像のどの部分に文字が含まれ、どの部分に写真、ロゴ、空白があるかを識別。その後、テキストを行、単語、個々の文字に分割。

3

文字認識

各文字の形状を、既知の文字、数字、記号のライブラリと照合して識別。これがOCRの中核ステップであり、他のすべてはこれを支援します。

4

後処理

出力を洗練。辞書と照合して単語をチェック、文脈を使用して曖昧な文字を解決、出力ファイル用にテキストをフォーマット。

それでは、各ステップを詳細に見ていきましょう — エンジンが実際に行うこと、それが重要な理由、そして理解を助ける具体的な例えとともに。

ステップ1 — 前処理:読み取り前の画像クリーニング

エンジンが1文字を認識する前に、認識工程の妨げとなる要素を除去するため、画像をクリーニングする必要があります。これは、本を読む前に眼鏡を拭くのと同じです。レンズが曇っていたり、傾いていたり、傷がついていたりすると、文字をはっきり読むことはできません。

OCRエンジンに届くスキャン文書が完璧な状態であることはほとんどありません。ページがスキャナーに少し斜めに置かれている場合があります(これをスキューと呼びます)。スキャンには、ほこりの斑点、FAXのアーティファクト、または本の背表紙の影が含まれていることもあります。インクと用紙のコントラストが低い場合もあり、特に古い文書、カーボンコピー、かすれたレシートなどで顕著です。前処理段階では、実際の読み取りを開始する前に、これらすべてを修正します。

最も重要な前処理ステップは二値化です。これは、テキストを背景から分離するしきい値を使用して、画像を純粋な白黒に変換する処理です。大津の二値化と呼ばれる一般的な手法では、ピクセル強度のヒストグラムを分析し、最適なしきい値を自動的に選択します。白い紙に黒い文字がくっきりと浮かび上がったスキャン文書を見たことがあれば、それが二値化の結果です。

その他の前処理操作には、傾き補正(画像を回転させて傾いたテキストをまっすぐにする)、ノイズ除去(ほこりの斑点やスキャナーアーティファクトを除去する)、ゴミ取り(句読点やダイアクリティカルマークと誤認される可能性のある不要な点を除去する)、コントラスト正規化(薄い文字が読みやすくなるように明るさを調整する)などがあります。

この段階で、多くのOCRの失敗の原因がすでに作り込まれています。二値化によって小文字の尾部が切り落とされたり、隣接する文字が塊になって結合されたりすると、認識アルゴリズムがどれほど高度であっても、それらを正しく認識することは不可能です。ゴミを入れればゴミが出てくる — OCRにおいて、この格言はすべてのピクセルに当てはまります。

前処理が不十分であれば、認識精度の低下は免れません。どんなに優れた文字マッチングエンジンでも、クリーニング段階で失われた情報を修復することはできません。

ステップ2 — テキスト検出:文字の位置を特定する

画像がきれいになったら、次はエンジンがページのどの部分に実際にテキストがあるかを判断します。 これがレイアウト解析フェーズです。新聞のページを見るのを想像してください。見出し、写真のキャプション、サイドバー、引用文の違いは一目でわかりますが、OCRエンジンはこれをピクセル単位で学習しなければなりません。

エンジンは前処理済みの画像をスキャンしてテキスト領域(文字が密集したエリア)を特定し、画像、ロゴ、装飾枠、空白スペースから分離します。その後、各テキスト領域を徐々に小さな単位に分割します。

1. ブロック — 関連するコンテンツ(テキストの段組、表、ヘッダーなど)を含む大きな矩形領域。

2. 行 — 各ブロック内で、文字を含む水平方向のピクセル帯を検出して個々のテキスト行を特定。

3. 単語 — 各行内で、文字形状間の間隔を測定して文字を単語にグループ化。

4. 文字 — 最後に、各単語を個々の文字セグメントに分割し、認識エンジンに渡す。

この一見単純なステップには、大きな課題が潜んでいます。それはプロポーショナルフォントです。プロポーショナルフォントでは、2つの文字(例:「r」と「n」)の間のスペースが、圧縮された書体で設定された2つの単語の間のスペースよりも広くなることがあります。エンジンは、その隙間が同じ単語内の2文字を区切るものか、それとも2つの単語を区切るものかを判断しなければなりません。典型的な文字幅、空白のしきい値、言語固有のパターンなどのヒューリスティックを使用しますが、これらのヒューリスティックが常に正しいとは限りません。誤判断が起きると、単語が誤って結合または分割され、後続のすべてのステップにその誤りが引き継がれます。

検出エラーは、最も厄介なタイプのOCR障害です。なぜなら、エラーに見えないからです。結合された単語は、人間のレビュアーには正しい(ただし見慣れない)単語に見えます。 エンジンが「rn」を「m」と読み取ると、「commercial」が「commeicial」になります。これはスペルチェッカーで検出できますが、出力がスペルチェックを通過した場合に限ります。

ステップ3 — 文字認識:OCRの核心

人々が「OCR」と言うとき、実際に指しているのはこのステップです。エンジンは切り出された個々の文字画像を分析し、それがどの文字、数字、記号かを判断します。 子どもがフラッシュカードでアルファベットを覚える様子を想像してみてください。ArialのA、Times New RomanのA、手書きのAなど、異なるフォントで書かれた文字Aの絵を見せ、スタイルに関係なく認識できるようになるまで繰り返します。OCRエンジンも同じことを行いますが、数百万枚ものフラッシュカードを保持し、それをミリ秒単位で処理します。

文字認識には、大きく分けて2つのアプローチがあります。

パターンマッチング(テンプレートOCR) — エンジンは既知のフォントやサイズの文字画像(グリフ)をデータベースに保持します。新しい文字に遭遇すると、そのピクセルパターンを保存された各グリフと比較し、最も近いものを選択します。このアプローチは数十年にわたって標準的な手法であり、1974年にHP研究所で開発され、現在はGoogleがメンテナンスするオープンソースOCRエンジンTesseractなどで採用されています。パターンマッチングは、文書がエンジンにとって既知のフォントを使用している場合にうまく機能します。しかし、フォントが珍しい場合、テキストが手書きの場合、または画像品質が低下した場合には失敗します。これは、入力が保存されたテンプレートと類似しなくなるためです。

特徴抽出(インテリジェントOCR) — エンジンはピクセルパターン全体を比較する代わりに、各文字を構成する特徴(線、曲線、ループ、交差点、端点、角度)に分解します。文字「A」は一点で交わる2本の斜線と水平の横棒を持ちます。文字「O」は単一の閉じたループを持ちます。フォントやサイズに関係なくこれらの特徴を識別することで、エンジンはこれまで見たことのない文字でも認識できます。最新のOCRエンジンのほとんどはこのアプローチを採用しており、多くの場合、EMNIST(拡張MNIST)— 81万4255個のラベル付き文字画像(数字、大文字小文字を含む)からなるデータセット — で訓練されたニューラルネットワークによって強化されています。

両方のアプローチに共通する重大な限界は、形状を識別するだけで意味を理解しないことです。エンジンは、あるピクセル群が文字「5」であると99%の確信を持って答えることはできますが、その「5」が数量なのか、価格なのか、日付なのか、部屋番号なのか、型番なのかを教えることはできません。 文字を孤立した記号として読み取るだけで、一貫性のある文書の一部としては捉えません。これが、従来のOCRエンジンがきれいな請求書で99%の文字認識精度を達成しながらも、出力から請求書の合計金額を見つけられない理由です。すべての文字は正しいものの、どれもラベル付けされていないからです。

このステップが従来のOCRと最新のAIベースのアプローチでどのように異なるか、文書タイプ別の精度ベンチマークを含む詳細な比較については、AI OCRと従来型OCRの精度比較をご覧ください。

ステップ4 — 後処理:出力を読みやすくする

文字認識ステップの生の出力は、推測された文字列です。正しいものもあれば、そうでないものもあり、すべて文脈が欠けています。後処理では、エンジンが自身の誤りを修正しようとします。 これは非常に強力な自動修正システムと考えてください。単なる辞書検索ではなく、周囲の文脈に基づいて「there」「their」「they're」の違いを認識します。

最も一般的な後処理技術は次のとおりです。

辞書による修正

エンジンは認識された各単語を言語辞書と照合します。「reciept」があれば「receipt」に修正されます。単語「m0del」の中間文字が「O」か「0」か不明な場合、辞書によって「model」であることが確認されます。

文脈に基づく曖昧性の解消

数字の「1」と小文字の「l」のように文字が曖昧な場合、エンジンは周囲の文字を調べて判断します。「C1ient」は「Client」に修正されます(「C1ient」は単語ではないため)。一方、「Page 1」では数字が維持されます(「Page l」は意味をなさないため)。

信頼度スコアリング

認識されたすべての文字に信頼度スコアが割り当てられます。信頼度の低い領域は、人間による確認のためにフラグを立てたり、異なる認識パラメータで再処理したり、別のアルゴリズムを使用した二次認識パスに渡したりできます。

フォーマット再構築

エンジンは認識されたテキストを元の文書レイアウトに再構成します。改行、段落間隔、表の配置、読み取り順序を保持します。このステップにより、元のスキャンされたページのように見える検索可能なPDFが生成されます。

これらすべてのインテリジェンスにもかかわらず、後処理には根本的な限界があります。スペルミスは修正できますが、意味を追加することはできません。出力 $1,234.56 が有効な通貨額であることはわかりますが、エンジンはそれが請求書の合計なのか、明細の小計なのか、税額なのか、参照番号なのかをまだ認識していません。後処理によってテキストは読みやすくなりますが、データとして使用可能になるわけではありません。

すべてを変える違い — 従来のOCR vs AI抽出

上記の4段階パイプラインは従来のOCRアプローチであり、1990年代から根本的には変わっていません。現代のAIベースの抽出は、すべての段階で異なる方法で機能します。

この対比を理解することで、従来のOCRが検索可能なPDFやテキストアーカイブには適している一方、構造化データ(スプレッドシート、データベース、会計システム)が必要な場合には不十分である理由が明確になります。以下の表は、各パイプライン段階が従来の手法とImageToTable.aiのような最新のAI抽出ツールでどのように異なるかを示しています。

パイプライン段階従来のOCRAI抽出(ビジョンモデル)
前処理重要 — 前処理が不十分だと認識は失敗します。二値化、傾き補正、ノイズ除去などの高度なアルゴリズム処理が必須です。重要度は低い — ビジョンモデルは中程度のノイズ、低コントラスト、傾きがあっても読み取れます。基本的な前処理は役立ちますが、必須ではありません。
テキスト検出ルールベースのヒューリスティックによる行/単語/文字のセグメンテーション。複雑なレイアウト、マルチカラム文書、混在コンテンツ(テキスト+表+画像)では機能しません。ページ全体を理解 — モデルは文字境界を検出する前に、視覚的なコンテキストから見出し、表、フッター、フィールドラベルを識別します。
文字認識固定の文字データベースに対するパターンマッチングまたは特徴抽出。各文字が個別に識別されます。モデルは視覚的なコンテキストで単語、フレーズ、値を読み取ります。「INV-2026-001」をグリフテンプレートに一致させるのではなく、その位置と周囲の情報から請求書番号として認識します。
後処理辞書補正+フォーマット再構築。出力はプレーンテキストまたはフォーマット済み文書で、フィールドラベルやデータ構造はありません。意味フィールドマッピング — モデルは各値をフィールド名とペアで出力します(例:「請求書番号: INV-2026-001」)。手動でのラベル付けや再構成は不要です。
最終結果テキストファイルまたは検索可能なPDF。すべての文字は含まれていますが、各フィールドを読み取り、コピー&ペーストしてスプレッドシートの適切な列に入力する必要があります。構造化された表またはJSONオブジェクト。値はすでにラベル付けされ、整理されており、スプレッドシートや会計システムですぐに使用できます。コピー&ペーストの手順は不要です。

根本的な違いは、従来のOCRがピクセルを文字に変換するのに対し、AI抽出はピクセルを意味に変換することです。前者は検索可能な文書を提供し、後者は使用可能なデータを提供します。 AI抽出カテゴリの完全な解説 — その仕組み、適した用途、他のアプローチとの比較 — については、ハブ記事「AI文書抽出とは」をご覧ください。

また、AI版が文字単位ではなくページ全体を一度に処理するビジョン言語モデルを使用して読み取り段階をどのように処理するかを正確に理解したい場合は、AI OCRとはの記事で技術を詳しく解説しています。

よくある質問

OCRは手書き文字を読み取れますか?

従来のOCRは手書き文字の読み取りが苦手で、ブロック体で50~70%、筆記体では50%未満の精度です。その理由は構造にあります。文字認識の工程では、既知の字形データベースと照合して文字を識別しますが、手書き文字はテンプレートでカバーできる範囲をはるかに超えるバリエーションがあるためです。最新のAI搭載OCRは、個々の字形を照合するのではなく文脈で単語を読むため、ブロック体の手書き文字では75~93%と大幅に精度が向上します。ただし、自由な筆記体は今でもあらゆるシステムにとって困難です。

印刷テキストに対するOCRの精度はどのくらいですか?

300DPIでスキャンされた鮮明なタイプ文書では、最新のOCRエンジンは95~99%の文字認識精度を達成します。この数値は、劣化したスキャン、特殊なフォント、低コントラストの原稿、複雑なレイアウトの文書では低下します。重要なのは、文字精度とフィールド精度は異なるということです。文字精度が99%でも、関心のある個々のデータフィールドの15~40%にエラーが含まれる出力になる可能性があります。これは、発生する文字エラーが数値フィールド(1桁の誤りで値全体が変わる)やフィールド境界(隣接フィールドの文字が混ざる)に集中する傾向があるためです。

OCRと文書データ抽出は同じものですか?

いいえ。OCRはテキストの画像を機械可読な文字に変換します。つまり、テキストをデジタル化します。文書データ抽出はさらに一歩進んで、どの文字がどのデータフィールド(請求書番号、日付、合計金額、取引先名)に属するかを識別し、ラベル付けされた列を持つ構造化データとして出力します。OCRは「このページにはどんな文字があるか?」に答え、文書データ抽出は「この文書にはどんなデータが含まれているか?」に答えます。この2つの質問の違いは、まだ整理が必要なテキストファイルと、すぐに使えるスプレッドシートの違いです。

OCRは画像だけでなくPDFでも動作しますか?

OCRは画像ベースの入力であれば何でも動作します。スキャンPDF(本質的にはPDFコンテナに包まれた画像)、デジタル生成PDF(画像として処理する場合)、JPG、PNG、TIFFなどです。重要な違いは、スキャンPDF(テキストレイヤーのないページ画像)とネイティブPDF(選択可能なテキストを含む)の間にあります。スキャンPDFは検索可能にするためにOCR処理が必要です。ネイティブPDFはすでにテキストを含んでいるためOCRは不要ですが、特定のデータフィールドをスプレッドシートに抽出したい場合は、抽出処理が必要な場合があります。

OCRとOMRの違いは何ですか?

OCR(光学文字認識)は画像からテキスト(文字、数字、句読点)を読み取ります。OMR(光学マーク認識)はページ上のマーク(アンケートの塗りつぶし、フォームのチェックボックス、投票用紙のチェックマーク)を読み取ります。OMRはより単純で、事前に定義された位置にマークがあるかどうかを検出するだけでよく、そのマークがどの文字を表すかを識別する必要はありません。最近の文書処理ツールの多くは、テキストフィールドにOCR、チェックボックスや選択マークにOMRと、両方を組み合わせています。

OCRの仕組みを理解することは、それがいつ十分であり、いつより高度な手法が必要かを知るための第一歩です。4段階のパイプラインは長年にわたり文書のデジタル化に貢献してきましたが、「読めるテキスト」と「使えるデータ」の間には、従来のOCRでは埋められないギャップが存在します。文字だけでなく意味を読み取るAI文書抽出が、そのギャップをどう埋めるかをご覧ください

📮 contact email: [email protected]