YOLOv8 目标检测项目实操

一 yolov8 背景介绍

YOLOv8是一种尖端的、最先进的(SOTA)模型,建立在以前 YOLO 版本的成功基础上,并引入了新的特性和改进,以进一步提高性能和灵活性。YOLOv8被设计为快速、准确、易于使用,这使它成为一个很好的选择,用于范围广泛的目标检测和跟踪、实例分割、图像分类和姿势估计任务。

一个不错的参考:yolov8官方代码训练模型

github yolov8 官网地址 地址:

GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch > ONNX > OpenVINO > CoreML > TFLite

 预训练模型在 coco 数据集的执行效果:

1.1 环境安装

pip install ultralytics

1.2 安装cuda

使用的是重新配置的一套环境,使用最新版的cuda 本机执行没有成功,使用11.8可以

pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

二 数据集

本项目场景比较通用,使用的网上的公共数据集,下载网站:

Roboflow Universe: Open Source Computer Vision Community

这里选择数据集下载格式:

三 执行训练 

3.1 先把代码拉到本地

git clone https://github.com/ultralytics/ultralytics.git

3.2 使用demo文件做测试

from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.yaml')  # build a new model from YAML
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # build from YAML and transfer weights# Train the model
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)

3.3 wandb 显示bug

这个报错显示了你正在使用的代码试图使用 Wandb(Weights & Biases),但是没有配置正确的 API 密钥。

要解决这个问题,你需要提供正确的 Wandb API 密钥。你可以按照之前的建议在代码中调用 wandb.login(key="your_api_key") 方法来配置 API 密钥。确保将 "your_api_key" 替换为你自己生成的 API 密钥。

3.3.1 解决方法

命令行执行:

wandb offline

方法二,没测试不知道是否可行:

import wandb
wandb.disabled = True

3.4 调整配置参数

注意 线程的数据 设置不能是8,默认设为0,设为8给我卡住了。

3.5 下载预训练模型

根据需要和场景下载适合的预训练模型:

3.6 开始训练

from ultralytics import YOLO
import multiprocessing# Load a model
model = YOLO('yolov8m.yaml')  # build a new model from YAML
model = YOLO('./yolov8m.pt')  # load a pretrained model (recommended for training)
model = YOLO('yolov8m.yaml').load('./yolov8m.pt')  # build from YAML and transfer weights# results = model.train(data='./data.yaml', epochs=10, imgsz=640)if __name__ == '__main__':multiprocessing.freeze_support()# 这里放置你的主程序代码# 例如,调用 model.train() 函数results = model.train(data='./data.yaml', epochs=500, imgsz=640)

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

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

相关文章

RAG (Retrieval Augmented Generation) 结合 LlamaIndex、Elasticsearch 和 Mistral

作者:Srikanth Manvi 在这篇文章中,我们将讨论如何使用 RAG 技术(检索增强生成)和 Elasticsearch 作为向量数据库来实现问答体验。我们将使用 LlamaIndex 和本地运行的 Mistral LLM。 在开始之前,我们将先了解一些术…

【Web】2022DASCTF Apr X FATE 防疫挑战赛 题解(全)

目录 warmup-php soeasy_php warmup-java warmup-php spl_autoload_register函数实现了当程序遇到调用没有定义过的函数时,会去找./class/函数名.php路径下的php文件,并把它包含在程序中。 拿到附件拖进Seay里自动审计一下 显然利用终点为evaluateExp…

SpringBoot项目如何实现邮件发送

文章目录 1. 开启邮箱SMTP服务2. 导入pom依赖3. 在配置文件中添加邮箱配置3. 封装EmailTask类4. 写测试类 1. 开启邮箱SMTP服务 这里以163邮箱为例,点击设置——更多设置——POP3/SMTP/IMAP——开启服务 根据提示开启服务之后会得到一个授权码,只显示一…

(通义千问,miyagpt,AlchatOS,aitianhu1,a1r,1ai)分享6个好用的GPT

目录 1、通义千问 (aliyun.com) 2、MIYAGPT (miyadns.com) 3、AIchatOS 4、 Safeline Waf CE (aitianhu1.top)

数据库:SQL分类之DCL详解

1.管理用户 1.查询用户 use mysql ; select * from user ; 2.创建用户 create user 用户名主机名 identified by 密码 ; 例: //创建用户itcast ,只能够在当前主机local host访问,密码123456 create user itcastlocalhost identified by 123456;//创建用…

postgreSql判断表是否存在某个字段

