东营网站排名优化公司,网站建设方案书是啥,中信建设有限责任公司云南分公司电话,深圳好的网站制作哪家快智慧农业随着数字化信息化浪潮的演变有了新的定义#xff0c;在前面的系列博文中#xff0c;我们从一些现实世界里面的所见所想所感进行了很多对应的实践#xff0c;感兴趣的话可以自行移步阅读即可#xff1a;
《自建数据集#xff0c;基于YOLOv7开发构建农田场景下杂草…智慧农业随着数字化信息化浪潮的演变有了新的定义在前面的系列博文中我们从一些现实世界里面的所见所想所感进行了很多对应的实践感兴趣的话可以自行移步阅读即可
《自建数据集基于YOLOv7开发构建农田场景下杂草检测识别系统》
《轻量级目标检测模型实战——杂草检测》
《激光除草距离我们实际的农业生活还有多远结合近期所见所感基于yolov8开发构建田间作物杂草检测识别系统》
《基于yolov5的农作物田间杂草检测识别系统》
《AI助力智慧农业基于YOLOv3开发构建农田场景下的庄稼作物、田间杂草智能检测识别系统》
《AI助力智慧农业基于YOLOv5全系列模型【n/s/m/l/x】开发构建不同参数量级农田场景下庄稼作物、杂草智能检测识别系统》 《AI助力智慧农业基于YOLOv6最新版本模型开发构建不同参数量级农田场景下庄稼作物、杂草智能检测识别系统》
《AI助力智慧农业基于YOLOv7【tiny/yolov7/yolov7x】开发构建不同参数量级农田场景下庄稼作物、杂草智能检测识别系统》
《AI助力智慧农业基于YOLOv4开发构建不同参数量级农田场景下庄稼作物、杂草智能检测识别系统》
自动化的激光除草是未来大面积农业规划化作物种植生产过程中非常有效的技术手段本文是AI助力智慧农业的第六篇系列博文主要的目的就是想要基于yolov8来开发构建不同参数量级的检测模型助力智能检测分析。
首先看下实例效果 实例数据集如下所示 共包含2种不同类型的目标对象如下所示
[crop, weed]
如果对YOLOv8开发构建自己的目标检测项目有疑问的可以看下面的文章如下所示
《基于YOLOv8开发构建目标检测模型超详细教程【以焊缝质量检测数据场景为例】》
非常详细的开发实践教程。本文这里就不再展开了因为从YOLOv8开始变成了一个安装包的形式整体跟v5和v7的使用差异还是比较大的。
YOLOv8核心特性和改动如下 1、提供了一个全新的SOTA模型state-of-the-art model包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于YOLACT的实例分割模型。和 YOLOv5 一样基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型用于满足不同场景需求 2、骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构并对不同尺度模型调整了不同的通道数属于对模型结构精心微调不再是一套参数应用所有模型大幅提升了模型性能。 3、Head 部分相比 YOLOv5 改动较大换成了目前主流的解耦头结构将分类和检测头分离同时也从Anchor-Based 换成了 Anchor-Free 4、Loss 计算方面采用了TaskAlignedAssigner正样本分配策略并引入了Distribution Focal Loss 5、训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作可以有效地提升精度
官方项目地址在这里如下所示 目前已经收获超过1.6w的star量了。官方提供的预训练模型如下所示
Modelsize (pixels)mAPval 50-95Speed CPU ONNX (ms)Speed A100 TensorRT (ms)params (M)FLOPs (B)YOLOv8n64018.4142.41.213.510.5YOLOv8s64027.7183.11.4011.429.7YOLOv8m64033.6408.52.2626.280.6YOLOv8l64034.9596.92.4344.1167.4YOLOv8x64036.3860.63.5668.7260.6
简单的实例实现如下所示
from ultralytics import YOLO# yolov8n
model YOLO(yolov8n.yaml).load(yolov8n.pt) # build from YAML and transfer weights
model.train(datadata/self.yaml, epochs100, imgsz640)# yolov8s
model YOLO(yolov8s.yaml).load(yolov8s.pt) # build from YAML and transfer weights
model.train(datadata/self.yaml, epochs100, imgsz640)# yolov8m
model YOLO(yolov8m.yaml).load(yolov8m.pt) # build from YAML and transfer weights
model.train(datadata/self.yaml, epochs100, imgsz640)# yolov8l
model YOLO(yolov8l.yaml).load(yolov8l.pt) # build from YAML and transfer weights
model.train(datadata/self.yaml, epochs100, imgsz640)# yolov8x
model YOLO(yolov8x.yaml).load(yolov8x.pt) # build from YAML and transfer weights
model.train(datadata/self.yaml, epochs100, imgsz640)
预训练模型可以到官方项目中自行下载即可。
五款不同参数量级的模型保持完全相同的训练参数配置等待训练完成后我们对其训练过程进行对比可视化如下所示
【mAP0.5】
mAP0.5mean Average Precision at 0.5 intersection over union是一种用于评估目标检测算法性能的指标。在目标检测任务中mAP0.5衡量了检测算法在不同类别目标上的平均精度。
mAP0.5的计算过程包括以下几个步骤
对于每个类别的目标首先计算出每个检测结果的置信度confidence和相应的预测框的准确度accuracy。 根据置信度对检测结果进行排序通常是按照置信度从高到低进行排序。 采用不同阈值通常为0.5作为IOUIntersection over Union的阈值计算每个类别下的Precision-Recall曲线。 在Precision-Recall曲线上计算出在不同召回率Recall下的平均精度Average Precision。 对所有类别的平均精度进行求平均即得到mAP0.5指标。 mAP0.5的取值范围是0到1数值越高表示检测算法在目标检测任务上的性能越好。它综合考虑了不同类别目标的精度和召回率并对检测结果进行了排序和评估。
需要注意的是mAP0.5只是mAP的一种变体其中IOU阈值固定为0.5。在一些特定的目标检测任务中可能会使用其他IOU阈值来计算mAP例如mAP0.5:0.95表示使用IOU阈值从0.5到0.95的范围来计算平均精度。 接下来来看loss走势 不同模型的差异不大相对都是比较稳定的。
感兴趣的话也都可以自行尝试下