Image Classification Project - Dance Genre


Image classification is one of the oldest and widely popular problem category in the computer vision domain. Stack of convolutional blocks are used to make the neural network learn about different features in the image.
This project is for an image classification competition: Dance Classification
Problem Statement: Predict the dance genre in the given image.
Image classification is one of the oldest and widely popular problem category in the computer vision domain. Stack of convolutional blocks are used to make the neural network learn about different features in the image.
This project is for an image classification competition: Dance Classification
Problem Statement: Predict the dance genre in the given image.
Data
Target
Train and Validation folder structure
We will randomly move five images per genre from the dataset folder to val folder to split the dataset into train and validation sets

Sample Images & Augmented Images

Let's plot some sample training images
Project Statement
Image classification is one of the oldest and widely popular problem category in the computer vision domain. Stack of convolutional blocks are used to make the neural network learn about different features in the image.
This project is for an image classification competition: Dance Classification
Problem Statement: Predict the dance genre in the given image.
Data
Images per class
There are total 8 dance genre in the given data-set. Let's plot the count of the number of image samples per genre

Target
Train and Validation folder structure
We will randomly move five images per genre from the dataset folder to val folder to split the dataset into train and validation sets


Sample Images & Augmented Images
Let's plot some sample training images
Data Augmentation is a very important component in the pipeline. It's mostly used for avoiding over fitting of the model. I have resized the image to (224, 224, 3) shape. In this competition I have used Random horizontal and vertical flipping augmentations.


Model
In this experiment, I tried out VGG family of convnets. More explanation about VGG convnets can be found below.

Training and Validation Loss
Monitoring the loss while training the model is very important. The graph below shows the training and validation loss per epoch. Overall, it shows that the model is learning something. I used categorical cross entropy loss.

Validation Score
Loss function cannot tell us exactly what is going inside the model. Whether the model is learning or not can we determined by using a metric. Validation score/metric (interchangeably used) is the entity on which we measure our model performance on the validation dataset. I used F1 score for this experiment. F1 score ∈ [0,1]
The best F1 score achieved was 0.6179
Zeblok AI- Platform resources used:
-
Zeblok Computational platform
-
Multiple containers to support multi-GPU, multi-CPU compute engines
-
1 RTX6000s GPUs
-
1 vCPU
-
16GB RAM
-
50GB Block Store
