1 COCO数据集

COCO数据集下载链接:COCO_download

1.1 数据概览

数据集大小

train: 118287张
train+val: 123287张
val: 5000张

目标数量

Val集目标数: 36781 (整个val集包含的实例数量)

1.2 文件结构说明

train2017: 训练集文件夹。
val2017: 验证集文件夹。

1.2.1 文件结构树

Images

├── 2017 Val Images [annotations_trainval2017.zip]
│   ├── annotations
│      ├── instances_val2017.json
├── 2017 Testing Image info [image_info_test2017.zip] [1MB]
│   ├── image_info_test2017.json

1.3 标注格式说明

X坐标范围:[0,640][0,640][0,640]
说明:
坐标是从0开始
COCO在官方网站的说明中说到:

… In addition, an enclosing bounding box is provided for each object (box coordinates are measured from the top left image corner and are 0-indexed). …

1.4 数据集异常值

“包含width或height为0的目标框”

COCO数据集中包含width或height为0的目标框,在train集中这样的bbox有两个;

2 COCO的评价指标——mAP

请参考我的博文《南溪的目标检测学习笔记》——目标检测的评价指标(mAP)

3 Cocoapi使用

在使用cocoapi之前,首先需要进行安装,
cocoapi的Github链接:cocodataset/cocoapi
cocoapi安装请参考:cocoapi#readme

Ubuntu上官方安装出现错误&

请使用如下命令进行安装:

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

Win10安装cocoapi

cocoapi官方代码不支持Win10平台,这里我们使用CSDN社区提供的解决方案进行安装,请参考:《Windows10安装COCOAPI》

3.1 mAP验证基本流程

annType = ['segm', 'bbox', 'keypoints']
annType = annType[1]
"""设置标注类型为bbox"""
print("[cocoapi]:", "loading data...")
# initialize COCO ground truth api
data_dir = ".../.../COCO"
"""Local root of COCO"""
ann_file = f'{data_dir}/annotations/instances_val2017.json'
cocoGt = COCO(ann_file)
# Get the image ids
coco_keys = list(sorted(cocoGt.imgs.keys()))
print("len(coco_keys):", len(coco_keys))

3.2 API函数说明

