YOLOv8运行参数解读

news2024/10/6 6:44:39

整理来自yolov8官方文档常用的一些命令行参数,官方文档YOLOv8 Docs

yolov8命令行的统一运行格式为:

yolo TASK MODE ARGS

其中主要是三部分传参:

  • TASK(可选) 是[detect、segment、classification]中的一个。如果没有显式传递,YOLOv8将尝试从模型类型中猜测TASK。
  • MODE(必选) 是[train, val, predict, export]中的一个
  • ARGS(可选) 是任意数量的自定义arg=value对,如imgsz=320,覆盖默认值。
    一、训练参数

训练命令行示例:

# 从YAML中构建一个新模型,并从头开始训练
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640# 从预先训练的*.pt模型开始训练
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640# 从YAML中构建一个新的模型,将预训练的权重传递给它,并开始训练
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

对应python代码示例:

from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.yaml')  # 从YAML中构建一个新模型
model = YOLO('yolov8n.pt')  #加载预训练的模型(推荐用于训练)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # 从YAML构建并传递权重# Train the model
model.train(data='coco128.yaml', epochs=100, imgsz=640)

一些比较常用的传参:

model	传入的model.yaml文件或者model.pt文件,用于构建网络和初始化,不同点在于只传入yaml文件的话参数会随机初始化
data	训练数据集的配置yaml文件
epochs	训练轮次,默认100
patience	早停训练观察的轮次,默认50,如果50轮没有精度提升,模型会直接停止训练
batch	训练批次,默认16
imgsz	训练图片大小,默认640
save	保存训练过程和训练权重,默认开启
save_period	训练过程中每x个轮次保存一次训练模型,默认-1(不开启)
cache	是否采用ram进行数据载入,设置True会加快训练速度,但是这个参数非常吃内存,一般服务器才会设置
device	要运行的设备,即cuda device =0或Device =0,1,2,3或device = cpu
workers	载入数据的线程数。windows一般为4,服务器可以大点,windows上这个参数可能会导致线程报错,发现有关线程报错,可以尝试减少这个参数,这个参数默认为8,大部分都是需要减少的
project	项目文件夹的名,默认为runs
name	用于保存训练文件夹名,默认exp,依次累加
exist_ok	是否覆盖现有保存文件夹,默认Flase
pretrained	是否加载预训练权重,默认Flase
optimizer	优化器选择,默认SGD,可选[SGD、Adam、AdamW、RMSProP]
verbose	是否打印详细输出
seed	随机种子,用于复现模型,默认0
deterministic	设置为True,保证实验的可复现性
single_cls	将多类数据训练为单类,把所有数据当作单类训练,默认Flase
image_weights	使用加权图像选择进行训练,默认Flase
rect	使用矩形训练,和矩形推理同理,默认False
cos_lr	使用余弦学习率调度,默认Flase
close_mosaic	最后x个轮次禁用马赛克增强,默认10
resume	断点训练,默认Flase
lr0	初始化学习率,默认0.01
lrf	最终学习率,默认0.01
label_smoothing	标签平滑参数,默认0.0
dropout	使用dropout正则化(仅对训练进行分类),默认0.0

数据增强参数:

在这里插入图片描述

更多参数参考:modes/train

二、评估参数

评估命令行代码示例:

yolo detect val model=yolov8n.pt  #   val 官方模型
yolo detect val model=path/to/best.pt  # val 自己训练的模型

对应的python代码:

from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.pt')  #加载官方模型
model = YOLO('path/to/best.pt')  # 加载自己训练的模型# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category

一些比较常用的传参:

model	需要评估的pt模型文件路径
data	需要评估的数据集yaml文件
imgsz	评估图片推理大小,默认640
batch	评估推理批次,默认16
save_json	是否保存评估结果为json输出,默认False
save_hybrid	是否保存混合版本的标签(标签+额外的预测)
conf	模型评估置信度阈值,默认0.001
iou	模型评估iou阈值,默认0.6
max_det	单张图最大检测目标数量,默认300
half	是否使用fp16推理,默认True
device	要运行的设备,即cuda device =0或Device =0,1,2,3或device = cpu
dnn	是否使用use OpenCV DNN for ONNX inference,默认Flase
rect	是否使用矩形推理,默认False
split	数据集分割用于验证,即val、 test、train,默认val

三、推理参数

推理命令行示例:

yolo detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

对应python代码示例:

from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model# Predict with the model
results = model('https://ultralytics.com/images/bus.jpg')  # predict on an image# 目标检测后处理
boxes = results[0].boxes
boxes.xyxy  # box with xyxy format, (N, 4)
boxes.xywh  # box with xywh format, (N, 4)
boxes.xyxyn  # box with xyxy format but normalized, (N, 4)
boxes.xywhn  # box with xywh format but normalized, (N, 4)
boxes.conf  # confidence score, (N, 1)
boxes.cls  # cls, (N, 1)
boxes.data  # raw bboxes tensor, (N, 6) or boxes.boxes .# 实例分割后处理
masks = results[0].masks  # Masks object
masks.segments  # bounding coordinates of masks, List[segment] * N
masks.data  # raw masks tensor, (N, H, W) or masks.masks # 目标分类后处理
results = model(inputs)
results[0].probs  # cls prob, (num_class, )

一些常用传参解释:

source	跟之前的yolov5一致,可以输入图片路径,图片文件夹路径,视频路径
save	保存检测后输出的图像,默认False
conf	用于检测的对象置信阈值,默认0.25
iou	用于nms的IOU阈值,默认0.7
half	FP16推理,默认False
device	要运行的设备,即cuda设备=0/1/2/3或设备=cpu
show	用于推理视频过程中展示推理结果,默认False
save_txt	是否把识别结果保存为txt,默认False
save_conf	保存带有置信度分数的结果 ,默认False
save_crop	保存带有结果的裁剪图像,默认False
hide_label	保存识别的图像时候是否隐藏label ,默认False
hide_conf	保存识别的图像时候是否隐藏置信度,默认False
vid_stride	视频检测中的跳帧帧数,默认1
classes	展示特定类别的,根据类过滤结果,即class=0,或class=[0,2,3]
line_thickness	目标框中的线条粗细大小 ,默认3
visualize	可视化模型特征 ,默认False
augment	是否使用数据增强,默认False
agnostic_nms	是否采用class-agnostic NMS,默认False
retina_masks	使用高分辨率分割掩码,默认False
max_det	单张图最大检测目标,默认300
box	在分割人物中展示box信息,默认True

yolov8支持各种输入源推理:
在这里插入图片描述

对于图片还支持以下保存格式的输入图片:
在这里插入图片描述

对于视频支持以下视频格式输入:
在这里插入图片描述

返回的result结果解析:

Results.boxes: 目标检测返回的boxes信息
Results.masks: 返回的分割mask坐标信息
Results.probs: 分类输出的类概率
Results.orig_img: 原始图像
Results.path: 输入图像的路径
result可以使用如下方法在加载到cpu或者gpu设备中:

results = results.cuda()
results = results.cpu()
results = results.to(“cpu”)
results = results.numpy()

更多细节:modes/predict

四、模型导出

yolov8支持一键导出多种部署模型,支持如下格式的模型导出:
在这里插入图片描述

命令行运行示例:

yolo export model=yolov8n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

python代码示例:

from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom trained# Export the model
model.export(format='onnx')

一些常用参数解释:

format	导出的格式,默认’torchscript’,可选如上支持的格式 onnx、engine、openvino等
imgsz	导出时固定的图片推理大小,为标量或(h, w)列表,即(640,480) ,默认640
keras	使用Keras导出TF SavedModel ,用于部署tensorflow模型,默认False
optimize	是否针对移动端对TorchScript进行优化
half	fp16量化导出,默认False
int8	int8量化导出,默认False
dynamic	针对ONNX/TF/TensorRT:动态推理,默认False
simplify	onnx simplify简化,默认False
opset	onnx的Opset版本(可选,默认为最新)
workspace	TensorRT:工作空间大小(GB),默认4
nms	导出CoreML,添加NMS

更多参考:modes/export

五、跟踪参数

yolov8目前支持:BoT-SORT、ByteTrack两种目标跟踪,默认使用BoT-SORT

命令行使用示例:

yolo track model=yolov8n.pt source="https://youtu.be/Zgi9g1ksQHc"  # official detection model
yolo track model=yolov8n-seg.pt source=...   # official segmentation model
yolo track model=path/to/best.pt source=...  # custom model
yolo track model=path/to/best.pt  tracker="bytetrack.yaml" # bytetrack tracker

python代码使用示例:

from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.pt')  # load an official detection model
model = YOLO('yolov8n-seg.pt')  # load an official segmentation model
model = YOLO('path/to/best.pt')  # load a custom model# Track with the model
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", show=True) 
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", show=True, tracker="bytetrack.yaml") 

同时支持检测和分割模型,只需要加载相应权重即可。

跟踪的传参和推理时一样,主要有三个:conf、 iou、 show

yolo track model=yolov8n.pt source="https://youtu.be/Zgi9g1ksQHc" conf=0.3, iou=0.5 show# orfrom ultralytics import YOLOmodel = YOLO('yolov8n.pt')
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", conf=0.3, iou=0.5, show=True) 

