1、配置环境
我的电脑:
Windows10 64位+CUDA6.5+OpenCV2.49+VS2013
亲测,windows 7 64位用这个方法同样可行。
2、准备依赖库(五星重要)
Windows下最重要,也是我们配置成功的关键,就是准备好所有的依赖库,然后编译我们的代码。
2.1、Boost
最方便也是我直接使用的方法,直接下载安装文件,找到适用自己电脑的版本。
地址:
http://sourceforge.net/projects/boost/files/boost-binaries/1.56.0/
这个如果不好下载的话我把我电脑64位的版本传到百度云盘里面,需要的可以直接下载。
百度云盘地址:
链接:http://pan.baidu.com/s/1c1ZqOEk
密码:1mth
2.2、Glog+Gflag+Protobuf+LevelDB+HDF5+LMDB+Openblas
这一部分的很多都是谷歌的开源库,不容易下载(你懂的)。所以我使用的是Neil Z. SHAO‘s Blog
提供的编译好的。由于大神给的地址是谷歌网盘,不容易下载。我将它转至百度盘。
百度云盘地址:
链接:http://pan.baidu.com/s/1c154Azu
密码:xuf5
下载完,解压得到3rdparty文件夹。在下一段将会用到。
3、建立Caffe工程
准好好环境,准备编译。
3.1、下载Caffe源码
下载地址:https://github.com/BVLC/caffe
3.2、准备项目所以依赖的库和变量
3.2.1、系统环境变量
CUDA_PATH_V6.5 安装好cuda6.5之后,会自动添加环境变量CUDA_PATH_V6.5
OPENCV_2_49 D:/opencv/opencv2.49/build/
BOOST_1_56 D:/boost/boost_1_56_0
3.2.2、将2.2中下载的3rdparty文件夹放到3.1下载的根目录下。
3.3、修改项目属性
项目—>属性—>C/C++—>常规—>附加包含目录
添加:
../include;
../src;
../3rdparty/include;
../3rdparty;
../3rdparty/include;
../3rdparty/include/openblas;
../3rdparty/include/hdf5;
../3rdparty/include/lmdb;
../3rdparty/include/leveldb;
../3rdparty/include/gflag;
../3rdparty/include/glog;
../3rdparty/include/google/protobuf;
项目—>属相—>VC++目录—>包含目录
添加:
$(CUDA_PATH_V6_5)\include;
$(OPENCV_2_49)\include;
$(OPENCV_2_49)\include\opencv;
$(OPENCV_2_49)\include\opencv2;
$(BOOST_1_56)
项目—>属性—>链接器—>常规—>附加库目录
添加:
$(CUDA_PATH_V6_5)\lib\$(PlatformName);
$(OPENCV_2_49)\x64\vc12\lib;
$(BOOST_1_56)\lib64-msvc-12.0;
..\3rdparty\lib;
项目—>属性—>链接器—>输入—>附加依赖项
debug添加:
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
cudart.lib
cuda.lib
nppi.lib
cufft.lib
cublas.lib
curand.lib
gflagsd.lib
libglog.lib
libopenblas.dll.a
libprotobufd.lib
libprotoc.lib
leveldbd.lib
lmdbd.lib
libhdf5_D.lib
libhdf5_hl_D.lib
Shlwapi.lib
gflags.lib
libprotobuf.lib
leveldb.lib
lmdb.lib
libhdf5.lib
libhdf5_hl.lib
release添加:
opencv_ml249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
cudart.lib
cuda.lib
nppi.lib
cufft.lib
cublas.lib
curand.lib
gflags.lib
libglog.lib
libopenblas.dll.a
libprotobuf.lib
libprotoc.lib
leveldb.lib
lmdb.lib
libhdf5.lib
libhdf5_hl.lib
Shlwapi.lib
3.4、复制Windows下的CommonSetting.props.examples,后缀修改为CommonSetting.props
3.4.1、由于我电脑无GPU,所以修改复制过来的CommonSettings.props配置文件(这里还可以根据需要设置MATLAB或者Python的借口,不过我打算学习C++下的caffe编写,所以没有配置这两种接口):
3.4.2、 双击Windows下的caffe.sln,在VS2013中生成解决方案:
【注】里面的caffe.managed和predict 是我自己写的测试项目,其它的才是官网自动生成的哈~~~ :->
然后会弹出一个窗口,Nuget所需要的第三方库,可能会未响应,慢慢等吧。如果出现无法连接的那个问题,说明IP ping不过去,直接把问题复制到网上搜,有解决方法。
3.4.3、当下载完毕第三方库,你的caffe-Windows并列文件夹下会有一个第三方库的文件夹
【注】caffe-windows和caffe-master对caffe.cpp编译以后下载的第三方库都是十六个文件夹。
最好核对一下文件,免得没下载完就被你关掉了。
这个时候,当下载完毕,VS仍在继续执行生成任务,最终可能失败,原因下面会提示说无法打开libcaffe.lib之类的error。解决方法是直接对libcaffe重新生成,或者直接生成一次
当这个文件生成成功以后,重复一下上一步,对所有文件再重新生成一下,这时候应该不会出现libcaffe.lib无法打开的错误了。
如果之前的环境配置按照我说的来,这个是没什么问题的。
4、测试
运行caffe.cpp,直接双击打开caffe.cpp,然后ctrl+f5直接编译,出现如下命令窗口说明编译成功
两个学习文档
薛开宇学习笔记:
链接:http://pan.baidu.com/s/1hshTkqw
密码:xckh
caffe社区学习资料:
链接:http://pan.baidu.com/s/1jIyegZ0
密码:sktu
配置完毕,可以直接调用到matlab或者python里面使用了,下一篇文章会教大家怎么配置faster-rcnn,调用caffe。
参考文献:
http://m.blog.youkuaiyun.com/article/details?id=51355143
http://www.bubuko.com/infodetail-902302.html