RFNet模型数据集采集处理流程

news2024/11/19 13:17:03

文章目录

  • cityscapes数据集内容
  • 如何标注数据得到标签图片

cityscapes数据集内容

训练模型的时候下载了cityscapes里的disparity、gtFine和leftImg8bit。
在这里插入图片描述
共5000张图片。2975张训练,500张验证,1525test。每个目录下都有train、test和val的子目录,这些子目录下又有一些城市名命名的子目录。train下有18个子文件夹对应德国的16个城市,法国一个城市和瑞士一个城市。train集总共有2975张png格式的大小为2048 x 1024的0-255的RGB图片。val下有3个子文件夹对应德国的3个城市。test下有6个子文件夹对应德国的6个城市。

对于disparity目录,里面放的都是深度图片;对于leftImg8bit里面放的都是原图片;对于gtFine中train目录下含有以下类型的文件:
在这里插入图片描述
文件的命名规则:
在这里插入图片描述

模型在训练的时候用到了哪些数据?

在train.py文件中加载并使用的是train_loader和val_loader。

self.train_loader, self.val_loader, self.test_loader, self.nclass = make_data_loader(args, **kwargs)

train.py中的make_data_loader()在dataloader中的__init__.py中:

def make_data_loader(args, **kwargs):
	if args.dataset == 'cityscapes':
	     train_set = cityscapes.CityscapesSegmentation(args, split='train')
	     val_set = cityscapes.CityscapesSegmentation(args, split='val')
	     test_set = cityscapes.CityscapesSegmentation(args, split='test')
	     num_class = train_set.NUM_CLASSES
	     train_loader = DataLoader(train_set, batch_size=args.batch_size, shuffle=True, **kwargs)
         val_loader = DataLoader(val_set, batch_size=args.val_batch_size, shuffle=False, **kwargs)
         test_loader = DataLoader(test_set, batch_size=args.test_batch_size, shuffle=False, **kwargs)
         return train_loader, val_loader, test_loader, num_class

cityscapes.py中的CityscapesSegmentation():

 self.images_base = os.path.join(self.root, 'leftImg8bit', self.split)
 self.disparities_base = os.path.join(self.root, 'disparity', self.split)
 self.annotations_base = os.path.join(self.root, 'gtFine', self.split)
 
 self.images[split] = self.recursive_glob(rootdir=self.images_base, suffix='.png')
 self.images[split].sort()

 self.disparities[split] = self.recursive_glob(rootdir=self.disparities_base, suffix='.png')
 self.disparities[split].sort()

 self.labels[split] = self.recursive_glob(rootdir=self.annotations_base, suffix='labelTrainIds.png')
 self.labels[split].sort()

从代码中可以看到从leftImg8bit读取原图片,从disparity读取深度图片,从gtFine读取标签图片。其中标签图片是灰度图,灰度值就是种类对应的标签值。

所以制作自己的数据集需要原RGB图片、深度图片、标签图片。如何得到标签图片?cityscapes提供了标注工具获得josn文件,再将josn文件转为labelTrainIds.png。

如何标注数据得到标签图片

1.可以利用github上提供的标注工具
2.也可以利用labelme标注
这里选择labelme,创建文件夹images,里面放rgb图片和label.txt(里面放标签),再创建文件夹labels,把标注好的json文件存在这里。
标注的时候点物体的轮廓,点回到第一个点的时候形成闭合区域,弹出对话框选择种类。
在这里插入图片描述
得到josn文件后,要进行一下处理。因为labelme生成的josn和原数据集的josn并不一样。一种方法是修改生成的josn文件,一种方法是修改原代码。为了以后更方便,不用标注过后再进行一次json处理,这里直接修改源代码。主要修改对应的key值,目录地址。
在这里插入图片描述

利用citscapesscripts生成标签图片。先修改/helper/labels.py中的标签,然后把数据集的目录给/preparation/createTrainIdLabelImgs.py,生成标签图片。标注了两张图片得到json测试得到如下结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为更高效的标注可以先试用分割模型输出分割结果josn文件,然后人为进行修正即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1141776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3动态引入图片(:src)

vite 官方默认的配置,如果资源文件在assets文件夹打包后会把图片名加上 hash值,但是直接通过 :src"imgSrc"方式引入并不会在打包的时候解析,导致开发环境可以正常引入,打包后却不能显示的问题 实际上我们不希望资源文…

虚拟机构建部署单体项目及前后端分离项目

目录 一.部署单体项目 1.远程数据库 1.1远程连接数据库 1.2 新建数据库运行sql文件 2.部署项目到服务器中 3.启动服务器运行 二.部署前后端分离项目 1.远程数据库和部署到服务器 2.利用node环境启动前端项目 3.解决主机无法解析服务器localhost问题 方法一 ​编辑 方…

什么?Postman也能测WebSocket接口了?

01、WebSocket 简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直…

Python爬虫基础之Requests详解

目录 1. 简介2. 安装3. 发送请求4. 处理响应5. IP代理6. Cookie登录参考文献 原文地址:https://program-park.top/2023/10/27/reptile_4/ 本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由…

IEEE Standard for SystemVerilog Chapter9. Processes

9.1 General 本条款描述了以下内容: --结构化程序(initial程序、always程序、final程序) --块语句(begin-end顺序块,fork-join并行块) --时序控制(delays, events, wa…

【计算机网络】应用层——HTTP协议

目录 1.HTTP协议简介2.认识URL3.urlencode和urldecode4.HTTP请求协议和响应协议HTTP请求协议HTTP响应协议 5.HTTP请求方法6.HTTP状态码7.HTTP常见的Hander8.Cookie和Session 1.HTTP协议简介 HTTP(Hyper Text Transfer Protocol)协议又叫做超文本传输协议…

24 行为型模式-访问者模式

1 访问者模式介绍 访问者模式在实际开发中使用的非常少,因为它比较难以实现并且应用该模式肯能会导致代码的可读性变差,可维护性变差,在没有特别必要的情况下,不建议使用访问者模式。 2 访问者模式原理 3 访问者模式实现 我们以超市购物为例,假设超市中的三类商品: 水果,糖…

嵌入式软件工程师面试题——2025校招专题(四)

说明: 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要…

python——requests模块

requests不是python的内置库,需要手动安装: pip install requests 一. 一个类型和六个属性 1.1 类型 requests访问url后返回的对象类型为requests.models.Response类型。 1.2 属性 下面是requests.models.Response类型对象的方法。 text:以…

【Javascript】json

目录 什么是json? 书写格式 json 序列化和反序列化 序列化 反序列化 什么是json? JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式,它基于JavaScript的⼀个⼦集,易于⼈的编写和阅读,也易于机器解析…

OSG开发笔记(二十九):OSG加载模型文件、加载3DMax三维型文件Demo

​ 若该文为原创文章,未经允许不得转载 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/134064988 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模…

班主任必get,超实用的成绩发布方式

分享给老师们一个超级实用的教程,看看如何使用各种代码和Excel实现学生自主查询成绩的功能吧!不用再繁琐的手动操作,让学生和家长自己就能查到成绩! 成绩查询系统是什么? 成绩查询系统是一种方便学生查询考试成绩的应…

Android 和 iOS APP 测试的那些区别

目前市面上主流的移动操作系统就是 Android 和 iOS 两种,移动端测试本身就跟 Web 应用测试有自己的专项测试,比如安装、卸载、升级、消息推送、网络类型测试、弱网测试、中断测试、兼容性测试等都是区别于 Web 应用需要关注的测试领域。 那么&#xff0…

办公用品经营配送小程序商城的作用是什么

对办公人员来说,办公设备是不可缺少的,对办公用品经营商家来说,市场生意很高很多,但想要获取却也不容易,线下方式难以拓展,线上无平台,入驻第三方也有诸多限制与不足,私域是商家们增…

关键词搜索1688商品数据接口(标题|主图|SKU|价格|优惠价|掌柜昵称|店铺链接|店铺所在地)

1688商品列表接口是一个用于获取1688网站上商品列表信息的接口。通过该接口,您可以获取到1688网站上不同类别的商品列表,包括商品的名称、价格、图片等信息。 要使用1688商品列表接口,您需要按照以下步骤进行操作: 登录1688网站…

Linux 磁盘挂载2(文件系统格式化、磁盘挂载、VFS虚拟化文件系统)

目录 Linux文件系统 文件系统类型 Linux如何保存文件 VFS虚拟文件系统 文件格式化命令 mkfs 格式化文件系统 磁盘挂载命令 mount 临时挂载命令 umount 卸载文件系统 vim /etc/fstab 永久挂载 Linux文件系统 Linux 磁盘挂载1(硬盘分区)_linux磁…

高效遮挡!一键隐藏Logo标志,让您的内容更自由!

亲爱的用户,您是否曾经因为在营销、宣传、推广等领域使用的图片或视频中,存在不合适的Logo标志而感到烦恼?现在,我们向您推荐一款高效的遮挡工具,让您轻松隐藏Logo标志,让您的内容更自由! 第一…

面试题:为什么HashMap 使用的时候指定容量?

文章目录 前言正文为什么要指定容量? 前言 其实可以看到我写了这么久的博客,很少去写hashMap的东西。 为什么?因为这个东西感觉是java面试必备的,我感觉大家都看到腻了,所以一直没怎么去写hashMap相关的。 本篇内容&…

eclispe项目中静态文件出现错误解决方法

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 很多时间…

C++项目——云备份-⑧-客户端各模块实现

文章目录 专栏导读1.客户端数据管理模块实现2.客户端文件检测模块实现3.客户端文件备份模块设计4.客户端文件备份模块实现 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿…