数据集学习笔记(七):不同任务数据集的标签介绍(包含目标检测、图像分割、行为分析)

文章目录

  • 一、目标检测
    • 1.1 TXT
    • 1.2 COCO
    • 1.3 XML
  • 二、图像分割
    • 2.1 json
    • 2.1 TXT
      • 2.1.1 json转txt
  • 三、行为分析
    • 3.1 TXT
    • 3.2 JSON

一、目标检测

1.1 TXT

在这里插入图片描述
每行表示(类别,中心x相对坐标,中心y相对坐标,相对宽度、相对高度)

1.2 COCO

里面存放了五个信息

info licenses images annotations categories

其中

  • info中存放标注文件标注时间、版本等信息。
  • licenses中存放数据许可信息。
  • images中存放一个list,存放所有图像的图像名,下载地址,图像宽度,图像高度,图像在数据集中的id等信息。
  • annotations中存放一个list,存放所有图像的所有物体区域的标注信息,每个目标物体标注以下信息:
    {'area': 899, 'iscrowd': 0, 'image_id': 839, 'bbox': [114, 126, 31, 29], 'category_id': 0, 'id': 1, 'ignore': 0, 'segmentation': []}

1.3 XML

<annotation><folder>17</folder> # 图片所处文件夹<filename>77258.bmp</filename> # 图片名<path>~/frcnn-image/61/ADAS/image/frcnn-image/17/77258.bmp</path><source>  #图片来源相关信息<database>Unknown</database>  </source><size> #图片尺寸<width>640</width><height>480</height><depth>3</depth></size><segmented>0</segmented>  #是否有分割label<object> 包含的物体<name>car</name>  #物体类别<pose>Unspecified</pose>  #物体的姿态<truncated>0</truncated>  #物体是否被部分遮挡(>15%)<difficult>0</difficult>  #是否为难以辨识的物体, 主要指要结体背景才能判断出类别的物体。虽有标注, 但一般忽略这类物体<bndbox>  #物体的bound box<xmin>2</xmin>     #左<ymin>156</ymin>   #上<xmax>111</xmax>   #右<ymax>259</ymax>   #下</bndbox></object>
</annotation>

二、图像分割

2.1 json

  "version": "4.6.0","flags": {},"shapes": [{"label": "break","points": [[988.936170212766,297.0],[1053.8297872340424,368.27659574468083]],"group_id": null,"shape_type": "rectangle","flags": {}}],"imagePath": "20220617_blue_h_24.jpg",

points是指矩形框的两个对角点

2.1 TXT


class x y w h ptx pty

其中

  • class 表示目标类别序号(从0开始)。
  • x、y 是中心点的坐标,经过归一化处理,即相对于图片宽度和高度的比例。
  • w、h 是框的宽度和高度,经过归一化处理,即相对于图片宽度和高度的比例。
  • ptx、pty 是关键点的坐标,经过归一化处理,即相对于图片宽度和高度的比例。

归一化怎么实现??中心点x坐标/图片宽,y坐标/图片高,矩形框的宽/图片宽,高/图片高,关键点横/除以图片宽,关键点纵坐标/图片高

2.1.1 json转txt

代码

# -*- coding: UTF-8 -*-
import json
import os
import cv2img_folder_path = 'datasets/500'  # 图片存放文件夹
folder_path = 'datasets/picbiaozhu'  # 标注数据的文件地址
txt_folder_path = 'datasets/txtresults'  # 转换后的txt标签文件存放的文件夹# 保存为相对坐标形式 :label x_center y_center w h
def relative_coordinate_txt(img_name, json_d, img_path):src_img = cv2.imread(img_path)# h, w = src_img.shape[:2]h, w, c = src_img.shapetxt_name = img_name.split(".")[0] + ".txt"txt_path = os.path.join(txt_folder_path, txt_name)print(txt_path)with open(txt_path, 'w') as f:for item in json_d["shapes"]:if item['shape_type'] == 'rectangle' and item['label'] == 'nameplate':point = item['points']x_center = (point[0][0] + point[1][0]) / 2y_center = (point[0][1] + point[1][1]) / 2width = point[1][0] - point[0][0]height = point[1][1] - point[0][1]# print(x_center)f.write(" {} ".format(0))f.write(" {} ".format(x_center / w))f.write(" {} ".format(y_center / h))f.write(" {} ".format(width / w))f.write(" {} ".format(height / h))continuekeypoint = item['points']x = keypoint[0][0]y = keypoint[0][1]f.write(" {} ".format(x / w))f.write(" {} ".format(y / h))f.write(" \n")print('finish!')for jsonfile in os.listdir(folder_path):# os.listdir用来返回指定文件夹包含的文件或文件夹的名字的列表temp_path = os.path.join(folder_path, jsonfile)print("json_path:\t",  temp_path)jsonfile_path = temp_pathwith open(jsonfile_path, "r", encoding='utf-8') as fff:json_d = json.load(fff, strict=False)img_name = json_d['imagePath'].split("\\")[-1].split(".")[0] + ".jpg"img_path = os.path.join(img_folder_path, img_name)print("img_path:\t", img_path)retname = img_name.replace(".jpg", ".txt")retpath = os.path.join(txt_folder_path, retname)if os.path.exists(retpath):continueelse:relative_coordinate_txt(img_name, json_d, img_path)

