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.
502 lines
6.7 KiB
502 lines
6.7 KiB
# |
|
# This prototxt is based on voc-fcn32s/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-fcn32s" |
|
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: "upscore" |
|
type: "Deconvolution" |
|
bottom: "score_fr" |
|
top: "upscore" |
|
param { |
|
lr_mult: 0 |
|
} |
|
convolution_param { |
|
num_output: 21 |
|
bias_term: false |
|
kernel_size: 64 |
|
stride: 32 |
|
} |
|
} |
|
layer { |
|
name: "score" |
|
type: "Crop" |
|
bottom: "upscore" |
|
bottom: "data" |
|
top: "score" |
|
crop_param { |
|
axis: 2 |
|
offset: 19 |
|
} |
|
}
|
|
|