Windows10+Tensorflow+faster-rcnn 运行环境搭建

  上一篇文章介绍了window10 下TensorFlow-gpu,环境的搭建。本文主要是在此基础上搭建faster-rcnn

  源码地址:https://github.com/dBeker/Faster-RCNN-TensorFlow-Python3.5

  一步步说明:

1- Install tensorflow, preferably GPU version. Follow instructions. If you do not install GPU version, you need to comment out all the GPU calls inside code and replace them with relavent CPU ones.

2- Install python packages (cython, python-opencv, easydict)

activate tensorflow   #(你自己命名的环境)也可以通过客户端打开
pip install easydict

Tips: faster-rcnn依赖的库比较多,自己搭建时,忘记记下了。搭建过程中缺什么就pip 安装什么吧

有一点需要注意,当出现错误时!!!

ImportError: No module named PIL

    不要用命令 pip install PIL ,因为PIL最新版本只能支持到python2.7。而我们使用的Python3.5版本,因此出现这个问题时候,用命令 

pip install pillow 

3- Checkout this branch

    以上三步没什么好说的照做就是

4- Go to ./data/coco/PythonAPI
      Run   python setup.py build_ext --inplace

      Run   python setup.py build_ext install

      在自己命名的tensorflow环境里进入到相关文件夹,执行命令 ,执行上述命令中会报出缺少某些库的错误,pip安装即可。 

     错误1:

error: Unable to find vcvarsall.bat

    这是因为没有装VS2015的相关库导致的,安装相关库后即可解决。因为VS安装的是VS2015的话,应该不会出现这个问题。 下载相应的库安装即可

官方解决方案:https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to-find-vcvarsall-bat/#comments

参考文章:https://www.cnblogs.com/yyds/p/7065637.html

5- Follow this instruction to download PyCoco database. Link
I will be glad if you can contribute with a batch script to automatically download and fetch. The final structure has to look like
      "data/VOCDevkit2007/annotations_cache"

      "data/VOCDevkit2007/VOC2007"

  下载文件后,将 VOCtrainval_06-Nov-2007.tar 解压后的文件夹VOC2007放在data/VOCDevkit2007/ 路径下。

如下图

 

6- Download pre-trained VGG16 from here and place it as "data\imagenet_weights\vgg16.ckpt"

For rest of the models, please check here。

  模型下载后解压,放在上面的路径下,没有路径则自己创建。注意模型名必须是vgg16.ckpt,否则,报错。

7- Run train.py

接下来就是跑 train.py 了。

       训练得到的模型保存在根目录下的\default\voc_2007_trainval\default,中如下图所示。模型训练过程中每5000次迭代保存一次。所以想要跑demo.py,先训练吧。


错误1:训练时报错

OSError: raw write() returned invalid length 254 (should have been between 0 and 127)

在python中使用print()时,raw write()返回无效的长度。
解决办法:先安装

pip  win_unicode_console

然后写入以下代码到报错提示的python的中,写在开头

import win_unicode_console
win_unicode_console.enable()

参考链接:http://www.cnblogs.com/yanjj/p/8275995.html

8、如果跑demo.py的话,显示下面的错误。


    这个地方入坑很久,下载的vgg16模型里就是没有这个文件的,查了好久才知道,这应该是新版TensorFlow模型训练时候产生的文件。作者没有提供,没有办法,只有自己训练。通过上一步的训练能够得到模型。把这些模型都放在这个output\vgg16\voc_2007_trainval+voc_2012_trainval\default路径下。out目录跟demo.py同目录

   demo.py 默认使用的是res101,而我们现在用的是vgg16模型,所以更改demo.py 第108行,deault = vgg16。还有就是模型文件的一些命名可能跟demo.py 文件中的名字不一致,导致找不到文件,自己更改模型文件名,或者demo.py即可。

猜你喜欢

转载自blog.csdn.net/ytusdc/article/details/80255920