LoginSignup
8
8

More than 5 years have passed since last update.

Yolo v2 がOpenCVにマージされたようなので試してみる (on MacOSX)

Last updated at Posted at 2017-10-14

追記(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
これで遊んでみます。

サンプルプログラムに必要な前準備

$ wget https://pjreddie.com/media/files/yolo.weights

結果

スクリーンショット 2017-10-14 15.50.59.png

クラスIdと名前の対応はこちらから
https://github.com/pjreddie/darknet/blob/master/data/coco.names

Webカメラからの入力も試してみましたが、
CPU上での実行でも2 - 3[FPS]程度でていました。
リアルタイム性の必要なアプリでも充分利用できそうです。

お疲れ様でした

8
8
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
8
8