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即可。

  • 5
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 38
    评论
# 工程内容 这个程序是基于tensorflow的tflearn库实现部分RCNN功能。 # 开发环境 windows10 + python3.5 + tensorflow1.2 + tflearn + cv2 + scikit-learn # 数据集 采用17flowers据集, 官网下载:http://www.robots.ox.ac.uk/~vgg/data/flowers/17/ # 程序说明 1、setup.py---初始化路径 2、config.py---配置 3、tools.py---进度条和显示带框图像工具 4、train_alexnet.py---大数据集预训练Alexnet网络,140个epoch左右,bitch_size为64 5、preprocessing_RCNN.py---图像的处理(选择性搜索、数据存取等) 6、selectivesearch.py---选择性搜索源码 7、fine_tune_RCNN.py---小数据集微调Alexnet 8、RCNN_output.py---训练SVM并测试RCNN(测试的时候测试图片选择第7、16类中没有参与训练的,单朵的花效果好,因为训练用的都是单朵的) # 文件说明 1、train_list.txt---预训练数据,数据在17flowers文件夹中 2、fine_tune_list.txt---微调数据2flowers文件夹中 3、1.png---直接用选择性搜索的区域划分 4、2.png---通过RCNN后的区域划分 # 程序问题 1、由于数据集小的原因,在微调时候并没有像论文一样按一个bitch32个正样本,128个负样本输入,感觉正样本过少; 2、还没有懂最后是怎么给区域打分的,所有非极大值抑制集合canny算子没有进行,待续; 3、对选择的区域是直接进行缩放的; 4、由于数据集合论文采用不一样,但是微调和训练SVM时采用的IOU阈值一样,有待调参。
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值