Caffe模型加载
#include
#include
#include
int main(int argc, char const *argv[]){
/*
加载别人训练好的模型,用来识别图片的类别;
- bvlc_googlenet.caffemodel : 训练好的模型
- bvlc_googlenet.prototxt : 训练使用的深度网络结构
- classification_classes_ILSVRC2012.txt :类别与类别名称
*/
/*
框架名:
*Caffe, http://caffe.berkeleyvision.org/
*TensorFlow, https://www.tensorflow.org/
*Torch, http://torch.ch/
*Darknet, https://pjreddie.com/darknet/
*DLDT, https://software.intel.com/openvino-toolkit
*ONNX, https://onnx.ai/
框架的模型扩展名:
*.caffemodel (Caffe
*.pb (TensorFlow)
*.t7 | *.net (Torch)
*.weights (Darknet)
*.bin (DLDT)
*.onnx (ONNX)
框架的结构配置扩展名:
*.prototxt (Caffe)
*.pbtxt (TensorFlow)
*.cfg (Darknet)
*.xml (DLDT)
*/
// 加载模型
cv::String model = "bvlc_googlenet.caffemodel";
cv::String config = "bvlc_googlenet.prototxt";
cv::String framework = "Caffe"; // 显式指定框架名(可以使用"",会根据扩展名自动确定)
cv::dnn::Net net = cv::dnn::readNet(model, config, framework);
// 设置使用的计算推理库
/*
:
cv::dnn::DNN_BACKEND_DEFAULT, = DNN_BACKEND_INFERENCE_ENGINE
cv::dnn::DNN_BACKEND_HALIDE, = DNN_BACKEND_OPENCV
cv::dnn::DNN_BACKEND_INFERENCE_ENGINE,
cv::dnn::DNN_BACKEND_OPENCV,
cv::dnn::DNN_BACKEND_VKCOM = DNN_BACKEND