windows 下跑python版subcnn和 faster rcnn

========加群交流334227548=====================

一,编译lib

1. 前人栽树,后人乘凉。不多说直接上链接:https://github.com/MrGF/py-faster-rcnn-windows。

2. 打开cmd,定位至fast_rcnn_root/lib目录中,执行python setup.py install。 

(具体细节看,重新写了个编译lib的博客:http://blog.csdn.net/chenzhi1992/article/details/53374265)

注:用vs2013等vs的编译器话,记得将vs的bin路径添加到环境变量里,不然会报关于“cl.exe”的错误。

3. 修改setup_cuda.py 中相应的代码,比如你cuda/7.5/include 的路径,改成你自己的,就可以了。执行python setup_cuda.py install。 

4. 也从这篇博客中得到启发:http://blog.csdn.net/happynear/article/details/46822109

如果提示Unable to find vcvarsall.bat的话,请输入以下指令: 
VS2012:SET VS90COMNTOOLS=%VS110COMNTOOLS% 
VS2013:SET VS90COMNTOOLS=%VS120COMNTOOLS%

上两张图吧:

1.编译成成的截图。

windows 下跑python版subcnn和 faster rcnn_第1张图片

2.将lib\build\lib.win-amd64-2.7\下编译生出的.pyd文件拷到lib文件夹下对应的文件夹下,例如(nms文件)。


二, 编译caffe

1 下载作者rgb的caffe:https://github.com/rbgirshick/caffe-fast-rcnn/tree/0dcd397b29507b8314e252e850518c5695efbb83

2.下载微软的caffe:https://github.com/Microsoft/caffe

3.将rgb的caffe的include,src,matlab,python文件夹下的代码拷贝替换掉微软的caffe对应的部分

打开微软caffe windows文件夹下的.sln,删掉libcaffe里的包含的代码,重新添加。

4. 编译libcaffe,会遇到一些错误,对照着微软的caffe的源代码进行修改,只改错误的地方,一般都是linux和windows不同平台下的一些函数的错误。


三,编译caffe的python接口

这部分网上资料蛮多的,这里就不介绍了。



下面是我以前碰到的错误,踩过的坑,刚上面的步骤的话,应该没有下面的错误了。

==================================================================================================================

问题1:attributeError : 'module' object has no attribute 'set_random_seed'

原因:caffe版本不一样,编译的python接口的版本也就不一样。所以有些函数或者属性就找不到。。https://github.com/BVLC/caffe/issues/3711

解决方法:一,https://github.com/BVLC/caffe/pull/4351/files。

二, linux下就很简单了,直接编译rbg大神的https://github.com/rbgirshick/fast-rcnn就可以。

windows下的话,以微软的caffe版本为基础,将rbg的caffe的python文件夹里的内容拷到微软的caffe的python文件夹下。联合编译。。。会有些小的问题,自己研究下改下,缺什么补什么就行了。

问题2; 缺少FeatureExtrapolating, ROIGenerating层。

解决方法:下载作者的caffe版本(https://github.com/yuxng/caffe-fast-rcnn/tree/539351865a09abb5ce909f37a88fe5c916a44bf7),

它的是在linux下的caffe,windows下的用户需要将自己windows版本的caffe添加这两个新层。

参考博客http://blog.csdn.net/tangwei2014/article/details/46812153。然后缺什么东西,去作者的caffe版本下面复制就行了。

 问题3. Check failed: registry.count(type) == 1 (0 vs. 1) 

Unknown layer type
I1221 19:43:06.790405 12895 layer_factory.hpp:76] Creating layer proposal 

F1221 19:43:06.790431 12895 layer_factory.hpp:80] Check failed: registry.count(type) == 1 (0 vs. 1) 

Unknown layer type: Python (known types: AbsVal。。。)

*** Check failure stack trace: *** 

原因1: caffe的Makefile.config配置有误。Note: Caffe must be built with support for Python layers!

[code]# In your Makefile.config, make sure to have this line uncommented
WITH_PYTHON_LAYER := 1

原因2:看你的src/caffe/layer_factory.cpp中有没有定义Unknow的那一层。

解决办法:windows下,注释layer_factory.cpp 中的#ifdef WITH_PYTHON_LAYER和#endif


问题4.attributeerror '' object has no attribute param_str

解决方法: caffe的版本不一致,比如py代码里写的属性名是param_str_ ,可是.prototxt文件中却写着param_str,名字都不一样肯定没有该属性。

把名字修改下即可,我觉得修改py代码比价方便。

https://github.com/rbgirshick/py-faster-rcnn/issues/219

问题5.\math_functions.cpp(346): error C3861: “__builtin_popcount”:  找不到标识符

  • Add these lines to math_functions.cpp to fix __builtin_popcount and __builtin_popcountl error:

#define __builtin_popcount __popcnt 

#define __builtin_popcountl __popcnt

问题6. cudnn_conv_layer.cu 出现函数参数数量不对,或者参数类型不一样。

问题原因:改这个东西改了一个中午,头昏眼花的,初步判定错误类型为:cudnn的版本不一致,有v3,v4,v5的,cudnn.h的代码也相应变化了,

估计作者caffe版本用的cudnn版本和我的不一样,我用的是v4的版本。

解决办法:查看自己cudnn版本的cudnn.h文件,cudnn_conv_layer.cu中一些函数在cudnn.h 中声明了,

只要修改cudnn_conv_layer.cu中的函数将参数对应起来(数量,类型)就行。

问题7:

windows 下跑python版subcnn和 faster rcnn_第2张图片

解决办法: ”change io.cpp function ReadProtoFromBinaryFile(const char* filename, Message* proto)
from open(filename, O_RDONLY)
to open(filename, O_RDONLY|O_BINARY)


问题7 :nms valueerror: buffer dtype mismatch, expected int_t but got long long

解决办法:用文本编辑器打开fast_rcnn_root/lib/utils/nms.pyx,将第25行的np.int_t修改为np.intp_t


问题8:proposal_layer.py 中 pre_nms_topN  = cfg[cfg_key].RPN_PRE_NMS_TOP_N, keyerror = 1

解决办法:进行如下修改

#cfg_key = str(self.phase) # either 'TRAIN' or 'TEST'
 cfg_key = str('TRAIN' if self.phase == 0 else 'TEST')



其他错误参考:http://blog.csdn.net/wishchin/article/details/45339753

https://initialneil.wordpress.com/2015/01/11/build-caffe-in-windows-with-visual-studio-2013-cuda-6-5-opencv-2-4-9/


注:也碰到其他错误,被我修改了,我没写出来。如果遇到其他问题,可以加群交流334227548

你可能感兴趣的:(windows 下跑python版subcnn和 faster rcnn)