YOLOv8-OBB 旋转目标检测训练自己的数据

数据集制作

标注工具:X-AnyLabeling

https://github.com/CVHub520/X-AnyLabeling

下载链接:https://pan.baidu.com/s/1UsnDucBDed8pU1RtaVZhQw?pwd=5kel 
 

数据标注可以参考:https://zhuanlan.zhihu.com/p/665036259

1. 选择导出方式为DOTA标签; 

2. 使用方法

基本用法

  • 按下快捷键 "O" 来创建一个旋转形状。
  • 打开编辑模式(快捷键:"Ctrl+J")并单击选择旋转框。
  • 通过快捷键 "zxcv" 旋转所选框,其中:
    • z:大角度逆时针旋转
    • x:小角度逆时针旋转
    • c:小角度顺时针旋转
    • v:大角度顺时针旋转

高级用法

此外,您可以使用训练好的模型批量预标记当前数据集。

  • 按下快捷键 "Ctrl+A" 打开自动标注模式;
  • 选择一个适当的默认模型或加载自定义模型。
  • 按下快捷键 "Ctrl+M" 运行所有图像一次。

标注好的数据格式:

--images
    -- 1.png
    -- 1.json
    -- 2.png
    -- 2.json
-- labels
        --1.txt
        --2.txt

注意:yolov8 训练时使用png图像格式,如果不是,需要转换成png,或者更改代码!为方便可以将图片批量处理成png格式!!

训练数据

1. 安装yolov8

参考:https://github.com/ultralytics/ultralytics

Pip install the ultralytics package including all requirements in a Python>=3.8 environment with PyTorch>=1.8.

在满足以上pytorch运行环境下,直接pip安装即可!也可以将代码git到本地!

pip install ultralytics

 2. 新建项目文件夹,用于存放数据集以及相关配置文件,权重等。

其中datasets为标注的数据,需要目录格式如下:

--images
    --test
      --test_1.png
      --test_2.png
    --train
      --train_1.png
      --train_2.png
    --val
      --val_1.png
      --val_2.png
--labels
    --train_original
        --train_1.txt
        --train_2.txt
    --test_original
        --test_1.txt
        --test_2.txt
    --val_original
        --val_1.txt
        --val_2.txt

3. 将dota数据格式转换为yolo_obb格式;

  •  需要进入convert_dota_to_yolo_obb中修改 class_mapping = {}

     如果本地安装,目录如下:

D:\Anaconda3\envs\pytorch2.0\Lib\site-packages\ultralytics\data\converter.py

 

  • 执行转换代码
    # 转换代码
    from ultralytics.data.converter import convert_dota_to_yolo_obb
    # 将 DOTA 数据集格式转换为YOLO OBB 格式,所传参数为dota格式数据集路径
    convert_dota_to_yolo_obb(r'C:\Users\Administrator\Desktop\chip_detection\datasets')
    转换后格式如下: 

 4 . 创建\修改训练配置文件

  • 创建DOTAv1.5.yaml,修改数据集路径和names标签名;
# Ultralytics YOLO 🚀, AGPL-3.0 license
# DOTA 1.5 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.5.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota1.5  ← downloads here (2GB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: C:/Users/Administrator/Desktop/chip_detection/datasets # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 images

# Classes for DOTA 1.5
names:
  0: 'a0'
  1: 'a1'
  2: 'b0'
  3: 'b1'
  4: 'b2'
# Download script/URL (optional)
# download: https://github.com/ultralytics/assets/releases/download/v0.0.0/DOTAv1.5.zip
  • 修改类别各数
    D:\Anaconda3\envs\pytorch2.0\Lib\site-packages\ultralytics\cfg\models\v8\yolov8-obb.yaml

5. 开始训练  

yolo train model=yolov8n-obb.pt data=DOTAv1.5.yaml batch=8 workers=1

训练结束:

 

