私は常に、OCRテクノロジーがオープンソースシステムの背後にあることを発見しました。Ocropusプロジェクトはまだ始まったばかりから見ています。Linuxで利用できる最高のOCRエンジンであるTesseractを聞いたところ、試してみましたが、ビジネスドキュメントには非常に欠けていることがわかりました。他のより有望なOCR実装はありますか?手書き文字を解釈するためのさらに希望に満ちた目標はどうですか?この分野の* nixシステムでは何が可能ですか?
私は常に、OCRテクノロジーがオープンソースシステムの背後にあることを発見しました。Ocropusプロジェクトはまだ始まったばかりから見ています。Linuxで利用できる最高のOCRエンジンであるTesseractを聞いたところ、試してみましたが、ビジネスドキュメントには非常に欠けていることがわかりました。他のより有望なOCR実装はありますか?手書き文字を解釈するためのさらに希望に満ちた目標はどうですか?この分野の* nixシステムでは何が可能ですか?
回答:
2018年現在、利用可能な最高のオープンソースOCRソフトウェアは、新しいLSTMニューラルネットワークOCRモデルを備えたTesseract 4(ベータ)です。OCRのパフォーマンスは、バージョン3で使用されていた以前のOCRモデルよりもはるかに優れています。
例(output.pdf
スキャンされたドイツ語ドキュメントのテキストレイヤーを含むPDFファイルを作成):
$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf
認識されたテキストを標準出力に出力します。
$ tesseract --oem 1 -l deu page page-0001.png stdout
インストールされている言語のリスト:
$ tesseract --list-langs
非常に多くの言語/スクリプトのサポートは、ダウンロード可能なトレーニング済みデータセットの形式で利用できます。たとえば、Fraktur用のデータセットもあります。
新しいLSTMモデルにより、TesseractはOCRopus研究プロジェクトからインスピレーションを得ています。
Tesseractバージョン3は、高品質の入力画像でも比較的悪いパフォーマンスを発揮します。つまり、多くの場合、ダストピクセル(テキストコンテキスト以外)の単一文字を誤って検出し、よく知られている単語に単一文字エラーを簡単に導入します。
Cuneiform OCRのパフォーマンスはそれほど悪くはありませんが、積極的に維持されておらず(2011年の最後のリリース、バージョン1.1)、簡単にクラッシュし、他のいくつかの問題があります。
次のようにレイアウトアルゴリズムを無効にできます。
$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001
(-l
ソース文書の言語を指定します)
$ ocrad -F utf8 image-0001
デフォルトでは、テキストは標準出力に出力されます。
ビジネス文書では、cuneiform / tesseract / gocrが見逃していた下線付きの単語を見逃していました。
$ gocr image-0001
デフォルトでは、テキストは標準出力に出力されます。
Saneは、AvisionやFujitsuなどの多くの自動ドキュメントフィード(ADF)スキャナーを非常によくサポートしています。
Saneには、scanimage
スクリプト化されたスキャンパイプラインを構築するために使用できるコマンドラインプログラムが含まれています(たとえば、私のadf2pdf.py
スクリプトを参照)。
StackOverflowとリンクされた商用製品の1つであるAsprise OCR SDKで同様の質問が見つかりましたが、Linuxバージョンを誇っています。
一般的なOCRコマンドラインツールはほとんどありません。
Tesseract .NET、Tesseract iOSにも利用可能
1985年から1995年の間にHP Labsで開発され、現在はGoogleで開発されたOCRエンジン。Tesseractは、おそらく利用可能な最も正確なオープンソースOCRエンジンです。
使用法:
tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
オープンソースの文字認識。スキャンしたテキストの画像をテキストファイルに戻します。GOCRはさまざまなフロントエンドで使用できるため、さまざまなOSやアーキテクチャに簡単に移植できます。多くの異なる画像形式を開くことができ、その品質は日々向上しています。
OCRopus ™(FAQ)(Python、NumPy、およびSciPyで作成)
プラガブルなレイアウト分析、プラガブルな文字認識、統計的自然言語モデリング、多言語機能を備えた、ドキュメント分析の問題に対処するための大規模機械学習の使用に焦点を当てたOCRシステム。
OCRopusエンジンは、2つの研究プロジェクトに基づいています。90年代半ばに開発され、米国国勢調査局によって展開された高性能手書き認識エンジンと、新しい高性能レイアウト分析方法です。
OCRopusは、Googleが後援する開発であり、当初は高スループットで大量のドキュメント変換を目的としています。他の多くのアプリケーションにとっても優れたOCRシステムになると期待しています。
Tessnet2(オープンソース、OCR、Tesseract、.NET、DOTNET、C#、VB.NET、C ++ / CLI)
Tesseractは、C ++オープンソースOCRエンジンです。Tessnet2は、OCRを実行するための非常に簡単なメソッドを公開する.NETアセンブリです。Tessnet2はApache 2ライセンス(tesseractなど)の下にあるため、商用製品に含まれているので、好きなように使用できます。
その他の提案:ABBYY CLI OCR for Linux、Asprise OCR。
また読む:
より完全なリストについては、Wikipediaの光学式文字認識ソフトウェアのリストを確認してください。
... OCRは「文字認識のみ」ではありません。画像処理、前処理-テキスト、画像、表、またはバーコードを見つけるためのページ/レイアウト分析。認識のためには、さまざまなフォント、サイズ、言語に対応する必要があります。良い結果を得るには、辞書と言語定義を使用する必要があるため、これは重要です。最後に、人々はテキスト(たとえば、XML、RTF、または検索可能なPDF)よりも多くのエクスポートオプションを期待しています。SDKにはいくつかの商用オプションがありますが、安価で無料ではありません。
最近、ABBYYからLinux用のCLI OCRを見つけました。100ページの無料トライアルがあります。
予算がある場合は、ABBYY FineReader Engine CLI for Linuxを強くお勧めします。当社は1年間Webアプリケーションで使用しており、ライセンスを更新する予定です。非常に優れた認識品質、コマンドラインインターフェイス、多くの言語での認識。