各种坑!!想要做好,一定要自己一步步试,下载别人的总会出现各种问题.
步骤如下:(可以把这些文件打包在一个文件加下,分两个文件libs,include,一定要是自己的文件)
1 首先是配置caffe的VC++目录中的include和库文件。配置include lib dll都是坑,而且还分debug和release两个版本。添加输入项目需要注意,而且需要把编译好的caffe.lib等等一系列东西拷贝到当前项目下。也就是caffe bulid文件夹下面的东西,包括caffe.lib 、libcaffe.lib、还有很多dll.
这个是debug_include配置图
这个是debug_lib配置图
这个是release_include配置图
这个是release_lib配置图
同时也需要在,项目属性页的链接器输入中,填写相应的lib,其中debug和release是不同的。以下是需要填写的相应lib
//debugopencv_calib3d2413d.libopencv_contrib2413d.libopencv_core2413d.libopencv_features2d2413d.libopencv_flann2413d.libopencv_gpu2413d.libopencv_highgui2413d.libopencv_imgproc2413d.libopencv_legacy2413d.libopencv_ml2413d.libopencv_objdetect2413d.libopencv_ts2413d.libopencv_video2413d.libcaffe.liblibcaffe.libcudart.libcublas.libcurand.libgflagsd.liblibglog.liblibopenblas.dll.alibprotobuf.libleveldb.libhdf5.libhdf5_hl.libShlwapi.lib//releaseopencv_calib3d2410.libopencv_contrib2410.libopencv_core2410.libopencv_features2d2410.libopencv_flann2410.libopencv_gpu2410.libopencv_highgui2410.libopencv_imgproc2410.libopencv_legacy2410.libopencv_ml2410.libopencv_objdetect2410.libopencv_ts2410.libopencv_video2410.libcaffe.liblibcaffe.libcudart.libcublas.libcurand.libgflags.liblibglog.liblibopenblas.dll.alibprotobuf.libleveldb.liblmdb.libhdf5.libhdf5_hl.libShlwapi.lib
3 直接编译后会出现的问题是F0519 14:54:12.494139 14504 layer_factory.hpp:77] Check failed: registry.count(t ype) == 1 (0 vs. 1) Unknown layer type: Input (known types: Input ),百度后发现是要加头文件!http://blog.csdn.net/fangjin_kl/article/details/50936952#0-tsina-1-63793-397232819ff9a47a7b7e80a40613cfe1
因此安装上面说的新建一个head.h
参考
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include "caffe/layers/lrn_layer.hpp" 11 #include 12 #include 13 #include "caffe/layers/softmax_layer.hpp" 14 #include 15 namespace caffe16 {17 extern INSTANTIATE_CLASS(BatchNormLayer);18 extern INSTANTIATE_CLASS(BiasLayer);19 extern INSTANTIATE_CLASS(InputLayer);20 extern INSTANTIATE_CLASS(InnerProductLayer);21 extern INSTANTIATE_CLASS(DropoutLayer);22 extern INSTANTIATE_CLASS(ConvolutionLayer);23 REGISTER_LAYER_CLASS(Convolution);24 extern INSTANTIATE_CLASS(ReLULayer);25 REGISTER_LAYER_CLASS(ReLU);26 extern INSTANTIATE_CLASS(PoolingLayer);27 REGISTER_LAYER_CLASS(Pooling);28 extern INSTANTIATE_CLASS(LRNLayer);29 REGISTER_LAYER_CLASS(LRN);30 extern INSTANTIATE_CLASS(SoftmaxLayer);31 REGISTER_LAYER_CLASS(Softmax);32 extern INSTANTIATE_CLASS(ScaleLayer);33 extern INSTANTIATE_CLASS(ConcatLayer);34 35 }
同时需要把
#include <caffe/proto/caffe.pb.h>
#include "head.h"这两个头文件放到.cpp中,不要放.h里。