追記(2017/10/25)
OpenCV v3.3.1 がリリースされました。
今回のリリースにYOLO v2 も含まれているため、
自前でビルドを行わなくてもYOLO v2のOpenCV実装を利用できるようになりました。
Yolo v2 がOpenCVにマージされたようなので試してみる
先日YOLO v2がOpenCVにマージされたそうなので、
サンプルプログラムを動かしてみました。
Now Darknet Yolo v2 is added to the OpenCV: opencv/opencv#9705
You can use it from master-branch or since OpenCV 3.4.0 will be released.
とのことなので、OpenCVのmaster-branchからソースを落としてきてビルドしてみます。
ざっくり試して終わるつもりが意外とインストールバトルに手こずったので備忘録的に残します。
環境
- Mac OSX (Sierra)
- Xcode version 9.0 (9A235)
- cmake version 3.9.4
opncv2.frameworkのビルド
- githubから最新のソースを取ってくる
$ cd /my/work/space/
$ git clone
- opencv2.frameworkをビルドする
$ mkdir osx
$ python opencv/platforms/osx/build_framework.py --opencv opencv osx/
- エラーが出る
CMake Error in CMakeLists.txt:
Evaluation file to be written multiple times with different content. This
is generally caused by the content evaluating the configuration type,
language, or location of object files:
/Users/reverent/work/lab/libs/macOS/build/build-x86_64-macosx/OpenCVGenPkgConfig.info.cmake
OpenCVGenPkgConfig.info.cmake
が複数回書き換えられている?とのことで怒られてしまいました。
ここで解決策がわからず時間を使ってしまったのですが、
取り敢えずCMakeLists.txtを見てみると
# Generate opencv.pc for pkg-config command
if(NOT OPENCV_SKIP_PKGCONFIG_GENERATION)
include(cmake/OpenCVGenPkgconfig.cmake)
endif()
とあったので、半ば投げやりにここをコメントアウトしてみるとビルド成功。
opencv2.framework
が作成されるので、
Xcodeから簡単に利用できるようになりました。
取り敢えずサンプルプログラムを動かすことが目標なので、
今回はこのまま利用します。
※ 当たり前ですが、この状態だと依存ライブラリ(libwebpなど)をXcodeでのコンパイル時に追加しないとリンカエラーが出るようになりました
サンプルプログラムの実行
公式のサンプルプログラムがこちらにあるので
/opencv/samples/dnn/yolo_object_detection.cpp
これで遊んでみます。
サンプルプログラムに必要な前準備
-
モデルの定義
https://github.com/pjreddie/darknet/blob/master/cfg/yolo.cfg -
学習済みモデルのDL
$ wget https://pjreddie.com/media/files/yolo.weights
結果
クラスIdと名前の対応はこちらから
https://github.com/pjreddie/darknet/blob/master/data/coco.names
Webカメラからの入力も試してみましたが、
CPU上での実行でも2 - 3[FPS]程度でていました。
リアルタイム性の必要なアプリでも充分利用できそうです。
お疲れ様でした