6. 测试

 yolo predict model="C:\Users\Administrator\Desktop\chip_detection\runs\obb\train6\weights\best.pt" source="C:\Users\Administrator\Desktop\chip_detection\datasets\images\test\Core_70.png"

 7.导出

8.推理

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu搭建Android架构so库交叉编译环境

目录 前言一、下载NDK并安装二、安装NDK三、配置交叉编译工具链四、编写交叉编译脚本 前言 需要将一些源码编译成Android可用的架构的so库 一、下载NDK并安装 https://developer.android.google.cn/ndk/downloads/ 二、安装NDK 将下载下来的android-ndk-r23b-linux.zip解压…

[GICv3] 3. 物理中断处理(Physical Interrupt Handling)

中断生命周期 ​​ 外设通过中断信号线生成中断,或者软件生成中断(SGI)。Distributor 和 ReDistributor 配合按照中断分组和中断优先级仲裁后将最高优先级的中断分发到 CPU interface。cpu interface 向中断发送到 PEPE 读取 IAR 寄存器&am…

力扣 24两两交换链表中节点

画图 注意有虚拟头结点 注意判断时先判断cur->next ! nullptr,再判断cur->next->next ! nullptr 注意末尾返回dumyhead->next,用新建result指针来接并返回 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode *dummyhead new …

高等数学第一讲:函数极限与连续

函数极限与连续 文章目录 函数极限与连续1.函数概念与特性1.1 函数定义 1.2 几种重要的基本函数类型1.2.1 反函数1.2.2 复合函数1.2.3 隐函数 1.3 函数的基本特性1.3.1 有界性1.3.2 单调性1.3.3 奇偶性1.3.4 周期性 2. 函数的极限2.1函数的极限的定义2.2 函数的极限的性质2.3 无…

昇思25天学习打卡营第19天|基于MindNLP+MusicGen生成自己的个性化音乐

MusicGen是来自Meta AI的Jade Copet等人提出的基于单个语言模型(LM)的音乐生成模型,能够根据文本描述或音频提示生成高质量的音乐样本,相关研究成果参考论文《Simple and Controllable Music Generation》。 MusicGen模型基于Tra…

LabVIEW液压数据采集测试系统

液压系统是装载机的重要组成部分,通过液压传动和控制实现各项作业功能,如提升、倾斜、转向等。液压系统的性能直接影响装载机的作业效率和稳定性。为了保证装载机液压系统的正常运行和优化设计,需要对其进行数据采集和测试。本文介绍了一套基…

jQuery代码原封不动的显示在网页中,应该是没有放在script标签中

jQuery代码原封不动的显示在网页中&#xff0c; 应该是没有放在script标签中 <body> <span id"a1">I am a element by id is a1</span>$(#a1).attr({name:spanDom,title:a1Title}); alert($(#a1).attr(id));alert($(#a1).attr(name));alert($(#a1…

企业网三层架构

企业网三层架构&#xff1a;是一种层次化模型设计&#xff0c;旨在将复杂的网络设计分成三个层次&#xff0c;每个层次都着重于某些特定的功能&#xff0c;以提高效率和稳定性。 企业网三层架构层次&#xff1a; 接入层&#xff1a;使终端设备接入到网络中来&#xff0c;提供…

昇思25天学习打卡营第20天 | 基于MindNLP+MusicGen生成自己的个性化音乐

基于MindNLPMusicGen生成个性化音乐 实验简介 MusicGen是Meta AI提出的音乐生成模型&#xff0c;能够根据文本描述或音频提示生成高质量音乐。该模型基于Transformer结构&#xff0c;分为三个阶段&#xff1a;文本编码、音频token预测和音频解码。此实验将演示如何使用MindSpo…

【JavaEE】AOP实现原理

概述 Spring AOP 是基于动态代理来实现AOP的, 此处主要介绍代理模式和Spring AOP的源码剖析 一.代理模式 代理模式是一种常用的设计模式&#xff0c;它允许为其他对象提供代理&#xff0c;以控制对这个对象的访问。这种结构在不改变原始类的基础上&#xff0c;通过引入代理类…

