CropCop: An Auditable 120-Class Plant-Health Model from Benchmark Reconstruction to a Quantised Runtime Artifact
Organizations: Department of Computer Science, Bahria University Islamabad, Islamabad, Pakistan
Abstract
A plant-health score can appear precise while resting on duplicated image families, a long-tailed label space, or a runtime file that was never evaluated. We present CropCop, a closed-set recognition system spanning 120 operational plant-health classes and an evidence chain from corpus reconstruction to direct execution of the final quantised artifact. Starting from 117,546 audited images, we rejected the inherited partition after confirming 3,233 duplicate relationships across split boundaries and froze a 109,107-image benchmark with zero crossings among the audited trusted leakage groups and a 151.7 largest-to-smallest class ratio. A fully fine-tuned DINOv3 ConvNeXt-Tiny reference achieved 98.51% accuracy and 96.87% macro-F1 on the locked internal test. A compact MobileNetV4 Conv-Medium derivative achieved 98.46% accuracy and 96.27% macro-F1 without being presented as evidence for a new distillation method. Validation-only post-training quantisation selected dynamic activations with per-channel weights, and the final 22.60 MiB ExecuTorch/XNNPACK PTE achieved 98.46% accuracy and 96.23% macro-F1 when executed directly. Only six of 16,363 top-1 decisions changed between the converted INT8 graph and the PTE, while paired analysis showed a modest class-balanced loss; an exploratory post hoc fruit-label slice localized a larger recall decline than aggregate accuracy revealed. CropCop establishes strong leakage-controlled internal recognition and software-runtime fidelity; it does not establish performance on unseen farms, camera pipelines, or physical Android hardware.
Figures & tables
| Literature line | Primary object | What it establishes | Gap relative to CropCop’s question |
|---|---|---|---|
| Controlled and in-the-wild plant benchmarks [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ] | Dataset and recognition task | Scale, taxonomy, acquisition difficulty, or localisation | The benchmark is normally the endpoint; compact runtime identity is not the central object. |
| Benchmark audit and reporting [ 8 , 9 , 10 , 11 , 12 , 13 ] | Contamination, labels, shortcuts, documentation | Why data identity, provenance, and limitations matter | These works are domain-general and do not trace one agricultural model through quantised execution. |
| Foundation transfer and long-tail learning [ 14 , 15 , 16 , 17 , 18 ] | Representations and class imbalance | Transfer baselines and class-balanced objectives | They do not by themselves establish benchmark integrity or runtime fidelity. |
| Distillation and efficient vision [ 19 , 20 , 21 , 22 , 23 , 24 ] | Compact-model training and quantisation | How accuracy can be transferred or compressed | Dataset forensics and exact serialized-artifact evaluation are usually separate concerns. |
| Calibration and runtime tooling [ 25 , 26 , 27 ] | Confidence and executable backends | How predictions can be calibrated, exported, lowered, and quantised | They supply methods and infrastructure rather than an end-to-end application evidence chain. |
| CropCop | One audited plant-health model lineage | Benchmark reconstruction, locked evaluation, compact transfer, PTQ selection, direct PTE execution, and artifact identity | The contribution is the connected evidence chain, not a new backbone and not a claim beyond the evaluated distribution. |
| Dimension | Category | Count |
|---|---|---|
| Crop scope | Named crop or plant groups | 35 |
| Crop scope | Crop-unspecified labels | 2 |
| Label type | Specific named disease † | 72 |
| Label type | Broad condition category | 9 |
| Label type | Generic healthy state | 39 |
| Label type | Total operational classes | 120 |
| Property | Value |
| Audited source images | 117,546 |
| Final images | 109,107 |
| Operational classes | 120 |
| Train / validation / test | 76,376 / 16,368 / 16,363 |
| Historical duplicate relationships | 8,672 |
| Historical cross-split duplicate relationships | 3,233 |
| Field | Completed reference configuration |
|---|---|
| Backbone | facebook/dinov3-convnext-tiny-pretrain-lvd1689m |
| Input / classes | 256 256 / 120 |
| Optimiser | AdamW (betas and epsilon not explicitly preserved) |
| Backbone / head learning rate | 5e-05 / 3e-04 |
| Weight decay | 0.05 |
| Epochs / best epoch | 40 / 14 |
| Evidence domain | Archived value |
| Execution context | Kaggle-host CPU software-runtime evaluation; not Android device evidence |
| Software stack | Python 3.12.13 ; PyTorch / torchvision 2.12.1 / 0.27.1 ; ExecuTorch / torchao 1.3.1 / 0.17.0 ; timm / FlatBuffers 1.0.26 / 25.12.19 |
| Backend / input | XNNPACK / [1, 3, 256, 256] |
| Quantisation contract | Requested scope full ; dynamic activation / per-channel weights; explicit module exclusions [] |
| Coverage evidence | PASS Lowered backend modules / delegate tokens: 1 / 1 |
| Unarchived host details | CPU model, thread count, and OS build |
| State | Architecture / object | Accuracy (%) | Balanced accuracy (%) | Macro-F1 (%) | Top-3 (%) | Top-5 (%) | Errors |
|---|---|---|---|---|---|---|---|
| Reference | DINOv3 ConvNeXt-Tiny | ||||||
| Float student | MobileNetV4 Conv-Medium | ||||||
| Converted INT8 | XNNPACK-compatible converted graph | ||||||
| PTE runtime | Serialised ExecuTorch/XNNPACK program |
| Metric | Reference (%) | PTE (%) | PTE reference (pp) | Paired 95% interval (pp) |
|---|---|---|---|---|
| Accuracy | ||||
| Balanced accuracy | ||||
| Macro-F1 | ||||
| Fruit-category mean recall |
| Training support | Classes | Reference macro-F1 (%) | PTE macro-F1 (%) | Change (pp) | Reference recall (%) | PTE recall (%) | Change (pp) |
| 17 | 91.17 | 88.60 | 89.37 | 87.27 | |||
| 100–199 | 12 | 92.84 | 90.05 | 93.09 | 90.27 | ||
| 200–499 | 38 | 97.91 | 97.85 | 98.04 | 98.34 | ||
| 500–999 | 30 | 99.07 | 98.98 | 99.10 | 99.01 | ||
| 23 | 98.60 | 98.81 | 98.58 | 98.71 |
| Class | Train support | Test support | Reference F1 (0–1) | PTE F1 (0–1) | F1 (0–1) |
|---|---|---|---|---|---|
| banana_disease_fruit | |||||
| mango_disease_fruit | |||||
| guava_healthy_fruit | |||||
| guava_disease_fruit | |||||
| papaya_fruit_healthy | |||||
| tomato_mosaic_virus |
| Validation target coverage (%) | Reference test coverage (%) | Reference accepted accuracy (%) | PTE test coverage (%) | PTE accepted accuracy (%) |
| 80 | 79.80 | 99.824 | 79.72 | 99.678 |
| 90 | 89.79 | 99.816 | 89.90 | 99.681 |
| 95 | 94.88 | 99.813 | 94.82 | 99.671 |
| 98 | 97.99 | 99.451 | 97.90 | 99.407 |
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
| Object | Identifier |
| Final retained dataset semantic fingerprint | 7c368e6e3d8be3bb3a9a3a5f961075d4 faa125bcac2e98a3b55e1a1c61f1c523 |
| Final dataset build fingerprint | 2d7c237981b8943d9b08a522db048984 9a4bfe7f488dfb6461489dd36dcdc12b |
| Dataset manifest SHA-256 | bdb82211ccc2059153724eea178a1680 893a6b38ecc243fae484baa91dbf68e2 |
| Class-map SHA-256 | 46f7811726c19c42bd7213b2d8178b19 a5a182a1b763f60a94ee2c0e5f6688d2 |
| Reference checkpoint SHA-256 | 74b4701b8931976c9227845ead50788a e47e3596f575f2817b7352a715f53b79 |
| Mobile configuration fingerprint | a75442087ee1c148b1dcd68441f2fd87 8d8738844532ece4d5606a0038ffb91e |
| Metric | Reference point | PTE point | PTE reference | 95% lower | 95% upper |
| Accuracy | 0.985088 | 0.984599 | -0.000489 | -0.002140 | +0.001161 |
| Balanced accuracy | 0.966836 | 0.962017 | -0.004819 | -0.010967 | +0.001128 |
| Macro-F1 | 0.968700 | 0.962267 | -0.006433 | -0.012386 | -0.000467 |
| Fruit mean recall | 0.859364 | 0.789711 | -0.069653 | -0.124086 | -0.017108 |
| Recall | 0.893703 | 0.872686 | -0.021017 | -0.057207 | +0.013036 |
| Recall 100–199 | 0.930925 | 0.902687 | -0.028238 | -0.056711 | +0.000623 |
| Row ID | True class | Converted INT8 | PTE | INT8 confidence | PTE confidence |
| 1455 | banana_healthy_fruit | banana_healthy_fruit | banana_disease_fruit | 0.479 | 0.477 |
| 3891 | corn_northern_leaf_blight | corn_northern_leaf_blight | wheat_leaf_rust | 0.303 | 0.358 |
| 6292 | nutrient_deficiency | pear_black_spot | nutrient_deficiency | 0.486 | 0.468 |
| 11743 | sugarcane_yellow_leaf | sugarcane_mosaic | sugarcane_yellow_leaf | 0.530 | 0.472 |
| 12361 | tomato_early_blight | tomato_septoria_leaf_spot | tomato_early_blight | 0.481 | 0.477 |
| 12750 | tomato_healthy | apple_healthy | cherry_healthy | 0.262 | 0.267 |
| Operational error category | Reference errors | PTE errors | Change |
| Cross-crop condition confusion | 52 | 48 | -4 |
| Cross-crop healthy/condition confusion | 6 | 9 | +3 |
| Fruit-condition label involved | 47 | 64 | +17 |
| Generic plant_healthy involved | 22 | 12 | -10 |
| Same-crop condition confusion | 88 | 90 | +2 |
| Same-crop healthy/condition confusion | 29 | 29 | +0 |
| Operational class | Crop/species | Label type | Train | Test |
|---|---|---|---|---|
| aloevera_healthy | aloevera | Generic healthy state | 63 | 14 |
| amla_healthy | amla | Generic healthy state | 49 | 10 |
| apple_black_rot | apple | Specific named disease | 1,426 | 306 |
| apple_black_spot | apple | Specific named disease | 218 | 47 |
| apple_brown_spot | apple | Specific named disease | 696 | 149 |
| apple_cedar_rust | apple | Specific named disease | 202 | 43 |
Agricultural Image Analysis
Agricultural image analysis uses computer vision and multimodal learning to monitor crops, livestock, produce quality, and field conditions.
See all 94 papers