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

文章目录

  • 一、目标检测
    • 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.rhkb.cn/news/113133.html

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

相关文章

Java基础二十一(异常捕获和处理)

1. 异常 1.1 概述 (1) 认识异常 异常是指程序在运行过程中出现非正常情况。 (2) Java 异常体系结构 所有异常类都是 Throwable 类的子类&#xff0c;它派生出两个子类&#xff0c;Error 类和 Exception 类。 &#xff08;1&#xff09;Error 类 : 表示程序无法恢复的严重错误…

论文阅读 FCOS: Fully Convolutional One-Stage Object Detection

文章目录 FCOS: Fully Convolutional One-Stage Object DetectionAbstract1. Introduction2. Related Work3. Our Approach3.1. Fully Convolutional One-Stage Object Detector3.2. Multi-level Prediction with FPN for FCOS3.3. Center-ness for FCOS 4. Experiments4.1. Ab…

Jmeter和Postman那个工具更适合做接口测试?

软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中&#xff0c;有高手&#xff0c;自然也会有小白&#xff0c;但有一点我们无法否认&#xff0c;就是每一个高手都是从小白开始的&#xff0c;所以今天我们就来谈谈一大部分人在做的接口测试&#xff0c;小白变高手…

【单片机】有人 WH-LTE-7S1 4G cat1 模块,HTTPD模式,字符串传输,文件传输。GPRS模块连接服务器教程。

文章目录 1、配置模块为HTTPD模式 POST字符串传输2、配置模块为HTTPD模式 GET请求3、 上一篇文章&#xff1a;https://qq742971636.blog.csdn.net/article/details/132571592 在上一篇文章里&#xff0c;已经通过TCP 长链接进行服务器与Cat1 GPRS 模块进行双向通信。已经能够满…

(一)SpringBoot 整合WebSocket 前端 uniapp 访问

第一次使用WebSocket&#xff0c;所以最需要一个及其简单的例子&#xff0c;跑通之后&#xff0c;增加自己对该技术的理解。&#xff08;技术基础介绍就免掉了&#xff0c;后面再补&#xff09; 案例逻辑&#xff1a;目前只有一个用户&#xff0c;而且是一个用户给服务器发送数…

Python 画多个子图函数 subplot

子图函数 subplot 若要 pyplot 一次生成多个图形&#xff0c;一般要用到subplot函数&#xff0c;另外还有一个subplots函数。两个函数比较接近但略有区别&#xff0c;限于篇幅&#xff0c;我们只介绍 subplot函数&#xff0c;它的基本语法如下&#xff1a; ax plt.subplot(n…

搬家快递服务小程序的便利性

在当今快节奏的生活中&#xff0c;搬家可能是很多人都需要面对的问题。无论是新房子还是新办公室&#xff0c;都需要高效、便捷的搬家服务。本文将介绍如何使用第三方小程序制作平台&#xff0c;如乔拓云平台&#xff0c;开发一款高效便捷的搬家服务小程序。 1. 注册登录第三方…

模拟实现应用层协议

模拟实现应用层协议 文章目录 模拟实现应用层协议应用层再谈协议 序列化和反序列化 网络版计算器自定义协议利用Json进行序列化和反序列化json库的安装条件编译 应用层 应用层&#xff08;Application layer&#xff09;是OSI模型的第七层。应用层直接和应用程序接口并提供常见…

AI:05 - 基于深度学习的道路交通信号灯的检测与识别

随着人工智能的快速发展,基于深度学习的视觉算法在道路交通领域中起到了重要作用。本文将探讨如何利用深度学习技术实现道路交通信号灯的检测与识别,通过多处代码实例展示技术深度。 道路交通信号灯是指示交通参与者行驶和停止的重要信号。准确地检测和识别交通信号灯对于智…

06.sqlite3学习——DQL(数据查询)(全)

目录 SQLite——DQL&#xff08;数据查询&#xff09; 数据集 select语句 条件查询 比较 确定范围 确定集合 like 查询记录 查询不重复的记录 排序和限制 排序 限制 聚合 聚合函数 语法 SQLite Group By详解 语法 实例 SQLite Having 子句 语法 实例 多…

Linux通信--构建进程通信System-V 消息队列|信号量

文章目录 目录 一、消息队列 二、信号量 1.互斥 2.信号量 一、消息队列 消息队列提供了从一个进程向另一个进程发送数据块的方法每个数据块都被认为是有一个类型&#xff0c;接收者进程接收的数据块可以有不同的类型值IPC资源必须删除&#xff0c;不会随进程自动清楚&#…

webrtc-m79-msvc编译H264

0 写在前面 本文主要参考&#xff1a;webrtc 4577版本vs编译_tusong86的博客-CSDN博客 4577也就是m93&#xff0c;由于源码版本的不同&#xff0c;可能存在一定的出入&#xff0c;可根据实际情况进行修改&#xff1b; 感谢作者的付出&#xff1b; 1 编译参数 powershell运…

【git】Idea撤回本地分支、或远程分支提交记录的各种实际场景操作步骤

文章目录 idea撤回本地分支、远程分支场景操作集合场景1&#xff1a;要撤回最后一次本地分支的提交实现效果&#xff1a;操作步骤&#xff1a; 场景2&#xff1a;要撤回最后一次远程分支的提交有撤销记录的&#xff1a;实现效果&#xff1a;操作步骤&#xff1a; 无撤销记录的&…

数据分析基础-数据可视化学习笔记03-可视化的符号与表示-图形符号学

概念 图型符号学&#xff08;Cartographic Symbolization&#xff09;是地图学领域中的一个重要概念&#xff0c;涉及到如何使用不同的符号、颜色、图案和标记来在地图上表示地理信息和数据。图型符号学旨在传达地理信息&#xff0c;使得地图能够清晰、有效地传达各种空间数据…

微信小程序scroll-view隐藏滚动条参数不生效问题

如题&#xff0c;先来看看问题是怎么出现的。 先看文档如何隐藏滚动条&#xff1a; 再根据文档实现wxml文件&#xff1a; <scroll-view show-scrollbar"{{false}}" enhanced><view wx:for"{{1000}}">11111</view> </scroll-view>…

pytorch异常——RuntimeError:Given groups=1, weight of size..., expected of...

文章目录 省流异常报错异常截图异常代码原因解释修正代码执行结果 省流 nn.Conv2d 需要的输入张量格式为 (batch_size, channels, height, width)&#xff0c;但您的示例输入张量 x 是 (batch_size, height, width, channels)。因此&#xff0c;需要对输入张量进行转置。 注意…

探索未知世界:桌面端3D GIS引领地理信息新时代

近年来&#xff0c;桌面端的三维地理信息系统&#xff08;3D GIS&#xff09;在地理信息领域迎来了显著的发展&#xff0c;为我们带来了更深入、更丰富的地理空间认知和数据分析体验。从城市规划到环境保护&#xff0c;从资源管理到应急响应&#xff0c;桌面端的3D GIS正逐渐成…

day 30 动态GDP柱状图绘制

列表.sort(key选择排序依据的函数&#xff0c;reverseTrue|False) 参数key:要求传入一个函数&#xff0c;表示将列表的每一个元素传入函数当中&#xff0c;返回排序的依据&#xff0c; 参数reverse,是否反转排序结果&#xff0c;True降序&#xff0c;False升序 my_list [[&…

【爬虫小知识】如何利用爬虫爬网页——python爬虫

前言 网络时代的到来&#xff0c;给我们提供了海量的信息资源&#xff0c;但是&#xff0c;想要获取这些信息&#xff0c;手动一个一个网页进行查找&#xff0c;无疑是一项繁琐且效率低下的工作。这时&#xff0c;爬虫技术的出现&#xff0c;为我们提供了一种高效的方式去获取…

Android JNI系列详解之生成指定CPU的库文件

一、前提 这次主要了解Android的cpu架构类型&#xff0c;以及在使用CMake工具的时候&#xff0c;如何指定生成哪种类型的库文件。 如上图所示&#xff0c;是我们之前使用CMake工具默认生成的四种cpu架构的动态库文件&#xff1a;arm64-v8a、armeabi-v7a、x86、x86_64&#xff0…