win10+python3.6运行tensoflow版本的faster-RCNN

现在网上的版本一般都是基于Python3.5的版本,不支持python3.6,本文要尝试在Python3.6环境下运行fasterrcnn,下文同时也配了关于Python3.5的链接

Python3.5版本链接 https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5

关于环境配置

首先安装TensorFlow的GPU版本 具体的安装步骤网上有好多,其中我在知乎有看到一个很强的链接 https://zhuanlan.zhihu.com/p/51224259。这个方法比其他的都要简便,具体请看可以去查看上述链接。

然后就是安装一些必要的库:比如 Cython,esaydict,python-opencv,这些库都可以直接通过pip命令。

正文

从GitHub里下载的Python3.5版本的faster RCNN,如果没有任何修改,先运行一下demo.py一般首先出现的错误如图

win10+python3.6运行tensoflow版本的faster-RCNN_第1张图片

关于这个的原因主要是因为我们缺少了 lib.utils.cython_bbox文件,因为python3.5版本中lib.utils.cython_bbox是针对python3.5中,故我们需要生成一个3.6版本的lib.utils.cython_bbox文件,具体如下

我们需要对Faster RCNN项目当中的setup.py进行一点点修改Faster-RCNN-TensorFlow-Python3.5-master\data\coco\PythonAPI\setup.py,原始的是下面这样的

win10+python3.6运行tensoflow版本的faster-RCNN_第2张图片我们添加红色箭头一下的代码

Extension(
        'lib.utils.cython_bbox',
        sources=['../../../lib/utils/bbox.c', '../../../lib/utils/bbox.pyx'],
        include_dirs = [np.get_include(), '/lib/utils'],
        extra_compile_args=[],
    )

小心前面的逗号

在这里我们还需要的就是必须安装好pycocotools这个包;不然就会出现这个错误

win10+python3.6运行tensoflow版本的faster-RCNN_第3张图片

具体的你们可以查一下,好像安装这个之前你还需要安装Visual studio和git(也就是GitHub)这个不难网上有好多。

然后就是重新编译setup.py。大家都是通过cmd进行编译具体如图

编译成功后产生的文件在你运行的环境中比如图中site-packages\lib\utils中,将这个文件复制放在fasterRCNN项目lib\utils目录下

如图

win10+python3.6运行tensoflow版本的faster-RCNN_第4张图片

到了这就是下载数据集和VGG模型 这个我的百度云连接地址链接:https://pan.baidu.com/s/1SWV3BiNFljK6pICFsQ_o_A
提取码:6tkq
你们可以从中下载

这个是官网地址:

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

将以上三个压缩包解压到同一个文件夹下,然后同时选择三个压缩包,右键,然后选择解压到当文件夹下,会得到一个VOCdekit然后将其改为VOCdevkit2007,然后将这个文件夹拷贝到Faster-RCNN中data目录下

VGG16模型预训练权重下载地址:http://download.tensorflow.org/models

注意,下载后的VGG16模型的名字是vgg_16.ckpt,我们将其改为vgg16.ckpt;不然后面会报错,我就在这里坑惨了

接下来就是跑train.py

win10+python3.6运行tensoflow版本的faster-RCNN_第5张图片

为了节约时间,测试是否完全跑的通,你可以在config.py中设置, 将40000改为4000,等你需要的数目

训练完之后下面就是测试模型的时候,运行demo.py,不过在此之前需要将demo.py的第108行原来默认的res101,改成我们现在用的vgg16。就是下面这个位置

如果改完上面直接运行demo.py还可能出现下面的问题,

OSError: output\vgg16\voc_2007_trainval+voc_2012_trainval\default\vgg16_faster_rcnn_iter_70000.ckpt.meta not found.

这个问题解决要两步走,第一步是先修改一下训练权重的的保存位置,先新建一个名为output的文件夹,具体的文件名就按它报错的位置跟着新建就行如下图。

第二步就是后面那个迭代70000次的那个问题了,因为默认的最多迭代次数是40000次,所以不加修改前保存的模型应该是最多保存到40000次对应的模型的,需要将demo.py文件中的第39行对应的迭代次数名给改一下,当然如果你之前训练的模型里面包含70000次这个,这步就是不必要的了。

然后就开始运行demo.py文件了

最后成功就是这样的结果:

 关于计算map 在下一篇博客中

你可能感兴趣的:(项目一,目标检测算法)