当前位置: 首页 > news >正文

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.lryc.cn/news/247122.html

相关文章:

  • 力扣142. 环形链表 II
  • 【设计模式-2.2】创建型——简单工厂和工厂模式
  • 将文件读入C中的字符数组
  • 不小心删除了短信,如何在 Android 上恢复已删除的短信
  • Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购、等业务的企业
  • springBoot的实现原理;SpringBoot是什么;使用SpringBoot的核心功能;springBoot核心注解以及核心配置文件
  • logback-spring.xml详解
  • 【Python】nn.BCEWithLogitsLoss函数详解
  • 【C++】日期类的实现
  • 带残差连接的ResNet18
  • 【深入解析git和gdb:版本控制与调试利器的终极指南】
  • CGAN原理讲解与源码
  • C#实体类与XML互转以及List和DataTable转XML的使用
  • uniapp的vue3的模版的setup函数内使用uniapp内置方法
  • UI自动化的基本知识
  • python实现C++简易自动压行
  • 京东数据分析(京东大数据采集):2023年线上珍珠市场销售数据采集
  • 亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证
  • 现代C++之万能引用、完美转发、引用折叠
  • ELK日志收集系统-filbeat
  • Python小知识
  • 如何在Ubuntu系统上安装Redis
  • Vue2问题:如何全局使用less和sass变量?
  • Java 基础学习(四)操作数组、软件开发管理
  • git仓库如何撤销提交,恢复提交,重置版本命令
  • Java 基础学习(三)循环流程控制与数组
  • 别太担心,人类只是把一小部分理性和感性放到了AI里
  • 最新AIGC创作系统ChatGPT系统源码+DALL-E3文生图+图片上传对话识图/支持OpenAI-GPT全模型+国内AI全模型
  • 在centos7上源码安装nginx
  • Html网页threejs显示obj,ply三维图像实例