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