json转txt格式YOLO数据集

news/2025/7/9 5:03:24/
import os
import json# 修改为你的标签目录路径
LABEL_DIR = "D:\ChromeDownload\***"
# 输出标签目录,和图像文件名对应的txt文件存这里
OUTPUT_DIR = "D:\ChromeDownload\labels"# 假设图像尺寸,若不是1920x1080,修改这里
IMAGE_WIDTH = 1920
IMAGE_HEIGHT = 1080# 类别映射,没在这里的类别会跳过
CLASS_MAP = {"Car": 0,           # 小汽车"Truck": 1,         # 卡车/大货车"Van": 2,           # 面包车/厢式货车"Bus": 3,           # 公交车"Pedestrian": 4,    # 行人"Cyclist": 5,       # 自行车"Tricyclist": 6,    # 三轮车"Motorcyclist": 7,  # 摩托车"Barrowlist": 8     # 手推车
}def convert_bbox_to_yolo(xmin, ymin, xmax, ymax, img_w, img_h):x_center = (xmin + xmax) / 2.0 / img_wy_center = (ymin + ymax) / 2.0 / img_hwidth = (xmax - xmin) / img_wheight = (ymax - ymin) / img_hreturn x_center, y_center, width, height
# 务必根据json中的标签做适当调整
def convert_json_to_txt(json_path, txt_path):with open(json_path, 'r') as f:data = json.load(f)lines = []for obj in data:cls = obj.get("type")if cls not in CLASS_MAP:continue  # 不在映射表中类别跳过bbox = obj.get("2d_box")xmin = bbox["xmin"]ymin = bbox["ymin"]xmax = bbox["xmax"]ymax = bbox["ymax"]x_c, y_c, w, h = convert_bbox_to_yolo(xmin, ymin, xmax, ymax, IMAGE_WIDTH, IMAGE_HEIGHT)# 限制范围在0~1内(可选)x_c = max(min(x_c, 1), 0)y_c = max(min(y_c, 1), 0)w = max(min(w, 1), 0)h = max(min(h, 1), 0)cls_id = CLASS_MAP[cls]lines.append(f"{cls_id} {x_c:.6f} {y_c:.6f} {w:.6f} {h:.6f}")if lines:with open(txt_path, "w") as f:f.write("\n".join(lines))else:# 如果没有有效标签,写空文件或者不写都可以,这里写空文件with open(txt_path, "w") as f:passdef main():os.makedirs(OUTPUT_DIR, exist_ok=True)for filename in os.listdir(LABEL_DIR):if not filename.endswith(".json"):continuejson_path = os.path.join(LABEL_DIR, filename)txt_filename = os.path.splitext(filename)[0] + ".txt"txt_path = os.path.join(OUTPUT_DIR, txt_filename)convert_json_to_txt(json_path, txt_path)print(f"Converted {filename} -> {txt_filename}")if __name__ == "__main__":main()

http://www.ppmy.cn/news/1739777.html

相关文章

高效管理Python环境:Miniforge、pyenv和Poetry深度对比与应用

目录 一、Miniforge✅ 简介🧩 核心功能🔧 安装方式💡 常用命令 二、pyenv✅ 简介🧩 核心功能🔧 安装方式(macOS/Linux)💡 常用命令 三、Poetry✅ 简介🧩 核心功能&#x…

火山引擎扣子的具体作用

从用词来看,“扣子”这个中文昵称用得挺亲切,用户可能是在中文社区看到的称呼,而不是直接查官方文档。说明用户更想要通俗易懂的解释,而不是技术手册。 火山引擎扣子作为字节跳动的AI平台,核心价值在于“企业级AI应用开…

所谓的“舵速”是指什么?应该不是指舵叶的摆动线速度吧,而是指舵跟随船只运动的平动线速度吧?

提问 这个图片里面,所谓的“舵速”是指什么?应该不是指舵叶的摆动线速度吧,而是指舵跟随船只运动的平动线速度吧? 回答 你的理解完全正确 ✅,这里的“舵速” v R v_R vR​ 不是指舵叶自身的摆动线速度(即…

106.给AI回答添加点赞收藏功能

为增加与用户的互动性,所以想设置一个点赞功能,如果用户觉得此时AI回答的好,那么可以对其点赞,同时用户回顾该对话时,也可以作为一个标记: 前端修改 添加likebutton 添加对应的toggleLike方法,…

远程管理命令:网卡和IP地址的概念

一、查看和配置网卡信息 序号命令对应英文作用01ifconfigconfigure a network interface查看 / 配置计算机当前的网卡配置信息02ping ip 地址ping检测到目标 ip 地址的连接是否正常 1. 网卡和IP地址 网卡 网卡是一个专门负责网络通讯的硬件设备IP地址是设置在网卡上的地址信…

[微服务设计]4_集成

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 1 引言2 寻找理想的集成技术2.1 怎样才算是理想集…

Solon框架模板漏洞深度剖析与修复实战

前言 分析发现 Solon 框架在3.1.0版本上存在一个有意思的模板漏洞,对这个漏洞进行简单分析后,发现整个漏洞的利用链是非常有意思的。同时发现最新版的修复方式过于简单,询问 AI 后,AI 也认为修复也是不完善的安全修复&#xff0c…

从零开始学Python(3)——函数

从零开始学Python(3)——函数 文章目录 从零开始学Python(3)——函数前言定义、调用、返回值参数传递和深浅拷贝问题可变参数匿名函数(Lambda函数)闭包、装饰器模块、包、库结语 前言 开始学python的第三天…