2015年11月14日土曜日

Ubuntu 14.04のOpenCV 3.0 Contribの文字認識を動かしてみた

opencv_contribは、今も更新されており、時期によりその内容が変更されることが多数あり、この話は、11/13日のものである。

以前からUbuntuでtesseractのビルドはできているように見えたが、実行時に初期化できなくサンプルを動かすことができなかった。

Windows上では成功している話があったが、Ubuntuでは何度やってもうまく行かなかった。
この問題は、春に解決していが、まとめる気力がなかったので、半年放置していたが、再度ビルドしてみると、若干挙動が異なったので、備忘録としてまとめておく。

事前準備
OpenCVが動く環境でtesseractのツールをインストール

sudo apt-get -y install libtesseract-dev

以前はデータの取得は不要な気がしたが、今回英語用の辞書をダンロードし展開後一式を

sudo cp -r tesseract-ocr/* /usr/share/tesseract-ocr/

でコピーしておく必要がある。

 
問題
cmakeを実行するとtesseractを見つけてくれなかった。いろいろ調べたところ
opencv_contrib-master/modules/textの

FindTesseract.cmake

で、Tesseractライブラリのフラグが設定されていないようであった。

ファイルの中の

set(Tesseract_LIBS ${Tesseract_LIBRARY} ${Lept_LIBRARY})
if(Tesseract_LIBS AND Tesseract_INCLUDE_DIR)
    set(Tesseract_FOUND 1)

でfalseになっていた。

Lept_LIBRARYの正体がわからないので、外してみるとcmakeでtesseractを見つけてくれるようになり、opencvのmake installのあとでサンプルを試してみると無事初期化ができ、認識してくれた。



オリジナル

修正後

下記は動作している図、 (をlに誤認識しているがあとはうまく行っている)







感想
いろいろ試してみたが過度な期待はしないほうが良い

以上

0 件のコメント:

コメントを投稿