目录
- tf-faster-rcnn指南(一)——序言
- tf-faster-rcnn指南(二)——平台搭建
- tf-faster-rcnn指南(三)——训练模型
- tf-faster-rcnn指南(四)——制作PASCAL VOC2007数据集
- tf-faster-rcnn指南(五)——训练自己的数据集
- tf-faster-rcnn指南(六)——绘制Precision-recall曲线
一、下载Github代码
git clone https://github.com/endernewton/tf-faster-rcnn.git
二、更改配置
cd tf-faster-rcnn/lib
# Change the GPU architecture (-arch) if necessary
vim setup.py
大家可以通过nvidia-smi查看自己电脑的GPU配置再看是否需要修改
GPU型号 | Architecture |
---|---|
TitanX (Maxwell/Pascal) | sm_52 |
GTX 960M | sm_50 |
GTX 1080 (Ti) | sm_61 |
Grid K520 (AWS g2.2xlarge) | sm_30 |
Tesla K80 (AWS p2.xlarge) | sm_37 |
三、编译
在上一步那个lib 文件夹中进行:
make clean
make
cd ..
四、安装COCO API
cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
cd ../../..
make指令可能提示gcc错误,通过修改环境变量解决
将它们的可执行程序路径写入环境变量中:
vim ~/.bashrc
点击i进入输入模式
将下列代码复制粘贴到文件最后:
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
点ESC退出输入模式,输入:wq
进行保存并退出。
命令行输入source ~/.bashrc
激活环境变量。
五、下载数据
1、Download the training, validation, test data and VOCdevkit
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
2、Extract all of these tars into one directory named VOCdevkit
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar
3、It should have this basic structure 解压后会有以下三个文件夹
$VOCdevkit/
$VOCdevkit/VOCcode/
$VOCdevkit/VOC2007
4、将VOCdevkit重命名为VOCdevkit2007
5、将VOCdevkit2007文件夹移动至data目录下
六、下载预训练模型
1、下载模型
# Resnet101 for voc pre-trained on 07+12 set
./data/scripts/fetch_faster_rcnn_models.sh
如果无法通过这条指令下载,可以在此网盘中下载https://pan.baidu.com/s/1xUzdaA01pgS1XC-zZI98mw
或者在官方的网盘中下载https://drive.google.com/drive/folders/0B1_fAEgxdnvJSmF3YUlZcHFqWTQ
(/tf-faster-rcnn/res101/voc_0712_80k-110k.tgz)
2、下载后放在data目录下进行解压
tar xvf voc_0712_80k-110k.tgz
七、建立预训练模型的软连接
1、返回tf-faster-rcnn目录
2、建立output 文件夹
mkdir output
3、建立软连接
NET=res101
TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval
mkdir -p output/${NET}/${TRAIN_IMDB}
cd output/${NET}/${TRAIN_IMDB}
ln -s ../../../data/voc_2007_trainval+voc_2012_trainval ./default
cd ../../..
八、demo测试
1、返回tf-faster-rcnn目录
2、
GPU_ID=01
CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py
九、使用训练好的faster模型对数据进行测试
这里有点地方需要改:首先把 tf-faster-rcnn/lib/datasets/voc_eval.py的第121行的
with open(cachefile,'w') as f
改成:
with open(cachefile,'wb') as f
同时还要把第105行的
cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile)
改成:
cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile.split("/")[-1].split(".")[0])
然后再进行测试:
GPU_ID=01
./experiments/scripts/test_faster_rcnn.sh $GPU_ID pascal_voc_0712 res101
测试结果:
总结
到此为止,所有步骤都成功则说明tf-faster-rcnn平台搭建,下一章将介绍如何训练自己的数据库。