当前位置: 首页 > news >正文

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_Vehicle1: Large_Vehicle2: plane3: ship4: Swimming_pool5: Harbor6: tennis_court7: Swimming_pool8: Ground_Track_Field9: Soccer_ball_field10: baseball_diamond11: Bridge12: basketball_court13: Roundabout14: Helicopter

然后执行更改配置后执行

python segment/train.py

查看训练图像
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/37319.html

相关文章:

  • js学习5(函数)
  • 用Qt画一个仪表盘
  • linux 端口查询命令
  • C语言函数: 字符串函数及模拟实现strtok()、strstr()、strerror()
  • 【学习笔记】人工智能哲学研究:《心智、语言和机器》
  • 设计模式之门面模式(外观模式)
  • MySQL - 多表查询
  • 自定义报表是什么?
  • windows安装docker-小白用【避坑】【伸手党福利】
  • 环形链表相关的练习
  • C++ 提示对话框
  • SprintBoot打包及profile文件配置
  • java面试-java集合
  • Node.js简介
  • 每天学一点之Lambda表达式
  • Raft分布式共识算法学习笔记
  • 中介者模式
  • Kaggle赛题解析:Google手语识别
  • 什么是ChatGPT?
  • 深入理解Zookeeper的ZAB协议
  • opencv-图像几何处理
  • [前端笔记030]vue之hello、数据绑定、MVVM、数据代理、事件处理、计算属性和监视属性
  • 每天学一点之注解、元注解
  • STA环境
  • 嵌入式系统实践 12 ——基于ARM汇编 Keil5 MSP432 P401R开发板
  • 【密码学篇】密码行业标准汇总(GM)
  • 桌面文件删除后没有在回收站原因和恢复方法
  • 什么是业务运营?关键组成部分有哪些?
  • 腾讯云新用户怎么配置服务器的方法教程
  • windows 11系统,通过ip地址远程连接连接ubuntu 22.04系统(共同局域网下,另一台主机不需要联网)