OCR(光学文字認識):仕組みについて

· 12分で読めます

目次

OCR(光学文字認識)は、スキャンした文書、看板の写真、スクリーンショット、手書きメモなどのテキスト画像を、検索、編集、処理が可能な機械可読テキストに変換します。何世紀も前のアーカイブのデジタル化から、経費報告書のレシートデータの抽出まで、OCRはますますデジタル化する世界において不可欠な技術となっています。

文書管理システムの構築、モバイルスキャンアプリの作成、またはPDFからのテキスト抽出を試みている場合でも、OCRの仕組みを理解することで、より良い結果を得て、よくある落とし穴を避けることができます。

OCRとは?

光学文字認識は、タイプされた、印刷された、または手書きのテキストを含む画像を機械エンコードされたテキストに電子的に変換することです。その核心において、OCRは画像内の視覚的パターンを分析して、個々の文字、単語、テキスト構造を識別します。

1970年代と1980年代の初期のOCRシステムは、テンプレートマッチングに依存していました。各文字の形状を既知のパターンのデータベースと比較する方法です。これらのシステムは硬直的で、特定のフォントと高品質の入力を必要としました。現代のOCRは、膨大な範囲のフォント、サイズ、向き、品質レベルにわたって文字を認識できるディープラーニングニューラルネットワークを使用しています。

今日のOCR技術は、数え切れないほどのアプリケーションを支えています:

クイックヒント: 今すぐ画像からテキストを抽出する必要がありますか?セットアップ不要で即座に結果が得られる画像からテキストへ(OCR)ツールをお試しください。

OCRの仕組み

現代のOCRは、生の画像ピクセルを構造化されたテキストに変換する多段階パイプラインです。各段階を理解することで、入力を最適化し、問題をトラブルシューティングすることができます。

ステージ1:画像取得

プロセスは画像のキャプチャまたは読み込みから始まります。これは、スマートフォンのカメラからの写真、フラットベッドスキャナーからのスキャン、またはスクリーンショットである可能性があります。この初期画像の品質は、最終的な精度に大きく影響します。

取得時の主な考慮事項:

ステージ2:前処理

生の画像が文字認識に最適な入力を提供することはほとんどありません。前処理は画像を強化し、OCRエンジンを混乱させる可能性のあるノイズを除去します。

一般的な前処理操作には以下が含まれます:

  1. 傾き補正: テキストを水平に揃えるために画像を回転
  2. スペックル除去: スキャンによる小さな点やアーティファクトを除去
  3. 二値化: 白い背景に純粋な黒いテキストに変換
  4. 境界除去: ページの端と余白を削除
  5. レイアウト分析: テキスト領域、列、読み取り順序を識別
  6. 行検出: テキストを個々の行にセグメント化
  7. 単語セグメンテーション: 行を単語に分離
  8. 文字セグメンテーション: 個々の文字を分離(一部のエンジンの場合)

ステージ3:文字認識

ここで実際の「読み取り」が行われます。現代のOCRエンジンは、テキストを行ごとに処理し、文脈を考慮して似たような文字を区別するLSTM(長短期記憶)ニューラルネットワークを使用しています。

たとえば、ネットワークは「l」(小文字のL)と「1」(数字の1)が似ているが異なる文脈で現れることを学習します。「l」は単語に現れ、「1」は数字に現れます。同様に、「O」(文字)対「0」(ゼロ)、「S」対「5」、「B」対「8」は、周囲の文字によって区別されます。

認識エンジンは文字だけでなく、各認識の信頼度スコアも出力します。99%の信頼度で認識された文字は、60%の信頼度の文字よりも信頼性が高くなります。

ステージ4:後処理

生のOCR出力にはしばしばエラーが含まれています。後処理は言語知識を適用して、起こりうる間違いを修正します:

ステージ5:出力生成

最後に、認識されたテキストが出力用にフォーマットされます。これは次のようなものかもしれません:

OCR精度の要因

OCRの精度は入力品質に基づいて劇的に変化します。精度に影響を与える要因を理解することで、より良い入力を準備し、現実的な期待を設定することができます。

要因 最適 問題あり 影響
解像度 300+ DPI <150 DPI 高 - 文字がピクセル化される
コントラスト 白地に濃いテキスト 低コントラスト、色あせ 高 - エッジが不明瞭になる
フォーカス シャープで明確なエッジ ぼやけ、ピンぼけ 重大 - エラーの第1の原因
照明 均一、拡散 影、グレア、フラッシュ 中 - 偽のマークを作成
配置 まっすぐ、水平 5度以上傾斜 中 - レイアウトを混乱させる
フォントサイズ 10-14 pt印刷 <8 ptまたは>72 pt 低 - エンジンはよく適応する
背景 きれい、均一 テクスチャ、パターン 中 - ノイズを作成
文書の状態 平ら、きれい しわ、汚れ、破れ 高 - 文字を歪める

実用的な精度のヒント

文書をスキャンする場合:

スマートフォンの写真の場合:

スクリーンショットの場合:

プロのヒント: 結果が悪い場合は、OCRの前に画像をグレースケールに変換し、コントラストを上げてみてください。多くのエンジンは、カラー写真よりも高コントラストの白黒画像でより良いパフォーマンスを発揮します。当社の画像コンバーターツールは、迅速な前処理に役立ちます。

前処理技術

前処理はOCRの精度を劇的に向上させることができます。最も効果的な技術とそれらを使用するタイミングを以下に示します。

二値化(閾値処理)

グレースケール画像を純粋な白黒に変換すると、認識が簡素化されます。課題は、適切な閾値を選択することです。

グローバル閾値処理は、画像全体に単一の閾値を使用します。均一に照明された文書にはうまく機能しますが、ページ全体で照明が変化する場合は失敗します。

適応閾値処理は、異なる領域に対して異なる閾値を計算します。不均一な照明や影のある写真には不可欠です。大津の方法は人気のある自動アプローチです。

ノイズ除去

スキャンされた文書には、しばしばスペックル、ほこりの跡、スキャンアーティファクトが含まれています。ノイズ除去は、テキストを損傷することなくこれらを除去します。

一般的な技術:

傾き補正

最適な認識のためには、テキストが水平である必要があります。傾き補正はテキストの角度を検出し、画像を回転して修正します。

ほとんどのOCRエンジンには自動傾き補正が含まれていますが、ひどく回転した画像(10〜15度以上)には手動修正が必要な場合があります。

境界除去

ページの端、スキャナーの境界、余白は、レイアウト分析を混乱させる可能性があります。これらを検出して除去すると、特に複数列の文書で結果が向上します。

コントラスト強調

色あせた文書はコントラスト強調の恩恵を受けます。ヒストグラム均等化は、コントラストを最大化するために強度値を広げます。アーティファクトを作成する可能性があるため、過度に強調しないように注意してください。

言語サポート

現代のOCRエンジンは100以上の言語をサポートしていますが、精度はスクリプトタイプ、文字の複雑さ、トレーニングデータの可用性に基づいて大きく異なります。

ラテン文字言語

ラテンアルファベットを使用する言語(英語、フランス語、ドイツ語、スペイン語、イタリア語、ポルトガル語など)は、最高の精度を達成します。きれいな印刷テキストでは99%以上になることがよくあります。これらの言語には次のものがあります:

We use cookies for analytics. By continuing, you agree to our Privacy Policy.