pycocotools.coco.COCO.loadRes(): Load result file and return a result api object.
参数说明:
resFile: 结果文件。(不接受Path对象

3.3 调试笔记

3.2.1 错误“TypeError: type <class ‘numpy.float64‘> cannot be safely interpreted as an integer”

请参考博文《【Python Solution】TypeError: type <class ‘numpy.float64‘> cannot be safely interpreted as an integer》
根据以上博文中的信息和错误提示可以知道,这里是由于cocoapi中np.linspace的使用问题导致的,其代码为

self.iouThrs = np.linspace(.5, 0.95, np.round((0.95 - .5) / .05) + 1, endpoint=True)
num = np.round((0.95 - .5) / .05) + 1

numpy中要求np.linspacenum参数(采样个数)为整数,

3 EDA

3.1 COCO数据集存在width或者height小于10像素的目标

在对COCO数据集进行探索性数据分析之后,我们知道COCO数据集中是存在很小的目标的,例如“width或者height小于10像素的目标”,

这里我们可以看看一个示例图像,

3.2 COCO中存在目标个数为0的图像——img_id–250对应的图片

COCO数据集会存在GT目标个数为0的图片,例如:img_id–250对应的图片;

3.3 COCO数据集不存在“图像稀疏”的问题

我们经过eda数据集后发现

可以看到COCO中图像最大的尺寸为(640,640),平均尺寸为(577,484),可以看到在W和H两个维度上,平均尺寸都超过了最大尺寸的一半(也就是320像素),所以COCO不存在“图像稀疏”的问题;

《南溪的目标检测学习笔记》——COCO数据集的学习笔记相关推荐

  1. tensorflow精进之路(二十四)——Object Detection API目标检测(中)(COCO数据集训练的模型—ssd_mobilenet_v1_coco模型)

    1.概述 上一讲简单的讲了目标检测的原理以及Tensorflow Object Detection API的安装,这一节继续讲Tensorflow Object Detection API怎么用. 2 ...

  2. 《南溪的目标检测学习笔记》——目标检测模型的设计笔记

    1 南溪学习的目标检测模型--DETR 南溪最赞赏的目标检测模型是DETR, 论文名称:End-to-End Object Detection with Transformers 1.2 decode ...

  3. 《南溪的目标检测学习笔记》——夏侯南溪的CNN调参笔记,加油

    1 致谢 感谢赵老师的教导! 感谢张老师的指导! 2 调参目标 在COCO数据集上获得mAP>=10.0的模型,现在PaddleDetection上的Anchor-Free模型[TTFNet]的 ...

  4. 《南溪的目标检测学习笔记》——后处理方法的学习笔记

    1 前言 后处理方法是很重要的,我在学习训练COCO数据集时深有体会,这里用笔记记录一下后处理的相关知识- 2 南溪使用的的后处理方法 南溪使用后处理操作流程: 阈值过滤(低阈值去框,提速nms)→\ ...

  5. 《南溪的目标检测学习笔记》——模型预处理的学习笔记

    1 介绍 在目标检测任务中,模型预处理分为两个步骤: 图像预处理:基于图像处理算法 数值预处理:基于机器学习理论 关于图像预处理,请参考<南溪的目标检测学习笔记>--图像预处理的学习笔记 ...

  6. 《南溪的目标检测学习笔记》的笔记目录

    1 前言 这是<南溪的目标检测学习笔记>的目录~ 2 学习目标检测的思路--"总纲" <南溪的目标检测学习笔记>--目标检测的学习笔记 我在这篇文章中介绍了 ...

  7. 目标检测算法(传统基于深度学习的)

    目标检测算法 最近在学目标检测各类算法,主要分为传统的目标检测方法和基于深度学习的目标检测算法,这里记录了一些基本的算法介绍.下图是目标检测算法的发展历程 传统目标检测方法 分三部分:区域选择–> ...

  8. Cascade R-CNN升级!目标检测制霸COCO,实例分割超越Mask R-CNN

    点击我爱计算机视觉标星,更快获取CVML新技术 前天,arxiv上新出一篇论文<Cascade R-CNN: High Quality Object Detection and Instance ...

  9. 夏侯南溪搭建目标检测模型——文件结构设计篇

    1 前言 此文章是夏侯南溪搭建目标检测模型--文件夹结构设计篇- 2 文件夹命名 使用小写字母命名,单词之间用短线"-"进行连接,例如: plane-detection 3 项目文 ...

最新文章

  1. Python数据类型和分支循环
  2. Linux 多应用程序docker自动部署脚本
  3. 深入理解 Java 虚拟机 学习笔记
  4. 柠檬网络电视_睡觉时旁边放柠檬,真能促进长高提升记忆力?权威解答来了
  5. python例题代码_python26个练习题及代码-789
  6. linux 驱动读写文件,Linux下读写寄存器
  7. 计算机专业跨考学科英语难吗,跨考学科英语,过来人走过的弯路
  8. 做个轻松省力的父母的几个原则
  9. 小A是支枪,子弹未打光---之手 枪篇
  10. 用 JS 给图片加文字水印或图片水印
  11. 肥姐沈殿霞离世追悼会时间待定 为女儿留下上亿遗产
  12. 上海泛微面经(从Java开发到项目实施岗)
  13. NOIP模拟19/07/22
  14. uint8_t图像数据类型介绍
  15. WordPress调用自带的友情链接功能_只在首页显示
  16. 2021-08-25 新手创建bt面板并创建网站
  17. JAVA学习之路:不走弯路,就是捷径(一)
  18. iOS storyboard 用法详解
  19. 软件测试(白盒测试与黑盒测试)
  20. 一名85后老程序员的真心话

热门文章

  1. VS2012连接数据库问题
  2. Ref和Out关键字的区别
  3. 面向对象课程第四单元作业总结
  4. 通过反射创建对象和调用方法
  5. Python 笔记(一)字典与json使用及注意点
  6. javaEE项目发布方法
  7. 如何在aspx页面中插入swf动画
  8. Unity2D 入门教程
  9. 【Java 泛型】泛型(泛型类型、原始类型、泛型方法)、通配符(上界、下界、无限制、继承)
  10. 【恋上数据结构】排序算法大全