Faster RCNN源码运行与调试

先决条件

下载源码

地址:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0

新建文件夹data

下载数据集

VOC数据集

地址:

http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar 

http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar 

http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

解压至VOCdevkit目录中

(或者使用命令行操作下载、解压

解压之后的目录基本结构:

创建软连接:

也可以不创建,直接将VOCdevkit重命名为VOCdevkit2007,放到data目录下即可

下载VGG16和ResNet预训练模型 

地址:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0

下载完成后将模型放入:data/pretrained_model/

所有python依赖项

pip install -r requirements.txt (安装requirements.txt中要求的所有包)

编译cuda依赖项(系楼服务器用conda create -n py2.7 python=2.7创建虚拟环境)

cd lib

python setup.py build develop

 

训练

例如:

CUDA_VISIBLE_DEVICES=0 python trainval_net.py --dataset pascal_voc --net res101 --cuda 

遇到的问题:

ImportError: cannot import name _mask

参考:https://blog.csdn.net/weixin_42279610/article/details/103086379https://blog.csdn.net/weixin_43869778/article/details/96837042

下载最新的cocoapi(https://github.com/cocodataset/cocoapi

git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make

将faster-rcnn.pytorch/lib里面的pycocotools文件夹删除,替换为新下载并且编译好的coco/PythonAPI里面的pycocotools。

 解决,运行成功!

在xshell退出后保持服务器运行的方法

运行命令时,在python 前面加入nohup,并在命令结束时加入&。

例:

CUDA_VISIBLE_DEVICES=0 nohup python trainval_net.py --dataset pascal_voc --net res101 --cuda &

运行后,会首先输出一个进程号,例如:

 

 cat nuhup.out 即可查看程序运行的结果。

如:

训练到了第五个epoch,前四次的结果保存如下:

测试

由于没有训练完,测试选取第4次的实验结果。

python test_net.py --dataset pascal_voc --net res101 --checksession 1 --checkepoch 4 --checkpoint 10021 --cuda

其中,“checksession”、“checkeopch”、“checkpoint”的值分别对应于要使用的训练结果文件中的三个值。(本例是: faster_rcnn_1_4_10021.pth)

测试完毕:

 

 mAP为0.7224

猜你喜欢

转载自www.cnblogs.com/douliyoutang01/p/12419124.html