Linux下的FPN_Tensorflow运行
Linux下的FPN_Tensorflow运行
借鉴代码
链接: link.
如果失效可以直接复制下边的链接
https://github.com/DetectionTeamUCAS/FPN_Tensorflow
数据集:
Pascal VOC2007 共计9963张图片,其中train:5011张 test:4952张
共包含20个类:aeroplane、bicycle、bird、boat、bottle、bus、car、cat、chair、cow、dining table、dog、horse、motorbike、person、potted plant、sheep、sofa、train、tvmonitor
建立的文件夹样式如下:
数据集我是从这里下载的
链接: link
同样失效可以复制下面链接
https://uinedu-my.sharepoint.com/:f:/g/personal/19604_myoffice_site/EiLTzAbNirROrQQF20eupMQB-KpIfZOa7w2YS5MB2ARvSA
1. 配置环境
系统:Linux下的 Ubuntu系统
这里就不介绍环境的具体安装教程了,可以自己去百度安装教程,网上有挺多的。
2.克隆项目
git clone https://github.com/DetectionTeamUCAS/FPN_Tensorflow
3. 下载预训练模型,resnet50_v1和resnet101_v1模型,并将其放到/FPN_Tensorflow/data/pretrained_weights
resnet50_v1: link.
resnet101_v1: link.
4. 在文件夹下(FPN_Tensorflow/libs/configs/)中选择一个基础网络,并将其覆盖到cfgs.py中,根据自己的数据集修改相关参数
因为我是直接用的Pascal VOC2007数据集,所以我改变参数如下:
test_annotate_path = ‘FPN_Tensorflow/data/VOCdevkit/train/Annotations’
DATASET_NAME = ‘pascal’
CLASS_NUM = 20
5. 编译
cd /FPN_Tensorflow/libs/box_utils/cython_utils
cd和斜杠之间有空格!!!!
python setup.py build_ext --inplace
6. label_dict.py的修改
在文件夹中
/FPN_Tensorflow/libs/label_name_dict/label_dict.py文件中,修改如下代码
7. read_tfrecord.py的修改 在FPN_Tensorflow/data/io/read_tfrecord.py中第76行,添加自定义的数据集名字,由于我这里的数据集名字就是pascal,所以这里我并没有改。
8. 运行convert_data_to_tfrecord.py,制作tfrecord文件 运行下面代码
python convert_data_to_tfrecord.py
–VOC_dir=’/FPN_Tensorflow/data/VOCdevkit/train/’
–xml_dir=‘Annotations’
–image_dir=‘JPEGImages’
–save_name=‘train’
–img_format=’.jpg’
–dataset=‘pascal’
这里python convert_data_to_tfrecord.py 后边的(例如VOC_dir=’/FPN_Tensorflow/data/VOCdevkit/train/’ )在运行时是放在一行的
结果
图片:
9. 训练,运行python multi_gpu_train.py
这里指定了GPU,因为之前一直在用CPU 在运行,消耗的时间很长,后来换成了GPU,大概训练了一天半
10.1对训练集上进行评估,输入如下代码:
python eval.py --eval_imgs=’/FPN_Tensorflow/data/VOCdevkit/train/JPEGImages/’ --annotation_dir=’/FPN_Tensorflow/data/VOCdevkit/train/Annotations/’ --GPU=‘1’
结果:
10.2对测试集上进行评估,输入如下代码:
Python eval.py --eval_imgs=’/FPN_Tensorflow/data/VOCdevkit/test/JPEGImages/’ --annotation_dir=’/FPN_Tensorflow/data/VOCdevkit/test/Annotations/’ --GPU=‘1’
结果:
**指标:**召回率、精确率、平均精确率、MAP
11. 对几张图片进行测试,在终端输入如下命令
python inference.py --data_dir=’/FPN_Tensorflow/tools/demos’ --save_dir=’/FPN_Tensorflow/tools/inference_results’ --GPU=‘1’
结果:
原图:
输出预测框: