opencv里面使用caffe模型

opencv可以加载很多主流的深度学习模型,比如caffe、onnx、TF

cv::dnn::readNet
cv::dnn::readNetFromCaffe
cv::dnn::readNetFromDarknet
cv::dnn::readNetFromONNX
cv::dnn::readNetFromTensorflow
cv::dnn::readNetFromTorch
cv::dnn::readNetFromModelOptimizer

下面我们简单使用一下,使用的bvlc_googlenet的caffe模型

void main() {
    cv::Mat i1=cv::imread("123.jpg");
    cv::dnn::Net net;
    net=cv::dnn::readNet("bvlc_googlenet.caffemodel", "bvlc_googlenet.prototxt");
    net.setPreferableBackend(cv::dnn::DNN_BACKEND_OPENCV);//设置推理引擎类型
    net.setPreferableTarget(cv::dnn::DNN_TARGET_CPU);//设置运行的平台类型
    
    //打印网络各层名称
    vector<String> names = net.getLayerNames();
    for (vector<String>::iterator  iter = names.begin(); iter != names.end();iter++) {
        cout << *iter<< endl;
        cout<< net.getLayerId(*iter) <<endl;
    }
    
    //使用模型进行推理
    cv::Mat blob = cv::dnn::blobFromImage(i1,1.0,Size(224,224),Scalar((104, 117, 123)),false,false);
    net.setInput(blob);
    Mat out = net.forward();
    double minValue = 0, maxValue = 0;
    double* minp = &minValue;
    double* maxp = &maxValue;  
    minMaxIdx(out, minp, maxp);
    cout << minValue << endl;
    cout << maxValue << endl;
    //测试推理速度
    vector<double> layersTimes;
    double freq = getTickFrequency() / 1000;
    double t = net.getPerfProfile(layersTimes) / freq;
    cout << t <<endl;
}

运行结果:

Attempting to upgrade input file specified using deprecated V1LayerParameter: bvlc_googlenet.caffemodel
Successfully upgraded file specified using deprecated V1LayerParameter
conv1/7x7_s2
1
conv1/relu_7x7
2
pool1/3x3_s2
3
pool1/norm1
4
conv2/3x3_reduce
5
conv2/relu_3x3_reduce
6
conv2/3x3
7
conv2/relu_3x3
8
conv2/norm2
9
pool2/3x3_s2
10
inception_3a/1x1
11
inception_3a/relu_1x1
12
inception_3a/3x3_reduce
13
inception_3a/relu_3x3_reduce
14
inception_3a/3x3
15
inception_3a/relu_3x3
16
inception_3a/5x5_reduce
17
inception_3a/relu_5x5_reduce
18
inception_3a/5x5
19
inception_3a/relu_5x5
20
inception_3a/pool
21
inception_3a/pool_proj
22
inception_3a/relu_pool_proj
23
inception_3a/output
24
inception_3b/1x1
25
inception_3b/relu_1x1
26
inception_3b/3x3_reduce
27
inception_3b/relu_3x3_reduce
28
inception_3b/3x3
29
inception_3b/relu_3x3
30
inception_3b/5x5_reduce
31
inception_3b/relu_5x5_reduce
32
inception_3b/5x5
33
inception_3b/relu_5x5
34
inception_3b/pool
35
inception_3b/pool_proj
36
inception_3b/relu_pool_proj
37
inception_3b/output
38
pool3/3x3_s2
39
inception_4a/1x1
40
inception_4a/relu_1x1
41
inception_4a/3x3_reduce
42
inception_4a/relu_3x3_reduce
43
inception_4a/3x3
44
inception_4a/relu_3x3
45
inception_4a/5x5_reduce
46
inception_4a/relu_5x5_reduce
47
inception_4a/5x5
48
inception_4a/relu_5x5
49
inception_4a/pool
50
inception_4a/pool_proj
51
inception_4a/relu_pool_proj
52
inception_4a/output
53
inception_4b/1x1
54
inception_4b/relu_1x1
55
inception_4b/3x3_reduce
56
inception_4b/relu_3x3_reduce
57
inception_4b/3x3
58
inception_4b/relu_3x3
59
inception_4b/5x5_reduce
60
inception_4b/relu_5x5_reduce
61
inception_4b/5x5
62
inception_4b/relu_5x5
63
inception_4b/pool
64
inception_4b/pool_proj
65
inception_4b/relu_pool_proj
66
inception_4b/output
67
inception_4c/1x1
68
inception_4c/relu_1x1
69
inception_4c/3x3_reduce
70
inception_4c/relu_3x3_reduce
71
inception_4c/3x3
72
inception_4c/relu_3x3
73
inception_4c/5x5_reduce
74
inception_4c/relu_5x5_reduce
75
inception_4c/5x5
76
inception_4c/relu_5x5
77
inception_4c/pool
78
inception_4c/pool_proj
79
inception_4c/relu_pool_proj
80
inception_4c/output
81
inception_4d/1x1
82
inception_4d/relu_1x1
83
inception_4d/3x3_reduce
84
inception_4d/relu_3x3_reduce
85
inception_4d/3x3
86
inception_4d/relu_3x3
87
inception_4d/5x5_reduce
88
inception_4d/relu_5x5_reduce
89
inception_4d/5x5
90
inception_4d/relu_5x5
91
inception_4d/pool
92
inception_4d/pool_proj
93
inception_4d/relu_pool_proj
94
inception_4d/output
95
inception_4e/1x1
96
inception_4e/relu_1x1
97
inception_4e/3x3_reduce
98
inception_4e/relu_3x3_reduce
99
inception_4e/3x3
100
inception_4e/relu_3x3
101
inception_4e/5x5_reduce
102
inception_4e/relu_5x5_reduce
103
inception_4e/5x5
104
inception_4e/relu_5x5
105
inception_4e/pool
106
inception_4e/pool_proj
107
inception_4e/relu_pool_proj
108
inception_4e/output
109
pool4/3x3_s2
110
inception_5a/1x1
111
inception_5a/relu_1x1
112
inception_5a/3x3_reduce
113
inception_5a/relu_3x3_reduce
114
inception_5a/3x3
115
inception_5a/relu_3x3
116
inception_5a/5x5_reduce
117
inception_5a/relu_5x5_reduce
118
inception_5a/5x5
119
inception_5a/relu_5x5
120
inception_5a/pool
121
inception_5a/pool_proj
122
inception_5a/relu_pool_proj
123
inception_5a/output
124
inception_5b/1x1
125
inception_5b/relu_1x1
126
inception_5b/3x3_reduce
127
inception_5b/relu_3x3_reduce
128
inception_5b/3x3
129
inception_5b/relu_3x3
130
inception_5b/5x5_reduce
131
inception_5b/relu_5x5_reduce
132
inception_5b/5x5
133
inception_5b/relu_5x5
134
inception_5b/pool
135
inception_5b/pool_proj
136
inception_5b/relu_pool_proj
137
inception_5b/output
138
pool5/7x7_s1
139
pool5/drop_7x7_s1
140
loss3/classifier
141
prob
142
1.00688e-06
0.156951
265.916


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值