怎么在windows下编译fastrcnn需要的python版本的caffe接口

author author     2023-04-27     375

关键词:

参考技术A 一、前期环境以及准备
1、安装python
在caffe中,python2和python3的接口都有。但frcnn中只能支持python2.7,所以千万不要装成python3。为了方便,不用自己去pip一大堆库,我建议安装anaconda2,里面已经安装了很多第三方的库。
另附python,Windows的第三方库 ,里面很全。或许有一些库你要去官网上下载。
2、安装(更新)显卡驱动和cuda
NVIDIA的显卡驱动安装应该不用我说了吧,到官网上下载吧。我要说明一点的是,我的1080ti在安装显卡驱动时,说和Windows不匹配。怎么解决呢?更新Windows,到官网上下驱动,再安装。成功!还有就是记得更新你的显卡驱动,以防老的驱动不支持cuda。
CUDA安装的话,也是傻瓜试的安装。提醒一点的是,不要改变他的安装路径,默认路径。然后去NVIDIA的官网上下载cudnn库,这个库的话需要去NVIDIA注册一个账号,然后问你用这个来完成什么工作之类的巴拉巴拉。这个库长什么样呢?下载完解压缩,得到一个cuda的文件夹,里面有3个文件夹

然后打开你的CUDA文件夹,默认路径是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

把cudnn库里面的3个文件夹里面的文件,分别加到cuda里面对应的文件夹。
然后打开cuda需要编译的部分,默认路径是C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0

因为我用的VS2015,那么我就用打开2015的那个,然后改成release运行。
至此,显卡计算的环境就搭建完成了。
3、cmake和git
cmake的话,我建议直接下载编译好的能运行的文件(到官网上下载),然后解压文件,把bin的路径添加到Path中。
git:因为frcnn里面有很多linux的脚本,你可以不用,但用的话会很方便的。所以我建议安装git。同样,傻瓜式的安装,直接到官网上下载。
二、py-faster-rcnn
1、编译caffe的python接口GPU版本(如果你编译过了就不用了)
因为frcnn的编译过程用需要用到python的caffe包,所以必须要先编译一次caffe。如果你已经编译过caffe的py接口就不用了。
下载微软的Caffe,git的地址

你可以用git直接下载,或者在git的地址里下载,随便你。

[plain] view plain copy
git clone
cd caffe
git checkout windows

打开caffe\scripts,然后编辑build_win.cmd文件

第7行的VERSION是你VS的版本,VS2015对应的是14,VS2013对应的应该是12;第8行改为0;第9行改为0(如果你不用GPU,那就还是1);13行的python_version是你的python版本,2.x就是2,3.x就是3;24,28行是你的python的安装目录,如果你是anaconda就改你的anaconda的目录,否则就不改。

同样69-95行同样修改。以上2张图是我的cmake文件配置。
进入caffe\scripts,打开cmd,直接执行build_win.cmd。注意他会自动下载需要的库,因为服务器呢都不在国内,所以我建议挂个VPN,不然你且等呢吧。
这样cmake后呢,python的接口就已经编译好了,不用再编译一遍了。把caffe\python下的caffe的文件夹copy到python的第三方包的文件夹就ok。

这样caffe的python接口就好了,你可以进cmd的python试一下import caffe。如果说,他提示少了什么包,你直接pip这个包就好了,找不到的话,百度一下就有。但只要你跟着上面我的方法做应该不会出现什么问题。

2、编译py-faster-rcnn依赖库

首先呢,我们先去编译一下frcnn的依赖库。Windows下,不能使用自带的lib,把自带的lib删了,重新下载,这里给出git的地址。

好了,现在你的库应该长成这样,有setup.py和setup_cuda.py。进cmd,install这2个文件。
现在你肯定会遇到问题,提示你VC版本不对

怎么办呢,先set一下:输入SET VS90COMNTOOLS=%VS140COMNTOOLS%,VS后面的数字就是你的版本。还有不要忘了把你VS的c1.exe加到path下。

编译好frcnn的依赖库后,应该是这个样子的。
3、给caffe加frcnn的层
现在,我们再下载一个caffe,跟前面一样,把build_win.cmd进行修改。然后我们就可以把frcnn的一些特有的层加到caffe里编译了。
1)添加层和文件

