CVer必然要对Microsoft COCO数据集有一定的了解,今天就对COCO做一点解读。
1. MS COCO
关于COCO的介绍应该能看懂,这里我们只强调一下重要信息。
看一下标注文件,不同的文件对应不同的task,比如instances_train2017.json是检测与分割任务的训练集标注。
再关注一下文件细节,其中标注信息存储在annotations字段,具体的存储的信息表示什么参见官网或者相关论文。
2. COCOAPI
为使用户更好地使用COCO数据集,COCO提供了各种API(其实就是提取标注文件中的信息),现就PythonAPI的使用最一些简单介绍。
2.1 cocoapi安装
cocoapi来自于github https://github.com/pdollar/coco ,从github上clone即可。
git clone https://github.com/pdollar/coco
下载完文件后,进入cocoapi/PythonAPI/目录,可以看见该目录下有一个setup.py文件,运行该文件,即:
# 在anaconda相应的虚拟环境中安装
# 安装完成后在Pycharm中调用该虚拟环境解释器时,
# Pycharm左边面板外部库会多出来pycocotools库
python setup.py install
2.2 简单使用
- 使用图像检测与分割数据集
- 使用人体关节点检测数据集
- 使用语义分析数据集
captions:
完整源码参见:https://github.com/dhuQChen/Projects/tree/master/COCO
现就几个函数做一些说明:
getCatIds(catNms=[], supNms=[], catIds=[]) :通过输入类别的名字、大类的名字或是种类的id,来筛选得到图片所属类别的id。
getImgIds(imgIds=[], catIds=[]) :通过图片的id或所属种类的id得到图片的id。
loadImgs(ids=[]) :得到图片的id信息后,就可以用loadImgs得到图片的信息了 。
getAnnIds(imgIds=[], catIds=[], areaRng=[], iscrowd=None) :通过输入图片的id、类别的id、实例的面积、是否是人群来得到图片的注释id。再根据注释信息进行实例分割。
loadAnns(ids=[]) :通过注释的id,得到注释的信息。
showAnns(anns) :使用标注的信息画分割的结果。