Ubuntu16.04でYoloを試す

はじめに

今更ながらにYoloを試します.
基本的には公式サイトの通りに実行するだけですが少し詰まったのでメモ.
コンソールで結果を見るだけなら公式サイト通りやって終わりです.

環境

  • Ubuntu 16.04
  • OpenCV 3.1.0

環境構築

OpenCV

過去記事を参考にしつつ環境構築します

1$ sudo apt-get install cmake libgtk2.0-dev pkg-config
2$ git clone https://github.com/Itseez/opencv.git
3$ cd opencv
4$ git tag
5$ git checkout 3.1.0
6$ mkdir build && cd build
7$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_CREATE_DISRIB=ON -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_FFMPEG=OFF -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D PYTHON_EXECUTABLE=$(which python) ..
8$ make
9$ sudo make install

Python用のパッケージも作ってるけど特に意味はない
Yoloで必要なライブラリを配置する

1$ find /usr/local/ -name "libippicv*"
2$ ln -s /usr/local/share/OpenCV/3rdparty/lib/libippicv.a /usr/local/lib/

Yolo

基本的に公式サイト通り

 1$ git clone https://github.com/pjreddie/darknet
 2$ cd darknet/
 3$ make
 4$ wget https://pjreddie.com/media/files/yolo.weights
 5$ ./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
 6~中略~
 7data/dog.jpg: Predicted in 14.966523 seconds.
 8dog: 82%
 9truck: 65%
10bicycle: 85%

できた

エラーとか

/usr/bin/ld: -lippicv が見つかりません

1/usr/bin/ld: -lippicv が見つかりません
2collect2: error: ld returned 1 exit status
3Makefile:82: ターゲット 'libdarknet.so' のレシピで失敗しました
4make: *** [libdarknet.so] エラー 1

OpenCVでビルドしたライブラリのパスが通ってないのでコピーすると読み込めるようになる.
シンボリックリンク貼った方が良いと思う.

1$ find /usr/local/ -name "libippicv*"
2$ sudo cp /usr/local/share/OpenCV/3rdparty/lib/libippicv.a /usr/local/lib/

Unspecified error

1OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/username/opencv/modules/highgui/src/window.cpp, line 527

エラー内容の通りパッケージを入れて再度makeする.

1$ sudo apt-get install libgtk2.0-dev pkg-config
2$ make
3$ sudo make install

参考記事