打开py-faster-rcnn\caffe-fast-rcnn\src\caffe\layers文件夹,找到4个文件分别为

然后copy到你新的caffe的对应文件夹caffe\src\caffe\layers里。
接着我们添加头文件,打开py-faster-rcnn\caffe-fast-rcnn\include\caffe,把fast_rcnn_layers.hpp这文件copy到caffe的对应文件夹下caffe\include\caffe。
2)配置2个新层
打开你的caffe\src\caffe\proto下的caffe.proto,进行编辑。
在407行左右

往原来的文件里添加新的层的配置信息

[plain] view plain copy
optional ROIPoolingParameter roi_pooling_param = 8266711;
optional SmoothL1LossParameter smooth_l1_loss_param = 8266712;
message ROIPoolingParameter
// Pad, kernel size, and stride are all given as a single value for equal
// dimensions in height and width or as Y, X pairs.
optional uint32 pooled_h = 1 [default = 0]; // The pooled output height
optional uint32 pooled_w = 2 [default = 0]; // The pooled output width
// Multiplicative spatial scale factor to translate ROI coords from their
// input scale to the scale used when pooling
optional float spatial_scale = 3 [default = 1];

message SmoothL1LossParameter
// SmoothL1Loss(x) =
// 0.5 * (sigma * x) ** 2 -- if x < 1.0 / sigma / sigma
// |x| - 0.5 / sigma / sigma -- otherwise
optional float sigma = 1 [default = 1];

3)cmake新的caffe的python接口

就是再执行一遍build_win.cmd就行。编译好之后,把caffe根目录下的python文件夹替换py-faster-rcnn\caffe-fast-rcnn的python文件夹。
三、demo

完成以上步骤你的py-faster-rcnn就已经编译成功了。如果你想用demo测试一下的话可以用.\data\scripts里的脚本去下载已经训练好的model,文件挺大的、速度挺慢的。所以给大家提供一个百度5,把caffemodel文件放在data\faster_rcnn_models,然后执行tools\demo.py就能看到结果了

gcc dll - 在 Linux 下编译

...都实现为*.so文件,并从python-tkinter图形表面调用。需要在Windows上运行它。但是,我会避免安装与gcc-bison-flex程序等效的所有Windows程序。是否可以强制gccIN 查看详情

怎样将windows下写的c程序在linux下编译运行,谢谢?

参考技术A先确保你的c程序没有调用win下专有的api,比如win32api或.net等,如果有,就需要另写接口层。最好能只调用posix库或跨平台的库,或完全原创的算法库。c程序满足和win专有接口能脱离直接关系,就能在linux下编译。 查看详情

[转]windows下编译及使用libevent

http://www.cnblogs.com/luxiaoxun/p/3603399.html  Libevent官网:http://libevent.org/windows7下编译:编译环境: windows7+VS2010(1)解压libevent到F:libeventlibevent-2.0.21-stable(2)打开Microsoftvisualstud 查看详情

qt在windows下编译遇到的一些问题

软件是在linux上写的,然而搬到windows上来遇到了好多问题。。。。想跪。。。。 首先就是压根编译不了的问题。。。。这个问题困扰我好久了。。。。一直报错undefinedreferencetoRInside和deplicatesection....如贴:http://www.qter.org/forum... 查看详情

windows下编译luajit

参考技术A这里使用Visualstudio自带的命令行工具来进行编译,所以需要安装好VS。首先打开VS命令行工具。可以按Win+S,输入prompt来找到它。如图。解压LuaJIT源码,并进入到解压目录/src下。输入msvcbuild开始编译。看到===Successfullybuil... 查看详情

在windows下编译lua

http://blog.csdn.net/yue7603835/article/details/41739085http://blog.csdn.net/birdflyto206/article/details/49403801 BuildingLuaonothersystemsIfyou‘renotusingtheusualUnixtools,thentheinstructionsfo 查看详情

在window下编译libgeotiff(含libtiff)

核心提示:1.GeoTiff简介GeoTiff是包含地理信息的一种Tiff格式的文件。1.GeoTiff简介    GeoTiff是包含地理信息的一种Tiff格式的文件。Libgeotiff就是一个操作GeoTiff文件的库。同GDAL,GeoTiff库功能强大,也是开源的。其主页... 查看详情

