2015年07月11日

画像の中の英文テキストを抽出する方法


 文書を画像形式で保存し、その画像をネット上に公開しているサイトがかなりの数存在します。
 画像に写っているテキストは、当然読むことはできますが抽出はできません。

 また、手持ちの画像ファイルの中のテキストを抽出したいということもたまにですがあります。

 画像の中のテキストを抽出する場合、通常は、OCRソフトを使います。以下、対象言語は英語で話を進めます(日本語の抽出は難しいので)。


「Adobe Acrobat Pro」を使って抽出する方法
 通常は、「Adobe Acrobat Pro」のOCR機能を使って英文テキストを抽出します。

 サンプルとして、Wikipediaページの冒頭にある寄付を求めるテキストを使います。これは、png形式で画像として保存しています。
Sample_Wiki00.png


 このファイルを「Adobe Acrobat Pro」で開きます。PDFファイルだけでなく、画像ファイルも開くことができます。

 メニューバーの[文書]⇒[OCRテキスト認識]⇒「OCRを使用してテキストを認識」と進み、

Acrobat_OCR1.png


「テキスト認識」ダイアログが開くので、認識する対象のページを設定します。今回は画像なので、「現在のページ」⇒[OK] 認識が始まり、終了すると、文字として認識され、コピーすることが可能になります。



「IrfanViewのプラグイン」を使って文字を抽出する方法
 フリーの画像ビューアであるIrfanviewにOCRプラグイン『KADMOS ICR/OCR SDK』がインストールされていれば、画像ファイルから英文テキストを簡単に抽出できます。ただし、このプラグインでは、一度に1000文字しか抽出できないので、長いテキストを抽出する場合には、分割して抽出する必要があります。抽出に使われるOCRの性能はとても良く、優れものです。

1.最初に、上のリンクからOCRプラグインをダウンロード、インストールします。
2.画像を読込み、[オプション]⇒[OCRの開始]

Irfan_ocr_Plugin1.gif


3.上の画像で、黄色い部分を選択します。右側に抽出結果としてコピー可能なテキストが表示されます。この例では文字数が1000文字を超えているので、途中までしか抽出できません。その時は、「黄色の部分」の抽出範囲を分割して抽出する作業を繰り返します。抽出結果の文字列は毎回更新されてしまうので、その都度、メモ帳などにコピーしておきます。

 管理人は、画像ファイルを一旦、PDFに変換し、「Adobe Acrobat」(無料のReaderではない)のOCR機能を使ってテキスト抽出する方法を使っています。ところが、この方法は、いつもうまくいくとは限らない。「Adobe Acrobat」のOCRコンバーターはかなり優秀なのですが、抽出に失敗することも良くあります。特に、画質の悪い紙ベースの原稿をスキャンしたPDFファイルなどは、英文文字をうまく抽出できません。その点、[IrfanviewにOCRプラグイン]の方が「Adobe AcrobatのOCRコンバーター]より勝っています。

 なお、プレインストールされているのは、英語だけですが、他の言語もインストールすれば使えます(日本語はありません)。
 例えば、スペイン語はここからダウンロードします。

 下の赤枠の部分から言語ファイルと辞書ファイルをダウンロードします。
 下の事例では、スペイン語をインストール済みです(4ヵ国のスペイン語がインストールされています)。

 
KADOMOS_languagepack2.png



 なぜ、この原稿を書いているかというと、「Adobe Acrobat Pro」で抽出できないPDFファイルに出くわしたからです。PDF原稿は比較的キレイなのに、OCRがうまく抽出できない。最初はあきらめたのですが、IrfanViewでも抽出できることを思い出し、やってみたら、きれいに抽出できました。

 理由はよく分かりませんが、外国語テキストの抽出で困ったときには試して見る価値がありそうです。


抽出したテキストをつなげる方法
 上記の二つの方法のどちらも、抽出したテキストは行単位になっています。テキスト量が少なければ、改行を削除して、ひとつの文章になるように修正しますが、テキスト量が多いとこれは大変な作業になります。

 そこで、これをエクセルのマクロを使って、一行にします。何百行でも一瞬で一行になります。あとは、それをWordなどに貼り付け、段落を入れ、スペルチェックをかけて、適宜、修正します。ここまでできると、誤抽出部分はかなり減っているので、後の作業がとても楽になります。

 この行単位になったテキストを一行にする方法については過去記事『PDFファイルのテキストをコピーするときに役立つテキストの結合方法』に書きました。Excelブックも公開しているのでご利用下さい。至れり尽くせりのサイトです(笑)。


この記事へのコメント
コメントを書く
コチラをクリックしてください