缘起#
城市园林的病虫害防治有个天然矛盾:发现得太晚,治起来就贵。人工巡查覆盖不了大范围的绿化面积,而病虫害恰恰是「早发现一周,省一半药」的事情。
绿城哨兵的思路是把「巡查」交给机器:ESP32 巡检小车按路线自动巡园拍照,后端用多模态大模型识别植物状态,发现异常自动生成预警工单,推送给养护人员处置。
架构与做法#
系统由三部分组成:
- 端:ESP32 小车沿预设路线巡检,定时拍照上传。摄像头角度、拍摄时段、光照条件都在端侧做了初步控制,保证进模型的照片质量。
- 云:FastAPI 后端接收图片,调用 Qwen2.5-VL 做病虫害诊断——识别植物种类、判断是否有异常、给出疑似病害类型与置信度,结果写入 MySQL。
- 人:诊断结果驱动预警工单流程——从「发现异常」到「派单处置」到「复检确认」,每一环都有状态记录,处置完成后可回溯整条证据链。
此处预留:诊断详情页 / 预警工单界面截图
识别链路做了两级设计:常规照片先做粗筛,绝大多数健康样本直接放行;可疑样本才进入详细的诊断分析。这让整体推理成本和延迟都降到了可运营的范围。
踩过的坑#
- 端侧最大的敌人是光照。逆光、阴影、雨后反光都会让识别置信度骤降。与其在模型侧补救,不如在端侧定规矩:避开正午强光、固定拍摄角度、必要时重拍。
- 多模态模型会「看图编故事」。问「这片叶子有什么病」,它总能答得头头是道。解法是把开放问答改成受限输出:先让它从有限的病害类别里选择,再描述依据,最后给出置信度——三段式输出让幻觉率明显下降。
- 工单比模型更难做。识别准只是起点,养护人员真正需要的是「哪里、什么病、多急、怎么办」。预警信息的组织方式决定了系统有没有人愿意用。
结果与反思#
系统跑通了「小车巡检 → 自动识别 → 预警工单 → 处置复检」的完整闭环,把病虫害发现的时间窗口从「人眼看见」提前到「机器看见」。
这个项目让我确信一件事:在垂直场景里,多模态大模型的最佳用法不是当百科全书,而是当一双「受过专业训练的眼睛」——它的输出越受限、越结构化, downstream 的流程就越顺。
