新媒体运营怎么自学/长沙网站seo服务

新媒体运营怎么自学,长沙网站seo服务,腾讯云wed服务器做网站,鹰潭网站制作《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

《博主简介》

小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称项目名称
1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】
3.【手势识别系统开发】4.【人脸面部活体检测系统开发】
5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】
7.【YOLOv8多目标识别与自动标注软件开发】8.【基于YOLOv8深度学习的行人跌倒检测系统】
9.【基于YOLOv8深度学习的PCB板缺陷检测系统】10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统】
11.【基于YOLOv8深度学习的安全帽目标检测系统】12.【基于YOLOv8深度学习的120种犬类检测与识别系统】
13.【基于YOLOv8深度学习的路面坑洞检测系统】14.【基于YOLOv8深度学习的火焰烟雾检测系统】
15.【基于YOLOv8深度学习的钢材表面缺陷检测系统】16.【基于YOLOv8深度学习的舰船目标分类检测系统】
17.【基于YOLOv8深度学习的西红柿成熟度检测系统】18.【基于YOLOv8深度学习的血细胞检测与计数系统】
19.【基于YOLOv8深度学习的吸烟/抽烟行为检测系统】

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】

《------正文------》

基本功能演示

在这里插入图片描述

摘要:水稻害虫检测与识别系统的重要性在于能够迅速准确地识别出对水稻植株构成威胁的不同害虫种类。这对于保障农作物的健康成长、提高产量和质量至关重要。本文基于YOLOv8深度学习框架,通过1248张图片,训练了一个进行水稻害虫检测与识别的目标检测模型,可用于检测14种常见的水稻害虫。并基于此模型开发了一款带UI界面的水稻害虫检测与识别系统,可用于实时检测场景中的水稻害虫,更方便进行功能的展示。该系统是基于pythonPyQT5开发的,支持图片视频以及摄像头进行目标检测,并保存检测结果。本文提供了完整的Python代码和使用教程,给感兴趣的小伙伴参考学习,完整的代码资源文件获取方式见文末

文章目录

  • 基本功能演示
  • 前言
  • 一、软件核心功能介绍及效果演示
    • 软件主要功能
    • (1)图片检测演示
    • (2)视频检测演示
    • (3)摄像头检测演示
    • (4)保存图片与视频检测结果
  • 二、模型的训练、评估与推理
    • 1.YOLOv8的基本原理
    • 2. 数据集准备与训练
    • 3. 训练结果评估
    • 4. 检测结果识别
  • 【获取方式】
  • 结束语

点击跳转至文末《完整相关文件及源码》获取


前言

水稻害虫检测与识别系统的重要性在于能够迅速准确地识别出对水稻植株构成威胁的不同害虫种类。这一点对于保障农作物的健康成长、提高产量和质量至关重要。害虫的侵害可以导致水稻受到病理性损害,影响植株的生长发育,甚至造成大面积减产或绝收。及时识别出害虫种类后,农民和农业技术人员可以采取针对性的防控措施,比如施用特定的农药或者采用生物防治等环保方式,从而减少化学药品的使用,保护生态环境,同时降低农业生产成本。

在实际应用场景中,水稻害虫检测与识别系统可以被广泛运用于农田实时监控、农业病虫害预警系统、精准农业管理平台、农业咨询服务、农业研究与教育等多个方面。
例如,在农田监控系统中,通过安装摄像头和依托YOLOv8实现的害虫检测系统,可以持续监测田间害虫发生情况,并提供实时数据反馈,帮助农业生产者做出快速反应。在农业教育和推广中,这一系统也可以作为一个有力工具,教育农民识别不同害虫,提高他们的防控意识和能力。
此外,研究人员可以利用这一系统收集害虫数据,分析害虫发生规律和影响因素,从而为农业害虫管理和控制策略的制定提供科学依据。

博主通过搜集并整理不同水稻害虫的相关数据图片,根据YOLOv8的目标检测技术,基于python与Pyqt5开发了一款界面简洁的水稻害虫检测与识别系统,可支持图片、视频以及摄像头检测,同时可以将图片或者视频检测结果进行保存

软件初始界面如下图所示:
在这里插入图片描述

检测结果界面如下:
在这里插入图片描述

一、软件核心功能介绍及效果演示

软件主要功能

1. 可进行14种水稻害虫的目标检测,分别是 ['水稻叶卷螟', '水稻叶蝉', '稻茎蝇', '亚洲稻螟', '黄稻螟', '稻瘿蚊', '水稻螟', '褐飞虱', '白背飞虱', '小褐飞虱', '稻水象甲', '稻叶蝉', '粮食白粉蝇', '稻壳虫']
2. 支持图片、视频及摄像头进行检测,同时支持图片的批量检测
3. 界面可实时显示目标位置目标总数置信度用时等信息;
4. 支持图片或者视频检测结果保存

