Caffeの下でSSDの訓練と自分のデータをテストします

4311 ワード

一.caffe環境の構成
二.SSDソースコードのダウンロード、コンパイル、テスト
1.ソースのダウンロード
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd

2.ソースコードのコンパイル
  • Makefileを構成する.config 【Instuction】
  • 構成されたファイルリンク
  • pythonインタフェースなどをコンパイルする
  • make -j8
    # Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
    make py
    make test -j8
    # (Optional)
    make runtest -j8
    

    3.テストソース
  • 訓練されたモデルをダウンロードし、$CAFFE_ROOT/models/
  • に配置する.
  • VOC 2007、VOC 2012などのデータセットをダウンロードし、解凍し、$HOME/caffe/data/
  • に置く.
    # Download the data.
    cd $HOME/caffe/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
    # Extract the data.
    tar -xvf VOCtrainval_11-May-2012.tar
    tar -xvf VOCtrainval_06-Nov-2007.tar
    tar -xvf VOCtest_06-Nov-2007.tar
    
  • LMDBフォーマットデータセットの生成
  • 修正./data/VOC0712/create_list.shのroot_dir、name等
  • 修正./data/VOC0712/create_data.shのdata_root_dir、dataser_name等
  • cd $CAFFE_ROOT
    # Create the trainval.txt, test.txt, and test_name_size.txt in data/VOC0712/
    ./data/VOC0712/create_list.sh
    # You can modify the parameters in create_data.sh if needed.
    # It will create lmdb files for trainval and test with encoded original image:
    #   - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_trainval_lmdb
    #   - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_test_lmdb
    # and make soft links at examples/VOC0712/
    ./data/VOC0712/create_data.sh
    
  • SSDソースコードのテスト
  • gpu idおよびdeviceの修正に注意id
  • mAP score 0.77前後
  • cd $CAFFE_ROOT
    # You can modify the parameters in score_ssd_pascal.py if needed.
    python examples/ssd/score_ssd_pascal.py
    

    三.SSDを使って自分のデータセットを訓練する
    1.予備訓練パラメータ及びモデルをダウンロードする
    プリトレーニングモデルVGG_をダウンロードILSVRC_16_layers_fc_reduced.caffemodel、./models/VGGNet/経路の下に置く
    2.データセットの作成
    3.プロファイルの変更
  • 注釈ファイル$CAFFE_ROOT/data/​dataset_name/labelmap_voc.prototxt
  • を修正する.
  • 修正訓練文書$CAFFE_ROOT/data/example/ssd/ssd_pascal.py
  • VOC 0712を自分のデータセット名に置き換えることで、
  • を上書きすることを避けることができる.
  • カテゴリ数:num_classes = open(label_map_file).read().count(‘label’)
  • テスト画像数:num_test_image = len(open(name_size_file).readlines())
  • solver_param中’max_iter’:120000、最大反復回数を表す;test_interval’:10000、モデル効果の間隔反復回数を評価するたびに、収束するかどうかおよびオーバーフィットするかどうかを観察するために使用される

  • 4.トレーニング開始
    cd $CAFFE_ROOT
    python example/ssd/ssd_pascal.py
    

    5.テストトレーニング結果
    cd $CAFFE_ROOT
    python example/ssd/score_ssd_pascal.py
    

    四.その他
    1.発生したエラーおよび関連解決策
    2.いくつかの解釈
    リファレンスリンク
    【1】https://github.com/weiliu89/caffe/tree/ssd
    【2】https://blog.csdn.net/zhy8623080/article/details/73188594
    【3】https://www.cnblogs.com/EstherLjy/p/6863890.html
    【4】https://blog.csdn.net/lilai619/article/details/53791420