name: "Heatmap_3dJoint" input: "depth" input_dim: 1 input_dim: 1 input_dim: 180 input_dim: 240 input: "heatmaps_point" input_dim: 1 input_dim: 16 input_dim: 30 input_dim: 40 layer { name: "depth_convL0" type: "Convolution" bottom: "depth" top: "depth_convL0" convolution_param { num_output: 16 kernel_size: 3 pad: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layer { name: "depth_ReLUconvL0" type: "ReLU" bottom: "depth_convL0" top: "depth_convL0" } layer { name: "depth_poolL0" type: "Pooling" bottom: "depth_convL0" top: "depth_poolL0" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "depth_convL1" type: "Convolution" bottom: "depth_poolL0" top: "depth_convL1" convolution_param { num_output: 32 kernel_size: 3 pad: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layer { name: "ReLUdepth_convL1" type: "ReLU" bottom: "depth_convL1" top: "depth_convL1" } layer { name: "depth_poolL1" type: "Pooling" bottom: "depth_convL1" top: "depth_poolL1" pooling_param { pool: MAX kernel_size: 3 stride: 3 } } layer { name: "depth_convL2" type: "Convolution" bottom: "depth_poolL1" top: "depth_convL2" convolution_param { num_output: 64 kernel_size: 3 pad: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layer { name: "ReLUdepth_convL2" type: "ReLU" bottom: "depth_convL2" top: "depth_convL2" } layer { name: "depth_convL3" type: "Convolution" bottom: "depth_convL2" top: "depth_convL3" convolution_param { num_output: 64 kernel_size: 3 pad: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layer { name: "depth_ReLUconvL3" type: "ReLU" bottom: "depth_convL3" top: "depth_convL3" } layer { name: "depth_convL5" type: "Convolution" bottom: "depth_convL3" top: "depth_convL5" convolution_param { num_output: 48 kernel_size: 3 pad: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layer { name: "depth_ReLUconvL5" type: "ReLU" bottom: "depth_convL5" top: "depth_convL5" } layer { name: "concat_heatmaps_point" type: "Concat" bottom: "heatmaps_point" bottom: "heatmaps_point" bottom: "heatmaps_point" top: "concat_heatmaps_point" concat_param { axis: 1 } } layer { name: "mul_feature" type: "Eltwise" bottom: "concat_heatmaps_point" bottom: "depth_convL5" top: "mul_feature" eltwise_param { operation: PROD } } layer { name: "stage1_conv1_L2" type: "Convolution" bottom: "mul_feature" top: "stage1_conv1_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage1_relu1_L2" type: "ReLU" bottom: "stage1_conv1_L2" top: "stage1_conv1_L2" } layer { name: "stage1_conv2_L2" type: "Convolution" bottom: "stage1_conv1_L2" top: "stage1_conv2_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage1_relu2_L2" type: "ReLU" bottom: "stage1_conv2_L2" top: "stage1_conv2_L2" } layer { name: "stage1_conv3_L2" type: "Convolution" bottom: "stage1_conv2_L2" top: "stage1_conv3_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage1_relu3_L2" type: "ReLU" bottom: "stage1_conv3_L2" top: "stage1_conv3_L2" } layer { name: "stage1_conv4_L2" type: "Convolution" bottom: "stage1_conv3_L2" top: "stage1_conv4_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage1_relu4_L2" type: "ReLU" bottom: "stage1_conv4_L2" top: "stage1_conv4_L2" } layer { name: "stage1_conv5_L2" type: "Convolution" bottom: "stage1_conv4_L2" top: "stage1_conv5_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 16 pad: 0 kernel_size: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "concat_stage2" type: "Concat" bottom: "stage1_conv5_L2" bottom: "mul_feature" top: "concat_stage2" concat_param { axis: 1 } } layer { name: "stage2_conv1_L2" type: "Convolution" bottom: "concat_stage2" top: "stage2_conv1_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage2_relu1_L2" type: "ReLU" bottom: "stage2_conv1_L2" top: "stage2_conv1_L2" } layer { name: "stage2_conv2_L2" type: "Convolution" bottom: "stage2_conv1_L2" top: "stage2_conv2_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage2_relu2_L2" type: "ReLU" bottom: "stage2_conv2_L2" top: "stage2_conv2_L2" } layer { name: "stage2_conv3_L2" type: "Convolution" bottom: "stage2_conv2_L2" top: "stage2_conv3_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage2_relu3_L2" type: "ReLU" bottom: "stage2_conv3_L2" top: "stage2_conv3_L2" } layer { name: "stage2_conv4_L2" type: "Convolution" bottom: "stage2_conv3_L2" top: "stage2_conv4_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage2_relu4_L2" type: "ReLU" bottom: "stage2_conv4_L2" top: "stage2_conv4_L2" } layer { name: "stage2_conv5_L2" type: "Convolution" bottom: "stage2_conv4_L2" top: "stage2_conv5_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 16 pad: 0 kernel_size: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "concat_stage3" type: "Concat" bottom: "stage2_conv5_L2" bottom: "mul_feature" top: "concat_stage3" concat_param { axis: 1 } } layer { name: "stage3_conv1_L2" type: "Convolution" bottom: "concat_stage3" top: "stage3_conv1_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage3_relu1_L2" type: "ReLU" bottom: "stage3_conv1_L2" top: "stage3_conv1_L2" } layer { name: "stage3_conv2_L2" type: "Convolution" bottom: "stage3_conv1_L2" top: "stage3_conv2_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage3_relu2_L2" type: "ReLU" bottom: "stage3_conv2_L2" top: "stage3_conv2_L2" } layer { name: "stage3_conv3_L2" type: "Convolution" bottom: "stage3_conv2_L2" top: "stage3_conv3_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage3_relu3_L2" type: "ReLU" bottom: "stage3_conv3_L2" top: "stage3_conv3_L2" } layer { name: "stage3_conv4_L2" type: "Convolution" bottom: "stage3_conv3_L2" top: "stage3_conv4_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage3_relu4_L2" type: "ReLU" bottom: "stage3_conv4_L2" top: "stage3_conv4_L2" } layer { name: "stage3_conv5_L2" type: "Convolution" bottom: "stage3_conv4_L2" top: "stage3_conv5_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 16 pad: 0 kernel_size: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "concat_stage4" type: "Concat" bottom: "stage3_conv5_L2" bottom: "mul_feature" top: "concat_stage4" concat_param { axis: 1 } } layer { name: "stage4_conv1_L2" type: "Convolution" bottom: "concat_stage4" top: "stage4_conv1_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage4_relu1_L2" type: "ReLU" bottom: "stage4_conv1_L2" top: "stage4_conv1_L2" } layer { name: "stage4_conv2_L2" type: "Convolution" bottom: "stage4_conv1_L2" top: "stage4_conv2_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage4_relu2_L2" type: "ReLU" bottom: "stage4_conv2_L2" top: "stage4_conv2_L2" } layer { name: "stage4_conv3_L2" type: "Convolution" bottom: "stage4_conv2_L2" top: "stage4_conv3_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage4_relu3_L2" type: "ReLU" bottom: "stage4_conv3_L2" top: "stage4_conv3_L2" } layer { name: "stage4_conv4_L2" type: "Convolution" bottom: "stage4_conv3_L2" top: "stage4_conv4_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage4_relu4_L2" type: "ReLU" bottom: "stage4_conv4_L2" top: "stage4_conv4_L2" } layer { name: "stage4_conv5_L2" type: "Convolution" bottom: "stage4_conv4_L2" top: "stage4_conv5_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 16 pad: 0 kernel_size: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "concat_stage5" type: "Concat" bottom: "stage4_conv5_L2" bottom: "mul_feature" top: "concat_stage5" concat_param { axis: 1 } } layer { name: "stage5_conv1_L2" type: "Convolution" bottom: "concat_stage5" top: "stage5_conv1_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage5_relu1_L2" type: "ReLU" bottom: "stage5_conv1_L2" top: "stage5_conv1_L2" } layer { name: "stage5_conv2_L2" type: "Convolution" bottom: "stage5_conv1_L2" top: "stage5_conv2_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage5_relu2_L2" type: "ReLU" bottom: "stage5_conv2_L2" top: "stage5_conv2_L2" } layer { name: "stage5_conv3_L2" type: "Convolution" bottom: "stage5_conv2_L2" top: "stage5_conv3_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage5_relu3_L2" type: "ReLU" bottom: "stage5_conv3_L2" top: "stage5_conv3_L2" } layer { name: "stage5_conv4_L2" type: "Convolution" bottom: "stage5_conv3_L2" top: "stage5_conv4_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage5_relu4_L2" type: "ReLU" bottom: "stage5_conv4_L2" top: "stage5_conv4_L2" } layer { name: "stage5_conv5_L2" type: "Convolution" bottom: "stage5_conv4_L2" top: "stage5_conv5_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 16 pad: 0 kernel_size: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "concat_stage6" type: "Concat" bottom: "stage5_conv5_L2" bottom: "mul_feature" top: "concat_stage6" concat_param { axis: 1 } } layer { name: "stage6_conv1_L2" type: "Convolution" bottom: "concat_stage6" top: "stage6_conv1_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage6_relu1_L2" type: "ReLU" bottom: "stage6_conv1_L2" top: "stage6_conv1_L2" } layer { name: "stage6_conv2_L2" type: "Convolution" bottom: "stage6_conv1_L2" top: "stage6_conv2_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage6_relu2_L2" type: "ReLU" bottom: "stage6_conv2_L2" top: "stage6_conv2_L2" } layer { name: "stage6_conv3_L2" type: "Convolution" bottom: "stage6_conv2_L2" top: "stage6_conv3_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage6_relu3_L2" type: "ReLU" bottom: "stage6_conv3_L2" top: "stage6_conv3_L2" } layer { name: "stage6_conv4_L2" type: "Convolution" bottom: "stage6_conv3_L2" top: "stage6_conv4_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 48 pad: 1 kernel_size: 3 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } } layer { name: "stage6_relu4_L2" type: "ReLU" bottom: "stage6_conv4_L2" top: "stage6_conv4_L2" } layer { name: "stage6_conv5_L2" type: "Convolution" bottom: "stage6_conv4_L2" top: "stage6_conv5_L2" param { lr_mult: 1.0 decay_mult: 1 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 16 pad: 0 kernel_size: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" } } }