遥感影像语义分割:数据集制作

2023-11-10

遥感影像语义分割:数据集制作

请添加图片描述

目前已经有一些已经关于遥感影像解译的公开数据集,我们可以拿这些数据来做深度学习模型训练,但是在实际业务中,我们需要针对特定的需求制作自己的数据集,在这里记录一下做遥感影像数据集的一些方法和注意事项。

一、标签标注工具及注意事项

常见的图片标签工具大都是针对相机照片,如labelImg、PS等。但是在做大影像标注时会不太方便,如一景遥感影像的像素往往会几万乘几万,一种方法是先整景影像进行分割,如切割成512x512、1024x1024等大小,然后用上述工具进行标注,但是这样做会无法保证整景影像的标注一致性,一些大的目标会被分割在两个小块的图像上,不同的标注人员可能会将这两个部分标注成不同的目标,或者切割后的图片失去整体的上下文信息,例如在区分耕地和普通植被,或者颜色偏绿的水体时会在不同的分块图片上造成歧义,如果是在一整景完整的影像上进行标注就不会出现上述问题,标注人员可以根据整景影像的特点判断当前有歧义的位置,所以建议在自己做遥感影像标注的时候可以考虑使用ArcGIS或者QGIS进行标注。

二、影像分块及代码

考虑到GPU显存的限制,影像标注完成之后在送入模型训练之前需要对大的影像进行分块,一般采用的是滑动叠加窗口的方法进行分块。代码如下

分块代码

#!usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Author  : zhaoguanhua
@Email   : 
@Time    : 2021/8/15 17:13
@File    : clip_image.py
@Software: PyCharm
"""

import cv2 as cv
import os
import glob
import numpy as np

def clip_image_by_order(image_path,label,clip_dir):
    """
    按照从左到右,从上到下,有重叠的裁剪图像
    :param image_path: 大图像路径
    :param label: 大图像标签路径
    :param clip_dir: 切割后的小图像和标签存储路径
    :return:
    """
    image_array=cv2.imread(image_path,1)
    label_array=cv2.imread(label,0)
    (img_rows,img_cols,_)=image_array.shape
    (label_rows,label_cols)=label_array.shape

    assert (img_rows==label_rows) and (img_cols==label_cols),\
        "{}:图像和标签尺寸不一致,请检查图像和标签:".format(image_path)

    #图像名
    image_name=os.path.basename(image_path).split(".")[0]

    #创建切割图像、标签文件夹
    clip_image_dir=os.path.join(clip_dir,"img")
    os.makedirs(clip_image_dir,exist_ok=True)
    clip_label_dir=os.path.join(clip_dir,"label")
    os.makedirs(clip_label_dir,exist_ok=True)

    lt_row=0 #起始行

    while lt_row<img_rows:
        lt_col=0 #起始列

        if lt_row+clip_size>img_rows:
            clip_height=img_rows-lt_row
        else:
            clip_height=clip_size

        while lt_col<img_cols:
            if lt_col+clip_size>img_cols:
                clip_width=img_cols-lt_col
            else:
                clip_width=clip_size

            #切割图片名
            clip_name="{img_name}_{row}_{col}_size{size}.png".format(
                img_name=image_name,row=lt_row,col=lt_col,size=clip_size)

            #切割图像、标签存储路径
            clip_image_path=os.path.join(clip_image_dir,clip_name)
            clip_label_path=os.path.join(clip_label_dir,clip_name)

            out_img_array=np.ones((clip_size,clip_size,3))*255
            out_label_array=np.zeros((clip_size,clip_size))

            out_img_array[:clip_height,:clip_width,:]=image_array[lt_row:lt_row+clip_height,lt_col:lt_col+clip_width,:]
            out_label_array[:clip_height,:clip_width]=label_array[lt_row:lt_row+clip_height,lt_col:lt_col+clip_width]

            cv2.imwrite(clip_image_path,out_img_array)
            cv2.imwrite(clip_label_path,out_label_array)

            lt_col+=slip_window
        lt_row+=slip_window



if __name__ == '__main__':
    root_dir=r""
    image_dir=os.path.join(root_dir,"img")
    label_dir=os.path.join(root_dir,"label")
    clip_dir=os.path.join(root_dir,"clip")
    os.makedirs(clip_dir,exist_ok=True)

    image_names=os.listdir(image_dir)

    #切割尺寸
    clip_size=1024
    #滑动窗口
    slip_window=clip_size//2

    for image_name in image_names:
        print(image_name)

        image_file=os.path.join(image_dir,image_name)
        label_file=os.path.join(label_dir,image_name)

        clip_image_by_order(image_file,label_file,clip_dir)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

遥感影像语义分割:数据集制作 的相关文章

  • 语义分割研究现状

    以语义分割热门的数据集Cityscapes的精度作为参考 比较当前语义分割网络效果 可以通过ICNet中的这张图来说明目前大多数方法的精度以及速度 目前MIOU超过80的有PSPNet ResNet38 PSPNet DUC 以及DANet
  • 【语义分割】轻量级人像分割PP-HumanSeg NCNN C++ windows部署

    ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架 ncnn 从设计之初深刻考虑手机端的部署和使用 无第三方依赖 跨平台 手机端 cpu 的速度快于目前所有已知的开源框架 基于 ncnn 开发者能够将深度学习算法轻松移植到手机端高
  • 【计算机视觉

    文章目录 一 分割 语义相关 9篇 1 1 OpenIns3D Snap and Lookup for 3D Open vocabulary Instance Segmentation 1 2 dacl10k Benchmark for S
  • 【计算机视觉

    文章目录 一 STPLS3D 二 DigestPath 三 ImageNet S ImageNet Semantic Segmentation 四 OpenEDS 五 RELLIS 3D 六 SUIM Segmentation of Und
  • AutoDL跑pycharm代码

    参考文献 AutoDL帮助文档 Pycharm连接远程GPU服务器跑深度学习 哔哩哔哩 bilibili 环境包的安装在linux环境下载非常方便 安装apex 重点是将路径转换正确 参考文献 详解Apex的安装和使用教程 花开山岗红艳艳的
  • 手把手实战教学!语义分割从0到1:一、数据集制作

    本篇博客 是 手把手实战教学 语义分割从0到1 系列的第一篇实战教学 将重点介绍语义分割相关数据集 以及如何制作自己的数据集 本系列总的介绍 以及其他章节的汇总 见 https blog csdn net oYeZhou article d
  • yolov7 mask 使用学习笔记

    目录 yolov7 mask trt安装笔记 安装detectron方法1 OK 安装detectron方法2 pip install regex 4 1 无法找到头文件 math h fatal error C1083 安装cocoapi
  • 语义分割——灰度图像转伪彩色图像

    目录 检验灰度图 检验代码 灰度图转伪彩色图代码 转换代码使用细则 示例转换结果 总结 检验灰度图 制作语义分割数据集或用训练好模型测试图像时 得到的结果是灰度图像 如下 检验代码 上面图像灰度值不是全是全为0 灰度范围在 0 1 之间 使
  • 【论文翻译-2】BiO-Net: Learning Recurrent Bi-directional Connections for Encoder-Decoder Architecture

    BiO Net Learning Recurrent Bi directional Connections for Encoder Decoder Architecture 源自 MICCAI2020 Medical Image Compu
  • 训练PyTorch模型遇到显存不足的情况怎么办

    在跑代码的过程中 遇到了这个问题 当前需要分配的显存在600MiB以下 RuntimeError CUDA out of memory Tried to allocate 60 00 MiB GPU 0 10 76 GiB total ca
  • CVPR‘2023

    Paper https arxiv org pdf 2206 02066 pdf Code https github com XuJiacong PIDNet 导读 本文介绍了一种名为PIDNet的实时语义分割网络架构 虽然传统的双分支网络
  • 深度学习模型试跑(七):SETR(Swin-Transformer-Semantic-Segmentation版)

    文章目录 一 前言 二 环境搭建 1 安装cuda和对应的cudnn 2 安装vs2019 3 安装pytorch 4 安装mmcv 和 mmsegmentation 5 拷贝MMSegmentation 三 测试 四 训练 一 前言 源码
  • 语义分割常用数据集整理

    语义分割的数据集分为三类 2D图片 2 5D图片 RGB D 3D图片 每一个类别的数据集都提供了像素级的标签 可以用来评估模型性能 同时其中一部分工作用到了数据增强来增加标签样本的数量 一 2D数据 1 PASCAL Visual Obj
  • 【语义分割】12、Fully Attentional Network for Semantic Segmentation

    文章目录 一 背景和动机 二 方法 三 效果 出处 AAAI2022 一 背景和动机 语义分割中 non local NL 的方法起到了很好了捕捉 long range 信息的作用 大致可分为 Channel non local 和 Spa
  • 语义分割 - Semantic Segmentation Papers

    语义分割类的论文与代码汇总 逐渐迁移到搭建的博客上 AIUAI www aiuai cn 新地址 语义分割 Semantic Segmentation Papers AIUAI Semantic Segmentation Convoluti
  • 论文阅读-多任务(2020)-KL4MTL:用于多任务学习的知识蒸馏方法

    KL4MTL 论文 Knowledge Distillation for Multi task Learning 地址 https paperswithcode com paper knowledge distillation for mu
  • 【计算机视觉

    文章目录 一 分割 语义相关 12篇 1 1 UniSeg A Unified Multi Modal LiDAR Segmentation Network and the OpenPCSeg Codebase 1 2 Learning S
  • 憨批的语义分割重制版2——语义分割评价指标mIOU的计算

    憨批的语义分割重制版2 语义分割评价指标mIOU的计算 注意事项 学习前言 什么是mIOU mIOU的计算 1 计算混淆矩阵 2 计算IOU 3 计算mIOU 计算miou 注意事项 这是针对重构了的语义分割网络 而不是之前的那个 所以不要
  • 憨批的语义分割6——制作语义分割数据标签

    憨批的语义分割6 制作语义分割数据集 学习前言 制作工具Labelme Labelme的使用 标签文件内容 学习前言 有些小伙伴问怎么制作数据集 其实我也没有去制作过 所以也要学学啦 制作工具Labelme 这里要用到Labelme工具 在
  • 语义分割实践—耕地提取(二分类)

    开篇 感谢李沐老师团队为深度学习教学做出的巨大贡献 对李沐老师及团队致以深深的敬意 同时 对技术开发社区以及编程技术网站的优质创作者们 Jack Cui等 表示深深的感谢 一 深度学习网络中的常见概念 一 Ground Truth 通常指人

随机推荐

  • 【Hbuilder+vue项目学习】新项目初建

    下载uView空白模板 下载包中的内容 导入在Hbuilder X中导入项目即可创建成功 在gitee上管理项目 填写好名称 介绍等信息 点击创建即可 点击HbuilderX下的终端图标 进行上传项目操作 emmm终端一片空白 用不了 网上
  • 视觉注意力的循环神经网络模型

    我们观察PPT的时候 面对整个场景 不会一下子处理全部场景信息 而会有选择地分配注意力 每次关注不同的区域 然后将信息整合来得到整个的视觉印象 进而指导后面的眼球运动 将感兴趣的东西放在视野中心 每次只处理视野中的部分 忽略视野外区域 这样
  • 神经网络中关于卷积池化的计算(不为整数时,卷积向下取整,池化向上取整)

    输入图片大小为200 200 依次经过一层卷积 kernel size 5 5 padding 1 stride 2 pooling kernel size 3 3 padding 0 stride 1 又一层卷积 kernel size
  • 1015 德才论 (25分)

    1015 德才论 25分 宋代史学家司马光在 资治通鉴 中有一段著名的 德才论 是故才德全尽谓之圣人 才德兼亡谓之愚人 德胜才谓之君子 才胜德谓之小人 凡取人之术 苟不得圣人 君子而与之 与其得小人 不若得愚人 现给出一批考生的德才分数 请
  • 【数模】时间序列分析

    时间序列也称动态序列 是指将某种现象的指标数值按照时间顺序排列而成的数值序列 时间序列分析大致可分成三大部分 分别是描述过去 分析规律和预测未来 本讲将主要介绍时间序列分析中 预测未来 常用的三种模型 并将结合Spss软件对时间序列数据进行
  • Docker - 实现本地镜像的导出、导入(export、import、save、load)

    目录 一 使用 export 和 import 1 查看本机的容器 2 导出镜像 3 导入镜像 二 使用 save 和 load 1 查看本机的容器 2 保存镜像 附 两种方案的差别 1 文件大小不同 2 是否可以对镜像重命名 3 是否可以
  • STM32实战项目—停车计费系统

    文章目录 一 任务要求 1 1 概述 1 2 串口收发 1 2 1 串口输出内容 1 2 2 串口接收内容 1 3 说明 二 实现思路 2 1 指令判别 2 1 车辆进入 2 2 车辆驶出 2 3 费率调整 三 程序设计 3 1 串口接收消
  • 强化学习算法实现自动炒股

    强化学习算法自动炒股 本文利用强化学习算法 PG 来对股票市场的指数进行交易研究 感兴趣的朋友可以在这个基础上导入其他市场的数据 添加 observation 的维度 本文仅使用了 当天收盘价 和 与前一天收盘价的差值 两个维度 操作 ac
  • linux当前目录作用,详解linux下mnt目录作用

    linux下mnt目录的作用 mount 英文解释 登上 爬上 攀登 骑上 乘上 跨上 可直接理解为 挂载 挂接光驱 USB设备的目录 加载后 会在mnt里多出相应设备的目录 mnt是mount的缩写 Mount命令 需要注意的 1 挂载点
  • 打印工资条怎么做到每个人都有表头明细_这两种工资条制作技巧,HR们不能不知道!...

    每月一到发薪日 给员工发送工资条的时候 HR们都被一大堆的数据和表格弄得焦头烂额 如何快速整理数据 制作工资条是每个HR都想得到的答案 本文就手把手地教大家如何利用excel或工资条生成器 快速地制作工资条 一起来看看吧 第一种 传统方式
  • 基于SpringBoot的网络海鲜市场系统的设计与实现

    网络海鲜市场系统管理数据的工具是MySQL 编码的语言是Java 运用的框架是Spring Boot框架 该系统可以实现对商品的购买 对论坛帖子的发布与回复论坛帖子 查看商品资讯 修改或删除购物车商品 对订单信息进行管理等功能 网络海鲜市场
  • 几种常用发布方式 平滑发布、灰度发布、蓝绿发布

    发布方式 1 平滑发布 在发布的过程中不影响用户的使用 系统不会因发布而暂停对外服务 不会造成用户短暂性无法访问 保障服务一直可以持续使用 在单机模式下 启动多端口 如有 upstream myapp server 服务1 8080 app
  • JAVA开发管理(敏捷诞生的历史背景)

    诞生背景 随着软件规模的发展和商业化 软件开发模式的管理显得尤为重要 在软件规模较小时 一个人就可以单独完成软件的编写 测试和发布 当软件规模和复杂度越来越高时 我们不得不进行协调工作 多人完成一个软件的开发 在没有管理的背景下 软件的编写
  • #pragma once和#ifndef

    pragma once用法总结 1 pragma once这个宏有什么作用 为了避免同一个头文件被包含 include 多次 C C 中有两种宏实现方式 一种是 ifndef方式 另一种是 pragma once方式 在能够支持这两种方式的
  • 英语写作神器Quillbot---如何使用免费的Premium功能

    英语写作神器Quillbot 如何使用免费的Premium功能 本文主要记录如何在国内免费使用Quillbot的Premium功能 也就是在Google Chrome中安装相应的插件 目录 英语写作神器Quillbot 如何使用免费的Pre
  • C语言:void的用法即解析

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 一 void是否可以定义变量 为什么 二 void修饰函数的返回值和参数 1 void用来作为函数返回值 2 void作为函数参数 三 void指针 总结 提示 以
  • 苹果手机点击输入框时页面自动放大

    一 问题描述 点击input搜索框时 苹果手机页面会自动放大 二 解决问题 user scalable no是 禁止手动缩放 添加此属性后便不可手动控制页面大小
  • Matlab查看像素坐标

    在matlab弹出的figure中随鼠标移动实时显示该处坐标和像素值 在command window中输入impixelinfo即可 在当前图像中查看信息
  • 成本高、落地难、见效慢,开源安全怎么办?

    作者 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 2021年底 Log4j漏洞引发全球信息安全大地震 世界各国政府 非营利基金会 智库都在高度关注开源安全领域 然而许多公司尽管害怕被开源安全问题所波及 但仍未采取相应的策略
  • 遥感影像语义分割:数据集制作

    遥感影像语义分割 数据集制作 一 标签标注工具及注意事项 二 影像分块及代码 目前已经有一些已经关于遥感影像解译的公开数据集 我们可以拿这些数据来做深度学习模型训练 但是在实际业务中 我们需要针对特定的需求制作自己的数据集 在这里记录一下做