位置: IT常识 - 正文

COCO数据集的介绍和使用(coco2017数据集介绍)

编辑:rootadmin
COCO数据集的介绍和使用

推荐整理分享COCO数据集的介绍和使用(coco2017数据集介绍),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:COCO数据集的介绍和使用,coco2017数据集介绍,coco数据集有哪些类别,COCO数据集的介绍和使用,coco数据集详解,coco数据集详解,coco数据集的介绍,COCO数据集的介绍和使用,内容如对您有帮助,希望把文章链接给更多的朋友!

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

目录

COCO数据集的介绍

COCO数据集标注格式

pycocotools的安装和coco api的简单介绍

pycocotools的安装

coco api的简单介绍

pycocotools简单使用实例


COCO数据集的介绍

        COCO数据集是微软公司出资标注的数据集,主要用于目标检测、分割和图像描述。根据官网的介绍,它主要有以下的几种特性:

Object Segmentation:目标分割Recognition in Context:图像情景识别Superpixel stuff segmentation:超像素分割330K images(>200K labeled):有330K张图片,其中超过200K张是标注过的1.5 million object instances:150万个对象实例80 object categories:80个目标类别91 stuff categories:91个对象类别5 captions per image:每张图片有5个描述250K people with keypotins:有25万人的图片进行了关键点标注

        前几个特性都是很好理解也是属于比较热门的几个研究方向,主要的疑惑点是在 80 object categories 和 91 stuff categories ,接下来进行解释:

对于所谓的“stuff categories”,论文中的描述是where “stuff” categories include materials and objects with no clear boundaries (sky, street, grass),即标注了91类没有明确边界的对象(诸如天空,街道,草地)。其次注意80 object categories和91 stuff categories的区别,论文中用一段文字来描述了它们的区别,简单来说就是80类是91类的一个子集,去掉了一些难以分类和容易混淆的类别,一般来说我们都会使用这个80分类。

80类别包含:

person(人)   bicycle(自行车)  car(汽车)  motorbike(摩托车)  aeroplane(飞机)  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(椅子)  sofa(沙发)  pottedplant(盆栽植物)  bed(床)  diningtable(餐桌)  toilet(厕所) tvmonitor(电视机)   laptop(笔记本)  mouse(鼠标)  remote(遥控器)  keyboard(键盘)  cell phone(电话)   microwave(微波炉)  oven(烤箱)  toaster(烤面包器)  sink(水槽)  refrigerator(冰箱) book(书)  clock(闹钟)  vase(花瓶)  scissors(剪刀)  teddy bear(泰迪熊)  hair drier(吹风机)  toothbrush(牙刷)

COCO数据集标注格式

        首先从coco官网下载数据集,本文以coco2017为例,下载得到train,val以及annotations,创建一个coco2017目录:

├── coco2017: 数据集根目录      ├── train2017: 所有训练图像文件夹(118287张)      ├── val2017: 所有验证图像文件夹(5000张)      └── annotations: 对应标注文件夹                ├── instances_train2017.json: 对应目标检测、分割任务的训练集标注文件                ├── instances_val2017.json: 对应目标检测、分割任务的验证集标注文件                ├── captions_train2017.json: 对应图像描述的训练集标注文件                ├── captions_val2017.json: 对应图像描述的验证集标注文件                ├── person_keypoints_train2017.json: 对应人体关键点检测的训练集标注文件                └── person_keypoints_val2017.json: 对应人体关键点检测的验证集标注文件夹           

         其中annotation中,我仅关注instances_train2017.json和instances_val2017.json两个用于目标检测的标注文件。

        接下来我来分析标注文件信息中对我有用的信息,使用json库来查看标注文件,输入以下程序:

