faster-cnnはPascal VOC 2007+2012合同訓練を用いる

5734 ワード

1、まず07/12データセットをダウンロードする
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
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
、VOCdevkitというフォルダに解凍
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar
tar xvf VOCtrainval_11-May-2012.tar
、中にあるはずのフォルダ:
$VOCdevkit/                           # development kit
$VOCdevkit/VOCcode/                   # VOC utility code
$VOCdevkit/VOC2007                    # image sets, annotations, etc.
$VOCdevkit/VOC2012                    # image sets, annotations, etc.
# ... and several other directories ...
4、faster rcnnは複数のデータセットトレーニングをサポートしていないため、2007と2012を手動で統合します.方法は、まずVOC 0712というフォルダを新規作成し、VOCdevkitの下にVOC 2007とVOC 2012の下にImageSets以外のすべてのフォルダをVOC 0712の下にコピーし(いくつかのフォルダをマージする必要がある)、それから何凱明はR-FCNにImageSetsフォルダを提供し、それをVにコピーする
OCdevkit/VOC0712/ 
Webサイト:https://github.com/Orpine/py-R-FCN
5、今フォルダの下に含まれているはずです
	$VOCdevkit/                           # development kit
	$VOCdevkit/VOCcode/                   # VOC utility code
	$VOCdevkit/VOC2007                    # image sets, annotations, etc.
	$VOCdevkit/VOC2012                    # image sets, annotations, etc.
	$VOCdevkit/VOC0712                    # you just created this folder
	# ... and several other directories ...
6、faster-cnnのdataフォルダの下でソフト接続を作成します.$は絶対パスの意味です.200720120712の3つのソフト接続を作成します.VOCdevkitに接続します.
cd $RFCN_ROOT/data
ln -s $VOCdevkit VOCdevkit2007
cd $RFCN_ROOT/data
ln -s $VOCdevkit VOCdevkit2012
cd $RFCN_ROOT/data
ln -s $VOCdevkit VOCdevkit0712
、07+12を使用する場合は、まずデータセット名を変更し、py-faster-rcnn-masterexperimentsscriptsfaster_を開きます.rcnn_end2end.sh
元のコード:
case $DATASET in   pascal_voc)     TRAIN_IMDB="voc_2007_trainval"    TEST_IMDB="voc_2007_test"    PT_DIR="pascal_voc"    ITERS=70000     ;;
変更後:
case $DATASET in   pascal_voc)     TRAIN_IMDB="voc_0712_trainval"   #この名前は分解に使われていますが、真ん中の数字はどのソフト接続のどのデータセットを表しています.    TEST_IMDB="voc_0712_test"    PT_DIR="pascal_voc"    ITERS=110000                                    #反復回数が大きくなったのは07+12データセットが大きいためです    ;;
8、名前を変更してもだめです.faster rcnnは2007と2012のデータセット名しか定義していないので、0712は定義していません.手動で追加します.py-faster-rcnn-masterlibdatasetsfactory.py
# Set up voc__ using selective search "fast"mode for year in ['2007', '2012','0712']:                      #ここに'0712'を追加    for split in ['train', 'val', 'trainval', 'test']:         name = 'voc_{}_{}'.format(year, split)         __sets[name] = (lambda split=split, year=year: pascal_voc(split, year))
9、これらを変更すれば運転できますが、
cd $FRCN_ROOT
./experiments/scripts/faster_rcnn_end2end.sh [GPU_ID] [NET] [--set ...]
# GPU_ID is the GPU you want to train on
# NET in {ZF, VGG_CNN_M_1024, VGG16} is the network arch to use
# --set ... allows you to specify fast_rcnn.config options, e.g.
#   --set EXP_DIR seed_rng1701 RNG_SEED 1701