ラベル tesseract-ocr の投稿を表示しています。 すべての投稿を表示
ラベル tesseract-ocr の投稿を表示しています。 すべての投稿を表示

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 をダウンロードして、インストールし,アップグレードしないで使い続ける場合のみに有効な解決方法となる。


2015/05/27

Keine Ausgabe der Texterkennung bei gscan2pdf unter Ubuntu 14.04

Texterkennungsproblem unter Ubuntu 14.04


Nachdem man Ubuntu 12.04 LTS auf 14.04 LTS aktualisiert hat, wurde gscan2pdf 0.9.32 auf 1.2.3 aktualisiert. gscan2pdf kann mit zusätzlichen  Programme wie tesseract-ocr, cuneiform-Linux, GOCR usw. Texte erkennen. Bei der Texterkennung mit gscan2pdf 1.2.3 unter Ubuntu 14.04 tritt zwar das Problem wie mit gscan2pdf 0.9.32 unter Ubuntu 12.04 nicht auf. Aber ein anders Problem; Bei der Texterkennung gibt gscan2pdf 1.2.3 keine Ausgabe aus, wenn er mit tesseract-ocr oder mit cuneiform-Linux arbeitet.



Woran liegt es?


Es liegt die Dateinamenserweiterung. Tesseract-ocr verwendet in Version 3.0.3 als Dateinamenserweiterung .hocr, wobei gscan2pdf sie .html erwartet.(Siehe hier) Das Problem ist schon bekannt und ab gscan2pdf 1.2.5 wurde es fixiert.(Siehe hier)



Die Lösungen


Lösung 1
Modifiziere die Datei Tesseract.pm.(Siehe hier)
  1. öffne ein Terminal und gehe in den Ordner Gscan2pdf, wo die Datei Tesseract.pm liegt.
  cd /usr/share/perl5/Gscan2pdf/
  2. Öffne diese Datei in einem Editor (z. B. gedit) mit Rootrechten.
  sudo gedit Tesseract.pm 
  3. ersetze in Zeile 189 das ".html" durch ".hocr".
  4. Speichere die Datei Tesseract.pm und schließe den Editor.
 
Lösung 2
Aktualisiere den gscan2pdf von 1.2.3 auf neueste.(Siehe hier)
 
Lösung 3 (nur für gscan2pdf 1.2.4 Benutzer)
Wende den Patch (den Bugfix) Tesseract.pm.patch an.(Siehe hier)
Das ist die Lösung für gscan2pdf 1.2.4. Jedoch liegt unter Ubuntu 14.04 gscan2pdf in Version 1.2.3 in den offiziellen Paketquellen vor. Wer gscan2pdf 1.2.4 aus einer PPA herunterladet hat, installiert hat und nicht aktualisieren will, wäre diese Lösung anwendbar.



Was ist eigentlich gscan2pdf?


gscan2pdf ist ein Programm zu scannen und PDF-Dokumenten aus eingescannte Vorlagen zu erstellen. Viele weiteren Formaten z. B. DjVu-Dokumente sind erstellbar. Es können eine Texterkennung verwendet werden. Eine ausführliche Beschreibung liefert gscan2pdf.



Ist eine eingescannte Datei keine Text-Datei?


Generell nicht. Allgemein ist eine eingescannte Datei eine Bild-Datei. Deshalb obwohl sie lesbar ist, erkennt ein PC kein Zeichen drauf und funktioniert "Copy and Paste" nicht. Um Zeichen aus einer eingescannten Datei zu extrahieren, braucht man ein weiteres Programm sogenannten OCR (optical character recognition). 



Texterkennungsprogramme z.B.


GOCR, tesseract-ocr, ocropus, cuneiform-Linux, Ocrad, suw... Eine ausführliche Beschreibung liefert Texterkennung.