基于 YOLO11n 的五类农业害虫智能检测系统:从模型推理到 Streamlit 可视化部署
基于 YOLO11n 的五类农业害虫智能检测系统从模型推理到 Streamlit 可视化部署本文介绍一个面向田间植保、智慧农业与虫情测报场景的目标检测应用。项目以 YOLO11n 为检测模型、Streamlit 为交互界面支持图片、批量图片、视频等输入方式可识别蚜虫、实蝇、南瓜甲虫、潜叶蝇和粉虱五类目标并输出边界框、类别与置信度。一、项目背景为什么要做农业害虫视觉检测农业生产中的害虫监测传统上依赖人工巡田、诱捕器和定期抽样。人工巡查能够结合经验判断但覆盖范围和频次受人力限制虫情监测灯、粘虫板等方式能提供一定统计信息却仍需要人工观察和计数。在大面积农田、设施大棚以及虫情高发时段及时发现害虫、判断类别并形成可追踪记录并不容易。视觉检测提供了一种辅助思路把田间摄像头、手机拍摄或虫情监测设备采集到的图像输入检测模型由模型定位图像中的害虫目标再将类别、置信度和位置整理成结构化结果。它不替代植保人员的专业判断而是帮助提升图像筛查效率为后续复核、统计和防治决策提供参考。本项目将上述流程封装成一个可直接运行的 Web 应用。用户不必编写推理脚本也不需要逐张调用命令行程序打开浏览器后即可上传图像查看原图和检测图并在需要时批量处理图片或分析视频。视频演示与源码下载https://www.bilibili.com/video/BV1L4JU6mEKt/包含完整项目源码预训练模型权重️数据集项目运行效果*Web 界面总览*单张图片识别效果*批量图片合规检查二、项目功能与检测类别系统使用 YOLO11n 权重执行目标检测数据集配置为五个类别类别场景说明蚜虫常见刺吸式害虫常出现在嫩梢、叶片等部位实蝇果实类害虫图像中可用于辅助识别和定位南瓜甲虫可能啃食叶片及果实的目标类别潜叶蝇幼虫危害可表现为叶片内部虫道检测效果受图像清晰度影响粉虱常聚集于叶片背面容易受到遮挡和拍摄角度影响应用提供以下主要能力单张图片检测上传 JPG、PNG 等常见图片格式输出带边界框的检测图和逐目标明细。批量图片检测一次提交多张图片也支持 ZIP 图片包应用逐张执行推理汇总检测数量及置信度并提供结果下载。视频检测上传视频后按帧执行检测输出带标注的结果视频及相应分析信息。摄像头输入通过应用界面调用可用的摄像头源进行图像检测。浏览器权限、运行环境和摄像头接入方式会影响此功能的可用性。阈值调节侧栏提供置信度阈值滑块。阈值调低通常会保留更多候选框可能增加误检阈值调高会过滤较弱候选可能漏掉较小或模糊目标。实际使用时应结合场景验证。结果查看与导出除标注图外还可查看类别、置信度、边界框坐标等表格信息方便复核和整理。需要特别说明检测结果是图像层面的模型判断不等同于对整块农田虫情密度、害虫发生等级或防治方案的自动结论。模型输出应与田间观察、农业技术人员意见和其他监测手段结合使用。三、系统整体架构系统采用清晰的分层结构浏览器负责上传与展示Streamlit 负责交互和流程控制Ultralytics YOLO 执行模型推理OpenCV、Pandas 等组件承担图像处理与结果整理。用户 / 浏览器 │ 上传图片、图片压缩包或视频调整置信度阈值 ▼ Streamlit 应用app/streamlit_app.py │ 输入校验、模式分发、进度提示、结果展示与下载 ▼ YOLO11n 推理模型model/best.pt │ 预处理 → 前向推理 → 置信度筛选 → NMS ▼ 结果后处理 │ 类别名称、置信度、xyxy 坐标、标注图与汇总数据 ▼ 浏览器展示 / 下载结果项目的界面配置集中在configs/project.yaml包括应用标题、简介、主题颜色、默认推理阈值、批量上限和侧栏场景信息。这样将业务展示信息与推理代码分离修改标题或颜色时通常不必改动核心逻辑。四、YOLO 推理流程简述YOLO 属于单阶段目标检测方法模型在一次前向过程中同时预测目标的位置与类别不需要像传统两阶段检测那样先生成候选区域再逐个分类因此适合构建交互式检测应用。对一张输入图像典型推理过程包括图像预处理读取文件并转换成模型可接收的张量按模型输入尺寸进行缩放与填充。模型前向计算YOLO11n 提取图像特征并生成类别分数与边界框候选。置信度过滤根据当前阈值剔除置信度偏低的候选框。界面默认值来自项目配置实际使用可通过侧栏调整。非极大值抑制NMS对高度重叠的候选框进行筛选减少同一目标被重复框出的情况。结果绘制与结构化将类别、置信度和坐标整理为表格同时生成叠加检测框的图像供用户查看。害虫检测和常规大型物体检测存在差异。许多害虫在高分辨率田间图像里仍然只占很少像素虫体纹理、姿态和颜色又可能与叶片背景接近。因此拍摄分辨率、焦距、光照、运动模糊、遮挡和目标尺度都会影响模型输出。部署时应先用实际相机和目标作物环境进行验证而不宜只根据少量示例判断模型在所有场景中的表现。五、核心推理代码解读下面摘取项目图像推理函数中的主要逻辑。它调用 Ultralytics 的model.predict再把结果转换为标注图和 Pandas 表格definfer_image_path(model:YOLO,image_path:Path,conf:float)-tuple:resultmodel.predict(str(image_path),confconf,verboseFalse)[0]annotatedresult.plot()rows[]ifresult.boxesisnotNone:forboxinresult.boxes:cls_idint(box.cls.item())confidencefloat(box.conf.item())x1,y1,x2,y2[float(v)forvinbox.xyxy[0].tolist()]rows.append({class_id:cls_id,class_name:result.names[cls_id],confidence:round(confidence,4),x1:round(x1,1),y1:round(y1,1),x2:round(x2,1),y2:round(y2,1),})returnannotated[:,:,::-1],pd.DataFrame(rows)关键点如下model.predict(..., confconf)把用户设置的阈值传入推理接口阈值控制候选框的保留范围。result.plot()使用推理结果绘制类别标签和边界框避免另行编写一套绘图逻辑。result.boxes中包含类别索引、置信度和坐标。坐标采用xyxy表示即左上角与右下角的位置。result.names[cls_id]将类别索引转换为模型类别名。类别名称应与数据集配置及权重训练时的类别顺序保持一致。Ultralytics 绘图结果通常为 BGR 通道顺序返回前用[:, :, ::-1]转为 RGB以适配 Streamlit 的图像展示。每个检测框被整理为字典最终形成 DataFrame。表格结构便于显示也可进一步扩展为 CSV 导出、数据库写入或业务统计。模型对象在应用中使用 Streamlit 的资源缓存机制加载避免每次界面交互都重新初始化模型。批量图片和视频流程也复用同一模型实例并通过临时目录管理上传文件减少将推理逻辑散落在不同页面分支中的重复代码。六、Streamlit 页面与配置组织项目页面主要分为三部分页面顶部展示项目名称、农业害虫检测的用途简介和应用场景。侧栏提供置信度阈值控制、场景信息及输入设置。主区域通过输入类型选择器切换图片、批量图片、视频等检测流程显示原图、检测图、分析表格和下载按钮。推理阈值和界面文案由配置文件读取。比如inference.conf用作默认置信度inference.iou用于推理过程的重叠筛选参数inference.max_batch_images用于限制批量处理数量。不同现场可以在验证后调整参数但建议每次只改变一个关键参数并保存一组代表性图像进行对比避免仅凭单张图片做判断。当前 UI 根据用户要求不展示整体检测率或模型评测指标卡。项目的重点是实际输入图像后的检测结果、类别和置信度。置信度表示模型对单个候选框的分数不应与整体准确率混为一谈即使某个框置信度很高也不代表该模型在任意田间环境中都具有同等效果。七、快速部署7.1 环境准备项目面向 Python 环境运行依赖清单位于requirements.txt。建议在项目目录中创建独立虚拟环境降低与其他 Python 项目的依赖冲突python-mvenv .venvWindows PowerShell 激活方式.\.venv\Scripts\Activate.ps1安装依赖pipinstall-rrequirements.txt若视频结果需要浏览器播放可根据实际环境安装 FFmpeg 并确认其命令可用。图片检测不依赖视频播放能力。7.2 启动应用在项目根目录执行streamlit run app/streamlit_app.py浏览器通常可以访问http://localhost:85017.3 局域网访问如需让同一局域网内的其他设备访问可将监听地址设为0.0.0.0streamlit run app/streamlit_app.py--server.address0.0.0.0--server.port8501其他设备使用运行主机的局域网 IP 和端口访问例如http://192.168.x.x:8501。实际 IP 请以主机网络配置为准若连接失败检查设备是否处于同一网段、Windows 防火墙是否放行 TCP 端口以及路由器是否启用客户端隔离。不要在未配置访问控制的情况下将开发用 Streamlit 服务直接暴露到公网。八、使用步骤启动应用并打开浏览器页面。在侧栏设置置信度阈值。首次体验可沿用默认值再根据误检、漏检情况调整。选择输入方式单张图片、批量图片、视频或可用摄像头。上传清晰、目标可见的图像批量模式下可一次选择多个文件或提交 ZIP。查看标注结果和检测明细。没有检测框可能意味着图像中无可识别目标也可能是目标过小、被遮挡或阈值较高。对结果进行人工复核并下载需要留存的标注图或结果文件。九、效果评估与使用边界项目训练记录中的评测结果包含 mAP、Precision 和 Recall 等指标但当前产品 UI 按需求不显示整体检测率。不同指标有不同含义Precision 关注模型检出的目标中有多少正确Recall 关注实际目标中有多少被找到mAP 则综合不同置信度阈值或定位标准下的检测质量。这些指标通常来自特定数据划分不能直接等同于真实生产现场的准确率承诺。农业害虫图片具有明显的域差异不同作物、季节、相机、拍摄距离和天气都会改变图像分布。部署前建议准备一组覆盖白天与夜间、远近距离、不同背景和遮挡情况的现场图像逐类人工核验模型表现。对于误检可适当提高阈值或检查背景是否与样本差异较大对于漏检可尝试降低阈值、改善拍摄清晰度和目标尺寸并持续记录难例供后续评估。以下情况尤其需要谨慎害虫只占少量像素、图像压缩严重或主体失焦目标被叶片、枝条或其他虫体遮挡拍摄光线过暗、强反光或运动模糊类别外观相近单张图难以提供足够纹理信息现场图像与应用所使用的数据样本分布差异明显。因此本项目适合作为巡检辅助、图像筛查和原型验证工具。涉及农药使用、虫情等级判断或生产决策时应由专业人员结合现场情况进行确认。十、项目结构与扩展方向五类农业害虫检测数据集_yolo11n/ ├── app/ │ └── streamlit_app.py # Web 应用与推理交互 ├── configs/ │ └── project.yaml # 页面、主题与推理配置 ├── model/ │ └── best.pt # YOLO11n 检测权重 ├── dataset/ # 数据集图像与标注 ├── outputs/ # 运行时结果目录 ├── train/ # 项目已有的评估与运行产物 ├── requirements.txt # Python 依赖清单 └── README.md # 项目使用说明后续可以从几个方向迭代第一接入摄像头或虫情监测设备的自动采集流程减少手工上传第二增加按时间、地块和类别汇总的统计视图帮助识别虫情变化趋势第三为结果加入人工复核状态区分模型初筛与确认记录第四在充分验证性能和隐私要求的基础上将推理部署到边缘设备降低网络传输压力第五建立困难样本回流机制定期评估模型在不同作物、季节与设备上的泛化表现。十一、总结这个项目将 YOLO11n 的害虫目标检测能力封装成一个易部署、可交互的 Streamlit 应用覆盖单图、批量图片和视频等常用入口并提供置信度调节、检测结果可视化及结构化明细。它展示了从模型权重加载、单图推理、结果转换到 Web 页面交互的一条完整工程链路。对于初学者这个项目适合学习目标检测模型如何接入实际应用模型只负责产生预测完整产品还需要处理文件上传、结果绘制、表格整理、错误提示、配置管理和部署访问。对于农业场景使用者系统可以作为害虫图像筛查的辅助工具但最终判断仍应结合现场核查与专业植保知识。标签#YOLO11 #目标检测 #智慧农业 #农业害虫识别 #Streamlit #计算机视觉

