COS 429 - Computer Vision |
Fall 2017 |
Course home | Outline and Lecture Notes | Assignments | Featured Projects |
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. If you have not successfully installed MatConvNet yet, please see assignment 0, part 2.
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; it requires an NVIDIA GPU and the CUDA development libraries.
Please complete and 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; endWhat to turn in: