いつものことだが、公式でアナウンスされていないが、ひっそりとOpenCV 2.4.12.3がリリースされている
今回もGitHubから取得しないといけない。
前回同様に、bug fixがほとんどと思われる。
OpenCV、機械学習、はやりのDeep learningの環境構築の方法、サンプルの動かし方、APIの使い方、Tipsなどをすぐに忘れてしまうので、備忘録として記録している。記憶がなくなるスピードが、早いのでメモしておかないと再現できなくなる確率が高まっている。 最近、再度HDDを飛ばしてしまい、過去の自分のページに再度助けられた。 また、DNNモジュールを触る機会が増えているので、C++からPyhonへと鞍替え中。 内容を気にいっていただければ、twitterで紹介願います。
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に誤認識しているがあとはうまく行っている)
感想
いろいろ試してみたが過度な期待はしないほうが良い
以上
以前から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に誤認識しているがあとはうまく行っている)
感想
いろいろ試してみたが過度な期待はしないほうが良い
以上
登録:
投稿 (Atom)