Below is our proposal for the Master's thesis:
Run Python scripts for deep learning.
Background: Python is a popular library for deep learning because of all the libraries that use it, e.g. Theano, TensorFlow, Keras, Lasagne. A deep learning script typically loads data, pre-processes it, sets up a model, specifies an objective/loss function, and applies it in a training loop to train the network.
Typically, on the website, you would be able to upload your script and run it.
For archival reasons it would be nice if the website could take a backup of the Python script after it as been uploaded.
Using callback mechanisms be able to listen to the training loop which then writes training loss, accuracy etc. The website would then be able to read these text files and plot graphs.
This, along with a backup of the Python script, make it easier to monitor the training and look up past experiments.
Come up with a file structure for handling backups and text files used for plotting, e.g. a tag-based approach may make it easy to search for similar past experiments.
A separate tool that can create binary blobs of data for when the data is too big for a GPU. Common solutions are HDF5 and LMDB.
A tool for visualisation data from a binary blob should also be present.
Visualisation of outputs for each layer in an artificial neural network model.
Other visualisation techniques, such as salient analysis, deep dreaming, and de-convolution.
Face recognition with expression data
Three questions that can be solved by the thesis:
Does face expression help with face recognition?
What method is best for incorporating face expression in face recognition software?
Baseline: Face recognition without face expression, i.e. face expression does not add anything of value.
Face recognition model has an extra input representing the face expression of the input data. The face expression data can be learned from a different dataset.
Face recognition model takes face data and produces two outputs: (i) subject, and (ii) face expression. In other words, the model needs to learn a combined representation.
This last point would require a dataset with both subject and face expression labels for training. This means that you would have to create a dataset.
Does the number of available face expressions affect the face recognition performance?
This means repeating experiments on a different number of facial expressions. Keep in mind that there are many ways to measure the performance of a model.
Requirements: [necessary] Good programming skills in C or Java or Python, [Desirable] TDT4195 (Visual Computing Fundamentals), TDT4173 (Machine Learning)
Advisors: Igor Barros Barbosa, Aleksander Rognhaugen, Theoharis2 (NTNU)