YOLOv8_测试yolov8n.pt,yolov8m.pt训练的时间和效果、推理一张图片所需时间_解决训练时进程被终止killed

本文主要是介绍YOLOv8_测试yolov8n.pt,yolov8m.pt训练的时间和效果、推理一张图片所需时间_解决训练时进程被终止killed,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接上篇英伟达Jetson搭建Yolov8环境过程中遇到的各种报错解决(涉及numpy、scipy、torchvision等)以及直观体验使用Yolov8目标检测的过程(CLI命令行操作、无需代码)-CSDN博客的进一步测试,只是好奇,建议浏览一下就行,不需要浪费时间走一遍这个流程。

主要内容:

  • yolov8n.pt和yolov8m.pt的训练时间;
  • yolov8n.pt和yolov8m.pt处理一张图片的耗时;
  • yolov8n.pt和yolov8m.pt目标检测的效果对比;
  • 尝试对视频.mp4文件进行目标检测;

1、YOLOv8提供的各种模型

YOLOv8 - Ultralytics YOLOv8 文档

YOLOv8提供了基于目标检测、实例分割、姿态检测、分类等不同类型,不同规格的模型,后缀n、s、m、l、x代表模型的规模逐渐增大。

 不同的模型的性能见下表:

关于mAPval 50-95:

  • Precision,精确度,代表预测为正的样本中有多少正确;
  • Recall,召回率,代表真正为正的样本中有多少被预测为正;
  • AP(Average Precision),平均精度,综合考虑精确度Precision和召回率Recall;
  • mAP(mean Average Precision),多个类别下,平均精度AP的均值。
  • mAPval (mean Average Precision on the validation set),在验证集上的mAP。
  • IOU(Intersection overUnion),交并比,“预测的边框”和“真实的边框”的交集/并集,为1代表完全重叠;
  • mAPval 50-95,代表在验证集上IOU=50~95之间的mAP;

关于速度:

  • CPU ONNX指的是在CPU下,使用ONNX这个模型格式推理的速度;
  • A100 TensorRT指的是在英伟达A100显卡GPU下,使用TensorRT推理的速度;

所以总结下就是,模型越大,效果越好,但推理的时间也越久;

2、yolov8n.pt和yolov8m.pt的训练时间

2.1、yolov8n.pt的训练时间

yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01

 训练10次耗时0.376小时≈22分钟。

2.2、yolov8m.pt的训练时间

yolo train data=coco128.yaml model=yolov8m.pt epochs=10 lr0=0.01

如果只是把yolov8n.pt改成yolov8m.pt,且运行设备的内存不够大(我用的是8G内存),就会出现刚开始训练就终止Killed的问题,像这样:

减小batch可以解决这个问题,默认是batch=16,我修改成batch=4之后可以正常训练,batch=-1是可以自动适配硬件这个还没有尝试。

yolo train data=coco128.yaml model=yolov8m.pt epochs=10 lr0=0.01 batch=4

训练的过程中打开jtop,关于安装jtop及可能遇到的问题在这里Jetson Orin Nano_安装jtop指令(遇到循环提示重启服务的问题)、查看系统运行情况及基本信息-CSDN博客。

可以从下图看到,即便是batch=4,6个CPU基本满负荷,内存占用大概是5.5/7.4≈74%.

最终跑完,一共耗时1.9个小时。

3、yolov8n.pt和yolov8m.pt处理一张图片的耗时

3.1、yolov8n.pt处理一张图片的耗时

一共有10张图片,平均预处理preprocess=7.3ms,推理interence=318.4ms,后处理postprocess=6ms,总计331.7ms;

3.2、yolov8m.pt处理一张图片的耗时

同样的这10张图片,平均预处理preprocess=5.6ms,推理interence=1135.1ms,后处理postprocess=3.4ms,总计1144.1ms,差不多是yolov8n.pt的3.5倍。

4、yolov8n.pt和yolov8m.pt目标检测的效果对比

yolo predict model=yolov8n.pt source='/home/lgzn/Pictures/test_car_plane'
yolo predict model=yolov8m.pt source='/home/lgzn/Pictures/test_car_plane'

对比来说yolov8m.pt效果确实明显要好,比如下图识别出car的置信度变高了,还多识别出2个bus,错误识别的traffic light也没有了。

5、尝试对视频.mp4文件进行目标检测

对图片、视频的检测并没有很大的不同,只是修改个识别的来源source:

yolo predict model=yolov8m.pt source='/home/lgzn/Pictures/video_test/ollie.mp4'

因为看到训练的日志class里面有person和skateboard这两个类别,所以试试看这个video,skateboard识别出来了并且置信度是0.9,满意。

总有一天,我的ollie会过障碍,然后一立、两立;

这篇关于YOLOv8_测试yolov8n.pt,yolov8m.pt训练的时间和效果、推理一张图片所需时间_解决训练时进程被终止killed的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/595086

相关文章

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据