(1)图片检测演示

点击图片图标,选择需要检测的图片,或者点击文件夹图标,选择需要批量检测图片所在的文件夹,操作演示如下:
点击目标下拉框后,可以选定指定目标的结果信息进行显示。 点击保存按钮,会对视频检测结果进行保存,存储路径为:save_data目录下。
注:1.右侧目标位置默认显示置信度最大一个目标位置。所有检测结果均在左下方表格中显示。
单个图片检测操作如下:
在这里插入图片描述

批量图片检测操作如下:
在这里插入图片描述

(2)视频检测演示

点击视频图标,打开选择需要检测的视频,就会自动显示检测结果。点击保存按钮,会对视频检测结果进行保存,存储路径为:save_data目录下。
在这里插入图片描述

(3)摄像头检测演示

点击摄像头图标,可以打开摄像头,可以实时进行检测,再次点击摄像头图标,可关闭摄像头。
在这里插入图片描述

(4)保存图片与视频检测结果

点击保存按钮后,会将当前选择的图片【含批量图片】或者视频的检测结果进行保存。检测的图片与视频结果会存储在save_data目录下。
在这里插入图片描述

在这里插入图片描述

二、模型的训练、评估与推理

1.YOLOv8的基本原理

YOLOv8是一种前沿的目标检测技术,它基于先前YOLO版本在目标检测任务上的成功,进一步提升了性能和灵活性。主要的创新点包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数,可以在从 CPU 到 GPU 的各种硬件平台上运行
其主要网络结构如下:
在这里插入图片描述

2. 数据集准备与训练

通过网络上搜集关于水稻害虫的各类图片,并使用LabelMe标注工具对每张图片中的目标边框(Bounding Box)及类别进行标注。一共包含1248张图片,其中训练集包含1060张图片验证集包含188张图片,部分图像及标注如下图所示。
在这里插入图片描述
在这里插入图片描述

图片数据的存放格式如下,在项目目录中新建datasets目录,同时将跌倒检测的图片分为训练集与验证集放入RiceInsectData目录下。
在这里插入图片描述

同时我们需要新建一个data.yaml文件,用于存储训练数据的路径及模型需要进行检测的类别。YOLOv8在进行模型训练时,会读取该文件的信息,用于进行模型的训练与验证。data.yaml的具体内容如下:

train: E:\MyCVProgram\RiceInsectDetection\datasets\RiceInsectData\train
val: E:\MyCVProgram\RiceInsectDetection\datasets\RiceInsectData\valnc: 14
names: ['rice leaf roller', 'rice leaf caterpillar', 'paddy stem maggot', 'asiatic rice borer', 'yellow rice borer', 'rice gall midge', 'Rice Stemfly', 'brown plant hopper', 'white backed plant hopper', 'small brown plant hopper', 'rice water weevil', 'rice leafhopper', 'grain spreader thrips', 'rice shell pest']

注:train与val后面表示需要训练图片的路径,建议直接写自己文件的绝对路径。
数据准备完成后,通过调用train.py文件进行模型训练,epochs参数用于调整训练的轮数,batch参数用于调整训练的批次大小【根据内存大小调整,最小为1】,代码如下:

# 加载模型
model = YOLO("yolov8n.pt")  # 加载预训练模型
# Use the model
if __name__ == '__main__':# Use the modelresults = model.train(data='datasets/RiceInsectData/data.yaml', epochs=250, batch=4)  # 训练模型# 将模型转为onnx格式# success = model.export(format='onnx')

3. 训练结果评估

在深度学习中,我们通常用损失函数下降的曲线来观察模型训练的情况。YOLOv8在训练时主要包含三个方面的损失:定位损失(box_loss)、分类损失(cls_loss)和动态特征损失(dfl_loss),在训练结束后,可以在runs/目录下找到训练过程及结果文件,如下所示:
在这里插入图片描述

各损失函数作用说明:
定位损失box_loss:预测框与标定框之间的误差(GIoU),越小定位得越准;
分类损失cls_loss:计算锚框与对应的标定分类是否正确,越小分类得越准;
动态特征损失(dfl_loss):DFLLoss是一种用于回归预测框与目标框之间距离的损失函数。在计算损失时,目标框需要缩放到特征图尺度,即除以相应的stride,并与预测的边界框计算Ciou Loss,同时与预测的anchors中心点到各边的距离计算回归DFLLoss。这个过程是YOLOv8训练流程中的一部分,通过计算DFLLoss可以更准确地调整预测框的位置,提高目标检测的准确性。
本文训练结果如下:
在这里插入图片描述

