Face-Anti-spoofing-for-RGB icon indicating copy to clipboard operation
Face-Anti-spoofing-for-RGB copied to clipboard

Where is deploy.prototxt

Open sangdv opened this issue 5 years ago • 3 comments

Hi, where can I get the deploy.prototxt file corresponding to the release model? Thank you!

sangdv avatar May 07 '20 07:05 sangdv

for facial detection, you can get it from here https://github.com/thegopieffect/computer_vision/tree/master/CAFFE_DNN

However, for classifier which should be SqueezeNet, I have no idea... I get sigabrt for SqueezeNet 1.0 and 1.1 deploy.prototxt.

It would be great if the author tells us if he wants to release all the information or not.

mipko avatar May 16 '20 20:05 mipko

` name: "squeezex" layer { name: "data" type: "MemoryData" top: "data" top: "label" memory_data_param { batch_size: 1 channels: 3 height: 227 width: 227 } transform_param { mean_value: 90 mean_value: 198 mean_value: 121 #scale: 0.0078125 } } layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" #phase: TRAIN convolution_param { num_output: 64 kernel_size: 3 stride: 2 weight_filler { type: "xavier" } } } layer { name: "relu_conv1" type: "ReLU" bottom: "conv1" top: "conv1" #phase: TRAIN } layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" #phase: TRAIN pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "fire2/squeeze1x1" type: "Convolution" bottom: "pool1" top: "fire2/squeeze1x1" #phase: TRAIN convolution_param { num_output: 16 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire2/relu_squeeze1x1" type: "ReLU" bottom: "fire2/squeeze1x1" top: "fire2/squeeze1x1" #phase: TRAIN } layer { name: "fire2/squeeze1x1_fire2/relu_squeeze1x1_0_split" type: "Split" bottom: "fire2/squeeze1x1" top: "fire2/squeeze1x1_fire2/relu_squeeze1x1_0_split_0" top: "fire2/squeeze1x1_fire2/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire2/expand1x1" type: "Convolution" bottom: "fire2/squeeze1x1_fire2/relu_squeeze1x1_0_split_0" top: "fire2/expand1x1" #phase: TRAIN convolution_param { num_output: 64 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire2/relu_expand1x1" type: "ReLU" bottom: "fire2/expand1x1" top: "fire2/expand1x1" #phase: TRAIN } layer { name: "fire2/expand3x3" type: "Convolution" bottom: "fire2/squeeze1x1_fire2/relu_squeeze1x1_0_split_1" top: "fire2/expand3x3" #phase: TRAIN convolution_param { num_output: 64 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire2/relu_expand3x3" type: "ReLU" bottom: "fire2/expand3x3" top: "fire2/expand3x3" #phase: TRAIN } layer { name: "fire2/concat" type: "Concat" bottom: "fire2/expand1x1" bottom: "fire2/expand3x3" top: "fire2/concat" #phase: TRAIN } layer { name: "fire3/squeeze1x1" type: "Convolution" bottom: "fire2/concat" top: "fire3/squeeze1x1" #phase: TRAIN convolution_param { num_output: 16 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire3/relu_squeeze1x1" type: "ReLU" bottom: "fire3/squeeze1x1" top: "fire3/squeeze1x1" #phase: TRAIN } layer { name: "fire3/squeeze1x1_fire3/relu_squeeze1x1_0_split" type: "Split" bottom: "fire3/squeeze1x1" top: "fire3/squeeze1x1_fire3/relu_squeeze1x1_0_split_0" top: "fire3/squeeze1x1_fire3/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire3/expand1x1" type: "Convolution" bottom: "fire3/squeeze1x1_fire3/relu_squeeze1x1_0_split_0" top: "fire3/expand1x1" #phase: TRAIN convolution_param { num_output: 64 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire3/relu_expand1x1" type: "ReLU" bottom: "fire3/expand1x1" top: "fire3/expand1x1" #phase: TRAIN } layer { name: "fire3/expand3x3" type: "Convolution" bottom: "fire3/squeeze1x1_fire3/relu_squeeze1x1_0_split_1" top: "fire3/expand3x3" #phase: TRAIN convolution_param { num_output: 64 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire3/relu_expand3x3" type: "ReLU" bottom: "fire3/expand3x3" top: "fire3/expand3x3" #phase: TRAIN } layer { name: "fire3/concat" type: "Concat" bottom: "fire3/expand1x1" bottom: "fire3/expand3x3" top: "fire3/concat" #phase: TRAIN } layer { name: "pool3" type: "Pooling" bottom: "fire3/concat" top: "pool3" #phase: TRAIN pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "fire4/squeeze1x1" type: "Convolution" bottom: "pool3" top: "fire4/squeeze1x1" #phase: TRAIN convolution_param { num_output: 32 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire4/relu_squeeze1x1" type: "ReLU" bottom: "fire4/squeeze1x1" top: "fire4/squeeze1x1" #phase: TRAIN } layer { name: "fire4/squeeze1x1_fire4/relu_squeeze1x1_0_split" type: "Split" bottom: "fire4/squeeze1x1" top: "fire4/squeeze1x1_fire4/relu_squeeze1x1_0_split_0" top: "fire4/squeeze1x1_fire4/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire4/expand1x1" type: "Convolution" bottom: "fire4/squeeze1x1_fire4/relu_squeeze1x1_0_split_0" top: "fire4/expand1x1" #phase: TRAIN convolution_param { num_output: 128 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire4/relu_expand1x1" type: "ReLU" bottom: "fire4/expand1x1" top: "fire4/expand1x1" #phase: TRAIN } layer { name: "fire4/expand3x3" type: "Convolution" bottom: "fire4/squeeze1x1_fire4/relu_squeeze1x1_0_split_1" top: "fire4/expand3x3" #phase: TRAIN convolution_param { num_output: 128 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire4/relu_expand3x3" type: "ReLU" bottom: "fire4/expand3x3" top: "fire4/expand3x3" #phase: TRAIN } layer { name: "fire4/concat" type: "Concat" bottom: "fire4/expand1x1" bottom: "fire4/expand3x3" top: "fire4/concat" #phase: TRAIN } layer { name: "fire5/squeeze1x1" type: "Convolution" bottom: "fire4/concat" top: "fire5/squeeze1x1" #phase: TRAIN convolution_param { num_output: 32 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire5/relu_squeeze1x1" type: "ReLU" bottom: "fire5/squeeze1x1" top: "fire5/squeeze1x1" #phase: TRAIN } layer { name: "fire5/squeeze1x1_fire5/relu_squeeze1x1_0_split" type: "Split" bottom: "fire5/squeeze1x1" top: "fire5/squeeze1x1_fire5/relu_squeeze1x1_0_split_0" top: "fire5/squeeze1x1_fire5/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire5/expand1x1" type: "Convolution" bottom: "fire5/squeeze1x1_fire5/relu_squeeze1x1_0_split_0" top: "fire5/expand1x1" #phase: TRAIN convolution_param { num_output: 128 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire5/relu_expand1x1" type: "ReLU" bottom: "fire5/expand1x1" top: "fire5/expand1x1" #phase: TRAIN } layer { name: "fire5/expand3x3" type: "Convolution" bottom: "fire5/squeeze1x1_fire5/relu_squeeze1x1_0_split_1" top: "fire5/expand3x3" #phase: TRAIN convolution_param { num_output: 128 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire5/relu_expand3x3" type: "ReLU" bottom: "fire5/expand3x3" top: "fire5/expand3x3" #phase: TRAIN } layer { name: "fire5/concat" type: "Concat" bottom: "fire5/expand1x1" bottom: "fire5/expand3x3" top: "fire5/concat" #phase: TRAIN } layer { name: "pool5" type: "Pooling" bottom: "fire5/concat" top: "pool5" #phase: TRAIN pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "fire6/squeeze1x1" type: "Convolution" bottom: "pool5" top: "fire6/squeeze1x1" #phase: TRAIN convolution_param { num_output: 48 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire6/relu_squeeze1x1" type: "ReLU" bottom: "fire6/squeeze1x1" top: "fire6/squeeze1x1" #phase: TRAIN } layer { name: "fire6/squeeze1x1_fire6/relu_squeeze1x1_0_split" type: "Split" bottom: "fire6/squeeze1x1" top: "fire6/squeeze1x1_fire6/relu_squeeze1x1_0_split_0" top: "fire6/squeeze1x1_fire6/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire6/expand1x1" type: "Convolution" bottom: "fire6/squeeze1x1_fire6/relu_squeeze1x1_0_split_0" top: "fire6/expand1x1" #phase: TRAIN convolution_param { num_output: 192 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire6/relu_expand1x1" type: "ReLU" bottom: "fire6/expand1x1" top: "fire6/expand1x1" #phase: TRAIN } layer { name: "fire6/expand3x3" type: "Convolution" bottom: "fire6/squeeze1x1_fire6/relu_squeeze1x1_0_split_1" top: "fire6/expand3x3" #phase: TRAIN convolution_param { num_output: 192 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire6/relu_expand3x3" type: "ReLU" bottom: "fire6/expand3x3" top: "fire6/expand3x3" #phase: TRAIN } layer { name: "fire6/concat" type: "Concat" bottom: "fire6/expand1x1" bottom: "fire6/expand3x3" top: "fire6/concat" #phase: TRAIN } layer { name: "fire7/squeeze1x1" type: "Convolution" bottom: "fire6/concat" top: "fire7/squeeze1x1" #phase: TRAIN convolution_param { num_output: 48 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire7/relu_squeeze1x1" type: "ReLU" bottom: "fire7/squeeze1x1" top: "fire7/squeeze1x1" #phase: TRAIN } layer { name: "fire7/squeeze1x1_fire7/relu_squeeze1x1_0_split" type: "Split" bottom: "fire7/squeeze1x1" top: "fire7/squeeze1x1_fire7/relu_squeeze1x1_0_split_0" top: "fire7/squeeze1x1_fire7/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire7/expand1x1" type: "Convolution" bottom: "fire7/squeeze1x1_fire7/relu_squeeze1x1_0_split_0" top: "fire7/expand1x1" #phase: TRAIN convolution_param { num_output: 192 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire7/relu_expand1x1" type: "ReLU" bottom: "fire7/expand1x1" top: "fire7/expand1x1" #phase: TRAIN } layer { name: "fire7/expand3x3" type: "Convolution" bottom: "fire7/squeeze1x1_fire7/relu_squeeze1x1_0_split_1" top: "fire7/expand3x3" #phase: TRAIN convolution_param { num_output: 192 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire7/relu_expand3x3" type: "ReLU" bottom: "fire7/expand3x3" top: "fire7/expand3x3" #phase: TRAIN } layer { name: "fire7/concat" type: "Concat" bottom: "fire7/expand1x1" bottom: "fire7/expand3x3" top: "fire7/concat" #phase: TRAIN } layer { name: "fire8/squeeze1x1" type: "Convolution" bottom: "fire7/concat" top: "fire8/squeeze1x1" #phase: TRAIN convolution_param { num_output: 64 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire8/relu_squeeze1x1" type: "ReLU" bottom: "fire8/squeeze1x1" top: "fire8/squeeze1x1" #phase: TRAIN } layer { name: "fire8/squeeze1x1_fire8/relu_squeeze1x1_0_split" type: "Split" bottom: "fire8/squeeze1x1" top: "fire8/squeeze1x1_fire8/relu_squeeze1x1_0_split_0" top: "fire8/squeeze1x1_fire8/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire8/expand1x1" type: "Convolution" bottom: "fire8/squeeze1x1_fire8/relu_squeeze1x1_0_split_0" top: "fire8/expand1x1" #phase: TRAIN convolution_param { num_output: 256 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire8/relu_expand1x1" type: "ReLU" bottom: "fire8/expand1x1" top: "fire8/expand1x1" #phase: TRAIN } layer { name: "fire8/expand3x3" type: "Convolution" bottom: "fire8/squeeze1x1_fire8/relu_squeeze1x1_0_split_1" top: "fire8/expand3x3" #phase: TRAIN convolution_param { num_output: 256 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire8/relu_expand3x3" type: "ReLU" bottom: "fire8/expand3x3" top: "fire8/expand3x3" #phase: TRAIN } layer { name: "fire8/concat" type: "Concat" bottom: "fire8/expand1x1" bottom: "fire8/expand3x3" top: "fire8/concat" #phase: TRAIN } layer { name: "fire9/squeeze1x1" type: "Convolution" bottom: "fire8/concat" top: "fire9/squeeze1x1" #phase: TRAIN convolution_param { num_output: 64 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire9/relu_squeeze1x1" type: "ReLU" bottom: "fire9/squeeze1x1" top: "fire9/squeeze1x1" #phase: TRAIN } layer { name: "fire9/squeeze1x1_fire9/relu_squeeze1x1_0_split" type: "Split" bottom: "fire9/squeeze1x1" top: "fire9/squeeze1x1_fire9/relu_squeeze1x1_0_split_0" top: "fire9/squeeze1x1_fire9/relu_squeeze1x1_0_split_1" #phase: TRAIN } layer { name: "fire9/expand1x1" type: "Convolution" bottom: "fire9/squeeze1x1_fire9/relu_squeeze1x1_0_split_0" top: "fire9/expand1x1" #phase: TRAIN convolution_param { num_output: 256 kernel_size: 1 weight_filler { type: "xavier" } } } layer { name: "fire9/relu_expand1x1" type: "ReLU" bottom: "fire9/expand1x1" top: "fire9/expand1x1" #phase: TRAIN } layer { name: "fire9/expand3x3" type: "Convolution" bottom: "fire9/squeeze1x1_fire9/relu_squeeze1x1_0_split_1" top: "fire9/expand3x3" #phase: TRAIN convolution_param { num_output: 256 pad: 1 kernel_size: 3 weight_filler { type: "xavier" } } } layer { name: "fire9/relu_expand3x3" type: "ReLU" bottom: "fire9/expand3x3" top: "fire9/expand3x3" #phase: TRAIN } layer { name: "fire9/concat" type: "Concat" bottom: "fire9/expand1x1" bottom: "fire9/expand3x3" top: "fire9/concat" #phase: TRAIN } layer { name: "drop9" type: "Dropout" bottom: "fire9/concat" top: "fire9/concat" #phase: TRAIN dropout_param { dropout_ratio: 0.5 } } layer { name: "conv10_new" type: "Convolution" bottom: "fire9/concat" top: "conv10_new" #phase: TRAIN convolution_param { num_output: 2 kernel_size: 1 weight_filler { type: "gaussian" mean: 0 std: 0.01 } } } layer { name: "relu_conv10" type: "ReLU" bottom: "conv10_new" top: "conv10_new" #phase: TRAIN } layer { name: "pool10" type: "Pooling" bottom: "conv10_new" top: "pool10" #phase: TRAIN pooling_param { pool: AVE global_pooling: true } }

`

inlmouse avatar Jun 03 '20 05:06 inlmouse

@inlmouse hello, What file did you write?
best wishes!!

DiaosWang avatar Mar 27 '24 01:03 DiaosWang