CSU Building Classification

Winner of Club Computer Vision CSU's First AI competition

The computer science building

Club Computer Vision CSU (CCVC) hosted an AI competition during the month of October 2024 on the Kaggle Platform. The competitors are provided with a GoPro video of the perimeter of each CSU building and must train a machine learning model to classify a CSU building from a picture input. This is the first competition run by CCVC and it was my first semester as a member. Each participant is provided with a graduate level mentor from the club. I ended the competition at first place with the highest accuracy of 40%.

Competition Details and Challenges

The challenge in the competition was to train a building classifier using a limited data set and without using pretrained weights. The competition was held on Kaggle and we were required to use only Kaggle notebooks so there was a 30 hour a week GPU limit. Leveraging this limit and finding strategies to work around the such little data was the challenge of the competition.

Daemon accepting first place

A picture of me accepting first place taken on the same GoPro used to collect the data.

Winning Approach

training loss validation loss training accuracy validation accuracy

Graphs visualizing my loss and accuracy.

First, I used data augmentation to make the dataset more distinct and reduce overfitting. Then I experimented with different models. The model that I used initially was Resnet-18. I also experimented with the number of epochs.

Second, I created an algorithm to determine the most distinct samples from the training set to set aside for the validation set. Part of the competition rules was that the validation set comes from the training set and my new function allowed me to choose the most mathematically distinct samples to use. I also implemented a scheduler to run epochs until a minimum amount of improvement in validation accuracy occurs. I also decided to upgrade to Resnet-50.

Lastly, I doubled the total amount of samples by using data augmentation with more extreme augmentation and extended the set instead of just changing what already existed. My initial accuracy was around 12-18% and these changes improved it to >40%. While this is not an impressive number on the surface using just one video of each building I was able to get my buidling classifer to correctly identify 4/10 CSU buildings from pictures it had never seen before. This experience taught me a lot about training and using machine learning models and I intend to participate in the Spring 2025 competition.

Mathematically distinct samples

Mathematically distinct samples used in the validation set.

data augmentation examples

First implementation of data augmentation, example samples.

data augmentation samples more extreme.

Final implementation of data augmentation.