在PostgreSQL中,可以使用information_schema.columns视图来检查表是否存在某个字段。以下是一个SQL查询示例,它检查名为sys_statlog的表中是否存在名为origin_type的字段: SELECT EXISTS (SELECT 1FROM information_schema.columnsWHERE tab…

攻防演练,现在收到通知服务器已经被攻破,作为蓝方,怎么检查服务器被攻破的痕迹

在攻防演练中,如果您的服务器被告知已经被攻破,重要的是要快速并系统地响应,以确定攻击的范围、方法和影响。这包括确认攻击的痕迹、哪些数据可能被访问或盗取,以及如何尽快恢复安全状态。以下是一系列步骤和建议,帮助…

Cisco ACI使用Postman配置交换机-未完待续

先看下不使用脚本的情况下是怎么配置交换机端口的? 例: 有10个交换机接口要开trunk,透传50个vlan, 使用GUI的操作方式为 1 进入EPG -->Static port 2 右键,绑定接口 3 选中node -->指定接口—>指定vlan —>…

python 列表对象函数

对象函数必须通过一个对象调用。 列表名.函数名() append() 将某一个元素对象添加在列表的表尾 如果添加的是其他的序列,该序列也会被看成是一个数据对象 count() 统计列表当中 某一个元素出现的次数 extend() 在当前列表中 将传入的其他序列的元素添加在表尾…

JAVA后端面试

一、基础 1、创建对象的方法 new、反射、clone、反序列化 Class cl Class.forName("TestMe"); 2、有哪些引用类型 强引用、软引用、弱引用、虚引用 3、JVM 类加载机制 双亲委派机制(Parent-Delegate Model)是Java类加载器中采用的一种…

hover时预览切换,点击后才正式切换

1、使用CSS的:hover伪类 虽然这不是通过JavaScript或jQuery直接绑定事件,但CSS的:hover伪类可以用来改变元素在鼠标移入和移出时的样式。这种方法主要用于视觉效果的改变,而不是执行复杂的JavaScript逻辑。 #myElement:hover { /* 当鼠标悬停在#myEleme…

【学习笔记】Python大数据处理与分析——pandas数据分析

一、pandas中的对象 1、Series对象 由两个相互关联的数组(values, index)组成,前者(又称主数组)存储数据,后者存储values内每个元素对应关联的标签。 import numpy as np import pandas as pds1 pd.Series([1, 3, 5, 7])print(…

js如何設置滾動到元素位置

在JavaScript中,你可以使用window.scrollTo()方法或元素的scrollIntoView()方法来设置滚动位置。这些方法允许你将页面滚动到特定的坐标或元素。 使用 window.scrollTo() window.scrollTo() 方法接受两个参数:x坐标和y坐标,分别代表水平滚动…

pyqt的人脸识别 基于face_recognition库

参考文献: 1、python face_recognition实现人脸识别系统_python facerecognition检测人脸-CSDN博客 2、cv2.VideoCapture()_cv2.videocapture(0)-CSDN博客 1、camera.py文件代码如下;目录如下 import sys from PyQt5.QtWidgets import QApplication, …

JS两个按钮水平排列

要使两个按钮在水平方向上对半铺满&#xff0c;你可以使用CSS中的Flexbox布局或Grid布局。下面是使用Flexbox和Grid分别实现的示例代码&#xff1a; Flexbox布局&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF…

NineData正式将SQL开发正式升级为数据库DevOps

NineData SQL 开发早期主要提供 SQL 窗口&#xff08;IDE&#xff09;功能&#xff0c;产品经过将近两年时间的打磨&#xff0c;新增了大量的企业级功能&#xff0c;时至今日已经服务了上万开发者&#xff0c;覆盖了数据库设计、开发、测试、变更等生命周期的功能。 为了让企业…

深入理解数据结构第五弹——排序(2)——快速排序

排序&#xff08;1&#xff09;&#xff1a;深入了解数据结构第四弹——排序&#xff08;1&#xff09;——插入排序和希尔排序-CSDN博客 前言&#xff1a; 在前面我们已经讲过了几种排序方式&#xff0c;他们的效率有快有慢&#xff0c;今天我们来学习一种非常高效的排序方式…

笔记本电脑上的聊天机器人: 在英特尔 Meteor Lake 上运行 Phi-2

对应于其强大的能力&#xff0c;大语言模型 (LLM) 需要强大的算力支撑&#xff0c;而个人计算机上很难满足这一需求。因此&#xff0c;我们别无选择&#xff0c;只能将它们部署至由本地或云端托管的性能强大的定制 AI 服务器上。 为何需要将 LLM 推理本地化 如果我们可以在典配…

Hudi 表支持多种查询引擎对比

Hudi 表支持多种查询引擎对比 Apache Hudi有两种主要的表类型&#xff0c;分别是Copy on Write&#xff08;COW&#xff09;表和Merge on Read&#xff08;MOR&#xff09;表。 Copy on Write&#xff08;COW&#xff09;表&#xff1a; 特点&#xff1a;COW表在写入新数据时会…

windows下使用nginx设置静态资源路由

1、下载nginx http://nginx.org/en/download.html 下载稳定版本&#xff0c;以nginx/Windows-1.24.0为例&#xff0c;下载后解压&#xff0c;解压后如下&#xff1a; 2、启动nginx 打开cmd命令窗口&#xff0c;切换到nginx解压目录下&#xff1a; start nginx # 启动nginx服务…