【W1】记录文档

news2024/9/22 17:42:00

标题

  • 导出数据结构
    • 关系结构
    • YOLO
    • VOC
    • LabelMe
    • COCO
    • JSON
    • 可视化

导出数据结构

关系结构

 任务 -> 批次 -> 条目 -> 帧

YOLO

一张图片对应一个文本文件

	.txt
	<object-class> <x> <y> <width> <height>
	归一化处理
	找到物体在图像中的中心点的 x,y 坐标
	物体在图像中的宽度和高度

YOLO

VOC

一张图片对应一个XML文件

.xml

VOC

<annotation>
    <folder />
    <filename>IMG20240423143425.jpg</filename>  # 文件名
    <path>NjY4Y2Y5NzAwZjdmMjU4NDVkZTkzODlm/20240709164944/番茄照片_副本/IMG20240423143425.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size> # 图片尺寸,用于对bbox左上和右下坐标点做归一化操作
        <width>3072</width>
        <height>4096</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented> # 是否用于分割
    <object>
        <name>无遮挡</name> # 物体类别
        <pose>Unspecified</pose> # 拍摄角度: front, rear, left, right, unspecified 
        <truncated>Unspecified</truncated> # 目标是否被截断(比如在图片之外),或者被遮挡(超过15%)
        <difficult>0</difficult> # 检测难易程度,这个主要是根据目标的大小,光照变化,图片质量来判断
        <bndbox> # boundingbox左上角点的横纵坐标, 右下角点的横纵坐标
            <xmin>1403</xmin>
            <ymin>522</ymin>
            <xmax>1894</xmax>
            <ymax>1137</ymax>
        </bndbox>
    </object>
</annotation>

LabelMe

一个图片对应一个JSON文件

 version:版本信息
 flags:可以为空
 shapes:包含图片所有标注信息的数组
 imagePath:图片路径
 imageData:图片的Base64形式
 imageHeight:图片的高
 imageWidth:图片的宽
shapes字段是包含多个目标的标注信息的数组。
[
	{
  	"label": "people", 
  	"points": [[x1,y1],[x2,y2],...[xn,yn]] 
  },
	{
  	"label": "car",
  	"points": [[x1,y1],[x2,y2],...[xn,yn]]
	},
	...
]

COCO

一个批次一个JSON文件

 .json
 边界框(bbox)以[x_min, y_min, width, height]形式标注
 分别为边界框的左上角坐标,宽度和高度
{
  "images" : 图片信息
  "categories" : 标注种类
  "annotations" : 标注
}

JSON

可视化

from PIL import Image, ImageDraw
import json
from pathlib import Path
from urllib.parse import urlparse

json_path = Path("D:/0815change/2024-08-16_07_33_35-export/data/ZGY_2824.json")
with json_path.open(encoding="utf-8") as f:
    json_data = json.load(f)

# 0 代表无遮挡 1 代表有遮挡
mode = 0

for img in json_data:
    url = img['info']
    urls = urlparse(url)
    filename = Path(urls.path).name
    # 获取到文件名
    print(filename)

    img_url = "D:/0815change/2024-08-16_07_33_35-export/resource/20240709164944/番茄照片_副本/" + filename
    image = Image.open(img_url)

    # 获取点的信息
    points = img['labels']
    for j in points:
        for k in j.items():
            if k[0] == "label" and k[1] == "无遮挡":
                mode = 0
            if k[0] == "label" and k[1] == "被遮挡":
                mode = 1
            if k[0] == "points":
                x1 = k[1][0]
                y1 = k[1][1]
                x2 = k[1][2]
                y2 = k[1][3]
                rect_coords = (x1, y1, x2, y2)
                draw = ImageDraw.Draw(image)
                if mode == 0:
                    draw.rectangle(rect_coords, outline="blue", width=5)
                else:
                    draw.rectangle(rect_coords, outline="green", width=5)
    image.show()

