CrowdHuman数据集格式 ——odgt文件格式

注:之前说要将Crowd Human数据集标注转换成COCO数据集标注格式,现在先来看一下odgt文件里的数据是怎么样保存的。

demo下的odgt标注文件

在Crowd Human数据集目录下,还有一个demo文件夹。这个demo是干么的呢,博主查了一下说是提取odgt里面的数据的?所以就先看里面的代码和odgt文件
在这里插入图片描述
data下面有一个get_human.odgt,大小才66k,方便打开。(原标注文件的val23M,train80M,这么大的文件在电脑或服务器中打开,要卡好久…)。而demo.py文件涉及到线程等一大堆难懂的东西,博主直接放弃,直接看odgt文件了。

先说一下坑吧,这个odgt里面的键值和原标注文件odgt里的键值不是对应的。最明显的区别:demo下的odgt有width、height这两个key,没有head_attr这个键值。但是,在原标注文件odgt里面没有这两个键值width、height有head_attr

所以博主根据demo里面的odgt写了crowdhuman转到coco标注格式的函数后,兴致勃勃的去跑原crowdhuman的标注文件,然后就直接出现了如下的error。一脸懵逼,这格式居然不是一致的。
在这里插入图片描述

打开了annotation_val.odgt文件,比对了一下,发现里面格式并不是一致的。不过,看完get_human.odgt这个文件,理解了大概是怎么放数据的,再去看annotation_val.odgt就能快速看懂数据的存放,只不过有些键值没有而已,不影响理解。

下面的代码是get_human.odgt文件中的一行数据

{
   "fpath": "",  #字典
"gtboxes": [   #gtboxes里面是个列表

	{
   
	"tag": "person",  #标签
	"extra": {
           #下面这几个数博主不清楚,有知道的大佬,还望告知一下。
		"occ": 0, 
		"vbox_id": 0, 
		"box_id": 0}, 
	"vbox": [[67, 60, 333, 740]], # 检测框可视框
	"box": [67, 60, 333, 740], # 读取人头检测框?
	"fbox": [67, 60, 333, 810] #检测框全身框
	}, 

	{
   
	"tag"
  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
CrowdHuman数据集是一个人群检测数据集,包含了大量的图片和标注信息。如果想要将CrowdHuman数据集转换为YOLO格式的txt文件,可以按照以下步骤进行操作: 1. 安装CrowdHuman数据集的Python API CrowdHuman数据集提供了Python API,可以方便地读取数据集中的图片和标注信息。首先需要安装该Python API,可以使用以下命令进行安装: ``` pip install crowdhuman ``` 2. 下载CrowdHuman数据集 在进行转换之前,需要先下载CrowdHuman数据集。可以在CrowdHuman官网上进行下载,也可以使用以下命令进行下载: ``` wget https://storage.googleapis.com/crowdhumandata/crowdhuman_train.zip ``` 3. 编写转换脚本 接下来需要编写Python脚本,将CrowdHuman数据集中的标注信息转换为YOLO格式的txt文件。可以参考以下代码: ```python import os import cv2 import crowdhuman as ch # CrowdHuman数据集的根目录 root = '/path/to/crowdhuman' # YOLO格式的txt文件保存路径 save_path = '/path/to/save' # CrowdHuman数据集中的类别 classes = ['person'] # 遍历CrowdHuman数据集中的所有图片 for img_info in ch.iter_images(root): img_path = img_info['file_name'] img = cv2.imread(img_path) # 获取图片的尺寸 height, width, _ = img.shape # 获取图片中的所有标注框 for ann in img_info['annotations']: category = ann['category'] # 只处理类别为person的标注框 if category not in classes: continue bbox = ann['bbox'] x, y, w, h = bbox # 将标注框转换为YOLO格式 x_center = (x + w / 2) / width y_center = (y + h / 2) / height x_width = w / width y_height = h / height # 保存标注框的信息到txt文件中 save_file = os.path.splitext(os.path.basename(img_path))[0] + '.txt' save_file = os.path.join(save_path, save_file) with open(save_file, 'a') as f: f.write(f'{classes.index(category)} {x_center:.6f} {y_center:.6f} {x_width:.6f} {y_height:.6f}\n') ``` 上述代码中,首先遍历CrowdHuman数据集中的所有图片,然后获取图片中的所有标注框。接着将标注框转换为YOLO格式的坐标,并保存到txt文件中。 4. 运行转换脚本 编写完转换脚本后,就可以运行该脚本,将CrowdHuman数据集中的标注信息转换为YOLO格式的txt文件。可以使用以下命令进行运行: ``` python convert.py ``` 上述命令中,convert.py是转换脚本的文件名。在运行之前,需要将root和save_path分别替换为CrowdHuman数据集的根目录和YOLO格式的txt文件保存路径。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值