2015/06/01

Ubuntu 14.04  gscan2pdf で白紙のOCR出力

gscan2pdf とは


gscan2pdf は様々なファイルを読み込んでPDFファイルを生成するプログラムだ。このプログラムは tesseract-ocr や cuneiform-Linuxと組み合わせて、画像データから文字を認識 (OCR機能)し、結果を出力することが出来る。これらは全てソフトウェアセンター、またはパッケージマネージャーからインストール出来る。Ubuntu 14.04 でインストールされるこれらのプログラムのバージョンは
       プログラム バージョン
    gscan2pdf   1.2.3
    tesseract-ocr   3.0.3
    cuneiform-Linux   1.1.0
となっている。



gscan2pdf を使うと OCR出力が白紙

この gscan2pdf 1.2.3 から tesseract-ocr 3.0.3 を使ってOCRにかけると白紙が出力される。しかし、 gscan2pdf を使わずに tesseract-ocr 3.0.3 からOCRにかけると認識された内容が出力される。



原因はバグ

これは tesseract-ocr 3.0.3 がこのバージョンからOCRの結果を gocr形式で出力するのに対して、gscan2pdf 1.2.3 の側では html形式の出力を受け取る設定になっているためだ。(参照:ここ) このバグは既知の問題で gscan2pdf 1.2.4 ではパッチファイルが存在し, gscan2pdf 1.2.5以降のバージョンでは修正されている。(参照:ここ)


  

解決方法

その 1 Tesseract.pm を編集する。(参照:ここ)

1. 端末を起動し、以下のコマンドで Tesseract.pm が存在するフォルダに移動する。
    cd /usr/share/perl5/Gscan2pdf/
2. ルート権限 (sudo) でテキストエディタ (ここでは gedit) から Tesseract.pm を開く。
    sudo gedit Tesseract.pm 
3. ファイルの189行目の ".html" を ".hocr" に書き換える。 
      version->parse("v$version") >= version->parse("v3") ? '.html' : '.txt';
      --->
      version->parse("v$version") >= version->parse("v3") ? '.hocr' : '.txt';
4. ファイルを保存して閉じる。
 
その 2 gscan2pdf 1.2.3 を最新バージョンにアップグレードする。(参照:ここ)
 
その 3 パッチファイルを適用する。(参照:ここ)
この解決方法を紹介しているHPは多い。しかし、このパッチファイルは gscan2pdf 1.2.4 用であり、Ubuntu 14.04 でソフトウェアセンターなどからインストール出来るのは gscan2pdf 1.2.3 である。従って現在では何か理由があってPPAなどの外部から gscan2pdf 1.2.4 をダウンロードして、インストールし,アップグレードしないで使い続ける場合のみに有効な解決方法となる。


0 件のコメント :

コメントを投稿