【Yolov8自动标注数据集完整教程】

news2024/11/26 0:35:54

在这里插入图片描述

Yolov8自动标注数据集完整教程

  • 1 前言
  • 2 先手动标注数据集,训练出初步的检测模型
    • 2.1 手动标注数据集
    • 2.2 Yolov8环境配置
      • 2.2.1 Yolov8下载
      • 2.2.2 Yolov8环境配置
    • 2.3 Yolov8模型训练,得到初步的检测模型
      • 2.3.1 训练方式
  • 3 使用初步的检测模型实现自动数据集标注
    • 3.1 使用初步的检测模型生成labels
      • 3.1.1 修改default.yaml的参数配置,以保存由模型预测得到的labels的.txt文件
      • 3.1.2 预测待自动标注的数据集
    • 3.2 微调labels

1 前言

使用Yolov8自动标注自己的数据集,大致步骤:
(1)首先,先手动标注一部分数据集,进行模型训练,得到初步的检测模型
(2)然后,使用初步的检测模型实现自动数据集标注。具体而言,将需要自动标注的数据集,通过预测predict的方式,生成labels,并使用标注工具labels进行微调
接下来,将详细介绍Yolov8自动标注数据集的具体步骤。

2 先手动标注数据集,训练出初步的检测模型

2.1 手动标注数据集

标注工具推荐两种,分别为在线标注网站MakeSense{MakeSense具体标注教程}和离线软件labelImg{ labelImg具体标注教程}。

2.2 Yolov8环境配置

2.2.1 Yolov8下载

下载命令:

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

注:
Yolov8下载地址:https://github.com/ultralytics/ultralytics/tree/main
模型下载地址:https://docs.ultralytics.com/tasks/detect/

Modelsize
(pixels)
mAPval
50-95
Speed
CPU ONNX
(ms)
Speed
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.8

2.2.2 Yolov8环境配置

conda create -n yolo_tracking python=3.8
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=10.2 -c pytorch
conda install loguru
pip install opencv-python
pip install gdown
conda install scipy
pip install --upgrade charset-normalizer
conda install -c conda-forge lap
pip install ultralytics

注:在配置环境过程中,如遇到 pip安装问题,可查看pip安装问题常见解决办法

2.3 Yolov8模型训练,得到初步的检测模型

2.3.1 训练方式

yolo task=detect mode=train model=/home/y/Code/yolo_tracking/weights/yolov8x.pt data=datasets/my_BulletHole.yaml epochs=300 batch=4
或者
yolo task=detect mode=train model==yolov8x.yaml data=datasets/my_BulletHole.yaml epochs=300 batch=4

3 使用初步的检测模型实现自动数据集标注

3.1 使用初步的检测模型生成labels

3.1.1 修改default.yaml的参数配置,以保存由模型预测得到的labels的.txt文件

在使用初步的检测模型生成labels之前,需要修改default.yaml文件,使得预测的结果能够以.txt的形式保存。
在终端输入 yolo cfg找到default.yaml的位置,并将save_txt的false改为true
具体命令如下:

# 找到default.yaml的位置 
yolo cfg

# 打开 default.yaml文件
sudo gedit /home/y/anaconda3/envs/yolo_tracking/lib/python3.8/site-packages/ultralytics/cfg/default.yaml
# 将save_txt的值修改为True

案例:
找到default.yaml的位置 ,我的default.yaml文件的路径为:
‘/home/y/anaconda3/envs/yolo_tracking/lib/python3.8/site-packages/ultralytics/cfg/default.yaml’
在这里插入图片描述打开default.yaml文件,将save_txt的值修改为True,并ctrl+s进行保存
在这里插入图片描述
在这里插入图片描述

3.1.2 预测待自动标注的数据集

yolo predict model=runs/detect/train8/weights/best.pt source=/home/y/Code/test/test_dataset

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2 微调labels

最后使用标注工具进行微调,这里我们使用的是labelImg,加载images和labels进行微调。
labelImg的具体安装步骤和使用方法,已在labelImg具体标注教程介绍,此处不再赘述。

在这里插入图片描述在这里插入图片描述

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

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

相关文章

STM32 I2C OVR 错误

一、问题 STM32 I2C 用作从机时,开启如下中断并启用 callback 回调函数。 每一次复位后,从机都可以正常触发地址匹配中断ADDR,之后在该中断的回调函数中启用接收中断去收取数据时,却无法进入RXNE中断,而是触发了 OVR …

《数据分析-JiMuReport08》JiMuReport报表开发-报表列数量开发限制调整

JiMuReport报表开发列数量限制调整 1.开发列数限制 JiMuReport报表在开发的时候,需要100-200列的数据,但是在设计到一定数量的时候,水平下拉框就不能滑动了 2.报表参数调整 col: n 在application.yml文件的jmreport配置处,如果想…

【C++】特殊类的设计 | 类型转换

文章目录 1. 特殊类的设计单例模式饿汉模式具体代码 懒汉模式具体代码 懒汉模式和饿汉模式的优缺点 2. C的类型转换C语言的类型转换C的类型转换static_castreinterpret_castconst_castdynamic_cast 1. 特殊类的设计 单例模式 设计模式是 被反复使用 多数人知晓 经过分类的、代…

【Docker】Docker中容器之间通信方式

文章目录 1. Docker容器之间通信的主要方式1.1 通过容器ip访问1.2. 通过宿主机的ip:port访问1.3. 通过link建立连接(官方不推荐使用)1.4. 通过 User-defined networks(推荐) 2. 参考资料 1. Docker容器之间通信的主要方式 1.1 通…

