web-dev-qa-db-ja.com

TesseractとOpenCVを選択するにはどうすればよいですか?

最近、 TesseractOpenCV に出会いました。 Tesseractは本格的なOCRエンジンであり、OpenCVはOCRアプリケーション/サービスを作成するためのフレームワークとして使用できるようです。

いくつかの画像でTesseractを使用してみましたが、その精度はまともです。後で、OpenCVを使用してPythonを使用してOCRを実行することに関する非常に簡単な チュートリアル に出会い、感銘を受けました。数分で、システムとその精度のトレーニングを終了しました。もちろん、このアプローチを取ることは、大きなトレーニングセットを使用してシステムを広範囲にトレーニングする必要があることを意味します。

私の具体的な質問は次のとおりです。

  • TesseractとOpenCVを使用してカスタムOCRアプリを構築する方法を選択するにはどうすればよいですか?
  • Tesseractにはさまざまな言語のトレーニングデータセットが用意されています。 OpenCVには似たようなものがあるので、OCRを達成するためにゼロから始める必要はありませんか?
  • どちらが商用アプリケーションになりたいですか?

助言がありますか?

86
Legend
  • TesseractはOCRエンジンです。 Googleは、画像からテキストを読み取り、基本的なドキュメントセグメンテーションを実行し、特定の画像入力(単一のWord、行、段落、ページ、限定辞書など)を操作するために、Googleによって使用、処理、資金提供されています。

  • 一方、OpenCVは、いくつかの特徴抽出とデータ分類を実行できる機能を含むコンピュータービジョンライブラリです。基本的なOCRを実行する単純なレターセグメンターと分類子を作成できますが、あまり優れたOCRエンジンではありません(私は1つPythonをゼロから作成しました。トレーニングデータとは異なります)。

OCRの難易度の基本的な理解を得るには、OpenCVを試してください。 Tesseractはreal OCR用です。

69
Blender

私はあなたが言ったその数字認識チュートリアルの著者であり、私は言うだろう、それはtesseractに代わる方法ではありません。

Tesseractは本当に優れたOCRエンジンであり、最高のオープンソースOCRエンジンかもしれません。

あなたが言及したチュートリアルは、OCRの最も単純な動作を理解するための単なる試みです。

したがって、OCRアプリを探している場合は、画像の前処理にOpenCVを使用してから、tesseractエンジンを適用することをお勧めします。

62
Abid Rahman K

この2つは補完的です。 OpenCVに関する論文を読む場合: https://github.com/tesseract-ocr/docs/blob/master/tesseracticdar2007.pdf

「HPは製品で使用された独立して開発されたページレイアウト分析テクノロジーを使用していたため(したがって、オープンソース向けにリリースされていません)、Tesseractは独自のページレイアウト分析を必要としませんでした。したがって、Tesseractは入力がオプションの多角形テキスト領域が定義されています。」

このタイプのタスクはOpenCVで実行でき、結果のイメージはTesseractに渡されます。 Gitリポジトリでこのタイプのコードのサンプルを見つけることができます: https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples 画像からテキストへの変換。

7
user2957542

OpenCVは [〜#〜] cv [〜#〜] のライブラリで、一般的な画像の分析と処理に使用されます。 Tesseractは [〜#〜] ocr [〜#〜] のライブラリです。これは、画像からテキストを抽出するための専用のCVのサブセットです。

From OpenCV.org

.....顔の検出と認識、オブジェクトの識別、ビデオでの人間の動作の分類、カメラの動きの追跡、オブジェクトの移動の追跡、オブジェクトの3Dモデルの抽出、ステレオカメラからの3D点群の生成、画像のステッチングによる高解像度の生成に使用シーン全体の解像度画像、画像データベースからの類似画像の検索、フラッシュを使用して撮影された画像からの赤目除去、目の動きの追跡、風景の認識、拡張現実とオーバーレイするマーカーの確立など

Tesseract Github から:

.....直接使用することも、(プログラマ向けに)APIを使用して、画像から入力、手書き、または印刷されたテキストを抽出することもできます。さまざまな言語をサポートしています。

1
Aniruddha Varma