OCR (光学文字認識)

画像やスキャンされた文書から文字を自動的に認識し、編集可能なテキストデータに変換する技術。紙の文書のデジタル化や、画像内のテキスト抽出に使われる。

OCR (Optical Character Recognition、光学文字認識) は、画像に含まれる文字を認識してテキストデータに変換する技術です。紙の書類をスキャンしてデジタル化する、写真に写った看板の文字を読み取る、PDF の画像ページからテキストを抽出する - これらはすべて OCR の応用です。スマートフォンのカメラで名刺を読み取るアプリも、内部では OCR が動いています。

OCR の処理フローは、前処理 → 文字領域検出 → 文字認識 → 後処理の 4 段階です。前処理では画像の傾き補正、ノイズ除去、二値化 (白黒変換) を行います。文字領域検出では、画像のどの部分にテキストがあるかを特定します。文字認識では、検出された文字画像をテキストに変換します。後処理では、辞書や言語モデルを使って認識結果の誤りを修正します。

日本語の OCR は英語より難易度が高いとされています。漢字の種類が多い (常用漢字だけで 2,136 字)、字形が似た漢字が多い (「未」と「末」、「土」と「士」)、ひらがな・カタカナ・漢字・英数字が混在する、縦書きと横書きが共存する - これらの要因が認識精度を下げます。現在の深層学習ベースの OCR エンジンは、印刷文字で 99% 以上、手書き文字で 90〜95% 程度の認識精度を達成しています。

OCR の認識精度は文字数カウントの正確性に直結します。1 文字の認識ミスは文字数に影響しませんが、文字の結合 (2 文字を 1 文字と認識) や分離 (1 文字を 2 文字と認識) は文字数を変えます。特に手書き文字では、文字間の距離が不均一なため、結合・分離の誤りが発生しやすくなります。OCR 結果の文字数を信頼する前に、認識精度の検証が必要です。

Google の Tesseract、Adobe Acrobat の OCR、Microsoft の Azure AI Vision など、主要な OCR エンジンは多言語対応しています。クラウドベースの OCR サービスは、ローカルのエンジンより高精度な傾向がありますが、機密文書を外部サーバーに送信するセキュリティ上の懸念があります。用途に応じてオンプレミスとクラウドを使い分ける判断が必要です。

OCR は「紙の文字数」を「デジタルの文字数」に変換する橋渡し技術です。原稿用紙 400 字の手書き原稿をデジタル化する場合、OCR で認識した結果が正確に 400 文字になるとは限りません。認識ミス、空白の扱い、改行の解釈によって文字数が変動するため、OCR 後のテキストは必ず人間が確認・修正する工程が必要です。

この記事を共有