也可以自定义修改跟踪配置文件,需要修改ultralytics/tracker/cfg中的yaml文件,修改你需要的配置(除了跟踪器类型),同样的运行方式:

yolo track model=yolov8n.pt source="https://youtu.be/Zgi9g1ksQHc" tracker='custom_tracker.yaml'# orfrom ultralytics import YOLOmodel = YOLO('yolov8n.pt')
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", tracker='custom_tracker.yaml') 

六、基准测试参数

基准测试模式用于分析YOLOv8各种导出格式的速度和准确性。基准测试提供了关于导出格式的大小、其mAP50-95指标(用于对象检测和分割)或精度top5指标(用于分类)的信息,以及在各种导出格式(如ONNX、OpenVINO、TensorRT等)中,每张图像的推断时间(以毫秒为单位)。这些信息可以帮助用户根据他们对速度和准确性的需求,为他们的特定用例选择最佳的导出格式。

命令行代码示例:

yolo benchmark model=yolov8n.pt imgsz=640 half=False device=0

python代码示例:

from ultralytics.yolo.utils.benchmarks import benchmark# Benchmark
benchmark(model='yolov8n.pt', imgsz=640, half=False, device=0)

一些基准测试常用参数:

model	模型文件路径,yoloV8v.pt等
imgsz	基准测试图片大小,默认640
half	基准测试是否开启fp16,默认False
device	在哪些设备上测试cuda device=0 or device=0,1,2,3 or device=cpu
hard_fail	在错误(bool)或val下限阈值(float)时停止继续,默认False

基准测试可以支持以下导出的格式上运行测试:
在这里插入图片描述

更多参考:modes/benchmark

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

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

相关文章

智慧水务软件-科学系统架构-数字化管理

平台概述 柳林智慧水务软件是以物联感知技术、大数据、智能控制、云计算、人工智能、数字孪生、AI算法、虚拟现实技术为核心,以监测仪表、通讯网络、数据库系统、数据中台、模型软件、前台展示、智慧运维等产品体系为支撑,以城市水资源、水生态、水环境…

VGG论文翻译及复现

VGG网络实现:https://blog.csdn.net/weixin_43912621/article/details/127852595 论文地址:https://arxiv.org/abs/1409.1556 VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 用于大规模图像识别的深度卷积网络 Abstract In t…

Salesforce Admin管理员中文学习教程,如何高效筛选出具有Admin权限的用户!

组织中最常见的错误之一就是拥有太多具有系统管理员简档的用户。不幸的是,这在某些行业中非常普遍。 实际上这存在着很大的潜在风险。拥有这些权限的用户可能会暴露、窃取或删除组织中的数据,甚至影响到其他用户。防止过多的管理员访问权限是保护Salesf…

基于Python机器学习、深度学习技术提升气象、海洋、水文领域实践应用能力

目录 专题一、Python软件的安装及入门 专题二、气象常用科学计算库 专题三、气象海洋常用可视化库 专题四、爬虫和气象海洋数据 专题五、气象海洋常用插值方法 专题六、机器学习基础理论和实操 专题七、机器学习的应用实例 专题八、深度学习基础理论和实操 专题九、深…

摸鱼也可以效率翻倍:Python 统计 gitlab 代码量,定量统计发给领导

嗨害大家好鸭!我是爱摸鱼的芝士❤ 一、确定需求 需求是公司大领导想要了解每周研发提交的代码量。 因为研发人员比较多, 想着用 python 做个自动化, 定时统计代码量并发送邮件给领导。 二、统计gitlab代码 首先安装第三方库python-gitlab&…

如何提升智能文档处理识别精度?合合信息“版面分析”实现新突破

春季是繁忙的播种季,学生党迎来了开学季和紧张的研究生复试,职场人士也需要处理新签业务带来的大量不同类型的文件,比如合同、发票、档案等。这些文件在被拍照、扫描成电子文档的过程中,时常存在漏字、错位现象。究其原因&#xf…

kali的下载与安装(VM虚拟机)

目录 一、介绍 二、下载安装 (一)官网下载kali (二)官网下载VM虚拟机 (三)安装VM虚拟机 (三)VM虚拟机里面安装kali系统 一、介绍 (1)Kali Linux是一种基…

基于Chatbot UI 实现ChatGPT对话-V1.0

基于Chatbot UI 实现ChatGPT对话-V1.0 前端基于开源项目:chatbot-ui进行二次开发,感兴趣的小伙伴可以自行研究。 本项目搭建初衷:在无法科学上网的情况下,实现ChatGPT对话。还有规避官方聊天时,长时间无链接导致的问题…

“GPT全家桶”,喂不饱商汤科技

