Transfer Learning for Aerial Image Recognition - Computer Vision

Job ID: 35390511

Budget: $30 – $250 USD

Data set: the NWPU aerial data set contains 45 categories of 700 images for each category in 256x256 RGB format. The data set can be downloaded from:

Figure 1. Examples of the images and labels
More details of the dataset can be found at:

For the project, the data set should be partitioned into training (500 images), validation (100 images), and test (100 images) for each category.

(1) Fisher Vector aggregation of conv features [40pts], Use pre-trained VGG16 network [https://colab.research.google.com/github/bentrevett/pytorch-image-classification/blob/master/4_vgg.ipynb] to compute pool 5 features, scaling the input from 256x256 to 224x224, this feature will be 512 x (7x7) in dimension. Compute the PCA and GMM of this 49 dimensional conv feature by randomly sampling 50 images from all 45 classes, for kd=[16, 24] and nc =[64, 128], compute FV aggregations (total 4 sizes), and benchmark the accuracy and show the 45-class confusion map using leave 1 out(L1O) SVM classifier.

Show your implementation here also:

function [training_pool_features]=getVGG16Pool5Features(im_dir)
....
function [A, gmm]=trainGMM(training_features, kds, ncs)
....

(2) Subspace Transfer Learning(60pts), for the FV features in step 1), compute its PCA and plot its eigen values, choose appropriate PCA low dimension embedding, and apply LDA and LPP learning, and plot 45-class confusion map with L1O SVM classification:

(3) Transfer learning with MLP [50pts]: for all 4 FVs with different kd x nc combination, design a MLP network (dense linear projection) to aggregate them with softMax loss, and show final accuracy and confusion map. Hint: a suggested MLP arch:
Related categories: Python Computer Vision Deep Learning