py-faster-RCNN
研究で使うと思ったのに使わなかったものにRegion-CNNがある。
インストールは caffe と同じ。ubuntu14.04 に nvidia のグラボがあればインストールは難しくないが今回はMacOSX に CPU のみでインスールする。
opencvは2.4.12、openblas はhomebrewでインストール。
まだopencv3でcaffeをビルドしたことがなく、インストールの時だけ2系にして入れてる。
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git cd $FRCN_ROOT/lib/nms cython cpu_nms.pyx gcc -shared -o cpu_nms.so cpu_nms.c -lboost_python `pkg-config python --libs`
Makefile は適宜設定
cd $FRCN_ROOT cp Makefile.config.example Makefile.config make -j4
残念。cudaが要求されてビルドエラーするので、cmake で Makefile を生成する。
-- ******************* Caffe Configuration Summary ******************* -- General: -- Version : 1.0.0-rc3 -- Git : 0dcd397-dirty -- System : Darwin -- C++ compiler : /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- Release CXX flags : -O3 -DNDEBUG -fPIC -Wall -Wno-sign-compare -Wno-uninitialized -- Debug CXX flags : -g -fPIC -Wall -Wno-sign-compare -Wno-uninitialized -- Build type : Release -- -- BUILD_SHARED_LIBS : ON -- BUILD_python : ON -- BUILD_matlab : OFF -- BUILD_docs : ON -- CPU_ONLY : ON -- USE_OPENCV : ON -- USE_LEVELDB : ON -- USE_LMDB : ON -- ALLOW_LMDB_NOLOCK : OFF -- -- Dependencies: -- BLAS : Yes (vecLib) -- Boost : Yes (ver. 1.59) -- glog : Yes -- gflags : Yes -- protobuf : Yes (ver. 2.6.1) -- lmdb : Yes (ver. 0.9.14) -- LevelDB : Yes (ver. 1.18) -- Snappy : Yes (ver. 1.1.3) -- OpenCV : Yes (ver. 2.4.12) -- CUDA : No -- -- Python: -- Interpreter : /Volumes/Macintosh_HD2/usr/bin/python2.7 (ver. 2.7.11) -- Libraries : /usr/lib/libpython2.7.dylib (ver 2.7.10) -- NumPy : /Volumes/Macintosh_HD2/usr/lib/python2.7/site-packages/numpy/core/include (ver 1.10.4) --
python のライブラリがOSXのものになっているので、CMakeCache.txtの404行目、PYTHON_LIBRARYを書き換え再度cmake。
とにかくMacの場合homebrewを使うのでpythonのライブラリも/usr/local/以下に合わせる。
pkg-config python --libs で場所がわかる。
-- Python: -- Interpreter : /Volumes/Macintosh_HD2/usr/bin/python2.7 (ver. 2.7.11) -- Libraries : /Volumes/Macintosh_HD2/usr/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib (ver 2.7.10) -- NumPy : /Volumes/Macintosh_HD2/usr/lib/python2.7/site-packages/numpy/core/include (ver 1.10.4) --
再度make && make pycaffe。
pythonのパスとダイナミックリンクの設定。
export PYTHONPATH=$FRCN_ROOT/lib export LD_RUN_PATH=$FRCN_ROOT/caffe-fast-rcnn/lib:$LD_RUN_PATH
GPUは要らないので、lib/fast_rcnn/nms_wrapper.py を書き換え
from fast_rcnn.config import cfg #from nms.gpu_nms import gpu_nms from nms.cpu_nms import cpu_nms def nms(dets, thresh, force_cpu=False): """Dispatch to either CPU or GPU NMS implementations.""" if dets.shape[0] == 0: return [] """ if cfg.USE_GPU_NMS and not force_cpu: return gpu_nms(dets, thresh, device_id=cfg.GPU_ID) else: return cpu_nms(dets, thresh) """ return cpu_nms(dets, thresh)
デモの実行
cd $FRCN_ROOT ./data/scripts/fetch_faster_rcnn_models.sh ./tools/demo.py --cpu
ずらっと10枚のデモ画像が並ぶはず。
計算機サーバー
研究室のサーバーには多段sshで入らなければならず大変。
hiyoko@server> xhost access control enabled, only authorized clients can connect
の具合でいつもご機嫌よければいいけど
xhost: unable to open display "localhost:11"
でイラつく。ホームに
#!/usr/bin/tcsh set i=9 while ($i != 30) @ i = $i + 1 setenv DISPLAY localhost:${i} xhost >& /dev/null && echo "setenv DISPLAY $DISPLAY" end
でディスプレイ番号を探してるけど、俄かに
X connection to localhost:10.0 broken (explicit kill or server shutdown).
となると手がつけられない。
ログアウト。ログアウト。ログアウト。ログイン。ログイン。ログイン。。。。
タイムアウトなのかな。コーヒーブレイクも許されない。caffeを使うのに。
やるよ。やればいいんだろ!?
院生はブログを開設して情報を発信する義務があるらしく此度めでたく開設することになった。研究室に配属されたのは昨年のことで研究自体は半年しかしていない。卒業研究では数多くの問題にぶち当たるので半年の間にネットの情報にはお世話になった。この間に自分でも気づきがあり情報を寄与したいと考えていたので少しずつ還元していきたいと思う。