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