坚持写博客💪,分享自己的在学习、工作中的所得
- 给自己做备忘
- 对知识点记录、总结,加深理解
- 给有需要的人一些帮助,少踩一个坑,多走几步路
尽量以合适的方式排版,图文兼有
如果写的有误,或者有不理解的,均可在评论区留言
如果内容对你有帮助,欢迎点赞 👍 收藏 ⭐留言 📝。
虽然平台并不会有任何奖励,但是我会很开心,可以让我保持写博客的热情🙏🙏🙏
文章目录
这篇文章中使用的是自己标注的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
查看上面的categories
key。只有一个目标类别,还有背景
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
查看上面的annotations
key
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
查看上面的images
key
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/
如果内容对你有帮助,或者觉得写的不错
🏳️🌈欢迎点赞 👍 收藏 ⭐留言 📝
有问题,请在评论区留言