OpenCVでDNN

OpenCVのVersion3.3以降から,標準でDeep Learning用途のライブラリ群(DNN)が追加されました. このページではそれらの使い方やサンプルの紹介をします.

  • 動作環境:MacOS(10.13以降)
  • OpenCV 3.4.1とOpenCV 3.4.2ではobject_detection.cpp のexampleに変更があり,homebrewの3.4.2ではyoloやssdがちゃんと動作しなくなっていました.そこで,最新のソースコードにて再度object_detection.cpp を動かしてみたところ,ちゃんとした結果が得られました.動作変だなったおもったら,やっぱ自分でコンパイルが一番なようです.

Openframeworksのaddonとしてdnnサンプルを利用できるようにしました。馬場のgithubからご参照ください。

インストールには2種類あります.

  1. brewをつかう
  2. ソースコードをコンパイル

brewをつかう

Homebrewからまずはhomebrewのインストールを行ってください. その後ターミナルで,

$ brew install opencv

でbrew上での最新バージョンのopencvがインストールされます.

ソースコードからコンパイル

brewのバージョンによらず,最新版を試したいときに有効です.cmakeを使うので,上記同様にbrewのインストールを行っておいてください.opencv.orgから最新版のopencvのソースコードをダウンロードします.現時点(平成30年9月11日)では3.4.3が最新版です.ダウンロード,解凍が終わったらターミナルを開いて展開したディレクトリに移動します.

$ mkdir build
$ cd build
$ cmake ..
$ make 
$ make install 

以上の手順で,/usr/local/optに opencvライブラリ一式がインストールされます.cmakeやmake時にエラーがでたら適時brewでパッケージを追加してください.次にsampleをコンパイルします.

$ cd ../samples
$ mkdir build
$ cd build
$ cmake ..
$ make

以上で,opencv-3.4.3/samples/build 以下に dnn というディレクトリの中に実行可能なdnnのファイルが確認できます. 生成された実行ファイル一覧は下記の通り.

example_dnn_classification	example_dnn_object_detection	example_dnn_segmentation
example_dnn_colorization	example_dnn_openpose		example_dnn_text_detection

実行にあたり,事前に必要なmodelデータを一括ダウンロードしておくとよいです(容量に余裕があれば).

$ wget https://raw.githubusercontent.com/opencv/opencv_extra/master/testdata/dnn/download_models.py
$ python download_models.py

もしくは下記gitにモデル一覧が載っているので,こちらから個別にdownloadしてもよいでしょう.

  • opencv_dnn/環境構築/install.txt
  • 最終更新: 2019/07/14 17:36
  • by baba