【Caffe】Faster RCNNを使ってみる
一般物体検出で有名なFaster RCNNのデモを動かす。基本的にはREADME.mdに沿って実施すれば問題ない。
1.Faster RCNNレポジトリのコピー
gitでFaster RCNNのレポジトリをコピーする。コピーしたディレクトリを$FRCNNとする。
$ git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
2.Cythonモジュールのビルド
$ cd $FRCNN/lib $ make
3.Caffeとpycaffeのビルド
$ cd $FRCNN/caffe-fast-rcnn $ cp Makefile.config.example Makefile.config $ vim Makefile.config
Makefile.configの編集。 WITH_PYTHON_LAYER := 1 を忘れないように注意。それ以外は通常のコンパイルを参考に。
【Caffe】Ubuntu 14.04へのインストール - いつもの作業の備忘録
ビルド実行
$ make -j8 && make pycaffe
4.モデルのダウンロードとデモ実行
予めOpencvをインストールしておく必要がある。以下のページを参照。
【Ubuntu】Opencv2.4.11をUbuntuにインストールする - いつもの作業の備忘録
$ cd $FRCNN $ ./data/scripts/fetch_faster_rcnn_models.sh $ ./tools/demo.py
入力画像は予め設定されており、うまく動くと処理結果のウィンドウがいくつか立ち上がる。
以下のような結果が得られる。どうもクラスごとに別々の画像が立ち上がるらしい。
person
horse
dog
car
※参考
http://shumilinux.blogspot.jp/2015/08/ubuntu-1404-ltsopencv2411.html
【Ubuntu】Opencv2.4.11をUbuntuにインストールする
CuDNNが入った環境でOpencvをインストールする際のメモ。
1.easydictのインストール
Opencvを使うプログラム(Faster RCNNなど)を動かそうとするとImport Error: No module named easydictというエラーが出るのでpipでインストール
$ pip install easydict
OpenCVが入っていない場合、Import Error: No module named cv2 というエラーが出る。以下の手順でインストール。
2.apt-getの更新と必要ライブラリのインストール
まず、ソフトウェアアップデートをかけて、必要なライブラリ郡をインストール。
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
※ここでapt-get upgradeによってUbuntuにログインできなくなっった場合は以下を参照して復帰。
【Ubuntu】ソフトウェアアップデート時のログインエラー対処 - いつもの作業の備忘録
3.OpenCVのインストール
OpenCVのダウンロード。OpenCVのインストール先を$OPENCVとする。
$ cd $OPENCV $ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.11/opencv-2.4.11.zip $ unzip opencv-2.4.11.zip $ cd opencv-2.4.11/
Cmakeを実行。CUDA_GENERATION=Autoではうまく行かなかったのでKeplerを指定した。利用するGPUによって変える必要がある
$ mkdir build $ cd build/ $ cmake -D BUILD_EXAMPLES=ON -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_1394=OFF -D WITH_IPP=ON -D WITH_TBB=ON -D WITH_V4L=OFF -D PYTHON_EXECUTABLE=/home/daisuke/work/dl_tools/anaconda2/bin/python -D PYTHON_LIBRARY=/home/daisuke/work/dl_tools/anaconda2/lib/libpython2.7.so -D PYTHON_INCLUDE=/home/daisuke/work/dl_tools/anaconda2/include/python2.7 -D PYTHON_PACKAGES_PATH=/home/daisuke/work/dl_tools/anaconda2/lib/python2.7/site-packages -D BUILD_TIFF=ON -D CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_CXX_COMPILER=/usr/bin/g++ -D CUDA_GENERATION=Kepler ../
続いてビルド。この作業は1時間ほどかかる。
※CUDA8.0を使う場合、make時にエラーが出る。エラーの対処法を紹介しているブログが見つかったので以下を参考にしていただきたい。
https://rohanrajblogs.blogspot.jp/2016/12/installation-of-opencv-2411-along-with.html
$ make $ sudo make install
4.パスの設定
以下のコマンドでopencv.confを開き、ファイル(の最後)に以下の行を加える
$ sudo vim /etc/ld.so.conf.d/opencv.conf
#記述内容 /usr/local/lib
共有ライブラリの依存関係を更新
$ sudo ldconfig
パスを設定。bash.bashrcに以下の内容を追記。
$ sudo vim /etc/bash.bashrc
記述内容 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
bash.bashrcを有効にするためにターミナルを再起動し、pythonを実行。
import cv2がエラーなく終了すればインストール成功
※参考
http://www.icrus.org/horiba/article/2014_11_07_01.php
http://shumilinux.blogspot.jp/2015/08/ubuntu-1404-ltsopencv2411.html
http://stackoverflow.com/questions/28010399/build-opencv-with-cuda-support
https://rohanrajblogs.blogspot.jp/2016/12/installation-of-opencv-2411-along-with.html
【Ubuntu】ソフトウェアアップデート時のログインエラー対処
先日、apt-getでupgradeした後、Ubuntuにログインできなくなったため対処法を記録。
GUIのログイン画面からパスワードを入れてEnterを押すと、再度ログイン画面に戻ってくるという現象です。.Xauthorityを消すなども試してみましたが効果がなく、どうもNvidiaのドライバ周りが怪しいという情報を発見。以下のサイトを参考に復元しました。
Ubuntu14.04にCUDA Toolkit or NVIDIAグラフィックスドライバを入れるとGUI環境でログインできなくなる問題について - 六彩庵
やったこととしては
$ sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
$ sudo reboot
これだと、再起動時にNvidiaのドライバが動いてなかったので、再度ドライバをインストール。
過去のページを参考にNVIDIA-Linux-x86_64-361.28.runを実行してください。
無事、GUIでログインしてCaffe周りも動くことを確認できました。