注:之前说要将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"