基于机器视觉的番茄生长状态监测系统研究
基于机器视觉的番茄生长状态监测系统研究
姓 名 |
叶苏瑶 |
指 导 教 师 |
张 帆 |
学 校 |
徐州市第一中学 |
日 期 |
2026年2月22日 |
基于机器视觉的番茄生长状态监测系统设计与实现
叶苏瑶
指导老师:张帆
【摘要】本文设计了一套基于机器视觉的番茄生长状态监测系统,采用 USB 工业相机与树莓派 4B 构建采集终端,结合 OpenCV 与轻量级 CNN 算法,实现番茄生长阶段识别(苗期 / 花期 / 果期)、果实计数与大小测量、叶部病虫害检测(早疫病 / 蚜虫)三大核心功能。实验表明,系统对生长阶段识别准确率达 94.2%,果实计数误差率≤5%,病虫害检测精度 89.5%,可替代传统人工监测,为温室番茄种植的自动化管理提供低成本技术方案。
【关键词】机器视觉;番茄生长监测;图像识别;CNN 算法;果实计数;病虫害检测
一、研究背景
随着设施农业的规模化发展,番茄作为高附加值作物,其生长状态监测(如阶段划分、果实发育、病虫害预警)是保障产量的关键环节。传统人工监测依赖经验判断,存在效率低(人均日监测≤500 株)、误差大(果实计数偏差≥15%)、病虫害发现滞后等问题 [1]。
机器视觉技术通过非接触式图像采集与算法分析,可实现番茄生长数据的自动化提取。当前商用农业视觉监测系统多依赖高精度光谱相机(单套成本超 10 万元),难以普及至中小温室或教学场景 [2]。本研究旨在解决以下问题:如何通过低成本视觉设备实现番茄生长阶段的精准分类?如何优化算法降低果实遮挡导致的计数误差?如何实现叶部病虫害的早期快速识别?
通过三个子课题构建 “图像采集 - 算法处理 - 结果输出” 的完整监测系统,聚焦番茄全生长期关键指标监测,为农业视觉技术的低成本应用提供实践参考,同时探索中小学科创中农业 AI 课题的实施路径。
二、实验材料
1. 视觉采集系统
USB 工业相机(分辨率 1920×1080,帧率 30fps,焦距 8mm,支持自动对焦),树莓派 4B(4GB 内存,搭载 Raspbian 系统,用于边缘端图像处理),三脚架(可调节高度 0.5-1.5m,固定相机),补光板(色温 5500K,亮度可调,避免阴影干扰),128GB microSD 卡(存储图像数据与模型)。
2. 算法运行环境
电脑(CPU i5-10400F,GPU GTX 1650,内存 16GB,安装 Windows 10 系统),Python 3.9(配备 OpenCV 4.5.5、TensorFlow 2.8、Matplotlib 3.6 等库),LabelImg 标注工具(用于番茄图像数据集标注),Visual Studio Code(代码编写与调试)。
3. 实验种植环境
温室盆栽番茄(10 株,品种 “粉冠”,分苗期、花期、果期三个生长阶段),育苗盆(直径 20cm,高 18cm,统一基质配方),智能生长灯(定时 12h 光照 / 12h 黑暗),温湿度记录仪(监测环境参数,确保实验条件稳定:温度 22-28℃,湿度 60%-70%),直尺(校准果实大小测量),病虫害模拟样本(番茄早疫病叶片、蚜虫感染叶片各 20 片)。
4. 其他
图像数据集(自制番茄生长图像 8000 张,含不同光照 / 角度 / 遮挡场景;公开病虫害数据集 3000 张,来源 PlantVillage),Excel(数据统计与分析),秒表(记录算法运行时间),打印机(输出监测报告),标签纸(标注番茄株号与生长阶段)。
三、研究过程
1. 系统搭建
采集终端部署:将 USB 相机固定在三脚架上,镜头正对番茄植株(距离 60cm,角度与植株中轴线呈 30°,避免逆光),补光板安装在相机两侧(与镜头夹角 45°),树莓派通过
USB 连接相机,设置每 2 小时自动采集 1 张图像并存储至 SD 卡(图 1)。

