|
name: "HED" |
|
layer { |
|
name: "data" |
|
type: "ImageLabelmapData" |
|
top: "data" |
|
top: "label" |
|
include { |
|
phase: TRAIN |
|
} |
|
transform_param { |
|
mirror: false |
|
mean_value: 104.00699 |
|
mean_value: 116.66877 |
|
mean_value: 122.67892 |
|
} |
|
image_data_param { |
|
root_folder: "../../data/HED-BSDS/" |
|
source: "../../data/HED-BSDS/train_pair.lst" |
|
batch_size: 1 |
|
shuffle: true |
|
new_height: 0 |
|
new_width: 0 |
|
} |
|
} |
|
layer { |
|
name: "data" |
|
type: "ImageLabelmapData" |
|
top: "data" |
|
top: "label" |
|
include { |
|
phase: TEST |
|
} |
|
transform_param { |
|
mirror: false |
|
mean_value: 104.00699 |
|
mean_value: 116.66877 |
|
mean_value: 122.67892 |
|
} |
|
image_data_param { |
|
root_folder: "../../data/HED-BSDS/" |
|
source: "../../data/HED-BSDS/train_pair.lst" |
|
#Just setup the network. No real online testing |
|
batch_size: 1 |
|
shuffle: true |
|
new_height: 0 |
|
new_width: 0 |
|
} |
|
} |
|
|
|
layer { bottom: 'data' top: 'conv1_1' name: 'conv1_1' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 64 pad: 35 kernel_size: 3 } } |
|
layer { bottom: 'conv1_1' top: 'conv1_1' name: 'relu1_1' type: "ReLU" } |
|
layer { bottom: 'conv1_1' top: 'conv1_2' name: 'conv1_2' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 64 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv1_2' top: 'conv1_2' name: 'relu1_2' type: "ReLU" } |
|
layer { name: 'pool1' bottom: 'conv1_2' top: 'pool1' type: "Pooling" |
|
pooling_param { pool: MAX kernel_size: 2 stride: 2 } } |
|
|
|
layer { name: 'conv2_1' bottom: 'pool1' top: 'conv2_1' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 128 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv2_1' top: 'conv2_1' name: 'relu2_1' type: "ReLU" } |
|
layer { bottom: 'conv2_1' top: 'conv2_2' name: 'conv2_2' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 128 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv2_2' top: 'conv2_2' name: 'relu2_2' type: "ReLU" } |
|
layer { bottom: 'conv2_2' top: 'pool2' name: 'pool2' type: "Pooling" |
|
pooling_param { pool: MAX kernel_size: 2 stride: 2 } } |
|
|
|
layer { bottom: 'pool2' top: 'conv3_1' name: 'conv3_1' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 256 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv3_1' top: 'conv3_1' name: 'relu3_1' type: "ReLU" } |
|
layer { bottom: 'conv3_1' top: 'conv3_2' name: 'conv3_2' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 256 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv3_2' top: 'conv3_2' name: 'relu3_2' type: "ReLU" } |
|
layer { bottom: 'conv3_2' top: 'conv3_3' name: 'conv3_3' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 256 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv3_3' top: 'conv3_3' name: 'relu3_3' type: "ReLU" } |
|
layer { bottom: 'conv3_3' top: 'pool3' name: 'pool3' type: "Pooling" |
|
pooling_param { pool: MAX kernel_size: 2 stride: 2 } } |
|
|
|
layer { bottom: 'pool3' top: 'conv4_1' name: 'conv4_1' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 512 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv4_1' top: 'conv4_1' name: 'relu4_1' type: "ReLU" } |
|
layer { bottom: 'conv4_1' top: 'conv4_2' name: 'conv4_2' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 512 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv4_2' top: 'conv4_2' name: 'relu4_2' type: "ReLU" } |
|
layer { bottom: 'conv4_2' top: 'conv4_3' name: 'conv4_3' type: "Convolution" |
|
param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 512 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv4_3' top: 'conv4_3' name: 'relu4_3' type: "ReLU" } |
|
layer { bottom: 'conv4_3' top: 'pool4' name: 'pool4' type: "Pooling" |
|
pooling_param { pool: MAX kernel_size: 2 stride: 2 } } |
|
|
|
layer { bottom: 'pool4' top: 'conv5_1' name: 'conv5_1' type: "Convolution" |
|
param { lr_mult: 100 decay_mult: 1 } param { lr_mult: 200 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 512 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv5_1' top: 'conv5_1' name: 'relu5_1' type: "ReLU" } |
|
layer { bottom: 'conv5_1' top: 'conv5_2' name: 'conv5_2' type: "Convolution" |
|
param { lr_mult: 100 decay_mult: 1 } param { lr_mult: 200 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 512 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv5_2' top: 'conv5_2' name: 'relu5_2' type: "ReLU" } |
|
layer { bottom: 'conv5_2' top: 'conv5_3' name: 'conv5_3' type: "Convolution" |
|
param { lr_mult: 100 decay_mult: 1 } param { lr_mult: 200 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 512 pad: 1 kernel_size: 3 } } |
|
layer { bottom: 'conv5_3' top: 'conv5_3' name: 'relu5_3' type: "ReLU" } |
|
|
|
## DSN conv 1 ### |
|
layer { name: 'score-dsn1' type: "Convolution" bottom: 'conv1_2' top: 'score-dsn1-up' |
|
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 } } |
|
layer { type: "Crop" name: 'crop' bottom: 'score-dsn1-up' bottom: 'data' top: 'upscore-dsn1' } |
|
layer { type: "SigmoidCrossEntropyLoss" bottom: "upscore-dsn1" bottom: "label" top:"dsn1_loss" loss_weight: 1} |
|
|
|
### DSN conv 2 ### |
|
layer { name: 'score-dsn2' type: "Convolution" bottom: 'conv2_2' top: 'score-dsn2' |
|
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 } } |
|
layer { type: "Deconvolution" name: 'upsample_2' bottom: 'score-dsn2' top: 'score-dsn2-up' |
|
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} |
|
convolution_param { kernel_size: 4 stride: 2 num_output: 1 } } |
|
layer { type: "Crop" name: 'crop' bottom: 'score-dsn2-up' bottom: 'data' top: 'upscore-dsn2' } |
|
layer { type: "SigmoidCrossEntropyLoss" bottom: "upscore-dsn2" bottom: "label" top:"dsn2_loss" loss_weight: 1} |
|
|
|
### DSN conv 3 ### |
|
layer { name: 'score-dsn3' type: "Convolution" bottom: 'conv3_3' top: 'score-dsn3' |
|
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 } } |
|
layer { type: "Deconvolution" name: 'upsample_4' bottom: 'score-dsn3' top: 'score-dsn3-up' |
|
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} |
|
convolution_param { kernel_size: 8 stride: 4 num_output: 1 } } |
|
layer { type: "Crop" name: 'crop' bottom: 'score-dsn3-up' bottom: 'data' top: 'upscore-dsn3' } |
|
layer { type: "SigmoidCrossEntropyLoss" bottom: "upscore-dsn3" bottom: "label" top:"dsn3_loss" loss_weight: 1} |
|
|
|
###DSN conv 4### |
|
layer { name: 'score-dsn4' type: "Convolution" bottom: 'conv4_3' top: 'score-dsn4' |
|
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 } } |
|
layer { type: "Deconvolution" name: 'upsample_8' bottom: 'score-dsn4' top: 'score-dsn4-up' |
|
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} |
|
convolution_param { kernel_size: 16 stride: 8 num_output: 1 } } |
|
layer { type: "Crop" name: 'crop' bottom: 'score-dsn4-up' bottom: 'data' top: 'upscore-dsn4' } |
|
layer { type: "SigmoidCrossEntropyLoss" bottom: "upscore-dsn4" bottom: "label" top:"dsn4_loss" loss_weight: 1} |
|
|
|
###DSN conv 5### |
|
layer { name: 'score-dsn5' type: "Convolution" bottom: 'conv5_3' top: 'score-dsn5' |
|
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 } } |
|
layer { type: "Deconvolution" name: 'upsample_16' bottom: 'score-dsn5' top: 'score-dsn5-up' |
|
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} |
|
convolution_param { kernel_size: 32 stride: 16 num_output: 1 } } |
|
layer { type: "Crop" name: 'crop' bottom: 'score-dsn5-up' bottom: 'data' top: 'upscore-dsn5' } |
|
layer { type: "SigmoidCrossEntropyLoss" bottom: "upscore-dsn5" bottom: "label" top:"dsn5_loss" loss_weight: 1} |
|
|
|
### Concat and multiscale weight layer ### |
|
layer { name: "concat" bottom: "upscore-dsn1" bottom: "upscore-dsn2" bottom: "upscore-dsn3" |
|
bottom: "upscore-dsn4" bottom: "upscore-dsn5" top: "concat-upscore" type: "Concat" |
|
concat_param { concat_dim: 1} } |
|
layer { name: 'new-score-weighting' type: "Convolution" bottom: 'concat-upscore' top: 'upscore-fuse' |
|
param { lr_mult: 0.001 decay_mult: 1 } param { lr_mult: 0.002 decay_mult: 0} |
|
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 weight_filler {type: "constant" value: 0.2} } } |
|
layer { type: "SigmoidCrossEntropyLoss" bottom: "upscore-fuse" bottom: "label" top:"fuse_loss" loss_weight: 1} |
|
|