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

yolov8命令行运行参数详解

序言

整理来自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)

一些比较常用的传参:

key解释
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

一些比较常用的传参:

key解释
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, )

一些常用传参解释:

key解释
source跟之前的yolov5一致,可以输入图片路径,图片文件夹路径,视频路径
save保存检测后输出的图像,默认False
conf用于检测的对象置信阈值,默认0.25
iou用于nms的IOU阈值,默认0.7
halfFP16推理,默认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')

一些常用参数解释:

key解释
format导出的格式,默认’torchscript’,可选如上支持的格式 onnx、engine、openvino等
imgsz导出时固定的图片推理大小,为标量或(h, w)列表,即(640,480) ,默认640
keras使用Keras导出TF SavedModel ,用于部署tensorflow模型,默认False
optimize是否针对移动端对TorchScript进行优化
halffp16量化导出,默认False
int8int8量化导出,默认False
dynamic针对ONNX/TF/TensorRT:动态推理,默认False
simplifyonnx simplify简化,默认False
opsetonnx的Opset版本(可选,默认为最新)
workspaceTensorRT:工作空间大小(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)

一些基准测试常用参数:

key解释
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

七、其他任务

分割参考:segment

分类参考:classify

相关文章:

yolov8命令行运行参数详解

序言 整理来自yolov8官方文档常用的一些命令行参数,官方文档YOLOv8 Docs yolov8命令行的统一运行格式为: yolo TASK MODE ARGS其中主要是三部分传参: TASK(可选) 是[detect、segment、classification]中的一个。如果没有显式传递&#xf…...

分布式锁简介

Redis因为单进程、性能高常被用于分布式锁;锁在程序中作用是同步工具,保证共享资源在同一时刻只能被一个线程访问。 Java中经常用的锁synchronized、Lock,但是Java的锁智能保证单机的时候有效,分布式集群环境就无能为力了&#xf…...

【嵌入式Linux学习笔记】Linux驱动开发

Linux系统构建完成后,就可以基于该环境方便地进行开发了,相关的开发流程与MCU类似,但是引入了设备树的概念,编写应用代码要相对复杂一点。但是省去了很多配置工作。 学习视频地址:【正点原子】STM32MP157开发板 字符…...

2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)(H题)(线段树)

又到了万物复苏的季节,家乡的苹果树结果了。像往常一样小龙同学被叫回家摘苹果。 假设需要采摘的一棵树上当前有a颗苹果,那么小龙会采摘⌈a/3⌉颗苹果,其中⌈x⌉表示不小于x的最小整数。 但是,为了可持续发展,若a小于1…...

Linux内核Thermal框架详解十三、Thermal Governor(3)

接前一篇文章Linux内核Thermal框架详解十二、Thermal Governor(2) 二、具体温控策略 上一篇文章介绍并详细分析了bang_bang governor的源码。本文介绍第2种温控策略:fair_share。 2. fair_share fair_share governor总的策略是频率档位⽐较…...

TikTok品牌出海创世纪(二)

目录 1.推荐算法打造王者品牌 2.品牌聚焦海外Z群体 3.持续扩展应用场景 加速品牌全球化传播 品牌聚焦海外Z群体 “这个地球上,三分之二的人都在用Facebook“,这是对Facebook曾经统治地位最直观的描述。 但如今,这家全球社交媒体巨头的光环正…...

iOS中SDK开发 -- cocoapods库创建

在iOS项目中,经常使用cocoadpods来进行依赖管理以及三方库引入等。引入的三方库一般会有几种形式:一、在Pods目录下可以直接看到源代码的开源库,如AFNetworking,Masonry等常见开源库。二、在Pods目录下拉取的项目文件只能看到对应…...

2023年了,还是没学会内卷....

先做个自我介绍:我,普本,通信工程专业,现在飞猪干软件测试,工作时长两年半。 回望疫情纪元,正好是实习 毕业这三年。要说倒霉也是真倒霉,互联网浪潮第三波尾巴也没抓住,狗屁造富神…...

chatGPT爆火,什么时候中国能有自己的“ChatGPT“

目录 引言 一、ChatGPT爆火 二、中国何时能有自己的"ChatGPT" 三、为什么openai可以做出chatGPT? 四、结论 引言 随着人工智能技术的不断发展,自然语言处理技术也逐渐成为了研究的热点之一。其中,ChatGPT作为一项领先的自然语言处理技术…...