我们通常用PR曲线来体现精确率和召回率的关系,本文训练结果的PR曲线如下。mAP表示Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值。mAP@.5:表示阈值大于0.5的平均mAP,可以看到本文模型14类目标检测的mAP@0.5平均值为0.8,结果还是很不错的,由于有些品类的样本偏少一点,影响了检测精度,可以进一步优化
在这里插入图片描述

4. 检测结果识别

模型训练完成后,我们可以得到一个最佳的训练结果模型best.pt文件,在runs/trian/weights目录下。我们可以使用该文件进行后续的推理检测。
图片检测代码如下:

# 所需加载的模型目录
path = 'models/best.pt'
# 需要检测的图片地址
img_path = "TestFiles/IP000000114.jpg"# 加载预训练模型
# conf	0.25	object confidence threshold for detection
# iou	0.7	intersection over union (IoU) threshold for NMS
model = YOLO(path, task='detect')
# model = YOLO(path, task='detect',conf=0.5)# 检测图片
results = model(img_path)
res = results[0].plot()
cv2.imshow("YOLOv8 Detection", res)
cv2.waitKey(0)

执行上述代码后,会将执行的结果直接标注在图片上,结果如下:
在这里插入图片描述

以上便是关于此款水稻害虫检测与识别系统的原理与代码介绍。基于此模型,博主用pythonPyqt5开发了一个带界面的软件系统,即文中第二部分的演示内容,能够很好的支持图片、视频及摄像头进行检测,同时支持检测结果的保存

关于该系统涉及到的完整源码、UI界面代码、数据集、训练代码、测试图片视频等相关文件,均已打包上传,感兴趣的小伙伴可以通过下载链接自行获取。


【获取方式】

关注下方名片G-Z-H:【阿旭算法与机器学习】,回复【软件】即可获取下载方式

本文涉及到的完整全部程序文件:包括python源码、数据集、训练代码、UI文件、测试图片视频等(见下图),获取方式见文末:
在这里插入图片描述

注意:该代码基于Python3.9开发,运行界面的主程序为MainProgram.py,其他测试脚本说明见上图。为确保程序顺利运行,请按照程序运行说明文档txt配置软件运行所需环境。

关注下方名片GZH:【阿旭算法与机器学习】,回复【软件】即可获取下载方式


结束语

以上便是博主开发的基于YOLOv8深度学习的水稻害虫检测与识别系统的全部内容,由于博主能力有限,难免有疏漏之处,希望小伙伴能批评指正。
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

觉得不错的小伙伴,感谢点赞、关注加收藏哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《使用ThinkPHP6开发项目》 - 登录接口三【表单验证】

《使用ThinkPHP6开发项目》 - 登录接口一-CSDN博客 https://blog.csdn.net/centaury32/article/details/134974860 在设置用户登录时,由于安全问题会对登录密码进行加密 表单验证这里也可以使用ThinkPHP6自带的验证规则,创建一个验证管理员的文件 ph…

MYSQL各种日志

感谢B站up主的视频分享 黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili

2023 亚马逊云科技 re:Invent 大会探秘:Aurora 无限数据库的突破性应用

文章目录 一、前言二、Amazon Aurora 无限数据库2.1 亚马逊云科技数据库产品发展历程2.2 什么是 Amazon Aurora Limitless Database(无限数据库)2.3 Amazon Aurora Limitless Database 设计架构2.4 Amazon Aurora Limitless Database 分片功能2.5 使用 A…

xtu oj 1194 Recipient

题目描述 快递小哥每天都辛苦的送快递,今天他需要送N份快递给N个收件人,第i份快递需要送给第i个收件人。 请问其中发生恰好K个送错了的情况数是多少? 输入 存在多样例。 每行输入两个整数N和K,1≤N≤1000,0≤K≤N。 如果两个都…

pytorch中的归一化:BatchNorm、LayerNorm 和 GroupNorm

1 归一化概述 训练深度神经网络是一项具有挑战性的任务。 多年来,研究人员提出了不同的方法来加速和稳定学习过程。 归一化是一种被证明在这方面非常有效的技术。 1.1 为什么要归一化 数据的归一化操作是数据处理的一项基础性工作,在一些实际问题中&am…

SpringBoot - 事件机制使用详解(ApplicationEvent、ApplicationListener)

SpringBoot - 事件机制使用详解(ApplicationEvent、ApplicationListener) Spring 事件机制使用观察者模式来传递事件和消息。我们可以使用 ApplicationEvent 类来发布事件,然后使用 ApplicationListener 接口来监听事件。当事件发生时&#…

