当前位置: 首页 > news >正文

统计数据集的TXT、XML及JSON标注文件中各类别/每个标签的数量

在计算机视觉和深度学习领域,标注文件是模型训练的重要组成部分。无论是图像分类、目标检测还是图像分割,正确的标注能够显著提升模型的性能。在实际应用中,我们需要快速了解每个类别的样本数量,以便进行数据分析、平衡类别分布或优化模型训练。

以下是各个格式的文件代码,输出均按照标签数量从多到少排序,其中txt输入需要修改列表中标签。

统计YOLO格式的TXT文件

import os
from collections import Counterstring_table = ['hat','nohat']  #按顺序修改为类别列表
folder_path = r' '  #修改为txt文件夹
category_counter = Counter()for filename in os.listdir(folder_path):if filename.endswith('.txt'):file_path = os.path.join(folder_path, filename)with open(file_path, 'r') as file:for line in file:category_index = int(line.split()[0])if category_index < len(string_table):category = string_table[category_index]category_counter[category] += 1
print("各类别数量:")
for category in string_table:count = category_counter[category]print(f"{category}: {count}")

统计VOC格式的XML文件

import os
import xml.etree.ElementTree as ETclass_count = {}
folder_path = r' '  # 此处修改为xml文件夹
for filename in os.listdir(folder_path):if filename.endswith('.xml'):tree = ET.parse(os.path.join(folder_path, filename))root = tree.getroot()for obj in root.findall('object'):name = obj.find('name').textif name in class_count:class_count[name] += 1else:class_count[name] = 1
sorted_class_count = sorted(class_count.items(), key=lambda x: x[1], reverse=True)
print("各类别数量:")
for name, count in sorted_class_count:print(f"{name}: {count}")

统计JSON文件

import os
import json
from collections import Counterjson_folder = r' '  # 修改JSON文件夹路径
json_files = [f for f in os.listdir(json_folder) if f.endswith('.json')]
category_counter = Counter()
for json_file in json_files:with open(os.path.join(json_folder, json_file), 'r') as f:data = json.load(f)for shape in data['shapes']:category = shape['label']category_counter[category] += 1
sorted_category_count = sorted(category_counter.items(), key=lambda x: x[1], reverse=True)
print("各类别数量:")
for category, count in sorted_category_count:print(f"{category}: {count}")

http://www.lryc.cn/news/472564.html

相关文章:

  • Facebook登录客户追踪:了解用户访问路径,优化客户体验
  • NUUO摄像头 debugging_center_utils 远程命令执行漏洞复现
  • Nginx 的讲解和案例示范
  • 微信小程序元素水平居中或垂直居中
  • ClickHouse 神助攻:纽约城市公共交通管理(MTA)数据应用挑战赛
  • ELK + Filebeat + Spring Boot:日志分析入门与实践(二)
  • 使用 Docker Compose 将数据版 LobeChat 服务端部署
  • python如何完成金融领域的数据分析,思路以及常见的做法是什么?
  • 密码管理工具实现
  • 构造函数和new操作符 - 2024最新版前端秋招面试短期突击面试题【100道】
  • 6.Linux按键驱动-阻塞与非阻塞
  • Mac打开环境变量配置文件,source ~/.zshrc无法打开问题解决
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-23
  • 【C#】搭建环境之CSharp+OpenCV
  • 100种算法【Python版】第25篇——Bidirectional Search算法
  • WebSocket与Socket
  • Python 3 维护有序列表 bisect
  • vue版本太低无法执行vue ui命令
  • 数据结构 之 二叉树的遍历------先根遍历(五)
  • Xss_less靶场攻略(1-18)
  • 【AI语音克隆整合包及教程】声临其境,让想象成为现实——第二代GPT-SoVITS引领语音克隆新时代!
  • echarts属性之dataZoom
  • SQLite 语法
  • 逗号运算符应用举例
  • Android 玩机知识储备
  • MyBatis 学习记录(六)之逆向工程
  • 深度了解flink(七) JobManager(1) 组件启动流程分析
  • PostgreSQL 约束
  • 【Redis】
  • 大厂面试真题-MVCC有哪些不好