# caffe的cpp调用demo **Repository Path**: T_Geek/caffes_cpp_calls_demo ## Basic Information - **Project Name**: caffe的cpp调用demo - **Description**: **这只是给你们一个调用caffe的demo**,注意举一反三 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-08-02 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Caffe_Handwriting --- **Author:** Michael.Chen **Date:** 2/Aug/2018 --- ## 使用说明: ### 1.Lib文件夹内文件修改 自己看一下lib文件夹里的东西,理解一下都是干什么的 其中 ```deploy.prototxt``` 是caffe网络定义文件, ```hand.caffemodel``` 是caffe模型文件 这个代码里是手写数字检测的,如果需要别的请自己更换caffemode和对应的protxt. 如果更换文件,请修改```classification.cpp```中的文件代码,还有GPU或者CPU模式请自己修改 ```c++ Classifier::Classifier() { Caffe::set_mode(Caffe::GPU);//设置caffe工作模式为CPU/GPU string model_file = "../lib/deploy.prototxt";//网络定义文件 string trained_file = "../lib/hand.caffemodel";//训练得到的网络参数参数文件 net_.reset(new Net(model_file, TEST));//设置网络为测试模式,只进行前向传播 net_->CopyTrainedLayersFrom(trained_file);//导入网络参数 Blob* input_layer = net_->input_blobs()[0]; input_geometry_ = Size(input_layer->width(), input_layer->height());//获取网络规定的输入图像尺寸(宽与高) Blob* output_layer = net_->output_blobs()[0]; } ``` ### 2.lib文件夹的编译 配置CMakeLists.txt ```bash cmake_minimum_required (VERSION 2.8) SET (SRC_LIST classification.cpp) find_package( OpenCV REQUIRED ) include_directories ( /home/mingcongchen/caffe/include #你的caffe include文件夹目录 /usr/local/cuda-9.0/include #如果GPU模式,你的cuda目录位置。如果CPU,删掉或者注释这行 /usr/local/include /usr/local/cuda/include /usr/include) add_library(classification SHARED ${SRC_LIST}) ``` 在lib文件夹下执行 ```bash cmake . make ``` 会在lib里面生成一个```libclassification.so```库文件 ### 3.代码编译 配置CMakeLists.txt ```bash cmake_minimum_required (VERSION 2.8) project (classification_modified) add_executable(classification_modified main.cpp) find_package( OpenCV REQUIRED ) include_directories ( /home/mingcongchen/caffe/include #你的caffe include文件夹目录 ${CMAKE_CURRENT_SOURCE_DIR}/lib /usr/local/include /usr/local/cuda-9.0/include #如果GPU模式,你的cuda目录位置。如果CPU,删掉或者注释这行 /usr/include ${OpenCV_INCLUDE_DIRS}) target_link_libraries(classification_modified ${CMAKE_CURRENT_SOURCE_DIR}/lib/libclassification.so /home/mingcongchen/caffe/build/lib/libcaffe.so #你的caffe lib目录 ${OpenCV_LIBS} ) ``` 编译 ``` mkdir build cd build cmake .. make ``` 会在build生成```classification_modified```运行即可 ```main.cpp```第16行为测试图片的目录 **这只是给你们一个调用caffe的demo**,注意举一反三