YOLOv8实例分割自建数据集报错

一.问题描述

WARNING ⚠️ Box and segment counts should be equal, but got len(segments) = 102, len(boxes) = 105. To resolve this only boxes will be used and all segments will be removed. To avoid this please supply either a detect or segment dataset, not a detect-segment mixed dataset.

大概意思就是标注文件中有segment和bbox的数量对不上,就是数据集中不全是segment标注。

二.解决办法

labelme标注的数据集可以有多种格式,包括但不限于

1.polygon(实例分割的标准格式)

2.rectangle(bbox框格式)

3.circle(圆圈格式)

如果数据集中包含rectangle等标注格式,不加修改直接转yolo格式进行训练的话,会出现数据集错误,产生如上报错信息

2.1 筛选json文件中的标注格式

import os
import json
import cv2
import numpy as np
import shutil
# json目录
fileDir = '/home/fc/sft/Paper_Detection/python/afan/yolov8/dataset/dataset_lingjian3/json'

output_cropped_img_dir = '/home/afan/Desktop/down/new'

# 使用os.listdir()来列出目录中的所有文件
file_names = os.listdir(fileDir)

# 获取该目录下的.json 文件名称
json_files = [file for file in file_names if file.endswith('.json')]

w = []
y = []
# 遍历指定目录下的 .json文件名称
for json_file in json_files:

    # 文件名称 去掉 .json
    fileName = json_file.replace('.json', '')
    print(fileName)
    # 读取json文件内容,返回字典格式
    with open(f'{fileDir}/{fileName}.json', 'r', encoding='utf8') as fp:
        json_data = json.load(fp)

    # 创建需要返回的字典  my_dict{'分类名称:[point xy坐标]'}
    shaixuan = json_data['shapes']
    for element in shaixuan:
        if 'shape_type' in element and element['shape_type'] != 'polygon':
            print(json_file)
            w += [json_file]
            y += [element['shape_type']]
            break
    else:
        print("All elements have shape_type 'polygon'")
print(w)
print(y)

上述代码会打印除polygon格式外含有的其他格式以及对应的json文件名。

2.2 将其他格式转换为polygon

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要使用YOLOv8进行实例分割训练自己的数据集,你可以按照以下步骤进行操作: 1. 首先,安装所需的境。可以使用conda或pip安装所需的依赖项。可以参考引用中的GitHub页面中提供的文档,了解如何安装YOLOv8所需的环境。 2. 准备自己的数据集。将你的数据集按照YOLOv8的格式进行标注。每个标注文件应包含图像中每个实例的边界框和类别信息。可以使用YOLO标注工具或其他可用的工具进行标注。 3. 将数据集划分为训练集和验证集。确保两个数据集中的图像数量合适,并且在训练过程中能够提供良好的泛化性能。 4. 配置YOLOv8的训练参数。根据你的数据集和任务需求,调整模型的超参数,如学习率、批量大小、训练轮数等。可以参考引用中提到的YOLOv8论文(目前可能还未发布)来了解更多关于模型的详细信息。 5. 开始训练模型。使用准备好的数据集和配置好的参数,运行训练脚本。脚本将加载数据集、构建模型并进行训练。训练过程可能需要较长时间,具体取决于数据集大小和计算资源。 6. 在训练过程中,可以根据验证集的性能来调整模型的参数和超参数。监控模型在验证集上的表现,并根据需要进行调整以提高模型的准确性和泛化性能。 7. 训练完成后,可以使用训练好的模型进行实例分割。加载模型,并对新的图像进行预测。模型将识别图像中的不同实例,并生成相应的分割结果。 请注意,以上步骤仅为一般指导,具体操作可能因实际情况而异。建议在使用YOLOv8进行实例分割训练之前,仔细阅读相关文档和参考资料,以确保正确操作和最佳结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [YOLOv8实例分割训练自己的数据集](https://blog.csdn.net/NoContours/article/details/131290726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [YOLOv8训练自己的分割数据集](https://blog.csdn.net/m0_70140421/article/details/129052132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值