坚持写博客,分享自己的在学习、工作中的所得
- 给自己做备忘
- 对知识点记录、总结,加深理解
- 给有需要的人一些帮助,少踩一个坑,多走几步路
尽量以合适的方式排版,图文兼有
如果写的有误,或者有不理解的,均可在评论区留言
如果内容对你有帮助,欢迎点赞 收藏 ⭐留言 。
虽然平台并不会有任何奖励,但是我会很开心,可以让我保持写博客的热情
这篇文章中使用的是自己标注的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
查看数据集,返回值是一个字典,也就是整个json文件的内容
coco.dataset
内容太多,就不展示了,可以看看主要的keycoco.dataset.keys()
dict_keys(['info', 'licenses', 'images', 'type', 'annotations', 'categories'])
查看上面的categories
key。只有一个目标类别,还有背景
coco.cats
{0: {'supercategory': None, 'id': 0, 'name': '_background_'},
1: {'supercategory': None, 'id': 1, 'name': 'biaopai'}}
返回所有类别的id
coco.getCatIds()
[0, 1]
查看上面的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: {...}
...
返回所有标注的目标对象的id
coco.getAnnIds()
这里返回了从0到1224的list,一共1225个目标
查看上面的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},
...
}
返回所有图片数据的id
coco.getImgIds()
这里返回了从0到923的list,说明数据集一共有924张图片
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(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(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(ann=coco.anns[0])
{'size': [2048, 2448],
'counts': b'YaVk3_1fi1k4UKk4A?0000O10000000000000000000000000000000O100000000000000000000000000000000000000000O100000000000000000000000000000000000000000O100000000000000000000000000000O100000000000000000000000000000000000000000000000000000O100000000000000000O100000000000000000000000000000000000000000000000000000000000000000O100000O100000000000000000000000000000000000000000000000000000000000000000000000000O1000O10000000000000000000000000000000000000000000000000000000000000000000O1000000000000000O10000000000000000000000000000000000000000000000000000000O1000000000000000000000000000O1000000000000000000000000000000000000000000000O1000000000000000000000000000000000000000O10000000000000000000000000000000O1000000000000000000000000000000000000000000000000000O10000000000000000000O1000000000000000000000000000000000000000000000000000000000000000O1000000000O1000000000000000000000000000000000000000000000000000000000000000000000000O0100000000000000000000000000000000000S3mL^3bL^3bLZ_1'}
coco.showAnns(anns=coco.loadAnns(ids=[0]), draw_bbox=True)
类别id对应的图片id
coco.catToImgs
defaultdict(list,
{1: [0,
1,
2,
3,
4,
5,
...
1224
]})
图片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/
如果内容对你有帮助,或者觉得写的不错
️欢迎点赞 收藏 ⭐留言
有问题,请在评论区留言