Jetson TX1 で Faster R-CNN のPython実装のデモを動かすところまでやってみました。基本的にはこのREADMEに従えば動くのですが、いくつかはまりポイントがあったので、自分のメモがてら残しておきます。
JetPack のセットアップ
[JetPack for L4T 2.1]
(https://developer.nvidia.com/embedded/jetpack-2_1) をインストール。v2.2は CuDNNのバージョンが5.0で動かないので注意。
インストール
ソースコードの取得
公開認証鍵を作成して GitHub に登録する。このあたりをみてもらえるとよいかと。
[gitHubでssh接続する手順~公開鍵・秘密鍵の生成から~]
(http://qiita.com/shizuma/items/2b2f873a0034839e47ce)
$ cd .ssh
$ ssh-keygen
Faster R-CNN のソースコードを git clone する。--recursive を入れるのを忘れずに。
$ cd ..
$ sudo apt install git
$ git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
依存ライブラリのインストール
これだけ入れておけば動きます。
$ sudo apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libboost-all-dev libgflags2 libgflags-dev libgoogle-glog-dev liblmdb-dev libyaml-dev
$ sudo apt-get install python-numpy python-setuptools python-pip cython python-opencv python-skimage python-protobuf
$ sudo pip install easydict PyYAML
##Cython モジュールのコンパイル
$ cd py-faster-rcnn/lib
$ sed -i -e 's/lib64/lib/g' setup.py
$ make
#途中でエラーが出るので、gpu_nms.cpp を書き換えて再度 make
$ sed -i -e '1617s/__pyx_t_5numpy_int32_t/int/g' nms/gpu_nms.cpp
$ make
参考:http://blog.csdn.net/jiajunlee/article/details/50373815
##Caffe のインストール
$ ../caffe-fast-rcnn/
$ cp Makefile.config.example Makefile.config
下記の項目のコメントを外す。
USE_CUDNN := 1
WITH_PYTHON_LAYER := 1
検証について
-
使用したモデル
VGG16: 13層の畳み込み層
ZF: 5層の畳み込み層 -
学習は行わず、Forward propagation のみ実施
-
候補領域数は最大300 に設定
実行結果
TX1では特に調整することなく動いた。各モデルの平均処理時間は下記の通り。
モデル | 平均処理時間(秒) | 平均領域候補数 |
---|---|---|
VGG16 | 3.01 | 230 |
ZF | 0.91 | 233 |