1. 项目概述:当YOLO遇上生菜——一个农业技术人的实战记录
去年在参观某大型植物工厂时,我注意到技术员每天要花费3小时手动记录生菜生长状态。作为计算机视觉从业者,我当即决定开发一套自动化检测系统。经过半年迭代,这套基于多版本YOLO和SpringBoot的生菜生长周期检测系统已经成功部署在多个生产基地。
这个系统能做什么?简单说就是通过摄像头"看"生菜,自动判断它处于哪个生长阶段(发芽期、幼苗期等),并给出种植建议。就像给生菜配了个24小时不休息的"植物医生"。下面我会从技术选型到落地细节,完整分享这个项目的开发历程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统核心设计思路
2.1 为什么选择生菜作为检测对象?
生菜是植物工厂最常见的叶菜,其生长周期短(通常25-35天)、阶段特征明显。通过长期观察,我们确定了5个关键检测阶段:
- 空定植篮(empty_pod):种植前的空容器状态
- 发芽期(germination):播种后3-5天,两片子叶展开
- 幼苗期(young):真叶出现到叶片覆盖定植篮50%
- 定植篮可见(pod):叶片覆盖50%-80%
- 可采收(ready):叶片完全覆盖定植篮
2.2 技术架构选型考量
系统采用经典的三层架构:
code复制[前端] Vue.js + Element Plus
↑
[后端] SpringBoot (REST API)
↑
[AI服务] YOLO系列模型 + DeepSeek
选择SpringBoot是因为:
- 成熟的Java生态,适合企业级应用
- 完善的权限管理和事务支持
- 与MySQL等传统数据库配合良好
而前端选用Vue.js则是考虑到:
- 响应式设计适配不同设备
- 丰富的可视化组件库
- 与后端API对接简便
3. 核心模块实现细节
3.1 数据采集与标注
我们使用工业相机在3个植物工厂采集了2000+张生菜图像,最终筛选出1410张高质量样本。标注工具采用LabelImg,标注规范包括:
- 每个定植篮作为一个检测单元
- 遮挡超过30%的样本剔除
- 不同光照条件(早/中/晚)均衡分布
数据集分布示例:
| 类别 | 样本数 | 占比 |
|---|---|---|
| empty_pod | 320 |
