← 项目

绿城哨兵 · 园林病虫害智能诊断

多模态大模型 + ESP32 巡检小车的城市园林守护方案

绿城哨兵 · 园林病虫害智能诊断 封面
封面 · 淡墨 — 可替换为产品截图
年份
2025
角色
后端架构 / 多模态识别链路
状态
已完成

技术栈

Qwen2.5-VLFastAPIESP32MySQL预警工单

缘起#

城市园林的病虫害防治有个天然矛盾:发现得太晚,治起来就贵。人工巡查覆盖不了大范围的绿化面积,而病虫害恰恰是「早发现一周,省一半药」的事情。

绿城哨兵的思路是把「巡查」交给机器:ESP32 巡检小车按路线自动巡园拍照,后端用多模态大模型识别植物状态,发现异常自动生成预警工单,推送给养护人员处置。

架构与做法#

系统由三部分组成:

  1. 端:ESP32 小车沿预设路线巡检,定时拍照上传。摄像头角度、拍摄时段、光照条件都在端侧做了初步控制,保证进模型的照片质量。
  2. 云:FastAPI 后端接收图片,调用 Qwen2.5-VL 做病虫害诊断——识别植物种类、判断是否有异常、给出疑似病害类型与置信度,结果写入 MySQL。
  3. 人:诊断结果驱动预警工单流程——从「发现异常」到「派单处置」到「复检确认」,每一环都有状态记录,处置完成后可回溯整条证据链。
此处预留:诊断详情页 / 预警工单界面截图

识别链路做了两级设计:常规照片先做粗筛,绝大多数健康样本直接放行;可疑样本才进入详细的诊断分析。这让整体推理成本和延迟都降到了可运营的范围。

踩过的坑#

  • 端侧最大的敌人是光照。逆光、阴影、雨后反光都会让识别置信度骤降。与其在模型侧补救,不如在端侧定规矩:避开正午强光、固定拍摄角度、必要时重拍。
  • 多模态模型会「看图编故事」。问「这片叶子有什么病」,它总能答得头头是道。解法是把开放问答改成受限输出:先让它从有限的病害类别里选择,再描述依据,最后给出置信度——三段式输出让幻觉率明显下降。
  • 工单比模型更难做。识别准只是起点,养护人员真正需要的是「哪里、什么病、多急、怎么办」。预警信息的组织方式决定了系统有没有人愿意用。

结果与反思#

系统跑通了「小车巡检 → 自动识别 → 预警工单 → 处置复检」的完整闭环,把病虫害发现的时间窗口从「人眼看见」提前到「机器看见」。

这个项目让我确信一件事:在垂直场景里,多模态大模型的最佳用法不是当百科全书,而是当一双「受过专业训练的眼睛」——它的输出越受限、越结构化, downstream 的流程就越顺。