diff options
author | Evan Shelhamer <shelhamer@imaginarynumber.net> | 2014-06-11 15:22:04 -0700 |
---|---|---|
committer | Evan Shelhamer <shelhamer@imaginarynumber.net> | 2014-06-11 15:22:04 -0700 |
commit | a7e397abbda52c0b90323c23ab95bdeabee90a98 (patch) | |
tree | 9c5b1876e29dddaa0c669dc483ff49d6b7cc088c /examples/imagenet | |
parent | 63c7429d9a1f8a5688889fc6c65046c0683e6e3d (diff) | |
parent | 9882d47dad8ee3f0b5fa0c0831fdc3355ee3255d (diff) | |
download | caffeonacl-a7e397abbda52c0b90323c23ab95bdeabee90a98.tar.gz caffeonacl-a7e397abbda52c0b90323c23ab95bdeabee90a98.tar.bz2 caffeonacl-a7e397abbda52c0b90323c23ab95bdeabee90a98.zip |
Merge pull request #482 from shelhamer/rcnn-detector-example
Make R-CNN the Caffe detection example
Diffstat (limited to 'examples/imagenet')
-rwxr-xr-x | examples/imagenet/get_caffe_rcnn_imagenet_model.sh | 27 | ||||
-rw-r--r-- | examples/imagenet/rcnn_imagenet_deploy.prototxt | 207 |
2 files changed, 234 insertions, 0 deletions
diff --git a/examples/imagenet/get_caffe_rcnn_imagenet_model.sh b/examples/imagenet/get_caffe_rcnn_imagenet_model.sh new file mode 100755 index 00000000..7cd47fa3 --- /dev/null +++ b/examples/imagenet/get_caffe_rcnn_imagenet_model.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env sh +# This scripts downloads the Caffe R-CNN ImageNet +# for ILSVRC13 detection. + +MODEL=caffe_rcnn_imagenet_model +CHECKSUM=42c1556d2d47a9128c4a90e0a9c5341c + +if [ -f $MODEL ]; then + echo "Model already exists. Checking md5..." + os=`uname -s` + if [ "$os" = "Linux" ]; then + checksum=`md5sum $MODEL | awk '{ print $1 }'` + elif [ "$os" = "Darwin" ]; then + checksum=`cat $MODEL | md5` + fi + if [ "$checksum" = "$CHECKSUM" ]; then + echo "Model checksum is correct. No need to download." + exit 0 + else + echo "Model checksum is incorrect. Need to download again." + fi +fi + +echo "Downloading..." + +wget --no-check-certificate https://www.dropbox.com/s/0i3etlgmsmgf5ei/$MODEL +echo "Done. Please run this command again to verify that checksum = $CHECKSUM." diff --git a/examples/imagenet/rcnn_imagenet_deploy.prototxt b/examples/imagenet/rcnn_imagenet_deploy.prototxt new file mode 100644 index 00000000..ef75a0a5 --- /dev/null +++ b/examples/imagenet/rcnn_imagenet_deploy.prototxt @@ -0,0 +1,207 @@ +name: "R-CNN-ilsvrc13" +input: "data" +input_dim: 10 +input_dim: 3 +input_dim: 227 +input_dim: 227 +layers { + name: "conv1" + type: CONVOLUTION + bottom: "data" + top: "conv1" + convolution_param { + num_output: 96 + kernel_size: 11 + stride: 4 + } +} +layers { + name: "relu1" + type: RELU + bottom: "conv1" + top: "conv1" +} +layers { + name: "pool1" + type: POOLING + bottom: "conv1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layers { + name: "norm1" + type: LRN + bottom: "pool1" + top: "norm1" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layers { + name: "conv2" + type: CONVOLUTION + bottom: "norm1" + top: "conv2" + convolution_param { + num_output: 256 + pad: 2 + kernel_size: 5 + group: 2 + } +} +layers { + name: "relu2" + type: RELU + bottom: "conv2" + top: "conv2" +} +layers { + name: "pool2" + type: POOLING + bottom: "conv2" + top: "pool2" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layers { + name: "norm2" + type: LRN + bottom: "pool2" + top: "norm2" + lrn_param { + local_size: 5 + alpha: 0.0001 + beta: 0.75 + } +} +layers { + name: "conv3" + type: CONVOLUTION + bottom: "norm2" + top: "conv3" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + } +} +layers { + name: "relu3" + type: RELU + bottom: "conv3" + top: "conv3" +} +layers { + name: "conv4" + type: CONVOLUTION + bottom: "conv3" + top: "conv4" + convolution_param { + num_output: 384 + pad: 1 + kernel_size: 3 + group: 2 + } +} +layers { + name: "relu4" + type: RELU + bottom: "conv4" + top: "conv4" +} +layers { + name: "conv5" + type: CONVOLUTION + bottom: "conv4" + top: "conv5" + convolution_param { + num_output: 256 + pad: 1 + kernel_size: 3 + group: 2 + } +} +layers { + name: "relu5" + type: RELU + bottom: "conv5" + top: "conv5" +} +layers { + name: "pool5" + type: POOLING + bottom: "conv5" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + } +} +layers { + name: "fc6" + type: INNER_PRODUCT + bottom: "pool5" + top: "fc6" + inner_product_param { + num_output: 4096 + } +} +layers { + name: "relu6" + type: RELU + bottom: "fc6" + top: "fc6" +} +layers { + name: "drop6" + type: DROPOUT + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layers { + name: "fc7" + type: INNER_PRODUCT + bottom: "fc6" + top: "fc7" + inner_product_param { + num_output: 4096 + } +} +layers { + name: "relu7" + type: RELU + bottom: "fc7" + top: "fc7" +} +layers { + name: "drop7" + type: DROPOUT + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +# R-CNN classification layer made from R-CNN ILSVRC13 SVMs. +layers { + name: "fc-rcnn" + type: INNER_PRODUCT + bottom: "fc7" + top: "fc-rcnn" + inner_product_param { + num_output: 200 + } +} |