程序员月经焦虑 :如何成为高级工程师

高级工程师意味着什么? ChatGPT的回复:高级工程师对编程语言、软件设计原则和开发方法有深刻的理解。 开发方法 开发方法学是旨在使团队有效的组织方法。这些对我们来说可能很无聊,但我们希望你在这方面有专业知识。 我已经对非敏捷开发方法…

SAHI强化YOLOv5在小目标上的表现

文章目录 环境前言安装sahiyolov5检测sahi添加新的检测模型 环境 ubuntu 18.04 64bitsahi 0.8.4yolov5 5.0pytorch 1.7.1cu101 前言 目标检测和实例分割是迄今为止计算机视觉中最重要的应用领域,各种目标检测网络层出不穷,然而,小目标的检…

速卖通(AliExpress)店铺流量怎么转化?自养号测评策略

随着全球电商的蓬勃发展,速卖通(AliExpress)作为中国领先的跨境电商平台,为卖家提供了一个广阔的销售舞台。然而,对于卖家来说,如何让速卖通店铺实现转化,吸引更多的买家成为关键。 一、速卖通…

javaweb `jdbc.properties`文件编写

问题:查询数据库查不到,大概率是两者编码对应不上? 问题描述: 从数据库查询这一句,但数据库是有这个值的。 解决办法: 这是jdbc.properties里面写的内容 drivercom.mysql.jdbc.Driverurljdbc:mysql://12…

jmeter简单压测kafka

前言 这也是一个笔记,就是计划用jmeter做性能测试,但是这里是只要将数据放到kafka的topic里,后面查看下游业务处理能力。 一、方案 因为只要实现数据放到kafka,参考了下博友的方案,可行。 二、方案验证 详细过程就不…

iptables详解

1、介绍 iptables 是一个在 Linux 系统上用于配置和管理防火墙规则的工具。它允许系统管理员定义数据包的过滤规则、网络地址转换(NAT)规则和数据包的网络地址和端口的转发规则。iptables 提供了非常灵活和强大的功能,可以用于保护网络安全、…

微服务实战系列之MQ

前言 从今天起,席卷北国的雪,持续了一整天,北京也不例外。这场意外的寒潮,把整个冬天渲染的格外cool。当然你可以在外面打雪仗、堆雪人、拉雪橇,也可以静坐屋内,来一场围炉煮茶的party。此刻,冬…

KUKA机器人如何隐藏程序或程序段?

KUKA机器人如何隐藏程序或程序段? 如下图所示,新建一个示例程序进行说明, 如下图所示,如果红框中的动作指令不想让别人看到,想隐藏起来,如何做到? 如下图所示,在想要隐藏的程序或程序段的前后,分别添加 ;fold 和 endfold指令(这里要注意是英文状态下的输入法), 如…

安卓跳转页面闪屏,方法里需要传View 参数

/*** 跳转到首页的公共方法* */public void ToIndexpage(View v){//设置跳转的页面Intent intent new Intent(this, MainActivity.class);//实行跳转startActivity(intent);}

JS基础之闭包

JS基础之闭包 闭包闭包的目的闭包的优缺点 闭包 官方定义: 闭包是能够访问到自由变量的函数。 自由变量:能够在函数中使用,但是不是函数的参数,也不是内部的局部变量。 示例: var a 1; function foo(){console.log(a…

【Jmeter】Jmeter基础5-Jmeter元件介绍之线程(用户)

2.5.1、线程组 一个线程组即一个虚拟用户组,线程组中的每个线程即为1个虚拟用户,每个线程互相隔离,互不影响参数说明: 在取样器错误后要执行的动作 继续:忽略错误,继续执行启动下一进程循环: 终…

解决:ModuleNotFoundError: No module named ‘docx‘

解决:ModuleNotFoundError: No module named ‘docx’ 文章目录 解决:ModuleNotFoundError: No module named docx背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用之前的代码时,报错: Trace…

LainChain 原理解析:结合 RAG 技术提升大型语言模型能力

摘要:本文将详细介绍 LainChain 的工作原理,以及如何通过结合 RAG(Retrieval-Aggregated Generation)技术来增强大型语言模型(如 GPT 和 ChatGPT 等)的性能。我们将探讨 COT、TOT、RAG 以及 LangChain 的概…

_try_finally原理探究后续

入口程序的最后一道防线 这里调用mainCRTStartup(),然后调用入口程序 相当于这里才是一个进程开始执行的地方 这里有一个call调用,跟进去看看 发现有修改fs:[0]的操作,这里就相当于编译器为我们注册了一个异常处理函数 这里到kernel32.dll里面…