什么是COCO?
COCO数据集是Microsoft制作收集用于Detection + Segmentation + Localization + Captioning的数据集,本人收集了其2017年的版本,一共有25G左右的图片和600M左右的标签文件。
COCO数据集共有小类80个,分别为

[‘person’, ‘bicycle’, ‘car’, ‘motorcycle’, ‘airplane’, ‘bus’, ‘train’, ‘truck’, ‘boat’, ‘traffic light’, ‘fire hydrant’, ‘stop sign’, ‘parking meter’, ‘bench’, ‘bird’, ‘cat’, ‘dog’, ‘horse’, ‘sheep’, ‘cow’, ‘elephant’, ‘bear’, ‘zebra’, ‘giraffe’, ‘backpack’, ‘umbrella’, ‘handbag’, ‘tie’, ‘suitcase’, ‘frisbee’, ‘skis’, ‘snowboard’, ‘sports ball’, ‘kite’, ‘baseball bat’, ‘baseball glove’, ‘skateboard’, ‘surfboard’, ‘tennis racket’, ‘bottle’, ‘wine glass’, ‘cup’, ‘fork’, ‘knife’, ‘spoon’, ‘bowl’, ‘banana’, ‘apple’, ‘sandwich’, ‘orange’, ‘broccoli’, ‘carrot’, ‘hot dog’, ‘pizza’, ‘donut’, ‘cake’, ‘chair’, ‘couch’, ‘potted plant’, ‘bed’, ‘dining table’, ‘toilet’, ‘tv’, ‘laptop’, ‘mouse’, ‘remote’, ‘keyboard’, ‘cell phone’, ‘microwave’, ‘oven’, ‘toaster’, ‘sink’, ‘refrigerator’, ‘book’, ‘clock’, ‘vase’, ‘scissors’, ‘teddy bear’, ‘hair drier’, ‘toothbrush’]

大类12个,分别为

[‘appliance’, ‘food’, ‘indoor’, ‘accessory’, ‘electronic’, ‘furniture’, ‘vehicle’, ‘sports’, ‘animal’, ‘kitchen’, ‘person’, ‘outdoor’]

安装COCO api
COCO api来自于github, 从github上clone即可, https://github.com/pdollar/coco
clone下来后在命令行中把路径切换到该路径,输入

python setup.py install
1
即可,如果遇到错误,参考这两篇博主写的博客即可
https://blog.csdn.net/gxiaoyaya/article/details/78363391
https://blog.csdn.net/qq_32768743/article/details/80202429
安装完成后,打开pycharm就会在左侧外部库中看到pycocotools的库

使用coco数据集之前需要安装官方提供的api,github链接如下:

https://github.com/cocodataset/cocoapi

安装的时候根据python版本的不同,步骤也略有不同。

首先,切换到coco api下PythonAPI路径:

cd cocoapi/PythonAPI
1. python 2.7版本,在我的机器上直接make就可以正常使用。如果不行的话,参考如下步骤:

make
make install
python setup.py install
2. python 3.5版本

python3 setup.py build_ext --inplace
python3 setup.py build_ext install
配置完成后,通过测试pycocotools能否正常导入来检查cocoapi是否安装成功。

import pycocotools
————————————————
版权声明:本文为CSDN博主「一个菜鸟的奋斗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013685264/article/details/100331064

COCO api介绍
使用COCO api,需要首先import COCO的类,然后根据任务实例化

from pycocotools.coco import COCO
coco = COCO(annfile)
1
2
不同任务使用不同的annfile,为下载的数据集中的json文件,如

E:/Dataset/COCO2017/annotations/instances_train2017.json

COCO类中我们主要使用以下几种方法:

getCatIds(catNms=[], supNms=[], catIds=[])
通过输入类别的名字、大类的名字或是种类的id,来筛选得到图片所属类别的id
比如,我们想知道dog类的id是多少

catIds = coco.getCatIds(catNms=['dog'])
1
当然catNms可以包含多个类别名字,如

