本文直接从实用型角度介绍下coco数据集。
以coco2014为例,下载资源以后,得到以下目录:
annotations中存放的是一大堆json文件:
(注,带person和face的是我自己制作的json文件,截图时懒得删除,可以忽略,想了解如何制作的,请看我的下一篇博客)
train2014和val2014中保存的是jpg图片,就不放截图了,点开比较卡,图片太多了,加载比较慢。
接下来着重讲一下json中保存的东西,老规矩,先上图:
这是用来train的json中保存的东西,首先json保存的是一个大的字典:
info这个key指向的字典是一些基本信息,包括时间,版本,贡献者,网址链接等不重要,可以忽略。
images这个key指向的列表(注意是列表,上面info指向的是字典)是图片信息,列表中的每一个字典下存储一张图片的信息,license、coco_url、data_captured和flickr_url这几个key指向的信息大概了解下就行,在你已经下载到原图jpg文件的情况下,这些信息基本没用。接下来就是比较重要的几个信息了,首先是file_name,指向的是一个字符串,是jpg的文件名;其次是height和width指向的是该图片的高和宽,id指向的数字可能让大家比较迷惑,这个信息非常至关键,这一串数字是每张图片特有的一个标志,数字不重复,可以看作是图片的身份信息,就像身份证那一串数字一样。
(注:接下来的图是images这个字典下面的一个字典。所以继续上图,乖乖,找到这个结合部真不容易,这个json实在是太大了,哭哭)
下一个License这个key指向的信息也可以忽略不计,就是途中被我选中标黑的那个部分。
再下一个annotations这个key是本json中最最最最最重要的一个部分了。该key指向的是一个list,然后包含多个字典,每个字典包含一个物体分割的信息。看该列表中第一个字典,segmentation指向是的一个套着两个list的东西,里面一堆数字的含义是像素级分割得到的物体边缘坐标(有心的同学会发现这里面的数字个数都是偶数,因为坐标是成对出现的);area指向该segmentation的面积,iscrowd目前来看都指向0,表示没有重叠吧,有重叠指向1(我的理解是这样,可能有偏差,不过影响不大);image_id就是前面images中存储的id !读取json信息的时候会用到;bbox指向的就是物体的框;category_id指向的数字代表类别(这里说一下,有些博客说是有90类,但是从coco2014上来看,只是category_id标定到了90这个数字而已,但是实际类数只有80类,因为,1-90这数字中有一些是跳过的,即有些数字没有);id不同于images中的id,images中的id是每幅图片的身份编号,而此处的id是每个框的身份编号,注意区分。
最后一部分依然上图:
最后categories这个key指向的是每个类别的名称和编号。