tf-faster-rcnn安装、修改记录

来源:互联网 发布:制作pe的软件 编辑:程序博客网 时间:2024/06/06 10:49

现在在用TensorFlow,所以找了这个 tf-faster-rcnn 实现faster rcnn。由于我的电脑是新装的,所以在安装过程中遇到不少问题,现在记录下来。
tf-faster-rcnn的github地址 https://github.com/endernewton/tf-faster-rcnn

作者的readme写的挺好的,照着做没问题。现在补充些我遇到的。

1、在pascal_voc上训练

1、安装cython,python-opencv,easydict,yaml。
import xxx不报错就行了。
2、修改GPU model
3、在运行测试脚本的时候。脚本调用的生成模型在output中,而且默认迭代70000次。如果中途停止了,想运行测试脚本。要修改test脚本中迭代值。否则会给出找不到模型的错误

2、在自己数据集上训练

训练自己的数据遇到不少问题,主要在于作者没给出修改哪些文件,现在记录下来。

1、制作自己的数据集
网上有很多制作pascal数据集的教程和代码,就不赘述了。做好的数据集放在data文件夹下。

2、修改训练、测试命令脚本

cd experiments/scripts/vim train_faster_rcnn.shvim test_faster_rcnn.sh

这里修改的是迭代次数

case ${DATASET} in  pascal_voc)    TRAIN_IMDB="voc_2007_trainval"    TEST_IMDB="voc_2007_test"    STEPSIZE="[5000]"    ITERS=10000    ANCHORS="[8,16,32]"    RATIOS="[0.5,1,2]"

3、修改超参数

cd lib/model/vim config.py

在config.py中可以修改学习率、动量等超参数。

4、修改pascal_voc.py。

cd lib/datasets

修改pascal_voc.py中的类别

  self._classes = ('__background__',  # always index 0                     'digital tube')

5、修改demo.py

cd tools/

这里有两处修改
(1)修改NETS名称。cpkt文件中的数字要跟生成模型的迭代次数一致,否则就找不到文件了。

NETS = {'vgg16': ('vgg16_faster_rcnn_iter_10000.ckpt',),'res101': ('res101_faster_rcnn_iter_110000.ckpt',)}DATASETS= {'pascal_voc': ('voc_2007_trainval',),'pascal_voc_0712': ('voc_2007_trainval+voc_2012_trainval',)}

(2)main函数中修改 类别数。我这里是2。数字应该是类别+1。1是背景。

net.create_architecture("TEST", 2,                          tag='default', anchor_scales=[8, 16, 32])

6、完成修改了,可以愉快训练测试了。

./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16

7、如果在训练或测试自己的数据集之前,先训练了一次作者的数据。可能会报出数据大小不一致的错误。删除之前训练生成的文件就好。这一点没有非常明白。我遇到过这种错误,用这种方法解决的。
如果您搞清楚了,可以在下面留言告诉我。