【Matlab算法】粒子群算法求解一维非线性函数问题(附MATLAB代码)

MATLAB求解一维非线性函数问题前言正文函数实现(可视化处理)可视化结果前言 一维非线性函数是指函数的自变量和因变量都是一维实数,而且函数的形式是非线性的,也就是不符合线性函数的形式。在一维非线性函数中,自变量…...

2023 最新发布超全的 Java 面试八股文,整整 1000道面试题,太全了

作为一名优秀的程序员,技术面试都是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 2023 年的互联网行业竞争越来越严峻,面试也是越来越难,很多粉丝朋友私信希望我出一篇面试专题或…...

产品经理面经|当面试官问你还有什么问题?

相信很多产品经理在跳槽面试的时候,在面试尾声都会遇到这样的环节,面试官会问你有什么问题要问的,一般来说大家都能随时随地甩出几个问题来化解,但其实在这个环节对于应聘者来说也是一个很好的机会来展现自己的能力,甚…...

单链表的基本操作

目录 一.链表的基本概念和结构 二.链表的分类 三.单链表的基本操作 1.创建一个节点 2.打印 3.尾插 4.头插 5.尾删 6.头删 7.查找 8.指定位置插入 9.指定位置删除 10.销毁 一.链表的基本概念和结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结…...

【微信小程序-原生开发】系列教程目录(已完结)

01-注册登录账号,获取 AppID、下载安装开发工具、创建项目、上传体验 https://sunshinehu.blog.csdn.net/article/details/128663679 02-添加全局页面配置、页面、底部导航 https://sunshinehu.blog.csdn.net/article/details/128705866 03-自定义底部导航&#x…...

JavaEE--Thread 类的基本用法(不看你会后悔的嘿嘿)

Thread类是JVM用来管理线程的一个类,换句话说,每个线程都唯一对应着一个Thread对象. 因此,认识和掌握Thread类弥足重要. 本文将从 线程创建线程中断线程等待线程休眠获取线程实例 等方面来进行具体说明. 1)线程创建 方法1:通过创建Thread类的子类并重写run () 方法 class M…...

MySQL数据库基本使用(二)-------数据库及表的增删改查及字符集修改

1.MySQL数据库的使用演示 1.1创建自己的数据库 命令格式如下(创建的数据库名称不能与已经存在的数据库重名): mysql> create database 数据库名;例如: mysql> create database atguigudb; #创建atguigudb数据库&#xf…...

互联网摸鱼日报(2023-03-17)

互联网摸鱼日报(2023-03-17) InfoQ 热门话题 开源新生代的成长之路:从校园到开源,需要迈过哪些挑战? 从 Clickhouse 到 Apache Doris,慧策电商 SaaS 高并发数据服务的改造实践 刚刚,百度文心…...

【前后端】低代码平台Jeecg-Boot 3.2宝塔云服务器部署流程

1 后端 部署流程 修改配置文件 更改数据库、redis的配置。 在system子模块中的target文件夹下生成 jar 包jeecg-boot-module-system-3.2.0.jar。 复制到云服务器 生成数据库 在这里插入图片描述 使用命令运行后端程序 java -jar ./jeecg-boot-module-system-3.2.0.jar宝…...

leetcode todolist

数组 数组的改变、移动 453. 最小移动次数使数组元素相等 665. 非递减数列 283. 移动零 数组的旋转 189. 旋转数组 396. 旋转函数 统计数组中的元素 645. 错误的集合 697. 数组的度 448. 找到所有数组中消失的数字 442. 数组中重复的数据 41. 缺失的第一个正数 数…...

改进YOLO系列 | CVPR2023最新 PConv | 提供 YOLOv5 / YOLOv7 / YOLOv7-tiny 模型 YAML 文件

DWConv是Conv的一种流行变体,已被广泛用作许多神经网络的关键构建块。对于输入 I ∈ R c h w I \in R^{c \times h \times w} I∈...

像ChatGPT玩转Excel数据

1.引言 最近ChatGPT的出现,把人工智能又带起了一波浪潮。机器人能否替代人类又成了最近热门的话题。 今天我们推荐的一个玩法和ChatGPT有点不一样。我们的课题是“让用户可以使用自然语言从Excel查询到自己想要的数据”。 要让自然语言可以从Excel中查数据&#…...

云原生之docker容器监控详解(cAdvisor、node exporter、prometheus)

