运行TFFRCNN算法

来源:互联网 发布:个人开发者 知乎 编辑:程序博客网 时间:2024/06/10 18:48

在GitHub上下载的TFFRCNN的程序,自己运行,走了很多的弯路,现记录下,供大家参考。

文章中所有下载的东西可以在这里下载:

链接:http://pan.baidu.com/s/1eR7HQmu 密码:05c9

代码在Ubuntu16.04上运行的,其中Python以及其他相关的支持包已经安装好。这里就不赘述了。


1.     首先下载TFFRCNN的例子程序:https://github.com/CharlesShang/TFFRCNN/#installation-sufficient-for-the-demo

2.     将程序解压,并导入PYCharm中

3.     推荐使用Python2(由于Python3的改动较大,会有很多报错的东西)。

File->settings->

 

 

4.     /home/china409/Myprogram/PythonProgram/yx/4docagain/TFFRCNN-master/lib目录下,修改make.sh文件如下:

 

修改为如下代码:

 

5.     下载文件(这些文件再文章开头的连接中可以下载):

VGG16 trained on ImageNet

VGG16 - TFFRCNN (0.689 mAP on VOC07).

VGG16 - TFFRCNN (0.748 mAP on VOC07)

Resnet50 trained on ImageNet

Resnet50 - TFFRCNN (0.712 mAP on VOC07)

PVANet trained on ImageNet, converted from caffemodel


下载后文件如图所示:

其中文件*.npy文件为预加载文件,*.ckpt文件为已经训练好的文件。

 

下载文件:


这三个文件分别为训练集、测试集和matlib文件。

6.     修改文件

/home/china409/Myprogram/PythonProgram/yx/TFFRCNN-master/faster_rcnn/demo.py

 

修改为如下代码:

 

 

7.     此时demo配置完成,运行时会运行“/home/china409/Myprogram/PythonProgram/yx/TFFRCNN-master/data/demo”中的图片。

 

8.     开始运行训练代码

9.     建立软链接

ln -s/home/china409/Myprogram/PythonProgram/yx/TFFRCNN-master/downloads/VOCdevkit_trainVOCdevkit2007

并将软链接copy到/home/china409/Myprogram/PythonProgram/yx/TFFRCNN-master/data目录下。

10.  修改文件/home/china409/Myprogram/PythonProgram/yx/TFFRCNN-master/faster_rcnn/train_net.py

 

此时便可以运行学习代码,运行时间会比较长,大概要6到10小时。

 

在运行时可以将迭代次数放小点,以加快速度:

parser.add_argument('--iters',dest='max_iters',

                    help='number of iterations to train',

                    default=50000,type=int)

 

11.  在训练完成后将demo.py中的model改为如下:

parser.add_argument('--model', dest='model', help='Model path',

                    default='/home/china409/Myprogram/PythonProgram/yx/TFFRCNN-master/output/faster_rcnn_voc_vgg/voc_2007_trainval')

12.  导入文件:from tensorflow.core.protobufimportsaver_pb2

13.  修改读取方式:


# 原代码

# saver = tf.train.Saver()

# saver.restore(sess, args.model)

# 修改

saver =tf.train.Saver(write_version =saver_pb2.SaverDef.V1)

ckpt =tf.train.get_checkpoint_state(args.model)

print("ckpt:", ckpt)

if ckpt andckpt.model_checkpoint_path:

    saver.restore(sess,ckpt.model_checkpoint_path)

# 修改

此时便完成了运行。

 

如果想修改测试样本,可以直接替换data/demo下的图片文件


原创粉丝点击