三、行为分析

3.1 TXT

如果是行为检测,这里和目标检测的txt参数情况是一样的。

3.2 JSON

OpenPose行为识别的数据集格式是一个json文件,其中包含了人体关键点的信息。json文件中的参数代表的含义如下:

  • people:人体关键点的数量。
  • poses:每个人体关键点的名称和位置。
  • keypoints:每个人体关键点的名称、类型和坐标。
  • images:图像的路径。

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

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

相关文章

LeetCode494. 目标和

494. 目标和 文章目录 [494. 目标和](https://leetcode.cn/problems/target-sum/)一、题目二、题解方法一&#xff1a;目标和路径计数算法方法二&#xff1a;01背包方法三&#xff1a;01背包一维数组 一、题目 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个…

面试官:说一下 MyBatis 的一级缓存和二级缓存 ?

目录 1. MyBatis 的缓存机制 2. 为什么不默认开启 MyBatis 的二级缓存 3. MyBatis 如何开启二级缓存 4. MyBatis 有哪些缓存清除策略 1. MyBatis 的缓存机制 MyBayis 中包含两级缓存&#xff1a;一级缓存和二级缓存 1. 一级缓存是 SqlSession 级别的&#xff0c;是 MyBati…

jmeter 常数吞吐量定时器

模拟固定吞吐量的定时器。它可以控制测试计划中各个请求之间的时间间隔&#xff0c;以达到预期的吞吐量。 参数包括&#xff1a; Target Throughput&#xff1a;目标吞吐量&#xff08;每分钟请求数&#xff09;Calculate Throughput based on&#xff1a;吞吐量计算基准&…

stm32---用外部中断实现红外接收器

一、红外遥控的原理 红外遥控是一种无线、非接触控制技术&#xff0c;具有抗干扰能力强&#xff0c;信息传 输可靠&#xff0c;功耗低&#xff0c;成本低&#xff0c;易实现等显著优点&#xff0c;被诸多电子设备特别是 家用电器广泛采用&#xff0c;并越来越多的应用到计算机系…

2022年09月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;stack or queue 栈和队列都是常用的线性结构&#xff0c;它们都提供两个操作&#xff1a; Push&#xff1a;加入一个元素。 Pop&#xff1a;弹出一个元素。 不同的是&#xff0c;栈是”先进后出”&…

leetcode236. 二叉树的最近公共祖先(java)

二叉树的最近公共祖先 题目描述递归法代码演示 上期经典 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q …

Ae 效果:CC Light Rays

生成/CC Light Rays Generate/CC Light Rays CC Light Rays&#xff08;CC 光线&#xff09;可以创建从光源发出并能穿过图层内容的光线效果。常用于制作光线透过门窗或云层的场景&#xff0c;或者用于创建神奇或梦幻的氛围感。 本效果会被限制在源图层的大小范围之内。 ◆ ◆…

每日一题 98验证二叉搜索树(中序遍历)

题目 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1&#xff1a…

【负载均衡】常见的负载均衡策略有哪些?

文章目录 前言负载均衡分类常见负载均衡策略小结 前言 负载均衡策略是实现负载均衡器的关键&#xff0c;而负载均衡器又是分布式系统中不可或缺的重要组件。使用它有助于提高系统的整体性能、可用性、可靠性和安全性&#xff0c;同时支持系统的扩展和故障容忍性。对于处理大量…

基于 Docker 的 MySQL 主从复制搭建(Mac M1版本)

系统&#xff1a;Macbook M1 镜像版本&#xff1a;mysql:5.7 如果是要查 slave连接不上 master的问题&#xff0c;可以直接跳到文章末尾踩坑处 准备工作 拉取镜像 docker pull mysql:5.7本地数据卷挂载 因为mysql不挂载的话&#xff0c;重启丢失数据&#xff0c;所以在本地创…

微服务--Gatway:网关

routes: - id:order_route(路由唯一 标识&#xff0c;路由到order) uri&#xff1a;http://localhost:8020 #需要转发的地址 #断言规则&#xff08;用于路由规则的匹配&#xff09; predicates: -path/order-serv/** -pathlb://order-service # lb: 使用nacos中的本地…

分享码云上8个宝藏又有价值的开源图片编辑器

如果你需要高效地处理图片&#xff0c;那么这8款实用工具是可以尝试的&#xff01; 它们能够进行一键抠图、放大、拼接、转矢量图、图标自动生成以及等操作&#xff0c;让你的工作效率飞升&#xff01; 在Gitee这个最有价值的开源项目计划是Gitee综合评定出的优秀开源项目的展示…

springboot web开发springmvc自动配置原理

前言 我们也知道springboot启用springmvc基本不用做什么配置可以很方便就使用了但是不了解原理,开发过程中遇到点问题估计就比较头疼,不管了解的深不深入,先巴拉一番再说… 下面我们先看看官网…我的版本是2.3.2版本,发现官网改动也比较大…不同版本自己巴拉下吧,结构虽然变化…

C++文件操作

一、fstream简介 C 提供了一组用于文件操作的标准库fstream&#xff0c;可以进行文件的读取、写入和其他相关操作。常用的文件操作包括文件的打开、关闭、读取、写入和定位等。下面是一些常见的文件操作函数&#xff1a; 文件的打开和关闭&#xff1a; std::ofstream&#x…

leetcode 941. 有效的山脉数组

2023.9.2 可以用双指针法来做&#xff0c;left指向数组起点&#xff0c;right指向数组终点&#xff0c;left满足条件则左移&#xff0c;right满足条件则右移&#xff0c;最终两指针重合则返回true。 期间任一条件不满足则返回false。 代码如下&#xff1a; class Solution { p…

大数据时代下的数据安全防护

随着大数据时代的来临&#xff0c;数据安全防护成为了一个重要的问题。在大数据时代&#xff0c;数据的规模和价值都得到了极大的提升&#xff0c;因此数据安全的重要性也变得越来越突出。本文将从数据加密、访问控制、网络安全和人员管理四个方面来介绍大数据时代下的数据安全…

什么是盒子模型

什么是盒子模型 盒子模型&#xff0c;也可以称为框模型。 所有 HTML 元素可以看作盒子。在 CSS 中&#xff0c;“box model” 这一术语是用来设计和布局时使用。 CSS 盒模型本质上是一个盒子&#xff0c;封装周围的 HTML 元素&#xff0c;它包括&#xff1a;边距&#xff0c…

8. 损失函数与反向传播

8.1 损失函数 ① Loss损失函数一方面计算实际输出和目标之间的差距。 ② Loss损失函数另一方面为我们更新输出提供一定的依据。 8.2 L1loss损失函数 ① L1loss数学公式如下图所示&#xff0c;例子如下下图所示。 import torch from torch.nn import L1Loss inputs torch.tens…

Django静态文件媒体文件文件上传

文章目录 一、静态文件和媒体文件1.在django中使用静态文件实践2.在django中使用媒体文件 二、文件上传单文件上传实践多文件上传 一、静态文件和媒体文件 媒体文件: 用户上传的文件&#xff0c;叫做media 静态文件:存放在服务器的css,js,image,font等 叫做static1.在django中…

【Locomotor运动模块】瞬移

文章目录 一、原理二、两种类型1、Instant(立刻)2、Dash&#xff08;猛冲&#xff09; 三、瞬移区域、瞬移点1、瞬移区域2、瞬移点 一、原理 抛物线指针选择好目标位置&#xff0c;然后告诉瞬移预设体&#xff1a;你想法把游戏区域弄到目标位置来 解释&#xff1a;抛物线指针选…