name: "HandDetection" input: "data" input_shape { dim: 1 dim: 3 dim: 288 dim: 288 } layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "relu1" type: "ReLU" bottom: "conv1" top: "conv1" relu_param { negative_slope: 0.1 } } layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "conv2" type: "Convolution" bottom: "pool1" top: "conv2" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "relu2" type: "ReLU" bottom: "conv2" top: "conv2" relu_param { negative_slope: 0.1 } } layer { name: "pool2" type: "Pooling" bottom: "conv2" top: "pool2" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "conv3" type: "Convolution" bottom: "pool2" top: "conv3" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn3" type: "BatchNorm" bottom: "conv3" top: "conv3" } layer { bottom: "conv3" top: "conv3" name: "scale_conv3" type: "Scale" scale_param { bias_term: true } } layer { name: "relu3" type: "ReLU" bottom: "conv3" top: "conv3" relu_param { negative_slope: 0.1 } } layer { name: "pool5" type: "Pooling" bottom: "conv3" top: "pool5" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "conv6" type: "Convolution" bottom: "pool5" top: "conv6" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn6" type: "BatchNorm" bottom: "conv6" top: "conv6" } layer { bottom: "conv6" top: "conv6" name: "scale_conv6" type: "Scale" scale_param { bias_term: true } } layer { name: "relu6" type: "ReLU" bottom: "conv6" top: "conv6" relu_param { negative_slope: 0.1 } } layer { name: "pool8" type: "Pooling" bottom: "conv6" top: "pool8" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "conv9" type: "Convolution" bottom: "pool8" top: "conv9" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn9" type: "BatchNorm" bottom: "conv9" top: "conv9" } layer { bottom: "conv9" top: "conv9" name: "scale_conv9" type: "Scale" scale_param { bias_term: true } } layer { name: "relu9" type: "ReLU" bottom: "conv9" top: "conv9" relu_param { negative_slope: 0.1 } } layer { name: "conv10" type: "Convolution" bottom: "conv9" top: "conv10" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 128 kernel_size: 1 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn10" type: "BatchNorm" bottom: "conv10" top: "conv10" } layer { bottom: "conv10" top: "conv10" name: "scale_conv10" type: "Scale" scale_param { bias_term: true } } layer { name: "relu10" type: "ReLU" bottom: "conv10" top: "conv10" relu_param { negative_slope: 0.1 } } layer { name: "conv13" type: "Convolution" bottom: "conv10" top: "conv13" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn13" type: "BatchNorm" bottom: "conv13" top: "conv13" } layer { bottom: "conv13" top: "conv13" name: "scale_conv13" type: "Scale" scale_param { bias_term: true } } layer { name: "relu13" type: "ReLU" bottom: "conv13" top: "conv13" relu_param { negative_slope: 0.1 } } layer { name: "pool13" type: "Pooling" bottom: "conv13" top: "pool13" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "conv14" type: "Convolution" bottom: "pool13" top: "conv14" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn14" type: "BatchNorm" bottom: "conv14" top: "conv14" } layer { bottom: "conv14" top: "conv14" name: "scale_conv14" type: "Scale" scale_param { bias_term: true } } layer { name: "relu14" type: "ReLU" bottom: "conv14" top: "conv14" relu_param { negative_slope: 0.1 } } layer { name: "conv15" type: "Convolution" bottom: "conv14" top: "conv15" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 kernel_size: 1 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn15" type: "BatchNorm" bottom: "conv15" top: "conv15" } layer { bottom: "conv15" top: "conv15" name: "scale_conv15" type: "Scale" scale_param { bias_term: true } } layer { name: "relu15" type: "ReLU" bottom: "conv15" top: "conv15" relu_param { negative_slope: 0.1 } } layer { name: "conv18" type: "Convolution" bottom: "conv15" top: "conv18" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn18" type: "BatchNorm" bottom: "conv18" top: "conv18" } layer { bottom: "conv18" top: "conv18" name: "scale_conv18" type: "Scale" scale_param { bias_term: true } } layer { name: "relu18" type: "ReLU" bottom: "conv18" top: "conv18" relu_param { negative_slope: 0.1 } } layer { name: "conv19" type: "Convolution" bottom: "conv18" top: "conv19" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 256 pad: 1 kernel_size: 3 stride: 1 bias_term: false weight_filler { type: "xavier" } } } layer { name: "bn19" type: "BatchNorm" bottom: "conv19" top: "conv19" } layer { bottom: "conv19" top: "conv19" name: "scale_conv19" type: "Scale" scale_param { bias_term: true } } layer { name: "relu19" type: "ReLU" bottom: "conv19" top: "conv19" relu_param { negative_slope: 0.1 } } layer { name: "conv_reg" type: "Convolution" bottom: "conv19" top: "conv_reg" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 35 kernel_size: 1 stride: 1 #bias_term: false weight_filler { type: "xavier" } } }