利用Python统计coco数据集信息

目录

1.COCO数据集简介

2.COCO数据集的优缺点(简述)

3.COCO数据集信息统计

4.下次将推出VOC转COCO的脚本,期待关注。


1.COCO数据集简介

微软发布的 COCO 数据库是一个大型图像数据集, 专为对象检测、分割、人体关键点检测、语义分割和字幕生成而设计。

COCO 数据库的网址是:

COCO API 提供了 Matlab, Python 和 Lua 的 API 接口. 该 API 接口可以提供完整的图像标签数据的加载, parsing 和可视化。此外,网站还提供了数据相关的文章, 教程等。

2.COCO数据集的优缺点(简述)

优点:数据集量大,作为官方数据集广泛用于深度学习--目标检测,是一个极富挑战性的数据集。

           采用json标注格式(VOC采用的是xml格式),具有良好的自我描述性,便于阅读。

缺点:由于数据集量很大,json文件一般也很大,当我们需要打开json文件时,导致文本编辑器卡死

3.COCO数据集信息统计

比如说我们想要知道由于训练的数据的具体信息或测试数据的具体信息,要通过json统计,针对COCO数据集的缺点,写者编写了一个Python脚本统计json文件中的数据信息。

具体代码如下:

from pycocotools.coco import COCO
#文件路径
dataDir='D:/Users/Desktop/'
dataType='trainval2014'
annFile='{}/instances_{}.json'.format(dataDir,dataType)

# initialize COCO api for instance annotations
coco_train=COCO(annFile)

# display COCO categories and supercategories
#显示所有类别
cats = coco_train.loadCats(coco_train.getCatIds())
cat_nms=[cat['name'] for cat in cats]
print('COCO categories:\n{}'.format('\n'.join(cat_nms))+'\n')
#统计单个类别的图片数量与标注数量
for cat_name in cat_nms:
    catId = coco_train.getCatIds(catNms=cat_name)
    if cat_name == "person":
        print(catId)
        imgId = coco_train.getImgIds(catIds=catId)
        annId = coco_train.getAnnIds(imgIds=imgId, catIds=catId, iscrowd=False)
        print("{:<15} {:<6d}     {:<10d}\n".format(cat_name, len(imgId), len(annId)))
#统计全部的类别及全部的图片数量和标注数量
print("NUM_categories: "+str(len(coco_train.dataset['categories'])))
print("NUM_images: "+str(len(coco_train.dataset['images'])))
print("NUM_annotations: "+str(len(coco_train.dataset['annotations'])))

运行结果展示

运行代码可能出现的bug:

问题:提示pycocotools.coco module缺少

解决办法:python执行pip install pycocotools,成功安装即可

如果有遇到其他问题,请评论区留言,与写者一起交流

4.下次将推出VOC转COCO的脚本,期待关注。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值