parent
22272e8147
commit
9cddccf0ef
3 changed files with 309 additions and 0 deletions
@ -0,0 +1,28 @@ |
|||||||
|
#include <opencv2/core.hpp> |
||||||
|
#include <opencv2/dnn.hpp> |
||||||
|
#include <opencv2/imgproc.hpp> |
||||||
|
#include <opencv2/highgui.hpp> |
||||||
|
using namespace cv; |
||||||
|
using namespace cv::dnn; |
||||||
|
|
||||||
|
int main(void) |
||||||
|
{ |
||||||
|
Net net; |
||||||
|
{ |
||||||
|
Ptr<Importer> importer = createCaffeImporter("bvlc_alexnet.prototxt", "bvlc_alexnet.caffemodel"); |
||||||
|
importer->populateNet(net); |
||||||
|
} |
||||||
|
|
||||||
|
Mat img = imread("alexnet.png"); |
||||||
|
CV_Assert(!img.empty()); |
||||||
|
img.convertTo(img, CV_32F, 1.0 / 255); |
||||||
|
Blob imgBlob(img); |
||||||
|
|
||||||
|
net.setBlob("data", imgBlob); |
||||||
|
|
||||||
|
net.forward(); |
||||||
|
|
||||||
|
Blob res = net.getBlob("prob"); |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,281 @@ |
|||||||
|
name: "AlexNet" |
||||||
|
input: "data" |
||||||
|
input_dim: 10 |
||||||
|
input_dim: 3 |
||||||
|
input_dim: 227 |
||||||
|
input_dim: 227 |
||||||
|
|
||||||
|
layer { |
||||||
|
name: "conv1" |
||||||
|
type: "Convolution" |
||||||
|
bottom: "data" |
||||||
|
top: "conv1" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
convolution_param { |
||||||
|
num_output: 96 |
||||||
|
kernel_size: 11 |
||||||
|
stride: 4 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "relu1" |
||||||
|
type: "ReLU" |
||||||
|
bottom: "conv1" |
||||||
|
top: "conv1" |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "norm1" |
||||||
|
type: "LRN" |
||||||
|
bottom: "conv1" |
||||||
|
top: "norm1" |
||||||
|
lrn_param { |
||||||
|
local_size: 5 |
||||||
|
alpha: 0.0001 |
||||||
|
beta: 0.75 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "pool1" |
||||||
|
type: "Pooling" |
||||||
|
bottom: "norm1" |
||||||
|
top: "pool1" |
||||||
|
pooling_param { |
||||||
|
pool: MAX |
||||||
|
kernel_size: 3 |
||||||
|
stride: 2 |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
layer { |
||||||
|
name: "conv2" |
||||||
|
type: "Convolution" |
||||||
|
bottom: "pool1" |
||||||
|
top: "conv2" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
convolution_param { |
||||||
|
num_output: 256 |
||||||
|
pad: 2 |
||||||
|
kernel_size: 5 |
||||||
|
group: 2 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "relu2" |
||||||
|
type: "ReLU" |
||||||
|
bottom: "conv2" |
||||||
|
top: "conv2" |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "norm2" |
||||||
|
type: "LRN" |
||||||
|
bottom: "conv2" |
||||||
|
top: "norm2" |
||||||
|
lrn_param { |
||||||
|
local_size: 5 |
||||||
|
alpha: 0.0001 |
||||||
|
beta: 0.75 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "pool2" |
||||||
|
type: "Pooling" |
||||||
|
bottom: "norm2" |
||||||
|
top: "pool2" |
||||||
|
pooling_param { |
||||||
|
pool: MAX |
||||||
|
kernel_size: 3 |
||||||
|
stride: 2 |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
layer { |
||||||
|
name: "conv3" |
||||||
|
type: "Convolution" |
||||||
|
bottom: "pool2" |
||||||
|
top: "conv3" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
convolution_param { |
||||||
|
num_output: 384 |
||||||
|
pad: 1 |
||||||
|
kernel_size: 3 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "relu3" |
||||||
|
type: "ReLU" |
||||||
|
bottom: "conv3" |
||||||
|
top: "conv3" |
||||||
|
} |
||||||
|
|
||||||
|
layer { |
||||||
|
name: "conv4" |
||||||
|
type: "Convolution" |
||||||
|
bottom: "conv3" |
||||||
|
top: "conv4" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
convolution_param { |
||||||
|
num_output: 384 |
||||||
|
pad: 1 |
||||||
|
kernel_size: 3 |
||||||
|
group: 2 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "relu4" |
||||||
|
type: "ReLU" |
||||||
|
bottom: "conv4" |
||||||
|
top: "conv4" |
||||||
|
} |
||||||
|
|
||||||
|
layer { |
||||||
|
name: "conv5" |
||||||
|
type: "Convolution" |
||||||
|
bottom: "conv4" |
||||||
|
top: "conv5" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
convolution_param { |
||||||
|
num_output: 256 |
||||||
|
pad: 1 |
||||||
|
kernel_size: 3 |
||||||
|
group: 2 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "relu5" |
||||||
|
type: "ReLU" |
||||||
|
bottom: "conv5" |
||||||
|
top: "conv5" |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "pool5" |
||||||
|
type: "Pooling" |
||||||
|
bottom: "conv5" |
||||||
|
top: "pool5" |
||||||
|
pooling_param { |
||||||
|
pool: MAX |
||||||
|
kernel_size: 3 |
||||||
|
stride: 2 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "fc6" |
||||||
|
type: "InnerProduct" |
||||||
|
bottom: "pool5" |
||||||
|
top: "fc6" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
inner_product_param { |
||||||
|
num_output: 4096 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "relu6" |
||||||
|
type: "ReLU" |
||||||
|
bottom: "fc6" |
||||||
|
top: "fc6" |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "drop6" |
||||||
|
type: "Dropout" |
||||||
|
bottom: "fc6" |
||||||
|
top: "fc61" |
||||||
|
dropout_param { |
||||||
|
dropout_ratio: 0.5 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "fc7" |
||||||
|
type: "InnerProduct" |
||||||
|
bottom: "fc61" |
||||||
|
top: "fc7" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
inner_product_param { |
||||||
|
num_output: 4096 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "relu7" |
||||||
|
type: "ReLU" |
||||||
|
bottom: "fc7" |
||||||
|
top: "fc7" |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "drop7" |
||||||
|
type: "Dropout" |
||||||
|
bottom: "fc7" |
||||||
|
top: "fc71" |
||||||
|
dropout_param { |
||||||
|
dropout_ratio: 0.5 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "fc8" |
||||||
|
type: "InnerProduct" |
||||||
|
bottom: "fc71" |
||||||
|
top: "fc8" |
||||||
|
param { |
||||||
|
lr_mult: 1 |
||||||
|
decay_mult: 1 |
||||||
|
} |
||||||
|
param { |
||||||
|
lr_mult: 2 |
||||||
|
decay_mult: 0 |
||||||
|
} |
||||||
|
inner_product_param { |
||||||
|
num_output: 1000 |
||||||
|
} |
||||||
|
} |
||||||
|
layer { |
||||||
|
name: "prob" |
||||||
|
type: "Softmax" |
||||||
|
bottom: "fc8" |
||||||
|
top: "prob" |
||||||
|
} |
Binary file not shown.
Loading…
Reference in new issue