当前位置: 首页 > 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

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

相关文章:

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

最近想训练遥感实例分割&#xff0c;纵观博客发现较少相关 iSAID数据集的切分及数据集转换内容&#xff0c;思来想去应该在繁忙之中抽出时间写个详细的教程。 iSAID数据集下载 iSAID数据集链接 下载上述数据集。 百度网盘中的train和val中包含了实例和语义分割标签。 上述…...

js学习5(函数)

目录 定义函数 函数的特性 使用函数模拟类 模拟私有属性和方法 闭包 函数特性利用 箭头函数 定义函数 function func1(name) { console.log(name); } func2 function (name) { console.log(name); } func3 function func0(name) { console.log(name); } co…...

用Qt画一个仪表盘

关于Qt Qt是一个跨平台的C图形用户界面应用程序框架&#xff0c;通过使用Qt&#xff0c;可以快速开发出跨平台的多平台应用程序&#xff0c;包括Windows、Mac OS X、Linux和其他Unix系统。Qt提供了强大的图形操作界面&#xff08;GUI&#xff09;程序开发和移植的能力&#xf…...

linux 端口查询命令

任何知识都是用进废退&#xff0c;有段时间没摸linux&#xff0c;这大脑里的知识点仿佛全部消失了&#xff0c;就无语。 索性&#xff0c;再写一篇记录&#xff0c;加强一下记忆&#xff0c;下次需要就看自己的资料好了。lsof命令Linux端口查询命令可以通过lsof实现&#xff1a…...

C语言函数: 字符串函数及模拟实现strtok()、strstr()、strerror()

C语言函数&#xff1a; 字符串函数及模拟实现strtok()、strstr()、strerror() strstr()函数: 作用&#xff1a;字符串查找。在一串字符串中&#xff0c;查找另一串字符串是否存在。 形参: str2在str1中寻找。返回值是char*的指针 原理&#xff1a;如果在str1中找到了str2&…...

【学习笔记】人工智能哲学研究:《心智、语言和机器》

关于人工智能哲学&#xff0c;我曾在这篇文章里 【脑洞大开】从哲学角度看人工智能&#xff1a;介绍徐英瑾的《心智、语言和机器》 做过介绍。图片来源&#xff1a;http://product.dangdang.com/29419969.html在我完成了一些人工智能相关的工作以后&#xff0c;我再来分享《心智…...

设计模式之门面模式(外观模式)

目录 1.模式定义 2.应用场景 2.1 电源总开关例子 2.2 股民炒股场景 ​编辑 3. 实例如下 4. 门面模式的优缺点 传送门&#xff1a; 项目中用到的责任链模式 给对象讲工厂模式&#xff0c;必须易懂易会 策略模式&#xff0c;工作中你用上了吗&#xff1f; 1.模式定…...

MySQL - 多表查询

目录1. 多表查询示例2. 多表查询分类2.1 等/非等值连接2.1.1 等值连接2.1.2非等值连接2.2 自然/非自然连接2.3 内/外连接2.3.1 内连接2.3.2 外连接3.UNION的使用3.1 合并查询结果3.1.1 UNION操作符3.1.2 UNION ALL操作符4. 7种JOIN操作5. join 多张表多表查询&#xff0c;也称为…...

自定义报表是什么?

自定义报表是指根据用户的需求和要求&#xff0c;自行设计和生成的报表。自定义报表可以根据用户的具体需求&#xff0c;选择需要的数据和指标&#xff0c;进行灵活的排列和组合&#xff0c;生成符合用户要求的报表。自定义报表可以帮助用户更好地了解业务情况&#xff0c;发现…...

windows安装docker-小白用【避坑】【伸手党福利】

目录实操开启 Hyper-V 和容器特性下载docker安装dockercmd中&#xff0c;使用命令测试是否成功报错解决办法&#xff1a;下载linux模拟器wsl&#xff1a;双击打开docker重新打开cmd&#xff0c;输入命令&#xff0c;成功显示sever和clinet实操 开启 Hyper-V 和容器特性 控制面…...

环形链表相关的练习

目录 一、相交链表 二、环形链表 三、环形链表 || 一、相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据…...

C++ 提示对话框

头文件 #include<iostream>#include<cstdio> using namespace std; 函数格式 MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType) 参数 hWnd &#xff1a;此参数代表消息框拥有的窗口。如果为NULL&#xff0c;则消息框没有拥有窗口。 lp…...

SprintBoot打包及profile文件配置

打成Jar包 需要添加打包组件将项目中的资源、配置、依赖包打到一个jar包中&#xff0c;可以使用maven的package&#xff1b;运行: java -jar xxx(jar包名) 操作步骤 第一步: 引入Spring Boot打包插件 <!--打包的插件--> <build><!--修改jar的名字--><fi…...

java面试-java集合

说说你如何选用集合&#xff1f; 需要键值对选用 map 接口下的集合&#xff0c;需要排序用 TreeMap, 不需要排序用 HashMap 不需要键值对仅存放元素则选择 Collection 下实现的接口&#xff0c;保证元素唯一使用 Set, 不需要则选用 List Collection 和 Collections 有什么区别…...

Node.js简介

客户端访问网页时向服务器端发送请求要访问服务器中的页面&#xff0c;服务器收到请求后向数据库中进行搜索&#xff0c;搜索到相关数据然后返回结果给客户端显示&#xff1b; 这个过程就类似于&#xff1a;客人&#xff08;客户端&#xff09;去饭馆&#xff08;服务端&#…...

每天学一点之Lambda表达式

Lambda表达式 思想导入&#xff1a; 函数式编程思想&#xff1a; 在数学中&#xff0c;函数就是有输入量、输出量的一套计算方案&#xff0c;也就是“拿什么东西做什么事情”。编程中的函数&#xff0c;也有类似的概念&#xff0c;你调用我的时候&#xff0c;给我实参为形参赋…...

Raft分布式共识算法学习笔记

1. Raft算法 Raft算法属于Multi-Paxos算法&#xff0c;它是在Multi-Paxos思想的基础上&#xff0c;做了一些简化和限制&#xff0c;比如增加了日志必须是连续的&#xff0c;只支持领导者、跟随者和候选人三种状态&#xff0c;在理解和算法实现上都相对容易许多 从本质上说&am…...

中介者模式

介绍 Java中介者模式(Mediator Pattern)是一种行为设计模式,它可以降低多个对象之间的耦合性,通过一个中介者对象来协调这些对象的交互. 在中介者模式中,多个对象之间的交互不是直接进行的,而是通过一个中介者对象来进行的.这个中介者对象封装了对象之间的交互逻辑,每个对象只…...

Kaggle赛题解析:Google手语识别

文章目录一、比赛前言信息二、比赛背景三、比赛任务四、评价指标五、数据描述六、解题思路一、比赛前言信息 比赛名称&#xff1a;Google - Isolated Sign Language Recognition 中文名称&#xff1a;帮助用户从PopSign游戏学习美国手语 比赛链接&#xff1a;https://www.ka…...

什么是ChatGPT?

目录前言一、什么是GPT&#xff1f;二、什么是ChatGPT&#xff1f;三、ChatGPT应用场景四、ChatGPT未来展望五、OpenAI介绍前言 3月3号&#xff0c;早上6:30就有人发消息给我&#xff0c;来问我有关GPT API的事件。 那是因为3月2号&#xff0c;OpenAI 发布了ChatGPT 3.5的开放…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...