python基于YOLOv8全系列模型【n/s/m/l/x】开发构建不同参数量级的钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中,我们已经以钢铁产业产品缺陷检测数据场景为基准,陆续开发构建了多款目标检测模型,感兴趣的话可以自行阅读即可。

《YOLOv3老矣尚能战否?基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统,我们来与YOLOv5进行全方位对比评测》

《基于官方YOLOv4开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】》 

《基于官方YOLOv4-u5【yolov5风格实现】开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】》 

《AI助力钢铁产业数字化,python基于YOLOv5开发构建钢铁产业产品智能自动化检测识别系统》

《python基于YOLOv6最新0.4.1分支开发构建钢铁产业产品智能自动化检测识别系统》

《python基于DETR(DEtection TRansformer)开发构建钢铁产业产品智能自动化检测识别系统》 

《python基于YOLOv7系列模型【yolov7-tiny/yolov7/yolov7x】开发构建钢铁产业产品智能自动化检测识别系统》

本文的主要目的就是延续这一业务场景的模型开发,基于yolov8来开发构建不同参数量级的钢铁产品智能化质检系统,本文也是这一业务场景的最终章,首先来看实例效果:

接下来看下数据集情况:

共包含10种不同类型的产品缺陷,如下所示:

['chongkong', 'hanfeng', 'yueyawan', 'shuiban', 'youban', 'siban', 'yiwu', 'yahen', 'zhehen', 'yaozhe']

如果对YOLOv8开发构建自己的目标检测项目有疑问的可以看下面的文章,如下所示:

《基于YOLOv8开发构建目标检测模型超详细教程【以焊缝质量检测数据场景为例】》

非常详细的开发实践教程。本文这里就不再展开了,因为从YOLOv8开始变成了一个安装包的形式,整体跟v5和v7的使用差异还是比较大的。

简单的实例实现如下所示:

from ultralytics import YOLO
 
# yolov8n
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights
model.train(data='data/self.yaml', epochs=100, imgsz=640)


# yolov8s
model = YOLO('yolov8s.yaml').load('yolov8s.pt')  # build from YAML and transfer weights
model.train(data='data/self.yaml', epochs=100, imgsz=640)


# yolov8m
model = YOLO('yolov8m.yaml').load('yolov8m.pt')  # build from YAML and transfer weights
model.train(data='data/self.yaml', epochs=100, imgsz=640)


# yolov8l
model = YOLO('yolov8l.yaml').load('yolov8l.pt')  # build from YAML and transfer weights
model.train(data='data/self.yaml', epochs=100, imgsz=640)


# yolov8x
model = YOLO('yolov8x.yaml').load('yolov8x.pt')  # build from YAML and transfer weights
model.train(data='data/self.yaml', epochs=100, imgsz=640)

预训练模型可以到官方项目中自行下载即可。

五款不同参数量级的模型保持完全相同的训练参数配置,等待训练完成后,我们对其训练过程进行对比可视化,如下所示:

【mAP0.5】

mAP0.5(mean Average Precision at 0.5 intersection over union)是一种用于评估目标检测算法性能的指标。在目标检测任务中,mAP0.5衡量了检测算法在不同类别目标上的平均精度。

mAP0.5的计算过程包括以下几个步骤:

  1. 对于每个类别的目标,首先计算出每个检测结果的置信度(confidence)和相应的预测框的准确度(accuracy)。
  2. 根据置信度对检测结果进行排序,通常是按照置信度从高到低进行排序。
  3. 采用不同阈值(通常为0.5)作为IOU(Intersection over Union)的阈值,计算每个类别下的Precision-Recall曲线。
  4. 在Precision-Recall曲线上,计算出在不同召回率(Recall)下的平均精度(Average Precision)。
  5. 对所有类别的平均精度进行求平均,即得到mAP0.5指标。

mAP0.5的取值范围是0到1,数值越高表示检测算法在目标检测任务上的性能越好。它综合考虑了不同类别目标的精度和召回率,并对检测结果进行了排序和评估。

需要注意的是,mAP0.5只是mAP的一种变体,其中IOU阈值固定为0.5。在一些特定的目标检测任务中,可能会使用其他IOU阈值来计算mAP,例如mAP0.5:0.95表示使用IOU阈值从0.5到0.95的范围来计算平均精度。

整体对比来看,n系列模型的精度最低,s次之,m、l以及x系列的模型并没有非常明显的差距,从推理速度上来讲m系列的模型有着自身天然的优势。

接下来来看loss走势:

不同模型的差异不大,相对都是比较稳定的。

感兴趣的话也都可以自行尝试下!

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能优化算法应用:基于人工蜂群算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于人工蜂群算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于人工蜂群算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工蜂群算法4.实验参数设定5.算法结果6.参考…

中伟视界:AI智能分析盒子的人数统计AI算法通过什么算法模型可以解决重复统计的问题?

在AI盒子的人数统计中,常常会遇到重复统计的问题。当有多人同时出入视野范围时,传统的算法模型很难准确识别和计算人数,容易导致重复统计。为解决这一难题,AI算法模型可以采用多种方法来提高准确性并避免重复统计。 一种常用的解决…

【沐风老师】3DMAX拼图建模工具MaxPuzzle2D插件使用方法详解

MaxPuzzle2D拼图建模工具使用帮助 MaxPuzzle2D拼图建模工具,拼图建模“彩虹系列”插件,是一款用MAXScript脚本语言开发的3dMax拼图建模小工具,可以创建2D或3D的拼图图形阵列。这让需要拼图建模的设计师大大节省了时间。 MaxPuzzle2D工具界面&…

