COS 429 - Computer Vision |
Fall 2016 |
Course home | Outline and Lecture Notes | Assignments |
There are several open-source Convolution Neural Network packages available, including TensorFlow, Torch, Caffe, Theano, and MatConvNet. It is possible to define and train all the network architectures we looked at in class using most of these packages, though for large networks & data sets, an NVIDIA GPU (with CUDA) is a must. For this assignment we will be training only smaller networks, where the CPU-only implementation should be sufficient. Here we will use MatConvNet from Oxford, because it is the most powerful package written in Matlab.
For this part of the assignment, follow the tutorial for MatConvNet available from: http://www.robots.ox.ac.uk/~vgg/practicals/cnn/index.html . Feel free to skip section 4.7 unless you have an NVIDIA GPU in your machine and have the CUDA development libraries installed.
Please submit short answers for all of the questions labeled as "Question:".
If you do not have access to the image processing toolbox, you can define these replacement functions (by putting each into a .m file):
function x = im2single(x) x = single(x)/255; end function m = strel(shape, r, varargin) assert(isequal(shape,'disk')); [X,Y] = meshgrid(-r:r, -r:r); m = (X.^2+Y.^2)<=r^2; end function d_im=imdilate(im, mask) d_im=conv2(double(im), double(mask), 'same')>0; end