import jsonfile_path = './instances_val2017.json'json_info = json.load(open(file_path,'r'))print(json_info["info"])

        然后在第四行前插入断点,进行调试,在变量表可以看到以下信息:

        “info”字段和“licenses”字段完全没有用处,不予解释。

        我主要来关注"images"字段:点开images字段,其中包含所有图片的信息,如下图所示

         以点开第一个"0000"为例,如下图,里面的主要信息是"file_name",表示图片的文件名;“coco_url”,表示可以下载到这张图片的url地址;“height”和“weight”表示图片的高和宽;而剩下的信息对我都没什么作用,便不在此赘述。

         接下来来看“annotation”字段,展开"annotation"字段可以看到以下类似“images”字段的信息:

COCO数据集的介绍和使用(coco2017数据集介绍)

        我仍以展开00000为例, 其中“segmentation”字段表示分割图像的坐标点信息;“area”字段表示图像的面积;“iscrowd”字段表示图像中标注的对象是否有重叠;“image_id”字段表示图片的id;“bbox”字段全程是bounding box,表示锚框信息,要注意此处的锚框信息,前两个数值表示的是目标锚框左上角的坐标信息,而后两个数值分别表示宽高;“category_id”字段表示这张图片的类别(在91类目标中的索引);其他信息不作赘述。

         最后一个字段就是“categories”,这个字段长80,即代表了八十个类别,点开后里面的信息包含这个类别的名字,所属的类别(比如自行车,汽车属于交通工具),不在此过多赘述,可以看下图:

        至此,coco数据集的标注信息基本介绍完毕。

pycocotools的安装和coco api的简单介绍pycocotools的安装

        我是在windows环境下,在Anaconda prompt上进行pycocotools的安装,输入以下命令:

pip install pycocotools-windowscoco api的简单介绍

  初始化coco实例:

from pycocotools.coco import COCOval_annotation_file = './instances_val2017.json'coco = COCO(annotation_file = val_annotation_file)

其中coco变量如下图所示:

 我们右键选择COCO,“go to”到“Implementation”可以看到COCO类中有以下函数:

         COCO.getAnnIds(self, imgIds=[], catIds=[], areaRng=[], iscrowd=None),主要参数是imgIds,传入图片的id,返回这个图像的所有标注信息的index列表。详细的参数如下图所示:

        而getAnnIds通常会和loadAnns配合使用,COCO.loadAnns(self, ids=[]),传入annotation index信息,会返回对应标注信息index的标注详细信息。详细的参数列表如下图所示:

         注意返回的字典含有一系列信息,其中bbox字段是锚框信息,分别是x,y,w,h,前两者是左上角坐标位置,后两者是锚框宽高,详细形式如下图所示:

         COCO.loadImgs(self, ids=[]),传入图片的id,会返回对应id的图片的详细信息,如下图所示:

pycocotools简单使用实例import osfrom pycocotools.coco import COCOfrom PIL import Image, ImageDrawimport matplotlib.pyplot as pltval_annotation_file = "./annotations/instances_val2017.json"val_img_file = './val2017'coco = COCO(annotation_file=val_annotation_file)coco_classes = dict([(v["id"], v["name"]) for k, v in coco.cats.items()])idx = list(sorted(coco.imgs.keys()))img_id = idx[0] #排序后最小的图片id为139 ,即img_id=139ann_idx = coco.getAnnIds(imgIds=img_id)objects = coco.loadAnns(ann_idx)#获取图片##获取图片路径名path = coco.loadImgs(img_id)[0]["file_name"]##读取139号图片img = Image.open(os.path.join(val_img_file, path)).convert('RGB')#在图片上绘制矩形框draw = ImageDraw.Draw(img)##一个图片可能会含有多个锚框,对每一个都进行描绘for object in objects: x,y,w,h = object["bbox"] x1,y1,x2,y2 = x, y, int(x+w), int(y+h) draw.rectangle((x1, y1, x2, y2)) draw.text((x1, y1), coco_classes[object["category_id"]])##使用matplotlib绘制plt.imshow(img)plt.show()

 最后得到结果如图所示:

MS COCO数据集介绍以及pycocotools简单使用

 COCO数据集论文下载地址