CentOS 7:停止更新后如何下载软件?

引言 CentOS 7 是一个广受欢迎的 Linux 发行版&#xff0c;它为企业和开发者提供了一个稳定、安全、且免费的操作系统环境。然而&#xff0c;随着时间的推移&#xff0c;CentOS 7 的官方支持已经进入了维护阶段&#xff0c;这意味着它将不再收到常规的更新和新功能&#xff0c;…

「网络通信」HTTP 协议

HTTP &#x1f349;简介&#x1f349;抓包工具&#x1f349;报文结构&#x1f34c;请求&#x1f34c;响应&#x1f34c;URL&#x1f95d;URL encode &#x1f34c;方法&#x1f34c;报文字段&#x1f95d;Host&#x1f95d;Content-Length & Content-Type&#x1f95d;User…

千帆模型申请方法

第一步&#xff1a;注册千帆云账号 百度智能云-云智一体深入产业 第二步&#xff1a;申请实名认证 第三步&#xff1a;开通服务 第四步&#xff1a;配置到网方Ai的设置里去&#xff0c;网方Ai的下载地址见下面链接。 网方Ai的软件下载地址见论坛地址&#xff1a; 网创有方官…

Spark调度底层执行原理详解(第35天)

系列文章目录 一、Spark应用程序启动与资源申请 二、DAG&#xff08;有向无环图&#xff09;的构建与划分 三、Task的生成与调度 四、Task的执行与结果返回 五、监控与容错 六、优化策略 文章目录 系列文章目录前言一、Spark应用程序启动与资源申请1. SparkContext的创建2. 资…

TS真的比JS更好吗?

前言 在讨论TypeScript&#xff08;TS&#xff09;是否比JavaScript&#xff08;JS&#xff09;更好时&#xff0c;我们需要明确“更好”这一概念的上下文和衡量标准。TypeScript和JavaScript在多个方面有着明显的区别&#xff0c;但它们并不是简单的“好”与“不好”的关系&a…

接口安全配置

问题点&#xff1a; 有员工在工位在某个接口下链接一个集线器&#xff0c;从而扩展上网接口&#xff0c;这种行为在某些公司是被禁止的&#xff0c;那么网络管理员如何控制呢&#xff1f;可以配置接口安全来限制链接的数量&#xff0c;切被加入安全的mac地址不会老化&#xff…

宜春旅游集散中心展厅OLED透明屏方案设计

一、项目概述 为提升宜春旅游集散中心展厅的现代化展示水平&#xff0c;增强游客的参观体验&#xff0c;我们计划在展厅的核心区域引入OLED透明屏技术。该方案旨在通过高科技的视觉呈现方式&#xff0c;将展品信息以虚拟与现实相结合的方式展现&#xff0c;打造出一个既具科技感…

IDEA 2024 maven 配置

1 查看IDEA默认的maven版本 2 下载对应的maven maven 官网&#xff1a;Maven – Welcome to Apache Maven 找到对应的版本(可以选择更高一点的版本&#xff0c;但是不能差太大&#xff0c;可能会有不兼容的情况 复制下载连接&#xff0c;并打开新标签&#xff0c;只保留链接…

STL 提供的容器可以有多快?(下)「榨干最后一滴」

以下内容为本人的烂笔头&#xff0c;如需要转载&#xff0c;请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/QWgA97TDMGBnwR4hKA7BwA 查表的消耗 某些场景下需要用到大量的 (string, X) 键值对来存储数据&#xff0c;标准库提供了关联容器 std::map 来解决键…

【MySQL 进阶】MySQL 程序 -- 详解

一、MySQL 程序简介 MySQL 安装完成通常会包含如下程序&#xff1a; 1、Linux 系统 程序⼀般在 /usr/bin 目录下&#xff0c;可以通过命令查看&#xff1a; 2、Windows系统 目录&#xff1a;你的安装路径\MySQL Server 8.0\bin&#xff0c;可以通过命令查看&#xff1a; 可…