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

【记录】USSOCOM Urban3D 数据集读取与处理

Urban3D数据集内容简介

Urban3D数据集图像为正摄RGB影像,分辨率为50cm。
从SpaceNet上使用aws下载数据,文件夹结构为:

|- 01-Provisional_Train|- GT|- GT中包含GTC,GTI,GTL.tif文件,GTL为ground truth building footprint。|- Inputs|- Inputs中包含DSM,DTM,RGB.tif文件,DSM为Digital Surface Models,DTM为Digital Terrain Models,normalized DSM (nDSM = DSM - DTM)
|- 02-Provisional_Test
|- 03-Sequestered_Test
|- 04-Unused_Data
|- AOI_polygons
|- Pretrained_Models|- 包含前6名参赛团队的模型

每一块.tif大小为2048*2048。

Urban3D数据集读取

from torchvision import transforms
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import sys
rgb = Image.open("/01-Provisional_Train/Inputs/JAX_Tile_016_RGB.tif")
dsm = Image.open("/01-Provisional_Train/Inputs/JAX_Tile_016_DSM.tif")
gtl = Image.open("/01-Provisional_Train/GT/JAX_Tile_016_GTL.tif")
print(rgb.size, dsm.size, gtl.size) >> (2048, 2048) (2048, 2048) (2048, 2048)
print(np.array(rgb).shape, np.array(dsm).shape, np.array(gtl).shape) >> (2048, 2048, 3) (2048, 2048) (2048, 2048)
print(np.array(rgb).dtype, np.array(dsm).dtype,  np.array(gtl).dtype) >> uint8 float32 uint8fig = plt.figure()
plt.subplot(131)
plt.imshow(np.array(rgb))
plt.subplot(132)
plt.imshow(np.array(dsm))
plt.subplot(133)
plt.imshow(np.array(gtl))print(np.max(gtl), np.min(gtl)) >> 6, 2

Urban3D数据读取

Urban3D数据集Pytorch处理

使用深度学习需要对Urban3D数据进行裁剪,这里采用torchvision.transforms.RandomCrop进行裁剪。RandomCrop可以直接作用于PIL.Image打开的文件和torch类型的数据上,但不能作用于numpy数组。具体内容可以参考numpy, PIL, tensor类型在torchvision.transforms时使用

def type_convert(x):x_ = np.array(x).astype(np.float32)return x_
def to_tensor(x):x_ = np.expand_dims(x, axis=0)x_ = torch.from_numpy(x_)return x_
trans = transforms.Compose([transforms.RandomCrop(size=256),transforms.Lambda(type_convert),transforms.Lambda(to_tensor)
])torch.random.manual_seed(16)
rgb_crop = trans(rgb)
torch.random.manual_seed(16)
dsm_crop = trans(dsm)
torch.random.manual_seed(16)
gtl_crop = trans(gtl)
print(rgb_crop.size(), dsm_crop.size(), gtl_crop.size())
fig = plt.figure()
plt.subplot(131)
plt.imshow(rgb_crop[0,:,:,0])
plt.subplot(132)
plt.imshow(dsm_crop[0,:,:])
plt.subplot(133)
plt.imshow(gtl_crop[0,:,:])

After RandomCrop

同时还需要注意的一点是为了保证RandomCrop后data和label的一致性,需要设置随机数种子。对于GTL需要改变label的值。

def type_convert_gtl(x):x_ = np.array(x).astype(np.float32)x_[x_==6]=1x_[x_==2]=0return x_
http://www.lryc.cn/news/144942.html

相关文章:

  • flutter ios webview不能打开http地址
  • 【SpringBoot】详细介绍SpringBoot中Entity类中的getters和setters
  • 阿里云服务器搭建FRP实现内网穿透-P2P
  • Vue3 Element-plus Upload 上传图片
  • PCL | Ubuntu18安装CloudCompare
  • 【LeetCode-中等题】138. 复制带随机指针的链表
  • C++--动态规划背包问题(1)
  • 【Android-Flutter】我的Flutter开发之旅
  • 【Linux】深入理解文件操作
  • 异地使用PLSQL远程连接访问Oracle数据库【内网穿透】
  • 【方案】基于AI边缘计算的智慧工地解决方案
  • 华为各型号交换机开启SNMP v3
  • CocosCreator3.8研究笔记(一)windows环境安装配置
  • 【JavaWeb 专题】15个最经典的JavaWeb面试题
  • 力扣:75. 颜色分类(Python3)
  • JVM 内存大对象监控和优化实践
  • vue indexedDB 取指定数据库指定表 全部key用request.onsuccess
  • Java 数据结构使用学习
  • monorepo更新组件报错,提示“无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本”
  • vue中html引入使用<%= BASE_URL %>变量
  • Android全面屏下,默认不会全屏显示,屏幕底部会留黑问题
  • 5.Redis-string
  • docker高级(redis集群三主三从)
  • linux 设置与命令基础(二)
  • ubuntu20.04中ros2安装rosbridge及启动方式
  • TCP之超时重传、流量控制和拥塞控制
  • git clone 报SSL证书问题
  • Spring Boot 排除配置类的引用的方法
  • 代码随想录打卡—day46—【DP】— 8.29 背包END
  • lua学习-3 循环和流程控制