移动应用开发介绍及iOS方向学习路线(HUT移动组版)

移动应用开发介绍及iOS方向学习路线(HUT移动组版) 前言 ​ 作为一个HUT移动组待了一坤年(两年半)多的老人,在这里为还在考虑进哪个组的萌新们以及将来进组的新朋友提供一份关于移动应用开发介绍以及学习路线的白话文…

中间件安全:JBoss 反序列化命令执行漏洞.(CVE-2017-12149)

中间件安全:JBoss 反序列化命令执行漏洞.(CVE-2017-12149) JBoss 反序列化漏洞,该漏洞位于 JBoss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中,其 doFilter 方法在没有进行任何安全检查和限制的情况下尝试…

神奇植物在哪里?文心大模型助力一秒读懂花草的“前世今生”

本期文心开发者说邀请到飞桨开发者技术专家谢杰航老师,分享如何利用AI技术构建风景园林行业的植物知识科普系统,接着还介绍了大模型应用的基本技术流程框架,多模态特征提取以及使用向量数据库的优势,使用飞桨星河社区运行向量数据…

SAP VL01N Error VL 367

在VL01N 创建交货单的时候,报错:An item with no delivery quantity is not permitted. Item will be deleted. 第一种情况: 1.首先MMBEcheck 可用库存,非限制使用库存是否充足 注意:这里框出来的交货库存也是非限制…

Python超级详细的变量命名规则

Python 需要使用标识符给变量命名,其实标识符就是用于给程序中变量、类、方法命名的符号(简单来说,标识符就是合法的名字)。 Python 语言的标识符必须以字母、下画线(_)开头,后面可以跟任意数目…

GitLab 登录中,LDAP和 Standard 验证有什么区别

在 GitLab 中,LDAP(Lightweight Directory Access Protocol)和 Standard 验证是两种不同的身份验证方法,它们有以下区别: LDAP(Lightweight Directory Access Protocol)身份验证: L…

Kafka事务机制:原理和实践

Kafka事务机制:原理和实践 Apache Kafka 是一个分布式流处理平台,广泛用于构建实时数据管道和流应用程序。它不仅以高吞吐量、可扩展性和容错能力著称,还提供了事务支持,以确保数据的完整性和一致性。在这篇博客中,我…

Android flutter项目 启动优化实战(一)使用benchmark分析项目

背景描述 启动时间是用户对应用的第一印象,较慢的加载会对用户的留存和互动造成负面影响 在刚上线的B端项目中: 1.提高启动速度能提高整体流程的效率 2.提高首次运行速度能提高应用推广的初体验效果 问题描述 项目刚上线没多久、目前存在冷启动过程存在…

C#:程序发布的大小控制

.net不讨喜有个大原因就是.net平台本身太大了,不同版本没有兼容性,程序依赖哪个版本用户就要安装哪个版本,除非你恰好用的是操作系统默认安装的版本——问题是不同版本操作系统默认安装的不一样。 所以打包程序就很头疼,不打包平台…

设备管理的方法与思路

阅读本文你将了解设备管理的思路与方法:一、制定全面的管理计划;二、标准化管理流程;三、设备维护与保养;四、风险管理与预防;五、引入数字化工具。 设备管理在生产制造领域是保障生产安全和效率的核心环节。通过引入…

Android Studio 模拟器设置独立窗口

目录 模拟器在窗口内部运行 设置成独立窗口 模拟器在窗口内部运行 操作起来十分不便 设置成独立窗口 Android Studio -> Preferences(Settings) -> Tools-> Emulator ->取消勾选 Launch in a tool window -> 点击右下角的 OK 按钮 -> 重启 Android Studio

初次尝到【C知道】的甜蜜

目录 一、场景描述 二、【C知道】使用 三、【C知道】的原理 四、【C知道】的坑 一、场景描述 最近有下面的需求: mysql如何通过命令查看指定表的存储引擎 习惯性在CSDN中搜文章,自己找。 皇天不负有心人,我找到了下面这个内容&#xff0…

食谱菜谱大全API接口

食谱菜谱大全API接口 一、食谱菜谱大全API接口二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、食谱菜谱大全API接口 包含所有家用或者商用的食谱菜谱的API接口 二、使用步骤 1…

面试篇spark(spark core,spark sql,spark 优化)

一:为什么学习spark? 相比较map-reduce框架,spark的框架执行效率更加高效。 mapreduce的执行框架示意图。 spark执行框架示意图 spark的执行中间结果是存储在内存当中的,而hdfs的执行中间结果是存储在hdfs中的。所以在运算的时…

在centos7上源码安装nginx

1. 安装必要的编译工具和依赖项 在编译Nginx之前,你需要安装一些编译工具和依赖项。可以通过以下命令安装: yum install gcc-c pcre-devel zlib-devel make 2. 下载Nginx源代码 从Nginx官网下载最新的源代码。你可以使用wget命令来下载: …

ArkTS-WebView内嵌H5页面

鸿蒙开发使用WebView内嵌H5页面 访问在线网页时需添加网络权限:ohos.permission.INTERNET module.json5文件配置 {"module" : {"requestPermissions":[{"name": "ohos.permission.INTERNET"}]} }踩坑日记 加载网页效果无法…

Lombok工具包的安装和使用

目录 一.常用的注解 二.引入依赖的两种方式 1.在maven仓库中引入 2.安装插件EditStarter 三.使用举例 四.原理 Lombok是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写getter、setter或equals方法,只要有一…
最新文章