相关新闻

WebGL绘制圆形点:从点精灵到片元着色器抗锯齿实践

WebGL绘制圆形点:从点精灵到片元着色器抗锯齿实践

WebGL入门系列走到第37篇。前面已经聊过三角形渲染、矩阵变换、纹理采样这些基础,今天这篇内容不大,但非常实用:怎么在WebGL里画一个圆形的点(point)。先解释为什么会有这个需求。不管是在散点图里做数据标记&#xff…

2026/10/17 12:26:50 阅读更多 →
HttpServletResponseWrapper实践:在Filter中统一修改响应内容的完整指南

HttpServletResponseWrapper实践:在Filter中统一修改响应内容的完整指南

1. 从修改响应内容的痛点说起做 Java Web 开发的朋友,几乎都遇到过这样的需求:想在接口返回给前端之前,偷偷改一下响应内容——比如给 JSON 加个统一包装、把敏感字段打码、往页面里注入一段统计脚本、或者记录完整的响应日志。但你很快会发现…

2026/10/17 12:26:50 阅读更多 →
Ubuntu Server 18.04系统镜像备份:Systemback原理与实战指南

Ubuntu Server 18.04系统镜像备份:Systemback原理与实战指南

1. 项目概述:为什么在Ubuntu Server 18.04上坚持用Systemback做系统镜像,而不是直接用dd或Timeshift?Systemback这个工具,在2019年前后曾是Ubuntu桌面用户圈里一个近乎“神级”的存在——它能把整个运行中的系统打包成一个可启动的…