docker容器监控一、前言二、cAdvisor2.1、安装cAdvisor2.2、使用Prometheus监控cAdvisor2.3、cAdvisor暴露的Prometheus指标三、Node Exporter3.1、安装Node Exporter3.2、指标四、Prometheus4.1、安装4.2、规则配置4.3、报警管理器五、grafana一、前言 cAdvisor源码 node exp…...

<Linux>进程概念

文章目录一、什么是进程1.进程概念2.进程描述 – PCB3.task_struct内容分类二、进程的基本操作1.查看进程2.结束进程3.通过系统调用获取进程标示符4.通过系统调用创建子进程(fork)三、进程状态1.普遍的操作系统状态2.Linux操作系统状态四、两种特殊的进程1.僵尸进程2.孤儿进程五…...

数据结构——顺序表

文章目录🐨0. 前言🎈1. 顺序表的概念及定义🪁2. 接口的声明🪄3. 接口的实现🍅3.1 为何使用断言?🍒3.2 初始化与销毁🍓3.3 尾插与尾删🍉3.4 头插与头删🍹3.5 指…...

闪存系统性能优化方向集锦?AC timing? Cache? 多路并发?

1. 从Flash系统的性能提升说起从消费级产品到数据中心企业级场景,NAND Flash凭借其高性能、大容量、低功耗以及低成本等特性大受欢迎,是目前应用最为广泛的半导体非易失存储介质。为了满足业务场景越来越严苛的性能要求,人们想了许多方法来提…...

【每日一题】——网购

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟢 读书笔记 🟡 C语言跬步积累 🌈座右铭:广积粮,缓称…...

百度终于要出手了?文心一言

文心一言 百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。 前几天炒的风风火火的ChatGPT,虽然 ChatGPT 很强大&a…...

8年Java架构师面试官教你正确的面试姿势,10W字面试题带你成功上岸大厂

从最开始的面试者变成现在的面试官,工作多年以及在面试中,我经常能体会到,有些面试者确实是认真努力工作,但坦白说表现出的能力水平却不足以通过面试,通常是两方面原因: 1、“知其然不知其所以然”。做了多…...

Mybatis-Plus详解

简介MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性(官网提供)无侵入:只做增强…...

购物清单(蓝桥杯C/C++省赛)

目录 1 问题描述 2 文件的读取格式 3 代码实现 1 问题描述 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。 这不,XX大促销又来了!老板…...

wordpress 如何更新/小学生班级优化大师

一个简单快速的将MySQL的数据迁移到Redis中并且以hash方式存储,数据的存储需要遵守redis的通讯协议(官方连接 http://redis.io/topics/mass-insert),如:*3 CR LF //三个字段$3 CR LF //第一个字段 ‘set’ 有3个字节SET CR LF //字段内容set$4 CR LF …...

武汉专业网站建设推广/百度电脑版官网

在客户选定ERP软件,签定商务合同后,ERP项目即进入施行阶段,施行的意图也很清晰,即在满意客户需求的前提下尽快上线使用。 无论怎样施行,所面临的仍是两个问题,即软件和数据。 假设软件没有问题,…...

汉阳网站建设鄂icp/厦门百度代理公司

📚 本项目为从零开始学 Web 前端系列图文教程。从零基础开始,手把手教你进入前端开发的世界。从入门到进阶,我们一同前行。 项目背景 大家好,我是前端队长Daotin,想要获取更多前端精彩内容,关注我(全网同…...

济南想建设网站/百度app官方下载

centos7默认文件系统(xfs) centos6默认文件系统(ext4)XFS简介 每个单个文件系统最大支持8eb单个文件支持16tb提供备份和恢复工具文件系统的备份和恢复 XFS不需要先卸载在备份对使用中的XFS仍可保证一致性备份和恢复过程中可中断后继续高性能多线程备份操作备份简介(xfsdump) 按…...

市场调查与预测网站建设/微信crm管理系统

import sysdef check_ip(num):"""检查IP"""num = int(num)if 0 <= num <= 255:passelse:raise Except...

百度wordpress插件下载地址/佛山外贸seo

最近&#xff0c;有关最新版本的南大核心目录的帖子应该又又又刷屏了。有关北大核心和南大核心目录的帖子&#xff0c;好像已经成了惯例&#xff0c;隔三差五就会被拿出来晾凉晒晒&#xff0c;收割一波阅读量。学术圈的人&#xff0c;对于核心期刊的关注&#xff0c;可能甚于关…...