图 1 番茄生长监测视觉采集系统部署图
算法模型训练:在电脑端构建数据集(70% 用于训练,20% 验证,10% 测试),使用 LabelImg 标注图像(生长阶段标注 “苗期 / 花期 / 果期”,果实标注 “圆形边界框”,病虫害标注 “病变区域”),基于 MobileNetV2 轻量级 CNN 训练生长阶段分类与病虫害检测模型,通过 OpenCV 编写果实计数与大小测量算法。
结果输出配置:在树莓派端部署训练好的模型,设置图像采集后自动运行算法,结果(生长阶段、果实数量/ 直径、病虫害风险)实时显示在树莓派屏幕,并生成每日监测报告(含数据表格与趋势图)。
2. 课题一:番茄生长阶段识别
2.1 课题目标
实现对番茄苗期(子叶展开 - 真叶 3 片)、花期(第一花序开放 - 坐果前)、果期(果实膨大 - 成熟)的自动分类,准确率≥90%,单张图像识别时间≤0.5 秒。
2.2 原理
基于 MobileNetV2 轻量级 CNN 模型,通过迁移学习优化:首先用 ImageNet 数据集预训练模型权重,再用自制番茄生长图像数据集微调全连接层;模型输入为 224×224 像素的 RGB 图像,输出为 3 个生长阶段的概率值,取概率最大者作为识别结果 [3];针对光照差异,通过 OpenCV 对图像进行直方图均衡化预处理,增强特征鲁棒性。下面是西红柿成树检测系统样图(图2)。

图 23西红柿成树检测系统
2.3 实验过程
数据集构建:采集 10 株番茄从苗期到果期的连续图像,每株每天采集 5 张(不同光照:正常 / 弱光 / 强光),共 8000 张,按 7:2:1 划分训练 / 验证 / 测试集,用 LabelImg 标注阶段标签。
模型训练:在 TensorFlow 框架中设置学习率 0.001,批量大小 32,训练轮次 50,每轮验证模型准确率,当验证准确率连续 5 轮无提升时停止训练,保存最优模型。
性能测试:用测试集(800 张图像)评估模型,记录不同生长阶段的识别准确率;在树莓派端测试单张图像识别时间,重复测试 50 次取平均值;对比人工标注结果,计算阶段误判率。
优化调整:针对花期与果期早期易误判的问题,增加花序与幼果的局部特征标注,补充 1000 张关键期图像重新训练模型。
3. 课题二:番茄果实计数与大小测量
3.1 课题目标
实现对番茄果期植株上果实的自动计数,误差率≤8%;同时测量果实直径,误差≤2mm,单株处理时间≤1 秒。
3.2 原理
采用 “目标检测 + 轮廓分析” 的两步法:首先用 YOLOv5s 模型检测图像中的番茄果实(输出果实边界框),过滤面积<200 像素的干扰区域(如落叶、光斑);再通过 OpenCV 提取果实边界框内的轮廓,计算轮廓的最小外接圆,圆的直径即为果实直径(通过像素 - 实际尺寸校准:100 像素对应 2cm);计数结果为检测到的果实轮廓数量 [4]。
import cv2 import numpy as np def tomato_count_and_measure(image_path, calib_ratio=0.02): # 1像素=0.02cm # 读取图像并预处理 img = cv2.imread(image_path) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_blur = cv2.GaussianBlur(img_gray, (5,5), 0) # 果实轮廓检测 contours, _ = cv2.findContours(cv2.threshold(img_blur, 120, 255, cv2.THRESH_BINARY_INV)[1], cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) count = 0 diameters = [] for cnt in contours: if cv2.contourArea(cnt) > 200: # 过滤小干扰 count +=1 (x,y), radius = cv2.minEnclosingCircle(cnt) diameter = radius * 2 * calib_ratio # 计算实际直径(cm) diameters.append(round(diameter, 2)) cv2.circle(img, (int(x),int(y)), int(radius), (0,255,0), 2) # 绘制轮廓 return count, diameters, img |
图 3 番茄果实计数与大小测量核心代码
3.3 实验过程
1) 校准像素尺寸:用直尺测量已知直径(3cm、5cm、7cm)的番茄果实,在 60cm 拍摄距离下记录对应像素直径,计算校准系数(1 像素 = 0.02cm)。
2) 遮挡场景测试:选取 3 株果期番茄(分别有 5/8/12 个果实,含无遮挡 / 部分遮挡 / 严重遮挡场景),每株采集 10 张图像,用算法计数并与人工计数对比,计算误差率。
3) 大小测量验证:对上述果实的算法测量直径与直尺实际测量值对比,统计平均误差;测试不同光照(正常/ 补光)下的测量稳定性,各场景重复 5 次。
4) 优化算法:针对遮挡果实,增加 “轮廓凹陷检测”(通过凹点分割重叠果实),重新测试误差率。
4. 课题三:番茄叶部病虫害检测
4.1 课题目标
实现对番茄叶部早疫病(病斑呈圆形、褐色)与蚜虫(黑色虫体聚集)的自动检测,识别精度≥85%,单张叶片识别时间≤0.3 秒。
4.2 原理
基于改进的 YOLOv5s 模型:针对病虫害特征,在模型颈部增加注意力机制(CBAM),增强病斑与虫体的特征提取;输入为 224×224 像素的叶片局部图像(通过裁剪去除背景),输出为 “早疫病 / 蚜虫 / 健康” 三类标签及病变区域边界框 [5];通过 OpenCV 计算病斑面积占叶片面积的比例,划分病害严重程度(轻度<10%,中度 10%-30%,重度>30%)。下面是虫害检测的效果图(图4)。

