使用pascal voc训练测试faster rcnn

前提:已经配置好了faster rcnn运行环境。如果还没有,请参考:https://mp.csdn.net/console/editor/html/105133096

faster rcnn可以使用不同的backbone(基础网络/分类网络)例如:VGG16,ZF,VGG_CNN_M_1024。这里以VGG_CNN_M_1024为例。

训练faster rcnn也有不同的训练模式,例如:faster_rcnn_alt_opt,faster_rcnn_end2end。这里以faster_rcnn_end2end为例。

一、下载数据

在终端输入:

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

二、

在py-faster-rcnn-master/data目录下将(1)中下载的三个压缩包解压。解压后,data文件夹中有VOCdevkit文件夹,VOCdevkit文件夹中主要包含VOC2007和VOCcode。

解压命令:

tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar

三、建立软连接

cd到py-faster-rcnn-master/data目录下:

sudo ln -s VOCdevkit VOCdevkit2007

四、下载预训练好的ImageNet模型

cd到py-faster-rcnn-master目录下:

./data/scripts/fetch_imagenet_models.sh

下载后,在data文件夹中会有一个imagenet_models文件夹。(如果没有,找到imagenet_models文件夹,将其放到data中)

注:下载pre-trained ImageNet models时,最好不要在终端上下载,因为需要外网,所以终端下载可能会出错。你可以连接外网,手动下载https://dl.dropboxusercontent.com/s/gstw7122padlf0l/imagenet_models.tgz?dl=0

五、训练+测试

【如果进行过一次训练,在下次训练之前一定要把以下文件删除】

(1)output文件夹

(2)py-faster-rcnn/data/cache中的文件

(3)py-faster-rcnn/data/VOCdevkit2007软链接中的annotations_cache文件

开始训练测试!

cd到py-faster-rcnn-master目录下:

./experiments/scripts/faster_rcnn_end2end.sh 0 VGG_CNN_M_1024 pascal_voc

执行以上命令,会进行训练,训练结束后会自动进行测试。

你也可以训练和测试分开进行:

(1)训练:

cd到py-faster-rcnn-master目录下:

./tools/train_net.py  
--gpu ${GPU_ID}   
--solver models/${PT_DIR}/${NET}/faster_rcnn_end2end/solver.prototxt   
--weights data/imagenet_models/${NET}.v2.caffemodel 
--imdb ${TRAIN_IMDB} # voc_2007_trianval
--iters ${ITERS}  # 迭代次数
--cfg experiments/cfgs/faster_rcnn_end2end.yml 

(以上命令只是一个模子,需要大家根据自己的情况自行填写完整)

(2)测试:

cd到py-faster-rcnn-master目录下:

./tools/test_net.py
--gpu 0
--def models/pascal_voc/VGG_CNN_M_1024/faster_rcnn_end2end/test.prototxt
--net output/foobar/voc_2007_trainval/vgg_cnn_m_1024_faster_rcnn_iter_70000.caffemodel
--imdb voc_2007_test
--cfg experiments/cfgs/faster_rcnn_end2end.yml

(以上命令只是针对我自己的一个例子,具体的命令你需要根据自己的情况自行修改参数路径)

以上命令行参数,如果你嫌麻烦,可以提前在

~/py-faster-rcnn-master/experiments/scripts/faster_rcnn_end2end.sh

文件中进行设置。

另外,一些超参数在

~/py-faster-rcnn-master/py-faster-rcnn-master/models/pascal_voc/VGG_CNN_M_1024/faster_rcnn_end2end/solver.prototxt

文件中可以自行修改。

参考博客:

https://www.cnblogs.com/elitphil/p/11547429.html

https://blog.csdn.net/meccaendless/article/details/79569104

发布了75 篇原创文章 · 获赞 9 · 访问量 9574

猜你喜欢

转载自blog.csdn.net/ly_twt/article/details/105561069
今日推荐