Deep-Learning Using Caffe Model
Deep-Learning Using Caffe Model
org
This article was originally posted here: Deep-Learning (CNN) with Scilab – Using Ca e Model by our partner Tan Chin Luh.
You can download the Image Processing & Computer Vision toolbox IPCV here: https://atoms.scilab.org/toolboxes/IPCV
In the previous post on Convolutional Neural Network (CNN), I have been using only Scilab code to build a simple CNN for
MNIST data set for handwriting recognition. In this post, I am going to share how to load a Ca e model into Scilab and use it for
objects recognition.
This example is going to use the Scilab Python Toolbox together with IPCV module to load the image, pre-process, and feed it into
Ca e model to recognition. I will start from the point with the assumption that you already have the Python setup
with ca e module working, and Scilab will call the ca e model from its’ environment. On top of that, I will just use the CPU only
option for this demo.
// Import moduels
pyImport numpy
pyImport matplotlib
pyImport PIL
pyImport caffe
caffe.set_mode_cpu()
The codes above will import the python libraries and set the ca e to CPU mode.
// Load model, labels, and the means value for the training set
net =
caffe.Net('models/bvlc_reference_caffenet/deploy.prototxt','models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel',caffe.T
labels = mgetl('data\ilsvrc12\synset_words.txt');
rgb = [104.00698793,116.66876762,122.67891434]';
rgb2 = repmat(rgb,1,227,227);
RGB = permute(rgb2,[3 2 1]);
This will load the ca e model, the labels, and also the means values for the training dataset which will be subtracted from each
layers later on.
Initially the data would be reshape to 3*227*227 for the convenient to assign data from the new image. (This likely is the limitation
of Scipython module in copying the data for numpy ndarray, or I’ve nd out the proper way yet)
// Load image and prepare the image to feed into caffe's model
im = imread('cat.jpg');
im2 = imresize(im,[227,227]);
im3 = double(im2)-RGB;
im4 = permute(im3,[2 1 3]);
im5 = im4(:,:,$:-1:1);
https://www.scilab.org/deep-learning-using-caffe-model 1/5
7/29/2019 Deep-Learning Using Caffe Model | www.scilab.org
This part is doing the “transformer” job in Python. I personally feel that this part is easier to be understand by using Scilab. First, we
read in the image and convert it to 227 by 227 RGB image. This is followed by subtracting means RGB value from the training set
from the image RGB value resulting the data from -128 to 127. (A lot of sites mentioned that the range is 0-255, which I disagreed).
This is followed by transposing the image using permute command, and convert from RGB to BGR. (this is how the network sees
the image).
In this 3 lines, we will reshape the input blob to 1 x 154587, assign input to it, and then reshape it to 1 x 3 x 227 x 227 so that we
could run the network.
Finally, we compute the forward propagation and get the result and show it on the image with detected answer.
https://www.scilab.org/deep-learning-using-caffe-model 2/5
7/29/2019 Deep-Learning Using Caffe Model | www.scilab.org
https://www.scilab.org/deep-learning-using-caffe-model 3/5
7/29/2019 Deep-Learning Using Caffe Model | www.scilab.org
Sitemap
Download
Tutorials
Industries
Technology
Services
Software
Cloud
About
GET IN TOUCH
WORK WITH US
Email: [email protected]
Web: http://scilab.io/company/careers/
Tweets
https://www.scilab.org/deep-learning-using-caffe-model 4/5
7/29/2019 Deep-Learning Using Caffe Model | www.scilab.org
Tweets by @Scilab
Scilab Retweeted
Boost 4.0
@boost4_0
Today in Portugal at our #GA meeting #boost40. More news from our pilots in the next newsletter, don’t miss it.
@IMetrology_ES @FillGurten @BENTELER_Group @vwportugal @gestamp_es
https://www.scilab.org/deep-learning-using-caffe-model 5/5