OpenCV图像处理-视频分割静态背景-MOG/MOG2/GMG

视频分割背景 1.概念介绍2. 函数介绍MOG算法MOG2算法GMG算法 原视频获取链接 1.概念介绍 视频背景扣除原理:视频是一组连续的帧(一幅幅图组成),帧与帧之间关系密切(GOP/group of picture),在GOP中,背景几乎…

前端面试题汇总大全!

文章目录 前端面试题汇总大全(含答案超详细)-- 持续更新一、HTML 篇1.xhtml和html有什么区别2.行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别3. 简述一下你对 HTML 语义化的理解&a…

sql进阶 之case表达式

case表达式 CASE表达式是SQL里非常重要而且使用起来非常便利的技术,我们应该学会用它来描述条件分支。本节将通过行列转换、已有数据重分组(分类)、与约束的结合使用、针对聚合结果的条件分支等例题,来介绍CASE表达式的用法。标红…

在 3dsmax 中创建电影场景

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 有时,通过简单的图像和简单的技术,我们可以创建有效的输出。在本教程中,您将学习如何在 3ds max 中使用三个简单图像创建电影场景。 步骤-1 让我们在 photoshop 中为场…

Java 二维码生成解析

生成二维码需要两个jar包 Download core JAR 3.5.1 ➔ With all dependencies! Download javase JAR 3.5.1 ➔ With all dependencies! 将下载后的jar包添加项目依赖 import com.google.zxing.*; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.googl…

具身智能,是机器人的“冷饭热炒”吗?

大模型正如火如荼,下一个AI风口就来了。 如果你关注2023世界人工智能大会等行业峰会,以及英伟达、微软、谷歌、特斯拉和国內科技大厂的最新发布会,除了“大模型”,应该会听到另一个高频词——具身智能。 所谓具身智能Embodied AI …

【运维】 第05课:Curl 命令最常见使用方式及案例

本课时我们主要了解 Curl 命令的使用和常见案例。在学习本课时的内容之前,你需要先了解 HTTP 的请求过程,以及 Linux 操作系统的基础知识。 首先,我们先来介绍一下 Curl ,Curl 是一个Linux命令行中的工具,它模拟客户端…

JAVA解析EXCEL(JExcelAPI,POI,EasyExcel)

前言 文章目录 前言JExcelAPIDemo POIHSSFWorkBookXSSFWorkBookDemo SXSSFWorkBookDemo XSSFReaderDemo EasyExcelDemo demo代码:https://github.com/RwTo/excel-demo JAVA解析Excel 一般有三种方式 JExcelAPI POI EasyExcel JExcelAPI 官网:https://je…

centos安装psql客户端

前言:postgresql数据库采用docker部署,想在宿主机测试访问或数据库备份,则需要安装postgresql客户端,即psql命令 环境:centos7,x86,yum 下面以 postgresql-11 为例 安装镜像 yum install htt…

探索 APK 文件的内部:了解 Android 应用程序的组织结构

I. 什么是 APK 文件 APK (Android application package) 是构建和发布 Android 应用程序的关键组成部分,APK 文件是应用程序的打包格式,它将应用程序的代码、资源和清单信息组合在一起,以便在设备上进行安装和运行。 简称 ”安装包“&#…

Linux系统安装部署Jenkins详细教程(图文讲解)

前言:最近需要使用Jenkins部署项目,所以想出一篇关于如何使用Linux系统安装部署Jenkins的相关教程,整体部署过程还是挺顺利的,特此分享一下! 目录 一、安装JDK11和Tomcat11 二、准备Jenkins安装包 三、部署Jenkins…

云端环境跑通BaseLine

云端环境跑通BaseLine 一、实验流程实践 1.报名 报名日期:2023年7月17日,参与AI夏令营第一期 彳 z h i 亍 c h u ,都为第四声 \overset{zhi}{彳}\overset{chu}{亍},都为第四声 彳zhi亍chu,都为第四声 怎么报名的&a…

C++OpenCV(7):图像形态学基础操作

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 🔆 OpenCV项目地址及源代码:点击这里 文章目录 膨胀与腐蚀形态学基础 膨胀与腐蚀 膨胀与腐蚀是数学形态学在图像处理中最基础的操作。 膨胀操作是取每个位置领域内最大值&#xff0…

linux系统编程--线程同步

1.同步概念 所谓同步,即同时起步,协调一致。不同的对象,对“同步”的理解方式略有不同。如,设备同步,是指在两个设备之间规定一个共同的时间参考;数据库同步,是指让两个或多个数据库内容保持一致…

13、ffmpeg使用nvidia显卡对OAK深度相机进行解码和编码

基本思想:简单使用nvidia的硬件解码进行oak相机的编码和解码学习 一、在本机rtx3060配置好显卡驱动和cuda之后进行下面操作50、ubuntu18.04&20.04CUDA11.1cudnn11.3TensorRT7.2/8.6Deepsteam5.1vulkan环境搭建和YOLO5部署_ubuntu18.04安装vulkan_sxj731533730的…

C# 右键菜单 contextMenuStrip

最近需要使用到C#的右键菜单contextMenuStrip控件。 这里记录一下。 首先在工具箱中找到contextMenuStrip控件。将他拖到你的窗体中,如下图所示: 默认名称为:contextMenuStrip1. 然后将你需要使用右键属性的控件和contextMenuStrip1绑定起…