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
建立的文件夹样式如下:
Linux下的FPN_Tensorflow运行_第1张图片
数据集我是从这里下载的
链接: link
同样失效可以复制下面链接
https://uinedu-my.sharepoint.com/:f:/g/personal/19604_myoffice_site/EiLTzAbNirROrQQF20eupMQB-KpIfZOa7w2YS5MB2ARvSA

1. 配置环境

系统:Linux下的 Ubuntu系统
Linux下的FPN_Tensorflow运行_第2张图片
这里就不介绍环境的具体安装教程了,可以自己去百度安装教程,网上有挺多的。

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文件中,修改如下代码
Linux下的FPN_Tensorflow运行_第3张图片
Linux下的FPN_Tensorflow运行_第4张图片

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,大概训练了一天半
Linux下的FPN_Tensorflow运行_第5张图片

10.1对训练集上进行评估,输入如下代码:

python eval.py --eval_imgs=’/FPN_Tensorflow/data/VOCdevkit/train/JPEGImages/’ --annotation_dir=’/FPN_Tensorflow/data/VOCdevkit/train/Annotations/’ --GPU=‘1’

结果:
Linux下的FPN_Tensorflow运行_第6张图片

10.2对测试集上进行评估,输入如下代码:

Python eval.py --eval_imgs=’/FPN_Tensorflow/data/VOCdevkit/test/JPEGImages/’ --annotation_dir=’/FPN_Tensorflow/data/VOCdevkit/test/Annotations/’ --GPU=‘1’

结果:
Linux下的FPN_Tensorflow运行_第7张图片

**指标:**召回率、精确率、平均精确率、MAP
Linux下的FPN_Tensorflow运行_第8张图片

11. 对几张图片进行测试,在终端输入如下命令

python inference.py --data_dir=’/FPN_Tensorflow/tools/demos’ --save_dir=’/FPN_Tensorflow/tools/inference_results’ --GPU=‘1’

结果:
原图:
Linux下的FPN_Tensorflow运行_第9张图片
输出预测框:
Linux下的FPN_Tensorflow运行_第10张图片

你可能感兴趣的:(Linux下的FPN_Tensorflow运行)