如何在windows下编译openssl

在Windows下编译OpenSSL(VS2010使用VC10的cl编译器)1、安装ActivePerl//初始化的时候,需要用到perl解释器2、使用VS2010下的VisualStudio2010CommandPrompt进入控制台模式(这个模式会自动设置各种环境变量)3、解压缩openssl的包,进入openssl的目录... 查看详情

Windows下编译Mongoose的hello.c

】Windows下编译Mongoose的hello.c【英文标题】:CompilingMongoose\'shello.cunderWindows【发布时间】:2013-03-2011:48:43【问题描述】:我正在尝试在Windows下从Mongoose编译包含的hello.c示例。我正在使用MicrosoftVisual命令提示符,并且已将mongoose.c和... 查看详情

如何在windows下编译openssl

如何在Windows下编译OpenSSL(VS2010使用VC10的cl编译器)1、安装ActivePerl//初始化的时候,需要用到perl解释器2、使用VS2010下的VisualStudio2010CommandPrompt进入控制台模式(这个模式会自动设置各种环境变量)3、解压缩openssl的包,进入openssl的... 查看详情

如何在windows下编译openssl

如何在Windows下编译OpenSSL(VS2010使用VC10的cl编译器)1、安装ActivePerl//初始化的时候,需要用到perl解释器2、使用VS2010下的VisualStudio2010CommandPrompt进入控制台模式(这个模式会自动设置各种环境变量)3、解压缩openssl的包,进入openssl的... 查看详情

windows下编译protobufv3.3.0

一:概述关于protobuf在此不再多说,此处记录下成功编译步骤以备日后查阅。注意:本文并不是使用cmakegui进行编译的,如果熟悉cmakegui的话,也可以使用gui进行生成编译。二:准备资源及工具VS2013或以上版本,安装好protobuf源码... 查看详情

在windows环境idea下编译运行elasticsearch7.14.1(代码片段)

文章目录在Windows环境中IDEA下编译运行Elasticsearch7.14.1环境准备操作步骤获取源码方式一:直接通过`gitbash`执行`gitclone`命令方式二:通过IDEA界面化操作编译源码本地运行遇到的问题1.权限问题2.版本问题3.geoip报... 查看详情

如何在windows的命令行环境下编译c++程序?

参考技术A你使用VS2008的话,安装完成后选择VisualStudio2008CommandPrompt,出现一个cmd窗口,\\x0d\\x0a使用\\x0d\\x0aclmain.cpp\\x0d\\x0a就可以编译!\\x0d\\x0a如果你的项目比较复杂,就自己写一个Makefile文件吧! 查看详情

Delphi 7:在 Win XP 或 Windows Server 2003 下编译有啥区别?

】Delphi7:在WinXP或WindowsServer2003下编译有啥区别?【英文标题】:Delphi7:AnydifferencesbetweencompilingunderWinXPorWindowsServer2003?Delphi7:在WinXP或WindowsServer2003下编译有什么区别?【发布时间】:2010-10-2316:15:24【问题描述】:我有一个遗留应... 查看详情

mingw64下编译GLFW的Win64版本

...fwdll.a和glfw.dll(所以我希望最终能够成功地让Goglfw绑定在Windows下工作......在Linux下轻而易举!)似乎我现在使用mingw64、MSYS及其make脚本成功编 查看详情

如何在windows下编译openssl

1、安装ActivePerl//初始化的时候,需要用到perl解释器2、使用VS2010下的VisualStudio2010CommandPrompt进入控制台模式(这个模式会自动设置各种环境变量)3、解压缩openssl的包,进入openssl的目录4、perlconfigureVC-WIN32尽量在这个目录下执行该命... 查看详情

windows下编译及使用libevent

Libevent官网:http://libevent.org/windows7下编译:编译环境: windows7+VS2010(1)解压libevent到F:libeventlibevent-2.0.21-stable(2)打开Microsoftvisualstudio2010命令行工具(3)修改以下三个文件,添加宏定义:在以下3个文件开头添加“#define_... 查看详情