catIds = coco.getCatIds(catNms=['dog', ‘person', 'bicycle'])
1
getImgIds(imgIds=[], catIds=[])
通过图片的id或是所属种类的id得到图片的id
上一步得到了catIds包含了dog、person、bicycle三个类别的id,我们就可以查询到那些包含有这些类别的图片的id

imgIds = coco.getImgIds(catIds=catIds)
1
最终得到一个长度为112的list,包含了图片的id信息

loadImgs(ids=[])
得到图片的id信息后,就可以用loadImgs得到图片的信息了
在这里我们随机选取之前list中的一张图片

img = coco.loadImgs(imgIds[np.random.randint(0, len(imgIds))])[0]
1
最终得到的img并不是一张numpy格式或是PIL格式的图片,而是一个字典,包含了我们找到的这个id所代表的图片的信息

有了图片的file_name,就可以把这张图片通过matplotlib画出来

可以看到通过查询得到的图片确实包含了dog、person与bicycle

getAnnIds(imgIds=[], catIds=[], areaRng=[], iscrowd=None)
通过输入图片的id、类别的id、实例的面积、是否是人群来得到图片的注释id
我们想要在之前的图片中画出对之前给定的三个种类进行实例分割的结果,就需要找到这张图片的注释信息的id

annIds = coco.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
1
这里我们得到了一个list

[6971, 192383, 218386, 240733]

loadAnns(ids=[])
通过注释的id,得到注释的信息

anns = coco.loadAnns(annIds)
1
得到一个list,包含了4个注释的形状位置信息

showAnns(anns)
使用标注的信息画出来分割的结果

coco.showAnns(anns)
1

如果我们重新定义一个coco的类,使用的是keypoints的json文件,就可以画出keypoints的图

annFile = '%s/annotations/person_keypoints_%s.json' % (dataDir, dataType)
coco_kps = COCO(annFile)
plt.imshow(I)
plt.axis('off')
annIds = coco_kps.getAnnIds(imgIds=img['id'], catIds=catIds, iscrowd=None)
anns = coco_kps.loadAnns(annIds)
coco_kps.showAnns(anns)
1
2
3
4
5
6
7

————————————————
版权声明:本文为CSDN博主「心态已炸_沉迷学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zym19941119/article/details/80241663

COCO2017数据集api说明相关推荐

  1. CoCo2017数据集使用(简单介绍)

    本人使用训练图片用在目标跟踪上作为数据集扩展,因此只查看了train的json文件. 目录 绪论 标注文件:instances_train2017.json info: licenses: image ...

  2. coco2017 数据集下载链接 及姿态关键点的数据处理

    第一步.coco2017数据集下载链接 各个链接的意思看链接里面的描述基本上就够了.不过还在罗嗦一句,第一组是train数据,第二组是val验证数据集,第三组是test验证数据集.数据包括了物体检测和 ...

  3. coco2017数据集标注格式说明

    今天准备看看coco数据集到底长啥样,还有其标注格式是什么样的,怀着好奇心,开始百度,于是来到知乎~ 感谢知乎给我释疑了~ 参考知乎:https://zhuanlan.zhihu.com/p/2939 ...

  4. # COCO2017 数据集下载

    ## 新的非常有效的方法!!!! 原本在七牛云上的数据因为没钱了,所以关闭了,然后我只有百度云的数据,没办法在linux服务器上直接通过命令行下载,但是,经过我不懈努力,终于找到了一个非常好的方法,下 ...

  5. coco2017数据集高速下载地址

    对于coco数据集,咱们国内有官网下载通道,但是还是太慢,反正我是下载的很慢.后来看到了一位老兄的博客,他分享了一个下载地址,下载速度就很快https://www.floydhub.com/walte ...

  6. 【COCO】COCO2017数据集下载百度云

    首先,COCO数据集的官网:http://cocodataset.org/#download 由于是外网的链接,因此我们下载的时候速度会比较慢,或者根本进不去,更不用说是二十多G的文件. 没有办法,只 ...

  7. COCO数据集数据转换为XML格式

    nanodet需要xml格式, 百度下载地址: coco2017数据集百度网盘链接_m0_37835084的博客-CSDN博客_coco数据集百度网盘 官方下载地址:https://cocodatas ...

  8. 【yolo5】目标检测数据集制作

    目录 1.先验知识 2. VOC和COCO数据集: 2.1 VOC形式及其数据结构XML特点(好像可以使用py库中工具直接进行清洗) 2.1.1 VOC数据集的组织结构如下所示 2.1.2 XML的操 ...

  9. COCO数据集的介绍和使用

    这篇文章是我研究生阶段入学期间学习所记,主要供自己使用,结合了论文原作和源码,中间借鉴的一些b站的视频以及他人博客的解释,会在文章末尾贴出链接. 目录 COCO数据集的介绍 COCO数据集标注格式 p ...

最新文章

  1. AD5933测量容性负载时的神秘振荡信号
  2. .NET Core2.1获取自定义配置文件信息
  3. Java学习_day013(OOP):内部类
  4. python一次性读取整个文件-python – 如何一次读取和附加到文本文件?
  5. java.util.ConcurrentModificationException 解决办法
  6. 360企业版终端安装说明
  7. HDU1003——MAX SUM
  8. Net Core 2.1Filter里面获取Controller、Action,请求方法,请求头部,请求参数
  9. 题目2 : 回文字符序列(区间DP)
  10. android 图片自动移动位置信息,android – 使用翻译动画将ImageView从当前位置移动到固定位置...
  11. linux python 链接 oracle
  12. Windows 域时间同步
  13. vue+element-ui select必填项验证回显问题+实现重置表单内容
  14. SuperMemo UX 添加笔记 Ctrl+H
  15. 添加Onvif设备到Blue IRIS步骤
  16. Processing 案例 | 郭锐文先生的 worms
  17. 埃夫特机器人回零偏差太大_埃夫特指令
  18. android studio导入arr文件
  19. 如何在 PC 上识别微信二维码
  20. 建议阿里巴巴10亿回购股票救市

热门文章

  1. vue 数组删除 dome没更新_详解Vue响应式原理
  2. 事件计划自动关闭_首部L3级自动驾驶国际法规之ALKS功能解读
  3. mysql8.0卸载出现问题,Windows环境下MySQL 8.0 的安装、配置与卸载
  4. 计算机考研专业课资料百度云,2020年考研专业课【初试】资料清单
  5. 企业级 SpringBoot 教程 (三)SpringBoot用JdbcTemplates访问Mysql
  6. Airbnb改进部署管道安全性,规范部署顺序
  7. 创建一个显示所有预定义WPF颜色的ListBox
  8. Xcode - Other Linker Flags
  9. 在pcDuino上运行Python
  10. [Prism]Composite Application Guidance for WPF(8)——事件