2026/10/17 12:26:50 阅读更多 →

最新新闻

强化学习策略优化:从单调提升理论到TRPO/PPO工程实践

强化学习策略优化:从单调提升理论到TRPO/PPO工程实践

强化学习学到这个阶段,大部分公式推导和代码实现都能跑通了,但有一类问题始终绕不过去:理论上讲,策略优化的目标应该让性能越改越好,实际训练里却经常出现"越改越差"。这个问题的系统解答,就是 M…

2026/10/17 13:30:35 阅读更多 →
BiliTools B站下载工具完整教程:视频、番剧、弹幕、无损音乐一次存进本地

BiliTools B站下载工具完整教程:视频、番剧、弹幕、无损音乐一次存进本地

BiliTools B站下载工具完整教程:视频、番剧、弹幕、无损音乐一次存进本地 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 你想把一部番剧留在自己硬盘里,客户端却只给"缓存…

2026/10/17 13:30:35 阅读更多 →
Vue3+TypeScript实现MD5加密解密工具:算法原理与工程实践

Vue3+TypeScript实现MD5加密解密工具:算法原理与工程实践

做开发这些年,MD5 大概是碰得最频繁的“加密”工具之一。测接口签名、校验文件完整性、给测试数据造个定长指纹,随手就是一个 md5()。但真正要把这东西做成一个能上线的工具,尤其是用 Vue 3 和 TypeScript 从零写一个带“加密/解密”能力的在…

