数据集的简单制作和使用

news2024/9/22 11:34:13

数据集的简单制作和使用

参考资料:Labelme分割标注软件使用

使用labelme软件对数据集进行分割
每张图片获得一个json文件

我们看看其中一个文件,内容包含每个点在图片中的位置

我们可以自己写一个脚本(或使用别人的)将上述json转换为我们想要的json格式

JPEGImages中的内容
Visualization中的内容
JPEGImages中某张图
Visualization中某张图

我们来看看annotations.json中的具体内容
images部分包含图片的相对路径
annotations部分包含对应图片中各个物体的id、分割点坐标、bounding box坐标等

如何利用annotations.json文件从某张图片中提取出我们想要的信息?

(1)打开这个json文件

        with open(anno_json, 'r') as f:
            data = json.load(f)
            self.images = data["images"]
            self.annotations = data["annotations"]

(2)根据json文件中的各个字段锁定想要的信息
示例代码

# 根据下标获取图片 {...'file_name':'JPEGImages/.jpg,height:,width}
first_image = self.images[first_image_index]
# path/.../.jpg
tar_image_path = os.path.join(self.image_root, first_image["file_name"])
# [[[74,81,120],[],[]...[]]]
tar_image = cv2.imread(tar_image_path)
# images中id对应annotation中的image_id,根据 image_id 获取对应的 annotations
# 第一张图片中的第一个物体和第二个物体的分割信息[{'area':,'bbox':[..,..,..,..],'category_id':1,'id':30,'image_id':15,'segmentation:[[..,..,..]]},{同第一个}]
first_annotations = [ann for ann in self.annotations if ann["image_id"] == first_image["id"]]
# 第一张图片中第一个物体的分割信息{'area':,'bbox':[..,..,..,..],'category_id':1,'id':30,'image_id':15,'segmentation:[[..,..,..]]}
object_mask_ann = first_annotations[1]
# 获得分割点坐标 segmentation:[..,..,..]
segmentation = object_mask_ann["segmentation"][0]
# 获得bbox
target_object_bbox = object_mask_ann["bbox"]

经过处理得到自己想要的信息

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

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

相关文章

突破传统看车局限,3DCAT实时云渲染为东风日产奇骏赋能

在当今数字化飞速发展的时代,汽车行业的营销也面临着诸多变革与挑战。线下展示由于受到场地空间的限制,往往无法全面展示所有车型,且建设成本高昂。而一些销售门店可能因位置偏僻等因素,导致客户上门看车、试驾的邀约变得困难重重…

哈工大李治军老师OS课程笔记(4)——内存管理

一 内存使用与分段(实验六) 内存是如何用起来的? 内存使用:将程序放在内存中,PC指向开始地址 重定位:修改程序中的地址(是相对地址) 什么时候完成重定位? 编译时加基址…

航空航天之归零报告

归零报告 1.技术归零报告1.1技术归零报告模板1.2撰写技术归零报告注意事项 2.管理归零报告2.1管理归零报告模板2.2撰写管理归零报告注意事项 归零报告通常指的是将项目、任务或系统的状态重置为初始状态,进行数据清零、状态复位或问题总结的报告文档。 在航空航天、…

spring揭秘02-springbean生命周期(实例化过程)

文章目录 【README】【1】spring构建应用系统分2个阶段【1.1】spring容器启动阶段【1.2】springbean实例化阶段 【2】springbean生命周期概述【3】springbean生命周期过程【3.1】**第1步-实例化bean对象**【3.2】**第2步-设置对象属性**【3.3】 第3步-检查Aware接口并设置相关依…

深入理解计算机系统 CSAPP 实验lab:Attack Lab

资源下载地址:CS:APP3e, Bryant and OHallaron CTARGET objdump -d ctarget >ctarget.txt 反汇编我们下载的ctarget打开看看 touch1: 我们期望的是getbuf执行完之后直接跳到touch1,利用缓存区溢出达到找个目的. 汇编显示call Gets之前 sub $0x28,%rsp,栈指针减小了 0x28 …

JMeter高效管理测试数据-参数化

文章目录 1.什么是参数化2.定义变量3.CSV数据文件设置 1.什么是参数化 在JMeter中,参数化是一种常用的技术,用于使测试场景更加灵活和动态。通过参数化,你可以让JMeter在每次请求中使用不同的值,这在模拟真实用户行为或测试不同输…

【mybatis-plus@Select注解联表查询实现分页】

前言 MybatisPlus对于单表的操作很方便,但是多表查询等复杂的操作还是需要在xml中写sql语句来完成。那么,在MybatisPlus中如何实现多表联查、分页查询呢。 一、数据库表设计 我们模拟一个购物的情况,在数据库创建两个表,一个用户…

MeterSphere接口测试脚本断言

MeterSphere接口测试脚本断言 我们在接口自动化测试过程中,经常遇到无论我们传入什么数据信息,只要响应体报文中某个字段为不固定的特定信息(如:或1或2或3),就符合预期,流程就可以继续&#xf…

通过JPA映射数据库

在 JPA (Java Persistence API) 中,实体类通常通过一系列注解来配置,以便与数据库表进行映射,与Mybatis-plus在功能上,具有一定的相似性,都是持久化框架。 package com.plumcarefree.demo.entity.user; import javax.persistence.*; impor…

用Python爬取高德地图地铁站点数据——Python程序及详解

0. 准备工作 在使用以下Python程序爬取高德地图地铁站点数据前,需要先在“高德开放平台”(网站:高德开放平台 | 高德地图API)申请一个API Key。具体操作为:注册一个“高德开放平台”账号,找到右上角的控制…

ImportError: DLL load failed: 找不到指定的程序的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

mycat读写分离实现、企业架构MySQL读写分离

一、mycat读写分离实现 1. 添加一个新的虚拟主机,设置ip为10.1.1.60,主机名为mycat.yuanyu.zhangmin.关闭防火墙 SELinux NetworkManager 2. 上传jdk和mycat安装包 3. 解压并且添加到指定的位置 [rootmycat ~]# ls anaconda-ks.cfg frp initserver.sh jdk1.8.0_19…

24暑假算法刷题 | Day30 | 贪心算法 IV | LeetCode 452. 用最少数量的箭引爆气球,435. 无重叠区间,763. 划分字母区间

目录 452. 用最少数量的箭引爆气球题目描述题解 435. 无重叠区间题目描述题解 763. 划分字母区间题目描述题解 452. 用最少数量的箭引爆气球 点此跳转题目链接 题目描述 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中…

【Docker】Elasticsearch 8.12 安装与搭建

由于工作过程中硬件资源未能达到要求,现将使用 Elasticsearch 取代原 Redis MySQL Milvus 技术栈,在重新搭建的同时记录一下搭建过程(由于之前也分享过 Docker 版本 Elasticsearch 5.x 和 Elasticsearch 7.x 的部署方法,因此本文…

横看成岭侧成峰,远近高低各不同 —— 深入探讨Obfs4流量识别:特征、方法与应用

目录 引言 Obfs4流量特征 数据包大小与分布 时间间隔(IAT) 流量方向 加密特征 Obfs4流量识别方法 深度学习模型识别 示例代码 基于部分数据的多级剪枝方法 方法步骤 深度包检测与机器学习结合 应用场景 网络安全监控 Tor网络访问优化 匿…

分层神经网络(DNN)知多少?

分层神经网络作为深度学习的核心架构,已经彻底改变了我们处理复杂问题的方式。本文将带我们走进神经网络的基础知识,揭开GPT这些强大模型的神秘面纱。希望通过本文的介绍,我们不仅能够理解神经网络的基本构成,还能洞察到它们是如何…

OpenCV图像处理——轮廓的面积与弧长计算(C++/Python)

概述 轮廓面积与轮廓周长是图像分析中的两项核心统计特征,它们为理解和量化图像中的形状提供了基础。 轮廓面积:这代表了轮廓所界定区域的像素数量,是衡量区域大小的直接指标。面积的计算结果以像素平方为单位,为我们提供了一个量…

Wireshark_DNS_v7.0

Wireshark_DNS_v7.0 一、 nslookup 前置 nslookup 是一个网络命令行工具,用于查询域名系统(DNS)中的域名解析记录。通过使用 nslookup,你可以获取某个域名的IP地址,或者获取与某个IP地址关联的域名信息。 查看域名…

学校医院NTP电子钟让时间管理更加智能

在学校和医院这样的重要场所,时间的精确管理至关重要。每一分每一秒都可能关系到教学的进度、医疗的效果以及师生和患者的体验。而 NTP 电子钟的出现,为学校和医院的时间管理带来了全新的智能化变革。 一、NTP 电子钟在学校应用 NTP 电子钟,…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第五篇 文件系统构建篇-第七十八章 离线构建Yocto系统

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…