今回は、Jetson TX1上のCaffeを用いて物体検出をしてみる。
まず、caffeのexamples/detection.ipybにて用いられているdetect.pyを試してみる。
1)RCNNのモデルをダウンロードする
> ./scripts/download_model_binary.py models/bvlc_reference_rcnn_ilsvrc13/ 2)selective_searchのpython版をgithubからダウンロードし、展開する [https://github.com/sergeyk/selective_search_ijcv_with_python] >|sh| > unzip selective_search_ijcv_width_python-master.zip > mv selective_search_ijcv_width_python-master caffe/python/caffe/selective_search_ijcv_width_python
3)selective_search.pyのsubprocess.Popenに「shell=True」を追加
> cd caffe/python/caffe/selective_search_ijcv_width_python > vi selective_search.py pid = subprocess.Popen(shlex.split(mc), shell=True, stdout=open('/dev/null', 'w'), cwd=script_dirname)
※このpythonスクリプトは、matlabのインタフェース的な位置づけのため実行するためにはmatlabが必要となる。
4)以下のようにdetect.pyを実行する。
./python/detect.py --crop_mode=selective_search --pretrained_model=models/bvlc_reference_rcnn_ilsvrc13/bvlc_reference_rcnn_ilsvrc13.caffemodel --model_def=models/bvlc_reference_rcnn_ilsvrc13/deploy.prototxt --gpu --raw_scale=255 det_input.txt det_output.h5
det_input.txtは以下のように画像のパスの一覧を記載する。
examples/images/fish-bike.jpg