1.下载fasterrcnn源码。
https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5
2.配置好安装环境。
本文的安装环境是:WIN10 tensorflow1.2 cuda8.0 cudnn5.0 fasterrcnn python3.5
注意:本文的python是3.5版本,因为源码就是基于3.5版本的。本文安装了VS2015,如果不安装,后面可能出现一些问题。建议安装VS2015。
3.用pip安装cython, python-opencv, easydict...
4.Checkout this branch(注意:这一步不用管)
这一步我执行了,出现了下面的分支,我就没有改。
git checkout
5.Go to ./data/coco/PythonAPI
在这个路径下面执行:
python setup.py build_ext --inplace
python setup.py build_ext install
如果没有报错就会出现下面的画面。
如果报错,就有可能是coco的问题:
命令行 error D8021 :无效的数值参数“/Wno-cpp”的解决办法
这是因为pycocotools不支持windows。
但是有大神已经修改出了windows版本,https://github.com/philferriere/cocoapi。
执行,
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
打印出如下信息,已经安装成功了。
如果长时间没有编译成功,或者,可以下载下来,运行setup.py。
然后在重新编译:
python setup.py build_ext --inplace
python setup.py build_ext install
基本上问题就解决了。
6.download PyCoco database
下载VOC2007数据。
下载地址:
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
下载后解压,放在data下面:目录结构大概是这个样子,注意 记得修改文件夹的名字为 VOCDevkit2007,不然会报错。
7.下载Download pre-trained VGG16
下载地址:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz)
将其放到 路径下,没有就建立一个文件夹。 "data\imagenet_weights\vgg16.ckpt"
注意:下载后的VGG16模型的名字是vgg_16.ckpt,将其改为vgg16.ckpt,不然后面会报错。
8.7- Run train.py
在cmd下转到train.py路径下运行
python train.py
然后就没有问题了。
9.run python demo.py
首先在demo.py同级目录下,建立一个这样的目录文件:E:\Faster-RCNN-TensorFlow-Python3.5\output\vgg16\voc_2007_trainval+voc_2012_trainval\default
然后将训练完的模型移到该文件夹如面。如下图所示:
然后,打开demo.py, 将42行修改成如下:
修改前:
NETS = {'vgg16': ('vgg16_faster_rcnn_iter_10000.ckpt',), 'res101': ('res101_faster_rcnn_iter_110000.ckpt',)}
修改后:
NETS = {'vgg16': ('vgg16_faster_rcnn_iter_10000.ckpt',)}
将109行修改成如下:
修改前:parser.add_argument('--net', dest='demo_net', help='Network to use [vgg16 res101]',
choices=NETS.keys(), default='res101')
修改后:
parser.add_argument('--net', dest='demo_net', help='Network to use [vgg16 res101]',
choices=NETS.keys(), default='vgg16')
最后成功运行如下: