Python基于改进YOLOv5的烟叶病害检测系统(附带源码)

  • 1.背景
  • 2.前言
  • 3.烟叶数据集的采集
  • 4.烟叶数据集的标注
  • 5.烟叶检测训练&识别效果
  • 6.病害数据集的采集
  • 7.病害数据集的标注
  • 8.YOLOv5网络的改进
  • 9.如何通过代码修改模型
  • 10.病害检测训练&识别效果
  • 11.系统整合
  • PPT资源
  • 相关完整源码代码

1.背景

烟草作为我国重要的经济作物之一,在国民经济中占据着重要地位。同时,烟草病害严重威胁烟叶质量,制约卷烟质量,给农业生产造成严重损失。因此,烟草病害防治是一个亟需解决的问题。
传统的烟草病害诊断方法不能及时,准确地解决实际栽培中遇到的病害种类识别问题,这就可能错失了防治病害的最佳时期。

2.前言

Python、Anacanda、Pycharm、CUDA和cuDNN等基础的环境安装部署可以参考博主的B站视频教程
[2022手把手教学版]Python&Anacanda&Pycharm安装,虚拟环境配置
[CUDA&cuDNN]炼丹师手把手带你安装CUDA&cuDNN(win10)

3.烟叶数据集的采集

4.烟叶数据集的标注

labelimg是一款开源的图像标注工具,标签可用于分类和目标检测,它是用python写的,并使用Qt作为其图形界面,简单好用(虽然是英文版的)。其注释以 PASCAL VOC格式保存为XML文件,这是ImageNet使用的格式。此外,它还支持 COCO数据集格式。
labelimg的使用可以参考:
LabelImg(目标检测标注工具)的安装与使用教程

5.烟叶检测训练&识别效果

训练的教程可以参考博主的博文:

Python基于深度学习yolov5的扑克牌识别

6.病害数据集的采集

7.病害数据集的标注

8.YOLOv5网络的改进

由于病害目标非常的小,原始的YOLOv5的最小的检测头的感受野依旧大于目标的尺寸,所以有必要对原始网络进行改进
通常目标检测的结构包含下图的模块

我们可以从上面的每个模块入手提出改进的点,例如我们从优化算法下手,Yolov5的作者提供了两个优化函数Adam和SGD(默认),并且都预设了匹配的训练超级参数。
我建议,如果您需要训练较小的自定义数据集,则Adam是更合适的选择。如果训练了较大的数据集,SGD对于Yolov5比Adam更好。
事实上,学术界还没有关于SGD和Adam之间哪个更好的统一结论,这取决于实际项目情况。
同时我们可以改进激活函数,Yolov5的作者使用leaky-relu 和 sigmoid激活函数。在Yolov5中,中间/隐藏层使用泄漏relu激活函数,最后一个检测层使用S形激活函数。Yolov4使用mish激活功能。

我们可以改进损失函数,Yolo级数的损失计算基于目标得分、类概率得分和边界框区域得分
Yolo V5使用GIOU损失作为边界框的损失。
Yolo V4使用CIOU损失作为边界框的损失。与上述其他方法相比,CIOU损失带来更快的收敛速度和更好的性能

9.如何通过代码修改模型

(1)首先,您需要在models/common.py中实现mobilenetv2的瓶颈和PW_ Conv。

(2)然后,您需要更改代码(models/yolo.py的parse_model函数),以读取yolo V5中的模型配置文件,从而调用上述模块。

(3)并且PW_ Conv瓶颈MOB需要在导入参考处添加,

(4)然后,我们构建模型配置文件,我在yolov5s.yaml的基础上对其进行了修改

10.病害检测训练&识别效果

11.系统整合

最终我们将烟叶检测和病害检测的系统整合到一起,实现操作者只需看一眼,就可以对所有烟叶的健康状况有所知悉,同时,每一片烟叶的病害种类、位置和数量都很清晰的标注在叶片上。鲁棒性好、识别率高、准确性强。

PPT资源

[PPT]Python基于改进YOLOv5的烟叶病害检测系统PPT

相关完整源码代码

[YOLOv5烟叶病害识别]完整源码(带安装教程&数据集&演示视频)

Python基于改进YOLOv5的烟叶病害检测系统(附带源码)相关推荐

  1. Python基于CRNN&CTPN的文本检测系统(源码&教程)

    1.背景 文本是人类最伟大和最具影响力的发明之一,是人类智慧的结晶,是人类文化.思想传承的一种基本的表达方式和不可或缺的载体.在21世纪,文本与日常生活密切相关.描述.理解万事万物,表达情感,与他人交 ...

  2. Python基于Opencv的鱼群密度速度检测系统(源码&教程)

    1.研究背景 智慧渔业是大数据.物联网与人工智能等现代信息技术驱动下的渔业发展新模式,是水产养殖业供给侧结构性改革的重要方式,涉及养殖环境监测.生物环境监测与生物状态监测这几大方面的应用与需求.本文从 ...

  3. 基于改进AlexNet的植物中草药分类系统(源码&教程)

    1.研究背景 传统的中草药图像识别往往需要人工采集大量的原始样本,再进行人工分析和研究,需要研究者具有相当丰富的中医药知识储备和经验,整个过程耗时耗力且识别率难以得到保证.随着信息技术的飞速发展,人工 ...

  4. 基于改进U-Net的铁道轨道分割系统(源码&教程)

    1.研究背景 在铁路无人驾驶领域中,城市轨道交通中的地铁列车运行环境相对的封闭[1,2].使得较容易开展无人驾驶,从上世纪80年代开始无人驾驶系统应用于法国.日本.马来西亚.加拿大,新加坡等国家﹐国内 ...

  5. 基于改进First_order的表情驱动图片系统(源码&教程)

    1.研究背景 早期的Facerig软件可以即时抓取摄像头视频中的人脸关键点,将表情.头部姿态等信息转化到三维虚拟化身上,比如一只猫.一个虚拟卡通人物上.然后在使用即时视频通讯软件时,选择facerig ...

  6. [附源码]计算机毕业设计Python基于微信小程序的网络办公系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  7. Python基于RCNN&CTC的文本识别系统(源码&部署教程)

    1.项目展示 2.CTPN+CRNN+CTC文字识别网络构建 首先CNN提取图像卷积特征 然后LSTM进一步提取图像卷积特征中的序列特征 最后引入CTC解决训练时字符无法对齐的问题 一般情况下对一张图 ...

  8. [智慧农业]Python基于改进YOLOv5的猕猴桃叶病害检测系统(完整源码&数据集&视频教程)

    1.背景 现如今由于农作物病虫害的多样性和复杂性,在特定的条件下其很容易在大范围内发生,导致农产品产量急剧下降.因此,预防和监测农作物病虫害已成为农业生产活动中的重要环节.当前,耕地面积逐渐减少,世界 ...

  9. 基于改进YOLOv5的挖机铲斗缺陷检测系统(源码&教程)

    1.研究背景 针对现有电铲斗齿检测方法存在实时性较差.误报率较高等问题,提出了一种基于机器视觉的电铲斗齿缺失检测方法.该方法利用红外热像仪采集铲斗图像,基于模板匹配原理对复杂背景下斗齿的目标区域进行准 ...

最新文章

  1. HTML中href src区别,html中 href 和 src 的定义与区别
  2. 多网卡下如何配置指定IP走某个路由器(适用于外网不通,但是钉钉服务器通的情况)...
  3. rocketmq消息持久化到mysql_RocketMQ之事务消息
  4. 浅谈“be practical and realistic”
  5. 委托和事件[delegate and event]_C#
  6. 【转】java.util.ResourceBundle使用详解
  7. webpack笔记_(1)_webpack 安装
  8. C语言范例学习03-上
  9. php检查某个网站,用php开发一个检测某网站是否在正常运行的小模块
  10. pycharm英语怎么读_pycharm快捷键翻译
  11. UG标准件库的使用方法
  12. 关于坑爹的QQ互联成为开发者的坑
  13. 腾讯云cdn设置 php,腾讯云CDN缓存过期配置问题详解
  14. 潘赟九宫格写作总结(精简背诵版)
  15. java if 终止_java中跳出或终止if语句的方法
  16. alios thing 信号量_信号量_AliOS Things内核_API参考文档_AliOS Things 文档_IoT物联网操作系统 - 阿里云...
  17. App 抓包利器:Charles 以及 App 爬虫心得
  18. Python学习第001课--课后复习
  19. 仓鼠找sugar II
  20. linux嵌入式系统开发心得,嵌入式学习牛人心得

热门文章

  1. C#进阶学习--虚方法(virtual)
  2. httpx 与 异步
  3. 【c语言】编写一个函数计算字符串长度
  4. 【c语言】my_strcat实现字符串连接
  5. SpringBoot集成Sharding-JDBC实现分库分表实战(二)
  6. flutter加载不同分辨率本地图片
  7. 用ADB命令写Android自动化测试脚本
  8. Apollo Planning学习(1)-------模块流程
  9. 自动化测试之jest的使用
  10. imemode属性,关系textbox的取值