mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
612 lines
8.3 KiB
612 lines
8.3 KiB
# |
|
# This prototxt is based on voc-fcn8s/val.prototxt file from |
|
# https://github.com/shelhamer/fcn.berkeleyvision.org, which is distributed under |
|
# Caffe (BSD) license: |
|
# http://caffe.berkeleyvision.org/model_zoo.html#bvlc-model-license |
|
# |
|
name: "voc-fcn8s" |
|
input: "data" |
|
input_dim: 1 |
|
input_dim: 3 |
|
input_dim: 500 |
|
input_dim: 500 |
|
layer { |
|
name: "conv1_1" |
|
type: "Convolution" |
|
bottom: "data" |
|
top: "conv1_1" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 64 |
|
pad: 100 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu1_1" |
|
type: "ReLU" |
|
bottom: "conv1_1" |
|
top: "conv1_1" |
|
} |
|
layer { |
|
name: "conv1_2" |
|
type: "Convolution" |
|
bottom: "conv1_1" |
|
top: "conv1_2" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 64 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu1_2" |
|
type: "ReLU" |
|
bottom: "conv1_2" |
|
top: "conv1_2" |
|
} |
|
layer { |
|
name: "pool1" |
|
type: "Pooling" |
|
bottom: "conv1_2" |
|
top: "pool1" |
|
pooling_param { |
|
pool: MAX |
|
kernel_size: 2 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "conv2_1" |
|
type: "Convolution" |
|
bottom: "pool1" |
|
top: "conv2_1" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 128 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu2_1" |
|
type: "ReLU" |
|
bottom: "conv2_1" |
|
top: "conv2_1" |
|
} |
|
layer { |
|
name: "conv2_2" |
|
type: "Convolution" |
|
bottom: "conv2_1" |
|
top: "conv2_2" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 128 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu2_2" |
|
type: "ReLU" |
|
bottom: "conv2_2" |
|
top: "conv2_2" |
|
} |
|
layer { |
|
name: "pool2" |
|
type: "Pooling" |
|
bottom: "conv2_2" |
|
top: "pool2" |
|
pooling_param { |
|
pool: MAX |
|
kernel_size: 2 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "conv3_1" |
|
type: "Convolution" |
|
bottom: "pool2" |
|
top: "conv3_1" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 256 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu3_1" |
|
type: "ReLU" |
|
bottom: "conv3_1" |
|
top: "conv3_1" |
|
} |
|
layer { |
|
name: "conv3_2" |
|
type: "Convolution" |
|
bottom: "conv3_1" |
|
top: "conv3_2" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 256 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu3_2" |
|
type: "ReLU" |
|
bottom: "conv3_2" |
|
top: "conv3_2" |
|
} |
|
layer { |
|
name: "conv3_3" |
|
type: "Convolution" |
|
bottom: "conv3_2" |
|
top: "conv3_3" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 256 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu3_3" |
|
type: "ReLU" |
|
bottom: "conv3_3" |
|
top: "conv3_3" |
|
} |
|
layer { |
|
name: "pool3" |
|
type: "Pooling" |
|
bottom: "conv3_3" |
|
top: "pool3" |
|
pooling_param { |
|
pool: MAX |
|
kernel_size: 2 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "conv4_1" |
|
type: "Convolution" |
|
bottom: "pool3" |
|
top: "conv4_1" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 512 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu4_1" |
|
type: "ReLU" |
|
bottom: "conv4_1" |
|
top: "conv4_1" |
|
} |
|
layer { |
|
name: "conv4_2" |
|
type: "Convolution" |
|
bottom: "conv4_1" |
|
top: "conv4_2" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 512 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu4_2" |
|
type: "ReLU" |
|
bottom: "conv4_2" |
|
top: "conv4_2" |
|
} |
|
layer { |
|
name: "conv4_3" |
|
type: "Convolution" |
|
bottom: "conv4_2" |
|
top: "conv4_3" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 512 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu4_3" |
|
type: "ReLU" |
|
bottom: "conv4_3" |
|
top: "conv4_3" |
|
} |
|
layer { |
|
name: "pool4" |
|
type: "Pooling" |
|
bottom: "conv4_3" |
|
top: "pool4" |
|
pooling_param { |
|
pool: MAX |
|
kernel_size: 2 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "conv5_1" |
|
type: "Convolution" |
|
bottom: "pool4" |
|
top: "conv5_1" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 512 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu5_1" |
|
type: "ReLU" |
|
bottom: "conv5_1" |
|
top: "conv5_1" |
|
} |
|
layer { |
|
name: "conv5_2" |
|
type: "Convolution" |
|
bottom: "conv5_1" |
|
top: "conv5_2" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 512 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu5_2" |
|
type: "ReLU" |
|
bottom: "conv5_2" |
|
top: "conv5_2" |
|
} |
|
layer { |
|
name: "conv5_3" |
|
type: "Convolution" |
|
bottom: "conv5_2" |
|
top: "conv5_3" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 512 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu5_3" |
|
type: "ReLU" |
|
bottom: "conv5_3" |
|
top: "conv5_3" |
|
} |
|
layer { |
|
name: "pool5" |
|
type: "Pooling" |
|
bottom: "conv5_3" |
|
top: "pool5" |
|
pooling_param { |
|
pool: MAX |
|
kernel_size: 2 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "fc6" |
|
type: "Convolution" |
|
bottom: "pool5" |
|
top: "fc6" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 4096 |
|
pad: 0 |
|
kernel_size: 7 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu6" |
|
type: "ReLU" |
|
bottom: "fc6" |
|
top: "fc6" |
|
} |
|
layer { |
|
name: "fc7" |
|
type: "Convolution" |
|
bottom: "fc6" |
|
top: "fc7" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 4096 |
|
pad: 0 |
|
kernel_size: 1 |
|
stride: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu7" |
|
type: "ReLU" |
|
bottom: "fc7" |
|
top: "fc7" |
|
} |
|
layer { |
|
name: "score_fr" |
|
type: "Convolution" |
|
bottom: "fc7" |
|
top: "score_fr" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 21 |
|
pad: 0 |
|
kernel_size: 1 |
|
} |
|
} |
|
layer { |
|
name: "upscore2" |
|
type: "Deconvolution" |
|
bottom: "score_fr" |
|
top: "upscore2" |
|
param { |
|
lr_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 21 |
|
bias_term: false |
|
kernel_size: 4 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "score_pool4" |
|
type: "Convolution" |
|
bottom: "pool4" |
|
top: "score_pool4" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 21 |
|
pad: 0 |
|
kernel_size: 1 |
|
} |
|
} |
|
layer { |
|
name: "score_pool4c" |
|
type: "Crop" |
|
bottom: "score_pool4" |
|
bottom: "upscore2" |
|
top: "score_pool4c" |
|
crop_param { |
|
axis: 2 |
|
offset: 5 |
|
} |
|
} |
|
layer { |
|
name: "fuse_pool4" |
|
type: "Eltwise" |
|
bottom: "upscore2" |
|
bottom: "score_pool4c" |
|
top: "fuse_pool4" |
|
eltwise_param { |
|
operation: SUM |
|
} |
|
} |
|
layer { |
|
name: "upscore_pool4" |
|
type: "Deconvolution" |
|
bottom: "fuse_pool4" |
|
top: "upscore_pool4" |
|
param { |
|
lr_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 21 |
|
bias_term: false |
|
kernel_size: 4 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "score_pool3" |
|
type: "Convolution" |
|
bottom: "pool3" |
|
top: "score_pool3" |
|
param { |
|
lr_mult: 1 |
|
decay_mult: 1 |
|
} |
|
param { |
|
lr_mult: 2 |
|
decay_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 21 |
|
pad: 0 |
|
kernel_size: 1 |
|
} |
|
} |
|
layer { |
|
name: "score_pool3c" |
|
type: "Crop" |
|
bottom: "score_pool3" |
|
bottom: "upscore_pool4" |
|
top: "score_pool3c" |
|
crop_param { |
|
axis: 2 |
|
offset: 9 |
|
} |
|
} |
|
layer { |
|
name: "fuse_pool3" |
|
type: "Eltwise" |
|
bottom: "upscore_pool4" |
|
bottom: "score_pool3c" |
|
top: "fuse_pool3" |
|
eltwise_param { |
|
operation: SUM |
|
} |
|
} |
|
layer { |
|
name: "upscore8" |
|
type: "Deconvolution" |
|
bottom: "fuse_pool3" |
|
top: "upscore8" |
|
param { |
|
lr_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 21 |
|
bias_term: false |
|
kernel_size: 16 |
|
stride: 8 |
|
} |
|
} |
|
layer { |
|
name: "score" |
|
type: "Crop" |
|
bottom: "upscore8" |
|
bottom: "data" |
|
top: "score" |
|
crop_param { |
|
axis: 2 |
|
offset: 31 |
|
} |
|
}
|
|
|