YOLOv5训练大规模的遥感实例分割数据集 iSAID从切图到数据集制作及训练

最近想训练遥感实例分割,纵观博客发现较少相关 iSAID数据集的切分及数据集转换内容,思来想去应该在繁忙之中抽出时间写个详细的教程。

iSAID数据集下载

iSAID数据集链接
在这里插入图片描述

下载上述数据集。
在这里插入图片描述
百度网盘中的train和val中包含了实例和语义分割标签。
上述过程只能下载标签,原始图像为DOTA,DOTA图像链接
上述下载完毕后,
train图像:1411张原始图像;1411张实例标签;1411张语义标签。
将所有训练图像放置在一起创建iSAID/train/
val图像:458张原始图像;458张实例标签;458张语义标签。
将所有验证图像放置在一起创建iSAID/val/

切图并分割标签

下载切图代码:切图及标签转换
如果不将图像切分,则会造成显存溢出,原因在于图像具有较多实例,以及大分辨率。
根据readme运行split.py,运行时将’–set’,改为 default=“train,val”
此时执行切图运算(时间较长)。
切割完毕后在iSAID_patches文件夹中
train/84087图像数量
val/19024图像数量
第二步:标签生成:
运行preprocess.py。
注:需要安装lycon库,如果失败,在ubuntu命令行执行:
sudo apt-get install cmake build-essential libjpeg-dev libpng-dev
运行完毕后将生成coco格式的大json文件。

转成YOLO格式并训练

利用coco官方API统计一下目标类别:

# -*- coding: utf-8 -*-
# -----------------------------------------------------
# Time :  2023/2/27 11:28
# Auth :  Written by zuofengyuan
# File :  统计coco信息.py
# Copyright (c) Shenyang Pedlin Technolofy Co., Ltd.
# -----------------------------------------------------
"""
 Description: TODO
"""
from pycocotools.coco import COCO

# 文件路径
dataDir = r'l/'
dataType = 'train2017' #val2017
annFile = '{}/instances_{}.json'.format(dataDir, dataType)

# initialize COCO api for instance annotations
coco_train = COCO(annFile)

# display COCO categories and supercategories
# 显示所有类别
cats = coco_train.loadCats(coco_train.getCatIds())
cat_nms = [cat['name'] for cat in cats]
print('COCO categories:\n{}'.format('\n'.join(cat_nms)) + '\n')
# 统计单个类别的图片数量与标注数量
for cat_name in cat_nms:
    catId = coco_train.getCatIds(catNms=cat_name)
    if cat_name == "person":
        print(catId)
        imgId = coco_train.getImgIds(catIds=catId)
        annId = coco_train.getAnnIds(imgIds=imgId, catIds=catId, iscrowd=False)
        print("{:<15} {:<6d}     {:<10d}\n".format(cat_name, len(imgId), len(annId)))
    if cat_name == "motorcycle":
        print(catId)
        imgId = coco_train.getImgIds(catIds=catId)
        annId = coco_train.getAnnIds(imgIds=imgId, catIds=catId, iscrowd=False)
        print("{:<15} {:<6d}     {:<10d}\n".format(cat_name, len(imgId), len(annId)))
# 统计全部的类别及全部的图片数量和标注数量
print("NUM_categories: " + str(len(coco_train.dataset['categories'])))
print("NUM_images: " + str(len(coco_train.dataset['images'])))
print("NUM_annotations: " + str(len(coco_train.dataset['annotations'])))
loading annotations into memory...
Done (t=19.50s)
creating index...
index created!
COCO categories:
Small_Vehicle
Large_Vehicle
plane
storage_tank
ship
Swimming_pool
Harbor
tennis_court
Ground_Track_Field
Soccer_ball_field
baseball_diamond
Bridge
basketball_court
Roundabout
Helicopter
NUM_categories: 15
NUM_images: 28029
NUM_annotations: 704684

根据官方转换代码JSON-yolomask
将coco格式的大json数据转换成总多yolo格式的关键点数据,
更改yaml数据文件:

train: ../JSON2YOLO-master/new_dir/images/train2017  # train images (relative to 'path') 128 images
val: ../JSON2YOLO-master/new_dir/images/train2017  # val images (relative to 'path') 128 images
test:  # test images (optional)

# Classes
names:
  0: Small_Vehicle
  1: Large_Vehicle
  2: plane
  3: ship
  4: Swimming_pool
  5: Harbor
  6: tennis_court
  7: Swimming_pool
  8: Ground_Track_Field
  9: Soccer_ball_field
  10: baseball_diamond
  11: Bridge
  12: basketball_court
  13: Roundabout
  14: Helicopter

然后执行更改配置后执行

python segment/train.py

查看训练图像
在这里插入图片描述
在这里插入图片描述
注:coco转yolo mask格式链接:
官方链接

  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 45
    评论
为了制作yolov8关键点数据集,你需要完成以下步骤: 1. 首先,你需要将coco格式的JSON文件转换成yolo的txt文件。你可以使用coco2yolo.py脚本来完成这个转换。这个脚本会将coco格式的JSON文件中的关键点数据转换成yolo格式的txt文件。 2. 接下来,你需要更改yaml数据文件,将训练、验证和测试图像的路径设置为正确的路径。你还需要在yaml文件中定义类别的名称和对应的编号。 3. 下载包含实例和语义分割标签的训练和验证图像。这些图像可以从百度网盘中获取。训练图像包括1411张原始图像、1411张实例标签和1411张语义标签。验证图像包括458张原始图像、458张实例标签和458张语义标签。 4. 将所有的训练图像放置在一个文件夹中,创建iSAID/train/文件夹。将所有的验证图像放置在另一个文件夹中,创建iSAID/val/文件夹。 5. 最后,你可以对图像进行切割并生成相应的标签。 这样,你就完成了yolov8关键点数据集制作。 #### 引用[.reference_title] - *1* [Yolopose关键点检测:自己标注数据集制作数据集(二)](https://blog.csdn.net/m0_57458432/article/details/128222620)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [YOLOv5训练大规模遥感实例分割数据集 iSAID从切图到数据集制作训练](https://blog.csdn.net/weixin_45798949/article/details/129443725)[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^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值