运行结果

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

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

相关文章

018、钩子函数 mounted和beforeDestroy、父组件向子组件传递参数 props 的使用

文章目录 1、mounted 和 beforeDestroy1.1、mounted1.2、beforeDestroy 2、父组件向子组件传递参数 props2.1、子组件定义2.2、父组件调用子组件并传参 3、完整例子3.1、父组件 Tags.vue3.2、子组件 TagsMenu.vue3.3、效果图 1、mounted 和 beforeDestroy 1.1、mounted mount…

人类是怎样提取特征并学习和表达复杂的模式的?

人类提取特征、学习和表达复杂模式的过程涉及多方面的认知和神经机制。一些关键步骤和机制涉及&#xff1a; 感知是人类获取外部信息的过程。通过感官&#xff08;视觉、听觉、触觉等&#xff09;&#xff0c;人类可以接触到各种数据。注意力机制帮助我们从大量信息中筛选出重要…

Trying to Insert an input function using Python in OpenAI

题意&#xff1a;尝试在 OpenAI 中使用 Python 插入一个输入函数 问题背景&#xff1a; import os import openai openai.api_key API_Key Question "\\n\\nQ: input("Enter Question")?\\nA:", response openai.Completion.create( model"text-…

C++ 容器 deque(双端队列)

我们在学习之前的数据结构链表和顺序表的时候&#xff0c;发现顺序表插入删除慢&#xff0c;但是下标查找等速度快&#xff0c;链表下面查找等速度慢&#xff0c;但是插入删除快。它们互补。 那么我们是否可以将两个数据结构结合起来&#xff0c;产生一个完美的数据结构呢&…

LangChain与Elasticsearch向量数据库的完美结合

在过去的一年中&#xff0c;生成式 AI (Generative AI) 领域取得了显著的进展。许多新的服务和工具应运而生。其中&#xff0c;LangChain 已成为构建大语言模型 (LLM) 应用程序&#xff08;例如检索增强生成 (RAG) 系统&#xff09;最受欢迎的框架之一。该框架极大地简化了原型…

【网络安全】通过设备ID绕过双因素身份验证

未经许可,不得转载。 文章目录 正文正文 某站点登陆界面如下所示:https://redacted.com/login 输入正确的用户名密码并拦截登录请求,请求包如下: POST /api/authentication/login-2fa HTTP/1.1 Host: redacted.com Content-Length: 100 Sec-Ch-Ua: "Not)A;Brand&quo…

(南京观海微电子)——投影仪原理及使用介绍

投影仪 是一种用来放大显示图像的投影装置。目前已经应用于会议室演示以及在家庭中通过连接DVD影碟机等设备在大屏幕上观看电影。在电影院&#xff0c;也同样已开始取代老电影胶片的数码影院放映机&#xff0c;被用作面向硬盘数字数据的银幕。 投影仪的成像原理 首先&#xff…

这款新的 AI 工具会消灭 ChatGPT 吗?

随着大型语言模型 (LLM) 的出现&#xff0c;ChatGPT迅速成为全球计算机用户的家喻户晓的名字。这款由 OpenAI 设计的深度学习聊天机器人以知识宝库而闻名——一部互联网百科全书。 继ChatGPT的脚步之后&#xff0c;许多其他生成式AI工具也纷纷涌现。 2023 年 3 月&#xff0c;一…

大型、复杂、逼真的安全服和安全帽检测:SFCHD数据集和SCALE方法

智能守护工地安全&#xff1a;SFCHD数据集与SCALE模块介绍 在人工智能&#xff08;AI&#xff09;技术飞速发展的今天&#xff0c;其在建筑工地安全领域的应用正逐渐展现出巨大潜力。尤其是高风险行业如化工厂的施工现场&#xff0c;对工人的保护措施要求极为严格。个人防护装…

07、stm32外部中断

一、配置 二、代码 /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ uint8_t keyFalg 0; // 1按键被按下 /* USER CODE END PD *//* USER CODE BEGIN 4 */ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if…

GStreamer 简明教程(三):动态调整 Pipeline

系列文章目录 GStreamer 简明教程&#xff08;一&#xff09;&#xff1a;环境搭建&#xff0c;运行 Basic Tutorial 1 Hello world! GStreamer 简明教程&#xff08;二&#xff09;&#xff1a;基本概念介绍&#xff0c;Element 和 Pipeline 文章目录 系列文章目录前言一、静…

windows11怎么加密?如何对win11系统文件进行加密?

“昔者&#xff0c;有物藏于室&#xff0c;恐人窥之&#xff0c;必施锁钥以护之。今之世&#xff0c;信息如海&#xff0c;数据若金&#xff0c;保护之责&#xff0c;重于泰山。Windows 11&#xff0c;微软之新篇&#xff0c;亦需加密之术&#xff0c;以护数据安全。” 本文将…

Golang | Leetcode Golang题解之第341题扁平化嵌套列表迭代器

题目&#xff1a; 题解&#xff1a; type NestedIterator struct {vals []int }func Constructor(nestedList []*NestedInteger) *NestedIterator {var vals []intvar dfs func([]*NestedInteger)dfs func(nestedList []*NestedInteger) {for _, nest : range nestedList {if…

期末速成复习资料——操作系统

体型&#xff1a;选择20判断10填空10*2简答4*5计算2*10 第一章 在一个计算机系统中&#xff0c;通常都含有多种硬件和软件资源。归纳起来可将这些资源分为四类&#xff1a;处理机、存储器、I/O设备以及文件&#xff08;数据和程序&#xff09;。相应地&#xff0c;OS的主要功能…

html中的<base>标签和 href属性的使用

先截图一个菜鸟教程的案例 说白了就是将本页面所有的URL前边都加上base标签后边的href中的内容即&#xff1a;

财务会计与管理会计(八)

文章目录 电商绩效工资计算IF函数的应用 参数表的格式转换INDEX、MATCH函数的应用 巧妙计算计件工资引出问题调整方案增加变量扩大范围 智能值班表VLOOKUP函数的使用方法 按照设备类别自动编号VLOOKUP、COUNTIF、TEXT函数的使用方法 多公司多月份损益汇总表OFFSET、INDIRECT函数…

154 · 正则表达式匹配

链接&#xff1a;LintCode 炼码 - 更高效的学习体验&#xff01; 题解&#xff1a; class Solution { public:/*** param s: A string * param p: A string includes "." and "*"* return: A boolean*/bool isMatch(string &s, string &p) {// w…

Unity求向量和平面的交点

已知条件&#xff1a;平面P的法向量&#xff0c;平面上的一点P0&#xff0c;直线L的方向向量&#xff0c;直线上的一点L0 公式推导&#xff1a; 主要是两点&#xff1a; 1.目标点T在直线上&#xff1a;TL0D*&#xff08;D未知&#xff09; 2.目标点T在平面上&#xff0c;则T…

Kubectl 常用命令汇总大全

kubectl 是 Kubernetes 自带的客户端&#xff0c;可以用它来直接操作 Kubernetes 集群。 从用户角度来说&#xff0c;kubectl 就是控制 Kubernetes 的驾驶舱&#xff0c;它允许你执行所有可能的 Kubernetes 操作&#xff1b;从技术角度来看&#xff0c;kubectl 就是 Kubernetes…

【JavaEE】一文学会如何使用:文件IO操作(详解)

目录 前言 什么是IO&#xff1f; IO流原理 IO流分类 InputStream字节流输入 文件输入流--FileInputStream 理解InputStream中的read方法 关闭文件操作 利用Scanner进行字符获取 OutputStream字节流输出 文件输出流--FileOutputStream 理解OutputStream中的…