Inspiration

weather datasets are usually boring tabular stuff. wanted to do something visual and actually see what a model learns, not just check accuracy.

What it does

classifies photos into 4 weather conditions (cloudy, rain, shine, sunrise) with 91% accuracy. grad-cam overlays show which parts of the image the model focuses on.

How we built it

fine-tuned efficientnet-b0 in two phases; first trained only the classifier head, then unfroze the last blocks for fine-tuning. grad-cam was implemented manually using pytorch hooks.

Challenges we ran into

the dataset is pretty small (1100 images) so overfitting was a real problem. label smoothing and careful augmentation helped a lot.

Accomplishments that we're proud of

the grad-cam results are genuinely interpretable — sunrise images get attention on the horizon glow, cloudy ones on the texture of the cloud cover. it's not just a black box.

What we learned

two-phase transfer learning makes a noticeable difference over just fine-tuning everything from the start. also grad-cam is way more useful than just looking at accuracy numbers.

What's next for Weather Image Classification

more classes, larger dataset, and probably a small streamlit demo where you can upload your own photo and get a prediction with the grad-cam overlay.

Built With

Share this project:

Updates