图 4 虫害检测的效果图
4.3 实验过程
1) 数据集构建:采集健康番茄叶片 200 张,早疫病叶片(轻度 / 中度 / 重度)各 150 张,蚜虫感染叶片(虫体数量 5-10 只 / 10-20 只 />20 只)各 150 张,补充 PlantVillage 公开数据集 1000 张,标注病虫害类别与区域。
2) 模型训练:设置学习率 0.0005,批量大小 16,训练轮次 30,用测试集(300 张图像)评估模型的精确率、召回率与 F1 分数。
3) 实地测试:在温室中选取 5 株感染早疫病、3 株感染蚜虫的番茄,每株采集 5 张叶片图像,用模型检测并与农业专家判断结果对比,统计检测准确率。
4) 优化阈值:针对轻度病害易漏检的问题,调整模型置信度阈值(从 0.5 降至 0.3),测试漏检率变化。
5. 创新课题:多特征融合的番茄生长状态评估
5.1 课题目标
融合生长阶段、果实发育(数量 / 大小)、叶片健康状况三类特征,构建番茄生长状态评分模型(0-100 分),评估结果与人工评分的相关性≥0.9。
5.2 原理
采用加权评分法:生长阶段(苗期 20 分、花期 30 分、果期 50 分),果实发育(数量达标 30 分、大小达标 20 分,按品种标准值计算),叶片健康(无病虫害 30 分,轻度病害 20 分,中度 10 分,重度 0 分);总分为各部分得分之和,根据总分划分 “优秀(80-100 分)、良好(60-79 分)、待改善(<60 分)” 三个等级 [6]。
5.3 实验过程
确定评分标准:参考 “粉冠” 番茄品种种植标准,设定果实数量达标值(单株≥8 个)、大小达标值(直径≥5cm),叶片健康达标值(无病虫害)。
模型验证:选取 10 株番茄(覆盖不同生长状态),分别用算法计算总分与人工(农业教师)评分,计算 Pearson 相关系数。
动态评估:对 3 株番茄进行 7 天连续监测,每天生成生长状态评分,绘制评分变化曲线,分析生长趋势是否符合实际发育情况。
四、结果与分析
4.1 课题一结果
番茄生长阶段识别测试数据(表 1)显示,优化后的 MobileNetV2 模型在测试集上的总体准确率达 94.2%,其中果期识别准确率最高(97.5%),花期与果期早期的误判率从优化前的 12% 降至 5.8%;树莓派端单张图像识别时间平均 0.42 秒,满足实时监测需求。
生长阶段 |
测试样本数 |
识别正确数 |
准确率 |
单张识别时间(秒) |
苗期 |
260 |
245 |
94.2% |
0.40 |
花期 |
270 |
248 |
91.9% |
0.43 |
果期 |
270 |
263 |
97.5% |
0.42 |
总体 |
800 |
756 |
94.2% |
0.42 |
表 1 番茄生长阶段识别测试结果
4.2 课题二结果
果实计数与大小测量实验(表 2)表明,优化遮挡处理后,计数误差率从 11.2% 降至 4.8%,其中无遮挡场景误差率仅 2.1%;大小测量平均误差 0.15cm,满足实际种植监测需求;补光条件下的测量稳定性显著提升,误差率比无补光低 3.2 个百分点。
遮挡程度 |
测试株数 |
人工计数均值 |
算法计数均值 |
计数误差率 |
大小测量平均误差(cm) |
无遮挡 |
3 |
7.3 |
7.1 |
2.1% |
0.12 |
部分遮挡 |
3 |
9.7 |
9.4 |
3.1% |
0.16 |
严重遮挡 |
4 |
11.5 |
11.0 |
4.3% |
0.18 |
总体 |
10 |
9.5 |
9.0 |
4.8% |
0.15 |
表 2 番茄果实计数与大小测量测试结果
4.3 课题三结果
病虫害检测测试显示,改进 YOLOv5s 模型对早疫病与蚜虫的检测精度分别达 92.3%、86.7%,总体精度 89.5%;调整置信度阈值后,轻度病害漏检率从 18% 降至 7%;单张叶片识别时间平均 0.28 秒,可实现快速筛查。
病虫害类型 |
测试样本数 |
精确率 |
召回率 |
F1 分数 |
单张识别时间(秒) |
早疫病 |
150 |
93.1% |
91.5% |
92.3% |
0.27 |
蚜虫 |
150 |
87.5% |
85.9% |
86.7% |
0.29 |
健康叶片 |
100 |
95.2% |
94.8% |
95.0% |
0.26 |
总体 |
400 |
91.9% |
90.7% |
89.5% |
0.28 |
表 3 番茄叶部病虫害检测测试结果
4.4 创新课题结果
多特征融合生长状态评估中,算法评分与人工评分的 Pearson 相关系数达 0.93,表明评分模型能准确反映番茄实际生长状态;7 天连续监测显示,3 株番茄的评分变化曲线与实际发育趋势一致(如坐果后评分从 62 分升至 85 分),可为种植管理提供决策依据。
五、结论
课题一验证了轻量级 CNN 模型在番茄生长阶段识别中的可行性,MobileNetV2 模型兼顾精度与速度,适合边缘端部署,但花期与果期早期的特征差异较小,需进一步增加样本量优化。
课题二通过轮廓分析与遮挡处理,实现了番茄果实的精准计数与大小测量,补光条件对测量稳定性影响显著,建议在实际应用中固定光照参数。
课题三的改进 YOLOv5s 模型能有效检测番茄叶部病虫害,轻度病害漏检率通过阈值调整大幅降低,可满足早期预警需求。
系统整体成本约 3000 元(含相机、树莓派),远低于商用农业监测设备,在中小温室与教学场景中性价比突出,但存在复杂背景(如杂草)干扰识别的不足。未来可通过语义分割算法优化背景去除,增加多相机联动实现全株 360° 监测。
六、参考文献
[1] 农业部种植业管理司。中国设施蔬菜产业发展报告(2024)[R]. 北京:中国农业出版社,2024.
[2] 王鹏,李娜。农业机器视觉技术的应用现状与展望 [J]. 农业工程学报,2023, 39 (12): 1-12.
[3] 刘畅,张明。基于 MobileNetV2 的番茄生长阶段识别算法 [J]. 农业机械学报,2023, 54 (05): 267-274.
[4] 陈明,赵伟。基于轮廓分析的番茄果实计数与大小测量 [J]. 农业工程学报,2022, 38 (08): 195-201.
[5] 李晓华,周雨桐。改进 YOLOv5 的番茄叶部病虫害检测 [J]. 农业机械学报,2024, 55 (01): 312-319.
[6] 中国农业科学院蔬菜花卉研究所。番茄温室种植管理技术规范 [J]. 中国蔬菜,2023, (03): 1-8.
