LoginSignup
15
16

More than 5 years have passed since last update.

SSD(Single Shot MultiBox Detector)を試す

Posted at

SSDのCaffe実装が公開されていたので試してみた

基本はREADME.mdに書いてある通りに進める
いくつか追加で行った事があるのでメモ
Ubuntu 14.04 x86_64 LTSで確認
(ハードウェアはIntel Core i7-6700K, Memory 16GB, 1x NVIDIA Geforce GTX 980 Ti)
GPU(NVIDIA CUDA)を使う場合の設定については書かないので別の情報を参考にして構築済みであることを想定している

GitHub からリポジトリをクローンしてssdブランチに切り替える

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
CAFFE_ROOT=$(pwd)

Caffeのビルドをしてtestが通るところまで確認する

CPUのみ(GPUなし)の場合は以下の変更をする
Makefile.configの8行目: CPU_ONLY := 1をコメント解除

sudo apt-get -y install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get -y install libatlas-base-dev libopenblas-dev
sudo apt-get -y install python-skimage python-protobuf
sudo apt-get --no-install-recommends libboost-all-dev
cp Makefile.config.example Makefile.config
make all -j8
export PYTHONPATH=${CAFFE_ROOT}/python:${PYTHONPATH}
sudo sh -c "echo 'PYTHONPATH=$PYTHONPATH' > /etc/environment"
make pycaffe -j8
make test -j8
make runtest -j8
make pytest -j8

make runtestでPASSEDと表示されれば問題なし
次のステップに進む

ネットワーク定義ファイルをダウンロードする

  • ここ からネットワーク定義のファイルをダウンロード
  • caffe/models/VGGNetに置く
wget https://gist.githubusercontent.com/weiliu89/2ed6e13bfd5b57cf81d6/raw/758667b33d1d1ff2ac86b244a662744b7bb48e01/VGG_ILSVRC_16_layers_fc_reduced_deploy.prototxt
mkdir ${CAFFE_ROOT}/models/VGGNet
mv VGG_ILSVRC_16_layers_fc_reduced_deploy.prototxt ${CAFFE_ROOT}/models/VGGNet/

訓練・テストデータのダウンロード

訓練をしない場合は必要ないのでウェブカメラのサンプル動かすだけならスキップしてよい
* PASCAL VOC2007/2012のデータセットをダウンロード, 展開する

mkdir ${HOME}/data
cd ${HOME}/data
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
  • LMDBフォーマットのデータセットを作成する
cd ${CAFFE_ROOT}
chmod u+x ./data/VOC0712/create_list.sh ./data/VOC0712/create_data.sh
./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh

訓練済モデルのダウンロード

ここ からVOC0712:SSD300の訓練済モデルをダウンロードして展開する

wget http://www.cs.unc.edu/%7Ewliu/projects/SSD/models_VGGNet_VOC0712_SSD_300x300.tar.gz
tar -xzvf models_VGGNet_VOC0712_SSD_300x300.tar.gz
mv models/VGGNet/VOC0712 ${CAFFE_ROOT}/models/VGGNet

サンプルを動かす

  • 訓練する
    examples/ssd/ssd_pascal.pyの285行目付近のgpus = "0,1,2,3"gpus = "0"とする
python examples/ssd/ssd_pascal.py
  • ウェブカメラからの画像をリアルタイムで処理する
    CPUのみの場合は102行目を変更する
solver_mode = P.Solver.GPU

から下記のようにする

solver_mode = P.Solver.CPU

次のように入力してサンプル実行
Escキーで終了する

python examples/ssd/ssd_pascal_webcam.py
15
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
16