いつもの作業の備忘録

作業を忘れがちな自分のためのブログ

【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
f:id:whg_res:20160320211837p:plain
horse
f:id:whg_res:20160320211900p:plain
dog
f:id:whg_res:20160320211915p:plain
car
f:id:whg_res:20160320211933p:plain

※参考
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周りも動くことを確認できました。


※参考
http://www.rokudw.net/archives/66