加码追风大模型,终究没能让商汤科技找回投资者们的信心。 4月10日,商汤发布了“日日新SenseNova”大模型体系,且一口气展示了多个产品,有类ChatGPT产品“商量”(SenseChat)、与Midjourney画风一致的秒画平台…

语句覆盖率\条件覆盖率\路径覆盖率\分支覆盖率的区别您知道吗

代码覆盖率 代码覆盖率是一种度量,它描述了程序源代码已经过测试的程度,它可以帮助我们评估测试执行的效率, 简单来理解代码覆盖率就是单元测试中代码执行量与代码总量之间的比率。代码覆盖率主要包括语句覆盖率、分支覆盖率、条件覆盖率和路…

【Linux】实现守护进程 | 以tcpServer为例

本文首发于 慕雪的寒舍 本文将以tcp服务器代码为基本,讲述如何将进程守护进程化,后台运行 1.守护进程 所谓守护进程,就是和其他进程没有关系的进程;其独立运行于系统后台,除非自己退出或收到信号终止,否则…

逆向-还原代码之(*point)[4]和char *point[4] (Arm 64)

// source code #include <stdio.h> #include <string.h> #include <stdlib.h> /* * char (*point)[4] // 数组指针。 a[3][4] // 先申明二维数组,用它来指向这个二维数组 * char *point[4] // 指针数组。 a[4][5] // 一连串的指针…

编程语言,TIOBE 4 月榜单:黑马出现了

TIOBE 4 月榜单已经发布了&#xff0c;一起来看看这个月编程语言排行榜有什么变化吧&#xff01; C 发展依旧迅猛 在本月榜单中&#xff0c;TOP 20 的变动不大&#xff0c;Python、C、Java 、 C 和C#依然占据前五。甚至排名顺序都和上个月一样没有变动。 同时&#xff0c;Rus…

【图形学】多边形裁剪算法综述

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本文是个人学习多边形裁剪知识整理的&#xff0c;整理期间努力理解论文作者含义&#xff0c;并增加了自己的详述和注解。 &#x1f970;来源&#xff1a;材料主要源于多边形裁剪相关论文进行的&#xff0c;每个知识点的学习…

第三十一天 Linux介绍和基础命令

目录 1.前言 1.1 什么是Linux 1.2 为什么要学Linux 1.3 学完Linux能干什么 2.Linux简介 2.1 主流操作系统 2.2 Linux发展历史 3. Linux安装 3.1 安装方式介绍 3.2 安装VMware 3.3 安装Linux 3.4 网卡设置 3.5 安装SSH连接工具 3.6 Linux目录结构 4.Linux常用命令…

洛谷P8772 [蓝桥杯 2022 省 A] 求和 C语言/C++

[蓝桥杯 2022 省 A] 求和 题目描述 给定 nnn 个整数 a1,a2,⋯,ana_{1}, a_{2}, \cdots, a_{n}a1​,a2​,⋯,an​, 求它们两两相乘再相加的和&#xff0c;即 Sa1⋅a2a1⋅a3⋯a1⋅ana2⋅a3⋯an−2⋅an−1an−2⋅anan−1⋅anSa_{1} \cdot a_{2}a_{1} \cdot a_{3}\cdotsa_{1} \cd…

SpringCloud学习(五)——Nacos配置管理

文章目录1. Nacos实现配置管理2. 微服务拉取配置2.1 拉取优先级2.2 导入依赖2.3 添加注解2.4 配置热更新3. 使用 ConfigurationProperties3.1 使用注解3.2 测试4. 多环境共享配置4.1 添加依赖4.2 配置文件4.3 更改属性4.4 测试4.5 配置优先级1. Nacos实现配置管理 当微服务部署…

【测试面试】吐血整理,大厂测试开发岗面试题(1~4面),拿下年40w...

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 自动化测试面试题&am…

scConverter 文档转换 DLL / SDK 2023.3.21 Crack

scConverter 转换 DLL / SDK scConverter 是一个DLL&#xff0c;可以将PDF、DWF、Gerber、CGM、TIFF、CALS、PLT、PNG和JPEG文件转换为大量输出格式。可用的输出格式列表包括Adob​​e PDF、PDF/A、DXF、DWF、CALS、TIFF、PLT和PNG。您将在下面找到所有可用输入和输出格式的完整…

计算机算法设计与分析(第5版)PDF

《计算机算法设计与分析&#xff08;第5版&#xff09;》是2018年电子工业出版社出版的图书&#xff0c;作者是王晓东。 整本书的结构是&#xff1a;先介绍算法设计策略思想&#xff0c;然后从解决经典算法问题来学习&#xff0c;通过实践的方式去学习算法。 网络上许多的算法…