2026/10/17 13:30:35 阅读更多 →
DouK-Downloader 完整指南:5 分钟跑通抖音 / TikTok 视频下载与归档

DouK-Downloader 完整指南:5 分钟跑通抖音 / TikTok 视频下载与归档

DouK-Downloader 完整指南:5 分钟跑通抖音 / TikTok 视频下载与归档 【免费下载链接】TikTokDownloader 抖音 / TikTok 平台作品下载/数据采集工具 项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader 想把这个账号的所有作品一次归档&…

2026/10/17 13:30:35 阅读更多 →
数字员工工作流实战:从IT工单到财务报销的可交付落地指南

数字员工工作流实战:从IT工单到财务报销的可交付落地指南

1. 这不是又一个“AI Agent教程”,而是一套可跑通、能交付、真落地的数字员工工作流 最近在几个技术社区和企业内训现场,反复被问到一个问题:“Hermes Agent到底能不能用?不是概念演示,是真能替人干活的那种。”我试过…

2026/10/17 13:30:35 阅读更多 →
2025人工智能指数报告解读:从趋势数据到工程决策

2025人工智能指数报告解读:从趋势数据到工程决策

简介:这份2025年人工智能指数报告由斯坦福大学人类中心人工智能研究所发布,是第八版AI指数报告,旨在为政策制定者、研究人员、企业高管、记者及公众提供关于全球AI发展态势的权威数据参考。压缩包内为1个PDF文件,大小29.46MB&…

2026/10/17 13:29:34 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →