【YOLO算法训练数据集处理】缩放训练图片的大小,同时对图片的标签txt文件中目标的坐标进行同等的转换

2023-12-19

背景:

在训练一个自己的yolo模型目标检测模型时,使用公共数据集时,通常要将图片缩放处理,而此时图片对应的标签文件中目标的坐标也应进行同等的变换,这样才能保证模型的正确训练。(当然,如果是自建的数据集,则将图片进行缩放后,使用Labelimg标注工具进行手动标注即可)

实例:

已知文件夹a中存放着批量图片,文件夹b中存放着文件夹a中每张图片对应的标签文件.txt,现要求将文件夹a中的图片缩放为256像素*256像素,并且对文件夹b中的标签文件中的目标的坐标进行同等变换,然后将缩放后的图片另存到文件夹c中,同等变换后的标签文件另存到文件夹d中。

用python编程实现:

import os
import cv2

# 输入文件夹路径
input_img_folder = r'E:\系统默认\桌面\a'
input_label_folder = r'E:\系统默认\桌面\b'

# 输出文件夹路径
output_img_folder = r'E:\系统默认\桌面\c'
output_label_folder = r'E:\系统默认\桌面\d'

# 目标尺寸
target_size = (256, 256)

# 确保输出文件夹存在
if not os.path.exists(output_img_folder):
    os.makedirs(output_img_folder)
if not os.path.exists(output_label_folder):
    os.makedirs(output_label_folder)

# 遍历文件夹a中的每张图片
for file_name in os.listdir(input_img_folder):
    if file_name.endswith('.png'):
        # 读取图片
        img_path = os.path.join(input_img_folder, file_name)
        img = cv2.imread(img_path)

        # 缩放图片
        resized_img = cv2.resize(img, target_size)

        # 保存缩放后的图片到文件夹c
        output_img_path = os.path.join(output_img_folder, file_name)
        cv2.imwrite(output_img_path, resized_img)

        # 处理对应的标签文件
        label_file_name = file_name.replace('.png', '.txt')
        label_file_path = os.path.join(input_label_folder, label_file_name)
        output_label_file_path = os.path.join(output_label_folder, label_file_name)

        # 读取原始标签文件内容
        with open(label_file_path, 'r') as f:
            lines = f.readlines()

        # 对每个目标的坐标进行同等变换
        transformed_lines = []
        for line in lines:
            # 解析坐标
            class_id, x, y, width, height = map(float, line.strip().split())

            # 计算变换后的坐标
            x *= target_size[0] / img.shape[1]
            y *= target_size[1] / img.shape[0]
            width *= target_size[0] / img.shape[1]
            height *= target_size[1] / img.shape[0]

            # 将变换后的坐标保存为字符串
            transformed_line = f'{class_id} {x} {y} {width} {height}\n'
            transformed_lines.append(transformed_line)

        # 保存变换后的标签文件到文件夹d
        with open(output_label_file_path, 'w') as f:
            f.writelines(transformed_lines)

上述代码同时实现了将图片进行缩放和其对应标签文件的同等变换。

这段代码假设标签文件格式为一行一个目标,每行包括类别ID、目标在图像中的归一化Bounding Box(以图片宽度和高度为单位),用空格分隔。如果标签文件格式不同,需要进行相应的修改。(这也是yolo官方模型的标签格式,建议首先确保标签格式与此保持一致)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【YOLO算法训练数据集处理】缩放训练图片的大小,同时对图片的标签txt文件中目标的坐标进行同等的转换 的相关文章

随机推荐

  • 【S024】SSM制造业MES生产管理系统项目源码

    项目标题 SSM制造业MES生产管理系统项目源码 Java毕业设计 项目编号 S024 功能介绍 IE MES制造执行系统 其定位于制造执行系统的Java开源版本 系统包括系统管理 车间基础数据建模 计划管理 物料控制 生产执行 质量管理
  • 大数据分析毕设之基于python的电影知识图谱可视化系统

    S2023002大数据分析毕设之基于python的电影知识图谱可视化系统 https www bilibili com video BV12N4y1A72J share source copy web vd source 3d18b0a7b
  • 数字时代的锁定机制:保护数据和隐私

    随着数字化的快速发展 我们的生活越来越离不开数字设备和互联网 然而 随之而来的是数据和隐私安全的威胁 在这个数字时代 锁定机制扮演着至关重要的角色 用于保护我们的数据和隐私不被未经授权的访问和滥用 本文将探讨数字时代的锁定机制 以及它们如何
  • 智汇云舟受邀出席智能船舶产业链高质量发展研讨会

    12月14日 由中国开发区协会制造业高质量发展专业委员会 威海经济技术开发区管委会主办的智能船舶产业链高质量发展研讨会 威海站 暨船舶智能监测与测量控制技术专家组成立会议在威海经开区召开 智汇云舟 副总裁陈虹旭受邀出席活动 与一百余名专家
  • 如何选择最合适的数据库,帮助企业及个人业务更好的开展

    选择正确的数据库类型来满足特定的业务需求可能很棘手 但我们随时为您提供帮助 提供全面的产品和解决方案 助力您的业务发展 我们广泛的云数据库解决方案组合支持所有主流开源数据库 部分商用数据库 可分为五类 云数据库专用集群 CDDC 适用于阿里
  • 手写文字识别免费软件哪些好?这些软件值得一试

    你是否有注意到 无论是在学习 工作还是日常生活中 手写文字都无处不在 然而 对于许多人来说 将这些手写文字转换为电子版是一项繁重的任务 幸运的是 现在有一些先进的图片手写文字识别软件可以帮助我们简化这个过程 通过使用这些软件 我们可以将手写
  • 微信游戏如何开发

    中懿游游戏软件开发 微信游戏开发通常涉及使用微信小游戏平台进行开发 微信小游戏是一种在微信平台上运行的轻量级游戏 用户可以在微信中直接体验 无需下载安装 以下是在微信平台上开发小游戏的一般步骤 1 注册微信开发者账号 访问 微信开放平台 注
  • 超星学习通 大学生心理健康教育(兰州大学版) 答案

    1 1什么是心理健康 对话诺奖大师 美国加州理工学院 1 单选题 21世纪 成为人才的首要条件是 A 身体健康 B 心理健康 C 社会适应良好 D 人际关系良好 我的答案 B 2 单选题 西方最早论述心理学的著作是 A 梦的解析 B 论灵魂
  • 酷雷曼再获“国家高新技术企业”认定

    2023年12月8日 对湖北省认定机构2023年认定报备的第五批高新技术企业拟进行备案的公示 正式发布 酷雷曼 武汉同创蓝天科技有限公司成功 获评 国家高新技术企业 认定 屡获权威认定 见证硬核实力 被评定为高新技术企业是我国 企业最高荣誉
  • 每天一个奇奇怪怪的问题 npm ERR! cb() never called! 解决办法

    npm ERR cb never called 报错 在终端执行 npm i npm install 时提示err报错并终端 可能是因为 npm 缓存导致 可以尝试清理缓存 解决方法 1 在终端执行npm清除缓存 npm cache cle
  • 计算机专业毕设之基于python的小说上架预测数据可视化分析系统

    S2023014计算机专业毕设之基于python的小说上架预测数据可视化分析系统 https www bilibili com video BV1aG41177WG share source copy web vd source 3d18b
  • 世微 AP75XX LDO低压差线性稳压芯片多种分装

    产品描述 AP75XX 是一款采用 CMOS 技术的低压差线性稳压器 最高工作电压可达 24V 有几种固定输出电压值 输出范围为 2 8V 9 0V 具有较低的静态功耗 广泛用于各类音频 视频设备和通信等设备的供电 特点应用领域封装信息输出
  • 竞赛保研 python的搜索引擎系统设计与实现

    0 前言 优质竞赛项目系列 今天要分享的是 python的搜索引擎系统设计与实现 学长这里给一个题目综合评分 每项满分5分 难度系数 3分 工作量 5分 创新点 3分 该项目较为新颖 适合作为竞赛课题方向 学长非常推荐 更多资料 项目分享
  • 网神防火墙后台用户敏感信息泄露漏洞复现

    简介 网神防火墙是一款由中国知名网络安全公司启明星辰开发的防火墙产品 它提供了全面的网络安全防护功能 旨在保护企业网络免受各种网络威胁和攻击 该产品存在用户账号信息泄露漏洞 通过构造特定数据包 获取防火墙管理员登录的账号密码 漏洞复现 FO
  • 当GPT-4V充当机器人大脑,可能你都没AI会规划

    来自清华大学交叉信息研究院的研究者提出了 ViLa 全称 Robotic Vision Language Planning 算法 其能在非常复杂的环境中控制机器人 为机器人提供任务规划 GPT 4V 已经能帮我们设计网站代码 控制浏览器 这
  • AWS-WAF-CDN基于速率rate的永久黑名单方案(基于lambda实现)

    参考方案 有坑 所以产生了这篇博客 点击跳转 1 部署waf 有则跳过 必须存在一个rate速率规则 后面的方案堆栈要用 新建rate速率规则 关联cdn资源 2 部署堆栈 美国东部 弗吉尼亚北部 us east 1 1 堆栈文件获取方式
  • 天猫数据分析-天猫数据分析工具-11月天猫面霜面膜数据分析报告:市场销售额超150亿!

    秋冬气温下降 天气干燥 护肤品的市场需求也与日俱增 根据鲸参谋电商数据分析平台的相关数据显示 今年11月份 天猫平台上护肤品市场的销量销额都纷纷上升 其中 市场销量将近1 2亿 环比增长约14 销售额为157亿 环比增长约9 除销售上升外
  • Win10电脑退出安全模式的两种方法

    在 Win10 电脑中 大家可以点击进入系统安全模式 完成相对应的系统设置 但是 很多用户进入安全模式完成设置后 不知道怎么操作才能成功退出安全模式 接下来小编给大家分享两种简单的方法 帮助大家成功退出Win10系统的安全模式 Win10电
  • C语言是否已经跟不上社会需求?

    今日话题 C语言是否已经跟不上社会需求 一个问题的提出者说 几天前他受到老板的批评 因为他只精通C语言编程 无法满足老板的需求 实际上 C语言在嵌入式行业中仍然具有极高的价值 它高效 可移植 并广泛用于嵌入式系统的开发 然而 嵌入式系统的多
  • 【YOLO算法训练数据集处理】缩放训练图片的大小,同时对图片的标签txt文件中目标的坐标进行同等的转换

    背景 在训练一个自己的yolo模型目标检测模型时 使用公共数据集时 通常要将图片缩放处理 而此时图片对应的标签文件中目标的坐标也应进行同等的变换 这样才能保证模型的正确训练 当然 如果是自建的数据集 则将图片进行缩放后 使用Labelimg