EfficientViT-B0 Finetuned on BDD100K Weather Classification


Task Framework Base Model
Macro F1 Top-1 Params
License Source

Fine-tuned EfficientViT-B0 image classifier on the BDD100K Weather Classification dataset, trained and evaluated as part of BDD100K-Toolkit, a dependency-clean toolkit for preparing BDD100K, training models on it and evaluating them with the same metrics on the same splits.

7-class weather classification (clear / partly cloudy / overcast / rainy / snowy / foggy / unknown) derived from BDD100K's per-image attributes.weather field. Unofficial task; follows the Kaggle dataset of the same name.


Usage

import timm, torch
from huggingface_hub import hf_hub_download
from PIL import Image
from torchvision import transforms as T

ckpt = torch.load(
    hf_hub_download("dronefreak/bdd100k-weather-efficientvit_b0", "best.pt"), map_location="cpu", weights_only=True
)
model = timm.create_model(
    ckpt["model_name"], pretrained=False, num_classes=len(ckpt["class_names"])
)
model.load_state_dict(ckpt["state_dict"])
model.eval()
prep = T.Compose(
    [T.Resize((ckpt["imgsz"],) * 2), T.ToTensor(), T.Normalize(ckpt["mean"], ckpt["std"])]
)
with torch.no_grad():
    probs = model(prep(Image.open("street.jpg").convert("RGB"))[None]).softmax(1)[0]
print(ckpt["class_names"][probs.argmax()], f"{probs.max():.1%}")

Results

Evaluated on the test split (10000 images).

Metric Value
Macro F1 65.10%
Balanced accuracy 63.62%
Macro precision 67.11%
Macro recall 63.62%
Top-1 accuracy 82.79%
Top-5 accuracy 99.79%

Per class

Class Precision Recall F1 Test images
clear 89.67% 93.49% 91.54% 5346
foggy 0.00% 0.00% 0.00% 13 (few)
overcast 69.24% 65.78% 67.47% 1239
partly cloudy 68.19% 64.50% 66.30% 738
rainy 86.10% 69.65% 77.00% 738
snowy 86.24% 72.56% 78.81% 769
unknown 70.34% 79.34% 74.57% 1157

This checkpoint classifies none of the test images of foggy (13 images) correctly, so treat it as unsupported.


Model Zoo

All runs below were evaluated on the same test split, sorted by top-1 accuracy.

Model Top-1 Macro F1 Balanced acc Macro precision
ConvNeXt-Atto 83.00% 67.44% 65.25% 81.38%
EfficientViT-B0 82.79% 65.10% 63.62% 67.11%
ResNet-18 82.19% 64.30% 62.97% 66.08%
MobileNetV4-Conv-Small 82.16% 66.51% 64.37% 80.44%
YOLO26n 82.04% 64.09% 62.46% 66.57%
YOLO11n 81.32% 62.91% 61.19% 65.68%
YOLOv8n 81.22% 63.07% 61.42% 65.52%

Training

Setting Value
Epochs (max) 50
Epochs (trained) 17
Best epoch (best.pt) 7
best.pt chosen by macro_f1 on the valid split
Early stopping patience 10
Batch size 128
Image size 224
Optimizer auto, resolved to AdamW (peak lr 3e-04)
Weights EMA

Dataset

dronefreak/BDD100K-Weather-Classification holds the prepared splits these models were trained and evaluated on.


Limitations

  • Unofficial task: labels are BDD100K's per-image attributes, not a benchmark with a public leaderboard, so scores are only comparable with other models evaluated on this split.
  • Not the official test set: test here is BDD100K's official validation split (the official test labels are not released) and valid is a seeded 15% slice of the official train split.
  • Heavily imbalanced: rare classes have very few test images, so their per-class scores are noisy. Prefer macro F1 over accuracy.
  • Images are US dashcam frames; generalization to other regions or camera setups is untested.
  • BDD100K is released for non-commercial research and education. Check its license before any use of these weights beyond research.
  • clear, partly cloudy and overcast are subjective annotator calls, so expect label noise between neighbouring classes.

License

The weights are released under the license in the metadata above. They were trained on BDD100K, which is free for non-commercial research and education; commercial use needs separate permission (see https://www.bdd100k.com/). The prepared dataset on the Hub is tagged license: other, and the original BDD100K terms still apply.


Citation

Model

@article{cai2022efficientvit,
  title={EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction},
  author={Cai, Han and Li, Junyan and Hu, Muyan and Gan, Chuang and Han, Song},
  journal={arXiv preprint arXiv:2205.14756},
  year={2022}
}

Dataset

@article{yu2018bdd100k,
  title={BDD100K: A Diverse Driving Dataset for Heterogeneous Multitask Learning},
  author={Yu, Fisher and Chen, Haofeng and Wang, Xin and Xian, Wenqi and Chen, Yingying and Liu, Fangchen and Madhavan, Vashisht and Darrell, Trevor},
  journal={arXiv preprint arXiv:1805.04687},
  year={2018}
}

Files

  • best.pt
  • metrics.json
  • results.csv
  • assets/demo_banner.mp4
  • assets/demo_banner_poster.jpg
  • README.md

Reproduce

Trained and evaluated with BDD100K-Toolkit: bdd100k-evaluate --dataset bdd100k-weather --checkpoint <weights> --data-dir <prepared dir> --split test.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for dronefreak/bdd100k-weather-efficientvit_b0

Finetuned
(7)
this model

Dataset used to train dronefreak/bdd100k-weather-efficientvit_b0

Collections including dronefreak/bdd100k-weather-efficientvit_b0

Papers for dronefreak/bdd100k-weather-efficientvit_b0

Evaluation results

  • Top-1 accuracy (test split) on BDD100K Weather Classification
    BDD100K-Toolkit
    82.790
  • Macro F1 (test split) on BDD100K Weather Classification
    BDD100K-Toolkit
    65.100
  • Macro precision (test split) on BDD100K Weather Classification
    BDD100K-Toolkit
    67.110
  • Macro recall (test split) on BDD100K Weather Classification
    BDD100K-Toolkit
    63.620