--- title: CropGuard emoji: 🌿 colorFrom: green colorTo: blue sdk: docker app_port: 7860 pinned: false license: mit --- # CropGuard — crop disease detection A 38-class leaf disease classifier trained on PlantVillage, served as ONNX. Upload a leaf and get a prediction, the top-3 alternatives, calibrated confidence and the measured latency. **Code and full write-up:** https://github.com/abhinav7289A/CropGuard **Weights:** [XiElonMAsk/cropguard-models](https://huggingface.co/XiElonMAsk/cropguard-models) ## What this demo is actually showing **Pick a model.** Weights are pulled from the Hub on first use, so the first prediction after a cold start is slower than the rest. Currently available: the deployed **fp32 baseline** and a **statically quantised INT8** build of it — a quarter the size, and whether it is faster depends entirely on whether the CPU underneath has VNNI instructions. On the laptop it was measured on it was 3.2× *slower*. Run both here and find out which way it goes on this one. **Compare two models on one image**, side by side, with per-model latency. The ConvNeXt-Tiny challenger appears here too once its weights are published: it scores higher macro-F1 (0.9890 vs 0.9865) and marginally lower accuracy (0.9908 vs 0.9911), and a statistical A/B test on the 8,125-image holdout found no significant improvement (McNemar p = 0.837), so it was not promoted. The two models agree on roughly 98.8% of holdout images. **Toggle calibration.** The model is trained with label smoothing (ε = 0.1, K = 38), which caps achievable softmax output at 0.9026 and leaves it systematically *under*-confident. Temperature scaling fitted on the validation split (T = 0.591) cut expected calibration error from 0.0895 to 0.0036. Turning the toggle off shows the raw number — the predicted class never changes, because dividing logits by a positive scalar cannot reorder them. ## What it does not show Every image in training and evaluation is a PlantVillage lab photograph: one leaf, plain background, controlled lighting. **Performance on a phone photo taken in a real field is unmeasured**, and the literature on this dataset reports large drops there. A confident answer on your own garden photo should be read with that in mind. The test accuracy of 99.11% is measured on a holdout split by *leaf identity* rather than at random — 74.2% of images in the standard split share a physical leaf with training, and that contamination had to be removed before any of these numbers meant anything.