LoginSignup
5
4

More than 5 years have passed since last update.

brewのopencvを使ってカスケード分類器を作る際のメモ

Last updated at Posted at 2019-03-28

概要

カスケード分類器を作ろうと思ったら、opencv_createsamplesopencv_tratraincascadeがどこにも見当たらなかったので、経緯と注意点を説明する。

brewでインストール

Macの場合brewとpipでopencvがインストールできるが、brewでインストールした場合のみカスケード分類器を作るのに必要なモジュールもインストールされる。インストール時に私が引っかかったのがopencvのバージョンである。今現在(2019/03/28)のbrewでインストールされるデフォルトのバージョンが4.0.1である。結論から言うと、バージョンが4.0.1のopencvにはカスケード分類器を作るのに必要なopencv_createsamplesopencv_tratraincascadeが元から付属されていないのである。よってopencv_createsamples -info posifile -vec cascade.vec -num 100のようにコマンドを打ってもNot Foundだけが返ってくる。

解決方法

Homebrewのopencvのページに行くと、バージョンによって名前が異なりそれぞれ別にインストールできるので、それで対応するしかない。私はbrew install opencv@3としてインストールを行なった結果、バージョン3.4.5のものをインストールでき上記の必要な2つのモジュールもインストールされた。(もちろん実行もできた)

※追記 opencv_createsamplesがうまくいかないときは

私の場合は-infoで指定する画像パスに問題があったためにエラーが起きた。(-215 Assertion errorとかなんとか。roiがおかしいというようなエラーが発生した)
以下のようなファイルを-infoで指定した。

./img/sample-img_001.jpg 1 0 0 50 50
./img/sample-img_002.jpg 2 40 0 100 80 100 200 50 50
./img/sample-img_003.jpg 1 20 30 40 50
...

上のように、パス名にアンダーバー( _ )やハイフン( - )を用いると読み込めずにエラーを吐いてしまう。
なるべく使わないようにファイル名やパス名を考えよう。

まとめ

カスケード分類器を作るならopencv ver4.0.1 以外 のものを使おう

おまけ

ポジ画像120枚、ネガ画像40枚では圧倒的データ不足に陥るので気をつけよう

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4