画像認識用C ++ライブラリ:文字列への単語を含む画像
-
19-08-2019 - |
質問
特定のフォントおよび/またはフォントの高さに基づいて文字を見つけることができるように、画像を取得して画像認識を実行するためのC ++ライブラリを知っている人はいますか?フォントを選択できないものでもいいでしょう(例:readLetters(Image image)。
解決
私は最近これをよく見ています。あなたの最高は単にテッセラクトです。 OCRの上にレイアウト分析が必要な場合は、Ocropus(Tesseractを使用してOCRを実行)を使用します。レイアウト分析とは、画像上のテキストの位置を検出し、ラインセグメンテーション、ブロックセグメンテーションなどを実行できることを指します。
Tesseractを使った実験を通じて、共有する価値のある本当に良いヒントを見つけました。基本的に、画像に対して多くの前処理を行う必要がありました。
- 入力画像を300 dpiに拡大/縮小します。
- 画像から色を削除します。グレースケールが良いです。実際にディザしきい値を使用し、入力を白黒にしました。
- 画像から不要なジャンクを切り取ります。 上記3つすべてについて、netbpm(Unix用の画像操作ツールのセット)を使用して、必要なもののほぼ100%の精度が得られる場所を特定しました。
高度にカスタマイズされたフォントがあり、tesseractのみを使用する場合は、<!> quot; Train <!> quot;システム-基本的に、大量のトレーニングデータを提供する必要があります。これはtesseract-ocrサイトで十分に文書化されています。基本的に、新しい<!> quot; language <!> quot;を作成します。フォント用に-lパラメーターを使用して渡します。
私が見つけた他のトレーニングメカニズムは、Ocropusでニューラルネットワーク(bpnet)トレーニングを使用したものです。優れた統計モデルを構築するには、多くの入力データが必要です。
Tesseract / Ocropusの呼び出しに関しては、どちらもC ++です。 ReadLines(Image)ほど簡単ではありませんが、チェックアウトできるAPIがあります。コマンドラインから呼び出すこともできます。
他のヒント
特に推奨することはできませんが、お探しの用語はOCR(Optical Character Recognition)です。
tesseract-ocr があり、これを行うための専門的なライブラリです。
そこからウェブサイト
Tesseract OCRエンジンは、1995年のUNLV精度テストの上位3つのエンジンの1つでした。 1995年から2006年の間、ほとんど作業が行われていませんでしたが、おそらく最も利用可能な最も正確なオープンソースOCRエンジンの1つです
推測が欲しいと思います。以前はlibgocrプロジェクトでした。私はそれを数年間使用していませんが、キーをセットアップすれば非常に信頼できるものでした。
Tesseract OCRライブラリは、CおよびC ++ライブラリである非常に正確な結果を提供します。 最初の結果は約80%の精度でしたが、OCRに供給する前に画像に前処理を適用すると、結果は約95%の精度でした。 前処理とは:
1)ビットマップをバイナリ化します(B <!> amp; Wのほうがうまく機能しました)。 その方法
2)画像を300 dpiにリサンプリングする
3)LZW TIFFやCCITT Group 4 TIFFなどの可逆形式で画像を保存します。