Project · Course project
An image classifier that predicts whether a road is dry, snowy, icy or mixed from a dashcam photo.

A team project for a machine learning course: teach a model to tell dry, snowy, icy and mixed roads apart, using dashcam images from the WinterSim Initiative.
On a team of three, I built my own model from scratch in PyTorch, ran six documented training experiments and compared the results against a pretrained VGG16.
| Run | Test set | Outside images |
|---|---|---|
| 1 | 98.3% | 23.3% |
| 2 | 81.5% | 25.0% |
| 3 | 90.3% | 21.7% |
| 4 | 92.3% | 16.7% |
| 5 | 69.0% | 26.7% |
| 6 | 75.2% | 33.3% |
Over six runs, test accuracy fell from 98% to 75% while accuracy on outside images rose from 23% to 33%, as the model memorized less.
| Before | 1.6% |
|---|---|
| After weighted loss | 70.5% |
Weighting the loss lifted accuracy on the rare mixed class.
| My model | 33.3% |
|---|---|
| Pretrained VGG16 | 36.7% |
A pretrained VGG16 barely beat my small model on outside images, which pointed to the data, not the model, as the limit.
Problem
The first model scored 98% on the test set but only 23% on 60 outside images it had never seen.
What I did
Traced it to the model memorizing near-identical video frames. On a teammate's suggestion, I shrank it from 1.8 million to about 3,000 parameters and retested on outside images.

Social app for volleyball players and hosts, live on iOS and Android with 500+ users. Players find teammates, chat and keep live scores; hosts run paid events with waivers and reminders.

Mobile app preserving the history of Idlewild, Michigan, a historic Black resort community. Visitors explore an illustrated map, read community-written stories and find events, while admins review every post.