模型的 6 代演进过程与每代落差:看可视化 →
我们把线上正在跑的模型,直接拿到 公开田间数据集 PlantDoc(网络/田间实拍,非实验室棚拍)上跑了一遍, 并把结果、置信度行为和改进对照全部公开。这一页可能不好看,但它是真的——而且它决定了产品该怎么设计。
说明:实验室成绩来自 PlantVillage 数据集验证集(干净背景、单叶居中、均匀光照); 田间成绩来自 PlantDoc(真实背景、多角度、遮挡与逆光)。两者不可混为一谈—— 公开文献里用 PlantVillage 训练的模型在 PlantDoc 上也会大幅掉点,Detection 类基准的 mAP50 也仅在 38–48% 区间。
如果置信度不可靠,那么「置信度低于 60% 就提示不确定」这层安全网在田间几乎失效。 这条发现直接改变了我们的产品设计(见下方「我们怎么应对」)。
左列是模型自报置信度的分布,右列是该档位下的实际判对率——两者一起看才是"它知不知道自己不确定"的证据。 理想情况下置信度越高、判对率应单调上升;如果最高档的判对率反而下降,说明存在"过度自信尾巴"。 这里如实给出,不做挑选。
| 方案 | Top-1 | Top-3 | 平均置信度 | 高置信度误判率 | 校准误差 ECE(前 → 后) |
|---|---|---|---|---|---|
| 加载中…(实验完成后自动显示) | |||||
A 叶片分割裁剪:用绿度+饱和度投影定位叶片包围盒,裁掉杂乱背景再送模型; B TTA:水平翻转 + 双尺度推理后概率平均; C:A+B 叠加。校准误差 ECE 越小说明"置信度越诚实"。
不再只给一个病名,而是给出三个候选与各自置信度,让人来做最后判断。
让使用者看到模型在看哪里;关注点明显跑偏时可以推翻结论。
低置信度时明确提示"可能不在覆盖范围内,建议换角度重拍或咨询农技员"。
结果页提供「识别不对?点这里纠正」,反馈进入改进闭环(已上线)。
样例由实测脚本自动生成,绿框为 Top-1 正确,红框为 Top-1 错误。
行=真实类别,列=预测类别,对角线为判对;每行按该类样本数归一化上色。 鼠标悬浮可看具体数量与占比,点击左侧类别名可高亮该行。 下方逐类指标表按 F1 从低到高排序——把最弱的类别直接摆在最上面,不做美化。
数据源 /evi/confusion.json:用线上部署的同一份权重(best_model.onnx)、
与服务端逐行一致的预处理(等比缩放 + 中心裁剪 336)在本测试切分上实测,逐张预测明细可复算。
数据:PlantDoc(Singh et al., 2020,CC-BY-4.0)→ Hugging Face agyaatcoder/PlantDoc test split(236 图 / 451 实例);
模型:线上部署的 best_model.onnx(DINOv2 ViT-S/14,39 类,336×336 输入);
预处理:EXIF 纠正 → 等比缩放 + 中心裁剪 336 → ImageNet 归一化(与服务端 _preprocess 完全一致);
评测:按数据集标注框裁出叶片(外扩 8%)后送入模型,仅统计能映射到我们 39 类的标签。
| 方案 | 实验室 Top-1 | 田间 Top-1 | 田间 Top-3 | 单张延迟 | 说明 |
|---|