pycocotools库的安装和使用方法

坚持写博客💪,分享自己的在学习、工作中的所得

  1. 给自己做备忘
  2. 对知识点记录、总结,加深理解
  3. 给有需要的人一些帮助,少踩一个坑,多走几步路

尽量以合适的方式排版,图文兼有
如果写的有误,或者有不理解的,均可在评论区留言
如果内容对你有帮助,欢迎点赞 👍 收藏 ⭐留言 📝。
虽然平台并不会有任何奖励,但是我会很开心,可以让我保持写博客的热情🙏🙏🙏



这篇文章中使用的是自己标注的COCO格式的数据集。具体可以参考这篇文章

🧁安装

Linux:

pip install pycocotools

Windows:

pip install pycocotools-windows

参考 https://blog.csdn.net/ayiya_Oese/article/details/119955678

🧁使用

from pycocotools.coco import COCO

加载COCO格式的标注文件xxx.json

coco = COCO(train_anno_file)
loading annotations into memory...
Done (t=0.04s)
creating index...
index created!

coco.dataset

coco.dataset查看数据集,返回值是一个字典,也就是整个json文件的内容

coco.dataset

内容太多,就不展示了,可以看看主要的keycoco.dataset.keys()

dict_keys(['info', 'licenses', 'images', 'type', 'annotations', 'categories'])

coco.cats

查看上面的categorieskey。只有一个目标类别,还有背景

coco.cats
{0: {'supercategory': None, 'id': 0, 'name': '_background_'},
 1: {'supercategory': None, 'id': 1, 'name': 'biaopai'}}

coco.getCatIds()

返回所有类别的id

coco.getCatIds()
[0, 1]

这里的id[0, 1]是画框的id,不是字典的key
在这里插入图片描述

coco.anns

查看上面的annotationskey

coco.anns
{0: {'id': 0,
  'image_id': 0,
  'category_id': 1,
  'segmentation': [[1973.5632183908046,
    227.58620689655172,
    2443.6781609195405,
    214.94252873563218,
    2447.0,
    589.0,
    1971.2643678160919,
    600.0]],
  'area': 177301.0,
  'bbox': [1971.0, 214.0, 477.0, 387.0],
  'iscrowd': 0},
 1: {...}
 ...

coco.getAnnIds()

返回所有标注的目标对象的id

coco.getAnnIds()
这里返回了从0到1224的list,一共1225个目标

coco.imgs

查看上面的imageskey

coco.imgs
{0: {'license': 0,
  'url': None,
  'file_name': 'JPEGImages\\000593-1-202102030306305260-0000000.jpg',
  'height': 2048,
  'width': 2448,
  'date_captured': None,
  'id': 0},
  ...
  }

coco.getImgIds()

返回所有图片数据的id

coco.getImgIds()
这里返回了从0到923的list,说明数据集一共有924张图片

coco.loadImgs()

coco.loadImgs(ids=[0])
[{'license': 0,
  'url': None,
  'file_name': 'JPEGImages\\000593-1-202102030306305260-0000000.jpg',
  'height': 2048,
  'width': 2448,
  'date_captured': None,
  'id': 0}]

coco.loadAnns()

coco.loadAnns(ids=[0])
[{'id': 0,
  'image_id': 0,
  'category_id': 1,
  'segmentation': [[1973.5632183908046,
    227.58620689655172,
    2443.6781609195405,
    214.94252873563218,
    2447.0,
    589.0,
    1971.2643678160919,
    600.0]],
  'area': 177301.0,
  'bbox': [1971.0, 214.0, 477.0, 387.0],
  'iscrowd': 0}]

coco.annToMask()

coco.annToMask(ann=coco.anns[0])
array([[0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       ...,
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)

coco.annToRLE()

coco.annToRLE(ann=coco.anns[0])
{'size': [2048, 2448],
 'counts': b'YaVk3_1fi1k4UKk4A?0000O10000000000000000000000000000000O100000000000000000000000000000000000000000O100000000000000000000000000000000000000000O100000000000000000000000000000O100000000000000000000000000000000000000000000000000000O100000000000000000O100000000000000000000000000000000000000000000000000000000000000000O100000O100000000000000000000000000000000000000000000000000000000000000000000000000O1000O10000000000000000000000000000000000000000000000000000000000000000000O1000000000000000O10000000000000000000000000000000000000000000000000000000O1000000000000000000000000000O1000000000000000000000000000000000000000000000O1000000000000000000000000000000000000000O10000000000000000000000000000000O1000000000000000000000000000000000000000000000000000O10000000000000000000O1000000000000000000000000000000000000000000000000000000000000000O1000000000O1000000000000000000000000000000000000000000000000000000000000000000000000O0100000000000000000000000000000000000S3mL^3bL^3bLZ_1'}

coco.showAnns()

coco.showAnns(anns=coco.loadAnns(ids=[0]), draw_bbox=True)

coco.catToImgs

类别id对应的图片id

coco.catToImgs
defaultdict(list,
            {1: [0,
              1,
              2,
              3,
              4,
              5,
              ...
              1224
              ]})

coco.imgToAnns

图片id对应的标注id

coco.imgToAnns
defaultdict(list,
            {0: [{'id': 0,
               'image_id': 0,
               'category_id': 1,
               'segmentation': [[1973.5632183908046,
                 227.58620689655172,
                 2443.6781609195405,
                 214.94252873563218,
                 2447.0,
                 589.0,
                 1971.2643678160919,
                 600.0]],
               'area': 177301.0,
               'bbox': [1971.0, 214.0, 477.0, 387.0],
               'iscrowd': 0}],
               ...
             })

🧁相关链接

https://blog.csdn.net/ayiya_Oese/article/details/119955678

https://blog.csdn.net/ayiya_Oese/article/details/120671641

https://pypi.org/project/pycocotools-windows/



如果内容对你有帮助,或者觉得写的不错
🏳️‍🌈欢迎点赞 👍 收藏 ⭐留言 📝
有问题,请在评论区留言

  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ayiya_Oese

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值