这个实验是基于# dBeker/Faster-RCNN-TensorFlow-Python3做的
1、下载这个tensorflow的faster-RCNN版本,并按照他的README.md完成配置。
git clone https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.git
进入其文件夹,之后会看到如下所示的东西里面有三个文件夹,其中data是我们放数据的文件夹,里面有cache、coco、demo和scripts四个子文件夹,新建一个文件夹imagenet_weights,将下载下来的VGG16模型放至该文件夹中,再将下载下来的PASCAL VOC2007的训练数据集放至其中,以供训练模型使用。
2、将以上东西都配置好了之后就可以进行模型的训练了
python train.py
就可以完成训练,训练出来的模型会被放在“./default/voc_2007_trainval/default”目录中,到时候调用demo.py的时候就可以直接调用demo.py
3、接下来是最让人头疼的调试demo.py的步骤了
一定要将demo.py中这一行代码给注释掉
tfmodel = os.path.join('output', demonet, DATASETS[dataset][0], 'default', NETS[demonet][0])
因为不注释掉这一行代码的话,会出现找不到训练出来的模型的问题。
其次,还要将以下代码块也一并注释掉
if not os.path.isfile(tfmodel + '.meta'):
print(tfmodel)
raise IOError(('{:s} not found.\nDid you download the proper networks from '
'our server and place them properly?').format(tfmodel + '.meta'))
同时添加一行代码
tfmodel = './default/voc_2007_trainval/default/vgg16_faster_rcnn_iter_40000.ckpt'
完成以上步骤还不足以完成demo.py的训练,还需要将\lib\config\config.py中的
tf.app.flags.DEFINE_string('network', "vgg16", "The network to be used as backbone")
转换成
tf.app.flags.DEFINE_string('net', "vgg16", "The network to be used as backbone")
这样便可完成demo.py的测试。