本文链接地址:https://www.jiuchutong.com/zhishi/290762.html 转载请保留说明!

上一篇:秋季迁徙时正在游过科伯克河的驯鹿,阿拉斯加 (© Michio Hoshino/Minden Pictures)(迁徙的季节主要从哪几个方面写秋天的景物)

下一篇:unet网络详解(unet网络的优缺点)

  • 微博粉丝经济能走多远?(微博粉丝含金量)

    微博粉丝经济能走多远?(微博粉丝含金量)

  • 华为nova10返回键在哪(华为nova10返回键怎么调出来)

    华为nova10返回键在哪(华为nova10返回键怎么调出来)

  • 微信朋友权限仅聊天还可以看朋友圈吗(微信朋友权限仅限聊天是什么意思)

    微信朋友权限仅聊天还可以看朋友圈吗(微信朋友权限仅限聊天是什么意思)

  • 华为p40的屏幕刷新率是多少呢(华为p40的屏幕刷新率高吗)

    华为p40的屏幕刷新率是多少呢(华为p40的屏幕刷新率高吗)

  • 为什么携程上订的火车票在订单里看不到(为什么携程上订酒店日期不一样价格也不一样)

    为什么携程上订的火车票在订单里看不到(为什么携程上订酒店日期不一样价格也不一样)

  • 怎样把一个手机的照片传到另一个手机的照片(怎样把一个手机的相册移到另一个)

    怎样把一个手机的照片传到另一个手机的照片(怎样把一个手机的相册移到另一个)

  • 文件夹如何按自己要求排序(文件夹如何按自定义排序)

    文件夹如何按自己要求排序(文件夹如何按自定义排序)

  • 抖音分辨率怎么设置(抖音分辨率怎么调480)

    抖音分辨率怎么设置(抖音分辨率怎么调480)

  • 5000mah充电宝能充多久(5000mah充电宝能充多少次电)

    5000mah充电宝能充多久(5000mah充电宝能充多少次电)

  • 苹果手机升级系统白屏怎么办(苹果手机升级系统后怎么恢复旧系统)

    苹果手机升级系统白屏怎么办(苹果手机升级系统后怎么恢复旧系统)

  • 手机出现耳机模式,听不到音是咋了(手机出现耳机模式是怎么回事)

    手机出现耳机模式,听不到音是咋了(手机出现耳机模式是怎么回事)

  • 一加六手机长度几厘米(一加六手机长度是多少)

    一加六手机长度几厘米(一加六手机长度是多少)

  • 闪存盘是u盘吗(闪存盘啥意思)

    闪存盘是u盘吗(闪存盘啥意思)

  • 苹果手机整个没有声音了(苹果手机突然没)

    苹果手机整个没有声音了(苹果手机突然没)

  • 腾讯视频vip怎么用电话号登录(腾讯视频vip怎么关闭自动续费)

    腾讯视频vip怎么用电话号登录(腾讯视频vip怎么关闭自动续费)

  • 怎样发红包给一个人(怎样发红包给一个人领)

    怎样发红包给一个人(怎样发红包给一个人领)

  • 手机邮箱怎么退出登录(手机邮箱怎么退订)

    手机邮箱怎么退出登录(手机邮箱怎么退订)

  • nvme跟m2是一个接口吗(m2和nvme接口通用吗)

    nvme跟m2是一个接口吗(m2和nvme接口通用吗)

  • 微信上视频怎么开美颜(微信上视频怎么制作动图表情包)

    微信上视频怎么开美颜(微信上视频怎么制作动图表情包)

  • 电脑恢复系统按哪个键(电脑恢复系统按f11)

    电脑恢复系统按哪个键(电脑恢复系统按f11)

  • 荣耀原相机怎么调滤镜(荣耀原相机怎么关美颜)

    荣耀原相机怎么调滤镜(荣耀原相机怎么关美颜)

  • 淘宝的问大家怎么弄(淘宝的问大家怎么找)

    淘宝的问大家怎么弄(淘宝的问大家怎么找)

  • 怎样让商品加入淘宝联盟(怎么让商家入驻你的平台)

    怎样让商品加入淘宝联盟(怎么让商家入驻你的平台)

  • 苹果系统占30g怎么清理(iphone系统占30g解决办法)

    苹果系统占30g怎么清理(iphone系统占30g解决办法)

  • 手机漏液怎么防止扩大(手机漏液怎么防止烧主板)

    手机漏液怎么防止扩大(手机漏液怎么防止烧主板)

  • qq被拉黑了还能加好友吗(qq被拉黑了还能给对方打语音电话吗)

    qq被拉黑了还能加好友吗(qq被拉黑了还能给对方打语音电话吗)

  • p语言是python吗(py语言属于)

    p语言是python吗(py语言属于)

  • 预付账款借贷方表示什么意思
  • 公司中介费收入如何纳税
  • 工程附加税怎么计算
  • 公司与公司之间的欠款怎么要
  • 文化事业建设费怎么申报
  • 开票名称开错了
  • 水果销售公司账务怎么做
  • 劳务成本会计科目
  • 员工出差有补助吗
  • 个人劳务附加税税率表
  • 接受劳务是进项还是销项
  • 给客户提供的价值
  • 固定资产正常报废如何处理
  • 2019招标费用收取标准
  • 商贸公司购买的手提袋怎么入账
  • 生产成本明细科目是原材料的名称吗
  • 别人开业送的花怎么说
  • 收回员工社保入什么科目
  • 4s店试驾车转卖怎么开票
  • 计提的利息汇算清缴前没发放,需要交企业所得税吗
  • 自然人能申请破产吗?
  • 给非企业员工佣金怎么交税
  • 短期借款占负债比例大
  • 为什么算除税价不算税金
  • 增值税附加税什么情况交
  • 存货跌价准备会影响利润总额吗
  • 企业法人的工资没有实收可以退税吗
  • 当月认证的发票当月一定要入账吗
  • 离婚后房产过户需要多少钱
  • 一般纳税人怎么算税
  • scanserver.exe - scanserver是什么进程 有什么用
  • win10如何禁止
  • 销售商品并收到货款的会计分录
  • 应收账款证券化流程
  • 精灵烟囱的形态判断
  • dac模型
  • ntpd命令详解
  • php代码加密方式
  • MS Excel: COUNTIF Function (WS)
  • 单位交的那部分医保去哪了
  • 帝国cms使用手册
  • 使用xampp建立www服务
  • 物业费按年收
  • 固定资产直接记入费用科目
  • 会计核算的作用,意义
  • 口罩属于哪个科目 会计
  • 应收账款收不回来
  • 发票金额与实际金额不符怎么举报
  • 企业给加盟店的钱怎么算
  • 收到党支部经费如何做账
  • 打官司产生的费用开成什么发票
  • 总分包模式和总承包模式
  • 技术转让要交所得税吗
  • 简易征收增值税一般纳税人怎么报税
  • 进项发票超过期限不认证怎么办
  • 用SQL脚本读取Excel中的sheet数量及名称的方法代码
  • vs2019连接mysql
  • win10启动项怎么设置
  • 为什么ibooks无法使用
  • centos 安装
  • window系统怎么复制粘贴
  • 电脑键盘上f1到f12快捷键的功能分别是
  • Win10预览版拆弹
  • win8.1系统更新
  • glrotatef函数
  • 苏州大学附属第一医院占地面积
  • perl and
  • 查找重复字符串
  • javascript entries
  • jquery layer
  • 关于echo的名字
  • 简要说明javascript的作用
  • python 基础 详细
  • javascript怎么弄
  • 实用的app都有哪些
  • 基于unity的游戏开发
  • javascript中的数据类型分为两大类
  • 123600是税务电话吗
  • 地税跟国税是在一起吗
  • 上海市浦东新区人民医院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设