diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/.DS_Store b/hyperlpr_pip_pkg/hyperlpr/models/dnn/.DS_Store new file mode 100644 index 0000000..7e1cf91 Binary files /dev/null and b/hyperlpr_pip_pkg/hyperlpr/models/dnn/.DS_Store differ diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/HorizonalFinemapping.caffemodel b/hyperlpr_pip_pkg/hyperlpr/models/dnn/HorizonalFinemapping.caffemodel new file mode 100644 index 0000000..94866be Binary files /dev/null and b/hyperlpr_pip_pkg/hyperlpr/models/dnn/HorizonalFinemapping.caffemodel differ diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/HorizonalFinemapping.prototxt b/hyperlpr_pip_pkg/hyperlpr/models/dnn/HorizonalFinemapping.prototxt new file mode 100644 index 0000000..21726dd --- /dev/null +++ b/hyperlpr_pip_pkg/hyperlpr/models/dnn/HorizonalFinemapping.prototxt @@ -0,0 +1,95 @@ +input: "data" +input_dim: 1 +input_dim: 3 +input_dim: 16 +input_dim: 66 +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + convolution_param { + num_output: 10 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "max_pooling2d_3" + type: "Pooling" + bottom: "conv1" + top: "max_pooling2d_3" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2" + type: "Convolution" + bottom: "max_pooling2d_3" + top: "conv2" + convolution_param { + num_output: 16 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "conv3" + type: "Convolution" + bottom: "conv2" + top: "conv3" + convolution_param { + num_output: 32 + bias_term: true + pad: 0 + kernel_size: 3 + stride: 1 + } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "flatten_2" + type: "Flatten" + bottom: "conv3" + top: "flatten_2" +} +layer { + name: "dense" + type: "InnerProduct" + bottom: "flatten_2" + top: "dense" + inner_product_param { + num_output: 2 + } +} +layer { + name: "relu4" + type: "ReLU" + bottom: "dense" + top: "dense" +} diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/SegmenationFree-Inception.caffemodel b/hyperlpr_pip_pkg/hyperlpr/models/dnn/SegmenationFree-Inception.caffemodel new file mode 100644 index 0000000..65a9954 Binary files /dev/null and b/hyperlpr_pip_pkg/hyperlpr/models/dnn/SegmenationFree-Inception.caffemodel differ diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/SegmenationFree-Inception.prototxt b/hyperlpr_pip_pkg/hyperlpr/models/dnn/SegmenationFree-Inception.prototxt new file mode 100644 index 0000000..8419763 --- /dev/null +++ b/hyperlpr_pip_pkg/hyperlpr/models/dnn/SegmenationFree-Inception.prototxt @@ -0,0 +1,454 @@ +input: "data" +input_dim: 1 +input_dim: 3 +input_dim: 160 +input_dim: 40 +layer { + name: "conv0" + type: "Convolution" + bottom: "data" + top: "conv0" + convolution_param { + num_output: 32 + bias_term: true + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "bn0" + type: "BatchNorm" + bottom: "conv0" + top: "bn0" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "bn0_scale" + type: "Scale" + bottom: "bn0" + top: "bn0" + scale_param { + bias_term: true + } +} +layer { + name: "relu0" + type: "ReLU" + bottom: "bn0" + top: "bn0" +} +layer { + name: "pool0" + type: "Pooling" + bottom: "bn0" + top: "pool0" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "conv1" + type: "Convolution" + bottom: "pool0" + top: "conv1" + convolution_param { + num_output: 64 + bias_term: true + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "bn1" + type: "BatchNorm" + bottom: "conv1" + top: "bn1" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "bn1_scale" + type: "Scale" + bottom: "bn1" + top: "bn1" + scale_param { + bias_term: true + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "bn1" + top: "bn1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "bn1" + top: "pool1" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "conv2" + type: "Convolution" + bottom: "pool1" + top: "conv2" + convolution_param { + num_output: 128 + bias_term: true + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "bn2" + type: "BatchNorm" + bottom: "conv2" + top: "bn2" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "bn2_scale" + type: "Scale" + bottom: "bn2" + top: "bn2" + scale_param { + bias_term: true + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "bn2" + top: "bn2" +} +layer { + name: "pool2" + type: "Pooling" + bottom: "bn2" + top: "pool2" + pooling_param { + pool: MAX + kernel_h: 2 + kernel_w: 2 + stride_h: 2 + stride_w: 2 + pad_h: 0 + pad_w: 0 + } +} +layer { + name: "conv2d_1" + type: "Convolution" + bottom: "pool2" + top: "conv2d_1" + convolution_param { + num_output: 256 + bias_term: true + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 5 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "batch_normalization_1" + type: "BatchNorm" + bottom: "conv2d_1" + top: "batch_normalization_1" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "batch_normalization_1_scale" + type: "Scale" + bottom: "batch_normalization_1" + top: "batch_normalization_1" + scale_param { + bias_term: true + } +} +layer { + name: "activation_1" + type: "ReLU" + bottom: "batch_normalization_1" + top: "batch_normalization_1" +} +layer { + name: "conv2d_2" + type: "Convolution" + bottom: "batch_normalization_1" + top: "conv2d_2" + convolution_param { + num_output: 256 + bias_term: true + pad_h: 3 + pad_w: 0 + kernel_h: 7 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2d_3" + type: "Convolution" + bottom: "batch_normalization_1" + top: "conv2d_3" + convolution_param { + num_output: 256 + bias_term: true + pad_h: 2 + pad_w: 0 + kernel_h: 5 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2d_4" + type: "Convolution" + bottom: "batch_normalization_1" + top: "conv2d_4" + convolution_param { + num_output: 256 + bias_term: true + pad_h: 1 + pad_w: 0 + kernel_h: 3 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2d_5" + type: "Convolution" + bottom: "batch_normalization_1" + top: "conv2d_5" + convolution_param { + num_output: 256 + bias_term: true + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "batch_normalization_2" + type: "BatchNorm" + bottom: "conv2d_2" + top: "batch_normalization_2" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "batch_normalization_2_scale" + type: "Scale" + bottom: "batch_normalization_2" + top: "batch_normalization_2" + scale_param { + bias_term: true + } +} +layer { + name: "batch_normalization_3" + type: "BatchNorm" + bottom: "conv2d_3" + top: "batch_normalization_3" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "batch_normalization_3_scale" + type: "Scale" + bottom: "batch_normalization_3" + top: "batch_normalization_3" + scale_param { + bias_term: true + } +} +layer { + name: "batch_normalization_4" + type: "BatchNorm" + bottom: "conv2d_4" + top: "batch_normalization_4" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "batch_normalization_4_scale" + type: "Scale" + bottom: "batch_normalization_4" + top: "batch_normalization_4" + scale_param { + bias_term: true + } +} +layer { + name: "batch_normalization_5" + type: "BatchNorm" + bottom: "conv2d_5" + top: "batch_normalization_5" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "batch_normalization_5_scale" + type: "Scale" + bottom: "batch_normalization_5" + top: "batch_normalization_5" + scale_param { + bias_term: true + } +} +layer { + name: "activation_2" + type: "ReLU" + bottom: "batch_normalization_2" + top: "batch_normalization_2" +} +layer { + name: "activation_3" + type: "ReLU" + bottom: "batch_normalization_3" + top: "batch_normalization_3" +} +layer { + name: "activation_4" + type: "ReLU" + bottom: "batch_normalization_4" + top: "batch_normalization_4" +} +layer { + name: "activation_5" + type: "ReLU" + bottom: "batch_normalization_5" + top: "batch_normalization_5" +} +layer { + name: "concatenate_1" + type: "Concat" + bottom: "batch_normalization_2" + bottom: "batch_normalization_3" + bottom: "batch_normalization_4" + bottom: "batch_normalization_5" + top: "concatenate_1" + concat_param { + axis: 1 + } +} +layer { + name: "conv_1024_11" + type: "Convolution" + bottom: "concatenate_1" + top: "conv_1024_11" + convolution_param { + num_output: 1024 + bias_term: true + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "batch_normalization_6" + type: "BatchNorm" + bottom: "conv_1024_11" + top: "batch_normalization_6" + batch_norm_param { + moving_average_fraction: 0.99 + eps: 0.001 + } +} +layer { + name: "batch_normalization_6_scale" + type: "Scale" + bottom: "batch_normalization_6" + top: "batch_normalization_6" + scale_param { + bias_term: true + } +} +layer { + name: "activation_6" + type: "ReLU" + bottom: "batch_normalization_6" + top: "batch_normalization_6" +} +layer { + name: "conv_class_11" + type: "Convolution" + bottom: "batch_normalization_6" + top: "conv_class_11" + convolution_param { + num_output: 84 + bias_term: true + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "prob" + type: "Softmax" + bottom: "conv_class_11" + top: "prob" +} + diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/mininet_ssd_v1.caffemodel b/hyperlpr_pip_pkg/hyperlpr/models/dnn/mininet_ssd_v1.caffemodel new file mode 100644 index 0000000..6bbc358 Binary files /dev/null and b/hyperlpr_pip_pkg/hyperlpr/models/dnn/mininet_ssd_v1.caffemodel differ diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/mininet_ssd_v1.prototxt b/hyperlpr_pip_pkg/hyperlpr/models/dnn/mininet_ssd_v1.prototxt new file mode 100644 index 0000000..3e5c355 --- /dev/null +++ b/hyperlpr_pip_pkg/hyperlpr/models/dnn/mininet_ssd_v1.prototxt @@ -0,0 +1,1462 @@ +layer { + name: "data" + type: "Input" + top: "data" + input_param { + shape { + dim: 1 + dim: 3 + dim: 512 + dim: 512 + } + } +} +layer { + name: "ssd0_mobilenet0_conv0" + type: "Convolution" + bottom: "data" + top: "ssd0_mobilenet0_conv0" + convolution_param { + num_output: 8 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm0/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv0" + top: "ssd0_mobilenet0_conv0" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv1" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv0" + top: "ssd0_mobilenet0_conv1" + convolution_param { + num_output: 8 + bias_term: true + pad: 1 + kernel_size: 3 + group: 8 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm1/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv1" + top: "ssd0_mobilenet0_conv1" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv2" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv1" + top: "ssd0_mobilenet0_conv2" + convolution_param { + num_output: 16 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm2/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv2" + top: "ssd0_mobilenet0_conv2" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv3" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv2" + top: "ssd0_mobilenet0_conv3" + convolution_param { + num_output: 16 + bias_term: true + pad: 1 + kernel_size: 3 + group: 16 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm3/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv3" + top: "ssd0_mobilenet0_conv3" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv4" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv3" + top: "ssd0_mobilenet0_conv4" + convolution_param { + num_output: 32 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm4/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv4" + top: "ssd0_mobilenet0_conv4" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv5" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv4" + top: "ssd0_mobilenet0_conv5" + convolution_param { + num_output: 32 + bias_term: true + pad: 1 + kernel_size: 3 + group: 32 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm5/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv5" + top: "ssd0_mobilenet0_conv5" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv6" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv5" + top: "ssd0_mobilenet0_conv6" + convolution_param { + num_output: 32 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm6/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv6" + top: "ssd0_mobilenet0_conv6" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv7" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv6" + top: "ssd0_mobilenet0_conv7" + convolution_param { + num_output: 32 + bias_term: true + pad: 1 + kernel_size: 3 + group: 32 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm7/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv7" + top: "ssd0_mobilenet0_conv7" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv8" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv7" + top: "ssd0_mobilenet0_conv8" + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm8/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv8" + top: "ssd0_mobilenet0_conv8" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv9" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv8" + top: "ssd0_mobilenet0_conv9" + convolution_param { + num_output: 64 + bias_term: true + pad: 1 + kernel_size: 3 + group: 64 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm9/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv9" + top: "ssd0_mobilenet0_conv9" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv10" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv9" + top: "ssd0_mobilenet0_conv10" + convolution_param { + num_output: 64 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm10/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv10" + top: "ssd0_mobilenet0_conv10" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv11" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv10" + top: "ssd0_mobilenet0_conv11" + convolution_param { + num_output: 64 + bias_term: true + pad: 1 + kernel_size: 3 + group: 64 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm11/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv11" + top: "ssd0_mobilenet0_conv11" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv12" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv11" + top: "ssd0_mobilenet0_conv12" + convolution_param { + num_output: 128 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm12/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv12" + top: "ssd0_mobilenet0_conv12" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv13" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv12" + top: "ssd0_mobilenet0_conv13" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 128 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm13/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv13" + top: "ssd0_mobilenet0_conv13" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv14" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv13" + top: "ssd0_mobilenet0_conv14" + convolution_param { + num_output: 128 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm14/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv14" + top: "ssd0_mobilenet0_conv14" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv15" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv14" + top: "ssd0_mobilenet0_conv15" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 128 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm15/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv15" + top: "ssd0_mobilenet0_conv15" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv16" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv15" + top: "ssd0_mobilenet0_conv16" + convolution_param { + num_output: 128 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm16/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv16" + top: "ssd0_mobilenet0_conv16" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv17" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv16" + top: "ssd0_mobilenet0_conv17" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 128 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm17/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv17" + top: "ssd0_mobilenet0_conv17" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv18" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv17" + top: "ssd0_mobilenet0_conv18" + convolution_param { + num_output: 128 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm18/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv18" + top: "ssd0_mobilenet0_conv18" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv19" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv18" + top: "ssd0_mobilenet0_conv19" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 128 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm19/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv19" + top: "ssd0_mobilenet0_conv19" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv20" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv19" + top: "ssd0_mobilenet0_conv20" + convolution_param { + num_output: 128 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm20/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv20" + top: "ssd0_mobilenet0_conv20" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv21" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv20" + top: "ssd0_mobilenet0_conv21" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 128 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm21/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv21" + top: "ssd0_mobilenet0_conv21" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv22" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv21" + top: "ssd0_mobilenet0_conv22" + convolution_param { + num_output: 128 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm22/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv22" + top: "ssd0_mobilenet0_conv22" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_convpredictor1_conv0" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv22" + top: "ssd0_convpredictor1_conv0" + convolution_param { + num_output: 12 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose6" + type: "Permute" + bottom: "ssd0_convpredictor1_conv0" + top: "ssd0_transpose6" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten6" + type: "Flatten" + bottom: "ssd0_transpose6" + top: "ssd0_flatten6" +} +layer { + name: "ssd0_mobilenet0_conv23" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv22" + top: "ssd0_mobilenet0_conv23" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 128 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm23/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv23" + top: "ssd0_mobilenet0_conv23" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv24" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv23" + top: "ssd0_mobilenet0_conv24" + convolution_param { + num_output: 256 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm24/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv24" + top: "ssd0_mobilenet0_conv24" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv25" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv24" + top: "ssd0_mobilenet0_conv25" + convolution_param { + num_output: 256 + bias_term: true + pad: 1 + kernel_size: 3 + group: 256 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm25/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv25" + top: "ssd0_mobilenet0_conv25" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_mobilenet0_conv26" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv25" + top: "ssd0_mobilenet0_conv26" + convolution_param { + num_output: 256 + bias_term: true + pad: 0 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_mobilenet0_batchnorm26/relu" + type: "ReLU" + bottom: "ssd0_mobilenet0_conv26" + top: "ssd0_mobilenet0_conv26" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_convpredictor3_conv0" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv26" + top: "ssd0_convpredictor3_conv0" + convolution_param { + num_output: 16 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose7" + type: "Permute" + bottom: "ssd0_convpredictor3_conv0" + top: "ssd0_transpose7" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten7" + type: "Flatten" + bottom: "ssd0_transpose7" + top: "ssd0_flatten7" +} +layer { + name: "ssd0_expand_trans_conv0" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv26" + top: "ssd0_expand_trans_conv0" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_expand_trans_bn0/relu" + type: "ReLU" + bottom: "ssd0_expand_trans_conv0" + top: "ssd0_expand_trans_conv0" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_expand_conv0" + type: "Convolution" + bottom: "ssd0_expand_trans_conv0" + top: "ssd0_expand_conv0" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_expand_bn0/relu" + type: "ReLU" + bottom: "ssd0_expand_conv0" + top: "ssd0_expand_conv0" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_convpredictor5_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv0" + top: "ssd0_convpredictor5_conv0" + convolution_param { + num_output: 16 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose8" + type: "Permute" + bottom: "ssd0_convpredictor5_conv0" + top: "ssd0_transpose8" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten8" + type: "Flatten" + bottom: "ssd0_transpose8" + top: "ssd0_flatten8" +} +layer { + name: "ssd0_expand_trans_conv1" + type: "Convolution" + bottom: "ssd0_expand_conv0" + top: "ssd0_expand_trans_conv1" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_expand_trans_bn1/relu" + type: "ReLU" + bottom: "ssd0_expand_trans_conv1" + top: "ssd0_expand_trans_conv1" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_expand_conv1" + type: "Convolution" + bottom: "ssd0_expand_trans_conv1" + top: "ssd0_expand_conv1" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_expand_bn1/relu" + type: "ReLU" + bottom: "ssd0_expand_conv1" + top: "ssd0_expand_conv1" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_convpredictor7_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv1" + top: "ssd0_convpredictor7_conv0" + convolution_param { + num_output: 16 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose9" + type: "Permute" + bottom: "ssd0_convpredictor7_conv0" + top: "ssd0_transpose9" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten9" + type: "Flatten" + bottom: "ssd0_transpose9" + top: "ssd0_flatten9" +} +layer { + name: "ssd0_expand_trans_conv2" + type: "Convolution" + bottom: "ssd0_expand_conv1" + top: "ssd0_expand_trans_conv2" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_expand_trans_bn2/relu" + type: "ReLU" + bottom: "ssd0_expand_trans_conv2" + top: "ssd0_expand_trans_conv2" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_expand_conv2" + type: "Convolution" + bottom: "ssd0_expand_trans_conv2" + top: "ssd0_expand_conv2" + convolution_param { + num_output: 64 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_expand_bn2/relu" + type: "ReLU" + bottom: "ssd0_expand_conv2" + top: "ssd0_expand_conv2" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_convpredictor9_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv2" + top: "ssd0_convpredictor9_conv0" + convolution_param { + num_output: 12 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose10" + type: "Permute" + bottom: "ssd0_convpredictor9_conv0" + top: "ssd0_transpose10" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten10" + type: "Flatten" + bottom: "ssd0_transpose10" + top: "ssd0_flatten10" +} +layer { + name: "ssd0_expand_trans_conv3" + type: "Convolution" + bottom: "ssd0_expand_conv2" + top: "ssd0_expand_trans_conv3" + convolution_param { + num_output: 128 + bias_term: true + pad: 1 + kernel_size: 1 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_expand_trans_bn3/relu" + type: "ReLU" + bottom: "ssd0_expand_trans_conv3" + top: "ssd0_expand_trans_conv3" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_expand_conv3" + type: "Convolution" + bottom: "ssd0_expand_trans_conv3" + top: "ssd0_expand_conv3" + convolution_param { + num_output: 64 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 2 + dilation: 1 + } +} +layer { + name: "ssd0_expand_bn3/relu" + type: "ReLU" + bottom: "ssd0_expand_conv3" + top: "ssd0_expand_conv3" + relu_param { + negative_slope: 0.0 + } +} +layer { + name: "ssd0_convpredictor11_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv3" + top: "ssd0_convpredictor11_conv0" + convolution_param { + num_output: 12 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose11" + type: "Permute" + bottom: "ssd0_convpredictor11_conv0" + top: "ssd0_transpose11" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten11" + type: "Flatten" + bottom: "ssd0_transpose11" + top: "ssd0_flatten11" +} +layer { + name: "ssd0_concat1" + type: "Concat" + bottom: "ssd0_flatten6" + bottom: "ssd0_flatten7" + bottom: "ssd0_flatten8" + bottom: "ssd0_flatten9" + bottom: "ssd0_flatten10" + bottom: "ssd0_flatten11" + top: "ssd0_concat1" + concat_param { + axis: 1 + } +} +layer { + name: "ssd0_convpredictor0_conv0" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv22" + top: "ssd0_convpredictor0_conv0" + convolution_param { + num_output: 6 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose0" + type: "Permute" + bottom: "ssd0_convpredictor0_conv0" + top: "ssd0_transpose0" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten0" + type: "Flatten" + bottom: "ssd0_transpose0" + top: "ssd0_flatten0" +} +layer { + name: "ssd0_convpredictor2_conv0" + type: "Convolution" + bottom: "ssd0_mobilenet0_conv26" + top: "ssd0_convpredictor2_conv0" + convolution_param { + num_output: 8 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose1" + type: "Permute" + bottom: "ssd0_convpredictor2_conv0" + top: "ssd0_transpose1" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten1" + type: "Flatten" + bottom: "ssd0_transpose1" + top: "ssd0_flatten1" +} +layer { + name: "ssd0_convpredictor4_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv0" + top: "ssd0_convpredictor4_conv0" + convolution_param { + num_output: 8 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose2" + type: "Permute" + bottom: "ssd0_convpredictor4_conv0" + top: "ssd0_transpose2" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten2" + type: "Flatten" + bottom: "ssd0_transpose2" + top: "ssd0_flatten2" +} +layer { + name: "ssd0_convpredictor6_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv1" + top: "ssd0_convpredictor6_conv0" + convolution_param { + num_output: 8 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose3" + type: "Permute" + bottom: "ssd0_convpredictor6_conv0" + top: "ssd0_transpose3" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten3" + type: "Flatten" + bottom: "ssd0_transpose3" + top: "ssd0_flatten3" +} +layer { + name: "ssd0_convpredictor8_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv2" + top: "ssd0_convpredictor8_conv0" + convolution_param { + num_output: 6 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose4" + type: "Permute" + bottom: "ssd0_convpredictor8_conv0" + top: "ssd0_transpose4" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten4" + type: "Flatten" + bottom: "ssd0_transpose4" + top: "ssd0_flatten4" +} +layer { + name: "ssd0_convpredictor10_conv0" + type: "Convolution" + bottom: "ssd0_expand_conv3" + top: "ssd0_convpredictor10_conv0" + convolution_param { + num_output: 6 + bias_term: true + pad: 1 + kernel_size: 3 + group: 1 + stride: 1 + dilation: 1 + } +} +layer { + name: "ssd0_transpose5" + type: "Permute" + bottom: "ssd0_convpredictor10_conv0" + top: "ssd0_transpose5" + permute_param { + order: 0 + order: 2 + order: 3 + order: 1 + } +} +layer { + name: "ssd0_flatten5" + type: "Flatten" + bottom: "ssd0_transpose5" + top: "ssd0_flatten5" +} +layer { + name: "ssd0_concat0" + type: "Concat" + bottom: "ssd0_flatten0" + bottom: "ssd0_flatten1" + bottom: "ssd0_flatten2" + bottom: "ssd0_flatten3" + bottom: "ssd0_flatten4" + bottom: "ssd0_flatten5" + top: "ssd0_concat0" + concat_param { + axis: 1 + } +} +layer { + name: "ssd0_reshape6" + type: "Reshape" + bottom: "ssd0_concat0" + top: "ssd0_reshape6" + reshape_param { + shape { + dim: 0 + dim: -1 + dim: 2 + } + } +} +layer { + name: "softmax0" + type: "Softmax" + bottom: "ssd0_reshape6" + top: "softmax0" + softmax_param { + axis: 2 + } +} +layer { + name: "flatten0" + type: "Flatten" + bottom: "softmax0" + top: "flatten0" +} +layer { + name: "ssd0_mobilenet0_relu22_fwd_priorbox" + type: "PriorBox" + bottom: "ssd0_mobilenet0_conv22" + bottom: "data" + top: "ssd0_mobilenet0_relu22_fwd_priorbox" + prior_box_param { + min_size: 51.20000076293945 + max_size: 102.4000015258789 + aspect_ratio: 1.0 + aspect_ratio: 2.0 + flip: false + clip: false + variance: 0.10000000149011612 + variance: 0.10000000149011612 + variance: 0.20000000298023224 + variance: 0.20000000298023224 + offset: 0.5 + } +} +layer { + name: "ssd0_mobilenet0_relu26_fwd_priorbox" + type: "PriorBox" + bottom: "ssd0_mobilenet0_conv26" + bottom: "data" + top: "ssd0_mobilenet0_relu26_fwd_priorbox" + prior_box_param { + min_size: 102.4000015258789 + max_size: 189.39999389648438 + aspect_ratio: 1.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: false + clip: false + variance: 0.10000000149011612 + variance: 0.10000000149011612 + variance: 0.20000000298023224 + variance: 0.20000000298023224 + offset: 0.5 + } +} +layer { + name: "ssd0_expand_reu0_priorbox" + type: "PriorBox" + bottom: "ssd0_expand_conv0" + bottom: "data" + top: "ssd0_expand_reu0_priorbox" + prior_box_param { + min_size: 189.39999389648438 + max_size: 276.3999938964844 + aspect_ratio: 1.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: false + clip: false + variance: 0.10000000149011612 + variance: 0.10000000149011612 + variance: 0.20000000298023224 + variance: 0.20000000298023224 + offset: 0.5 + } +} +layer { + name: "ssd0_expand_reu1_priorbox" + type: "PriorBox" + bottom: "ssd0_expand_conv1" + bottom: "data" + top: "ssd0_expand_reu1_priorbox" + prior_box_param { + min_size: 276.3999938964844 + max_size: 363.5199890136719 + aspect_ratio: 1.0 + aspect_ratio: 2.0 + aspect_ratio: 3.0 + flip: false + clip: false + variance: 0.10000000149011612 + variance: 0.10000000149011612 + variance: 0.20000000298023224 + variance: 0.20000000298023224 + offset: 0.5 + } +} +layer { + name: "ssd0_expand_reu2_priorbox" + type: "PriorBox" + bottom: "ssd0_expand_conv2" + bottom: "data" + top: "ssd0_expand_reu2_priorbox" + prior_box_param { + min_size: 363.5199890136719 + max_size: 450.6000061035156 + aspect_ratio: 1.0 + aspect_ratio: 2.0 + flip: false + clip: false + variance: 0.10000000149011612 + variance: 0.10000000149011612 + variance: 0.20000000298023224 + variance: 0.20000000298023224 + offset: 0.5 + } +} +layer { + name: "ssd0_expand_reu3_priorbox" + type: "PriorBox" + bottom: "ssd0_expand_conv3" + bottom: "data" + top: "ssd0_expand_reu3_priorbox" + prior_box_param { + min_size: 450.6000061035156 + max_size: 492.0 + aspect_ratio: 1.0 + aspect_ratio: 2.0 + flip: false + clip: false + variance: 0.10000000149011612 + variance: 0.10000000149011612 + variance: 0.20000000298023224 + variance: 0.20000000298023224 + offset: 0.5 + } +} +layer { + name: "concat0" + type: "Concat" + bottom: "ssd0_mobilenet0_relu22_fwd_priorbox" + bottom: "ssd0_mobilenet0_relu26_fwd_priorbox" + bottom: "ssd0_expand_reu0_priorbox" + bottom: "ssd0_expand_reu1_priorbox" + bottom: "ssd0_expand_reu2_priorbox" + bottom: "ssd0_expand_reu3_priorbox" + top: "concat0" + concat_param { + axis: 2 + } +} +layer { + name: "detection_out" + type: "DetectionOutput" + bottom: "ssd0_concat1" + bottom: "flatten0" + bottom: "concat0" + top: "detection_out" + detection_output_param { + num_classes: 2 + share_location: true + background_label_id: 0 + nms_param { + nms_threshold: 0.44999998807907104 + top_k: 400 + } + code_type: CENTER_SIZE + keep_top_k: 100 + confidence_threshold: 0.009999999776482582 + } +} diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/refinenet.caffemodel b/hyperlpr_pip_pkg/hyperlpr/models/dnn/refinenet.caffemodel new file mode 100755 index 0000000..d02bcab Binary files /dev/null and b/hyperlpr_pip_pkg/hyperlpr/models/dnn/refinenet.caffemodel differ diff --git a/hyperlpr_pip_pkg/hyperlpr/models/dnn/refinenet.prototxt b/hyperlpr_pip_pkg/hyperlpr/models/dnn/refinenet.prototxt new file mode 100755 index 0000000..5ef8e75 --- /dev/null +++ b/hyperlpr_pip_pkg/hyperlpr/models/dnn/refinenet.prototxt @@ -0,0 +1,300 @@ +name: "ONet" +input: "data" +input_dim: 1 +input_dim: 3 +input_dim: 48 +input_dim: 120 + +################################## +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + convolution_param { + num_output: 32 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "prelu1" + type: "PReLU" + bottom: "conv1" + top: "conv1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layer { + name: "conv2" + type: "Convolution" + bottom: "pool1" + top: "conv2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + convolution_param { + num_output: 64 + kernel_size: 3 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + name: "prelu2" + type: "PReLU" + bottom: "conv2" + top: "conv2" +} +layer { + name: "pool2" + type: "Pooling" + bottom: "conv2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} + +layer { + name: "conv3" + type: "Convolution" + bottom: "pool2" + top: "conv3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + convolution_param { + num_output: 64 + kernel_size: 3 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "prelu3" + type: "PReLU" + bottom: "conv3" + top: "conv3" +} +layer { + name: "pool3" + type: "Pooling" + bottom: "conv3" + top: "pool3" + pooling_param { + pool: MAX + kernel_size: 2 + stride: 2 + } +} +layer { + name: "conv4" + type: "Convolution" + bottom: "pool3" + top: "conv4" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + convolution_param { + num_output: 128 + kernel_size: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} +layer { + name: "prelu4" + type: "PReLU" + bottom: "conv4" + top: "conv4" +} + + +layer { + name: "conv5i" + type: "InnerProduct" + bottom: "conv4" + top: "conv5" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + inner_product_param { + #kernel_size: 3 + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + name: "drop5i" + type: "Dropout" + bottom: "conv5" + top: "conv5" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "prelu5" + type: "PReLU" + bottom: "conv5" + top: "conv5" +} + + +layer { + name: "conv6i-1" + type: "InnerProduct" + bottom: "conv5" + top: "conv6-1" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + inner_product_param { + #kernel_size: 1 + num_output: 2 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + + +layer { + name: "conv6i-2" + type: "InnerProduct" + bottom: "conv5" + top: "conv6-2" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + inner_product_param { + #kernel_size: 1 + num_output: 4 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + +layer { + name: "conv6-3" + type: "InnerProduct" + bottom: "conv5" + top: "conv6-3" + param { + lr_mult: 1 + decay_mult: 1 + } + param { + lr_mult: 2 + decay_mult: 1 + } + inner_product_param { + #kernel_size: 1 + num_output: 8 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0 + } + } +} + + +layer { + name: "prob1" + type: "Softmax" + bottom: "conv6-1" + top: "prob1" +} \ No newline at end of file