目标检测coco数据集点滴介绍
目标检测coco数据集点滴介绍
1. COCO数据集介绍
MS COCO 是google 开源的大型数据集, 分为目标检测、分割、关键点检测三大任务, 数据集主要由图片和json 标签文件组成。 coco数据集有自带COCO API,方便对json文件进行信息读取。本博客介绍是目标检测数据集格式的制作。
COCO通过大量使用Amazon Mechanical Turk来收集数据。COCO数据集现在有3种标注类型:object instances(目标实例), object keypoints(目标上的关键点), 和image captions(看图说话),使用JSON文件存储。
2. MSCOCO数据集数据结构{
"images":
[
{"file_name":"cat.jpg","id":1,"height":1000,"width":1000},
{"file_name":"dog.jpg","id":2,"height":1000,"width":1000},
...
]
"annotations":
[
{"image_id":1,"bbox":[100.00,200.00,10.00,10.00],"category_id":1}
{"image_id":2,"bbox":[150.00,250.00,20.00,20.00],"category_id":2}
...
]
"categories":
[
{"id":0,"name":"bg"}
{"id":1,"name":"cat"}
{"id":1,"name":"dog"}
...
]
}
标注文件中,"images" 关键字对应图片信息,"annotations" 关键字对应标注信息,"categories" 对应类别信息: "images": 该关键字对应的数据中,每一项对应一张图片,"file_name"对应图片名称,"id"对应图片序号,"height"和"width"分别对应图像的高和宽。 "annotations": 该关键字对应的数据中,每一项对应一条标注,"image_id"对应图片序号,"bbox"对应标注矩形框,顺序为[x, y, w, h],分别为该矩形框的起始点x坐标,起始点y坐标,宽、高。"category_id"对应类别序号。 "categories": 该关键字对应的数据中,每一项对应一个类别,"id"对应类别序号,"name"对应类别名称。
关键字关联说明: 1."annotations"中的元素通过"image_id"关联图像,比如"image_id":2,该条标注信息对应"images"中"id"为2的图像。 2."annotations"中的元素通过"category_id"关联类别,比如"category_id":2,该条标注信息对应"categories"中"id"为2的类别。
例: 在上面列出的数据结构中
这条标注信息通过"image_id"可以找到对应的图像为"cat.jpg",通过"category_id"可以找到对应的类别为"cat"
背景图片说明:
"annotations"中的元素,"category_id":0对应的是背景。当且仅当一张图片对应的所有annotations中,"category_id"都为0,该图片为背景图片。
3. COCO数据集json文件,分类和id
coco目标检测数据集标注目标信息采用的是数据格式是json,其内容本质是一种字典结构,字典堆栈和列表信息内容维护。
coco里面的id和类名字对应:总共80类,但id号到90!
coco_id_name_map={1: 'person', 2:
'bicycle', 3: 'car', 4: 'motorcycle', 5: 'airplane', 6: 'bus', 7: 'train', 8:
'truck', 9: 'boat', 10: 'traffic light', 11: 'fire hydrant', 13: 'stop sign',
14: 'parking meter', 15: 'bench', 16: 'bird', 17: 'cat', 18: 'dog', 19:
'horse', 20: 'sheep', 21: 'cow', 22: 'elephant', 23: 'bear', 24: 'zebra', 25:
'giraffe', 27: 'backpack', 28: 'umbrella', 31: 'handbag', 32: 'tie', 33:
'suitcase', 34: 'frisbee', 35: 'skis', 36: 'snowboard', 37: 'sports ball', 38:
'kite', 39: 'baseball bat', 40: 'baseball glove', 41: 'skateboard', 42:
'surfboard', 43: 'tennis racket', 44: 'bottle', 46: 'wine glass', 47: 'cup',
48: 'fork', 49: 'knife', 50: 'spoon', 51: 'bowl', 52: 'banana', 53: 'apple',
54: 'sandwich', 55: 'orange', 56: 'broccoli', 57: 'carrot', 58: 'hot dog', 59:
'pizza', 60: 'donut', 61: 'cake', 62: 'chair', 63: 'couch', 64: 'potted plant',
65: 'bed', 67: 'dining table', 70: 'toilet', 72: 'tv', 73: 'laptop', 74:
'mouse', 75: 'remote', 76: 'keyboard', 77: 'cell phone', 78: 'microwave', 79:
'oven', 80: 'toaster', 81: 'sink', 82: 'refrigerator', 84: 'book', 85: 'clock',
86: 'vase', 87: 'scissors', 88: 'teddy bear', 89: 'hair drier', 90:
'toothbrush'}
打开json文件:
with open(json_path,'r') as load_f:
load_dict =
json.load(load_f)
里面协议是这样的,annotations下面是每一个box的标注信息,包括分割的,当前框使用目标框,image_id,categogy_id。
因此要想获得整个数据集信息,必须遍历整个box信息,将其进行统计分配。
4. COCO数据集性能指标
COCO 提供了 12 种用于衡量目标检测器性能的评价指标.
Recall 召回率(查全率)。表示正确识别物体A的个数占测试集中物体A的总个数的百分数Recall = TP / (TP+FN)
Precision
精确率(查准率)。表示正确识别物体A的个数占总识别出的物体个数n的百分数Precision
= TP / (TP+FP)
fp
:false positive误报,即预测错误
fn
:false negative漏报,即没有预测到
tp:true
positive
tn:true
negative
iou:intersection-over-union
Accuracy 准确率。正确分类的样本数除以所有的样本数,正确率越高,分类器越好。Accuracy=(TP+TN)/
(TP+TN+FP+FN)
以上介绍都是基于2分类的,并不是多分类的
以下12个指标用于表征COCO上物体检测器的性能:
Average Precision (AP):
AP % AP at
IoU=0.50:0.05:0.95 (primary challenge metric)
APIoU=.50 % AP at IoU=0.50 (PASCAL VOC
metric)
APIoU=.75 % AP at IoU=0.75 (strict
metric)
AP
Across Scales:
APsmall % AP for small objects:
area < 322
APmedium % AP for medium objects: 322
< area < 962
APlarge % AP for large objects:
area > 962
Average
Recall (AR):
ARmax=1 % AR given 1 detection per
image
ARmax=10 % AR given 10 detections per
image
ARmax=100 % AR given 100 detections per
image
AR
Across Scales:
ARsmall % AR for small objects: area < 322
ARmedium % AR for medium objects: 322
< area < 962
ARlarge % AR for large objects:
area > 962
目标检测coco数据集点滴介绍的更多相关文章
- 目标检测算法YOLO算法介绍
YOLO算法(You Only Look Once) 比如你输入图像是100x100,然后在图像上放一个网络,为了方便讲述,此处使用3x3网格,实际实现时会用更精细的网格(如19x19).基本思想是, ...
- faster-rcnn 目标检测 数据集制作
本文的目标是制作目标检测的数据集 使用的工具是 python + opencv 实现目标 1.批量图片重命名,手动框选图片中的目标,将目标框按照一定格式保存到txt中 图片名格式(批量) .jpg . ...
- FAIR开源Detectron:整合全部顶尖目标检测算法
昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标检测平台. 昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标 ...
- 目标检测(六)YOLOv2__YOLO9000: Better, Faster, Stronger
项目链接 Abstract 在该论文中,作者首先介绍了对YOLOv1检测系统的各种改进措施.改进后得到的模型被称为YOLOv2,它使用了一种新颖的多尺度训练方法,使得模型可以在不同尺寸的输入上运行,并 ...
- [炼丹术]YOLOv5目标检测学习总结
Yolov5目标检测训练模型学习总结 一.YOLOv5介绍 YOLOv5是一系列在 COCO 数据集上预训练的对象检测架构和模型,代表Ultralytics 对未来视觉 AI 方法的开源研究,结合了在 ...
- AI佳作解读系列(五) - 目标检测二十年技术综述
计算机视觉中的目标检测,因其在真实世界的大量应用需求,比如自动驾驶.视频监控.机器人视觉等,而被研究学者广泛关注. 上周四,arXiv新出一篇目标检测文献<Object Detection ...
- GPU端到端目标检测YOLOV3全过程(上)
GPU端到端目标检测YOLOV3全过程(上) Basic Parameters: Video: mp4, webM, avi Picture: jpg, png, gif, bmp Text: doc ...
- DeepLearning.ai学习笔记(四)卷积神经网络 -- week3 目标检测
一.目标定位 这一小节视频主要介绍了我们在实现目标定位时标签该如何定义. 上图左下角给出了损失函数的计算公式(这里使用的是平方差) 如图示,加入我们需要定位出图像中是否有pedestrian,car, ...
- 目标检测算法(2)SPP-net
本文是使用深度学习进行目标检测系列的第二篇,主要介绍SPP-net:Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual R ...
随机推荐
- Selenium3自动化测试【15】元素定位之Class、Name
@ 目录 1.name定位 2.class定位 1.name定位 通过name定位是另外一种常用的定位元素的方式. 当一个元素存在name属性时,可以使用name定位,依旧以Bing搜索框为例(nam ...
- 缓冲区溢出分析第10课:Winamp缓冲区溢出研究
前言 Winamp是一款非常经典的音乐播放软件,它于上世纪九十年代后期问世.与现在音乐播放软件行业百家争鸣的情况不同,当时可以说Winamp就是听音乐的唯一选择了,相信那个时代的电脑玩家是深有体会的. ...
- hdu4982 暴搜+剪枝(k个数和是n,k-1个数的和是平方数)
题意: 给你两个数n,k问你是否怎在这样一个序列: (1)这个序列有k个正整数,且不重复. (2)这k个数的和是n. (3)其中有k-1个数的和是一个平方数. ...
- hdu4940 有上下界的无源可行流判断
题意: 给你一个强连通图,然后问你是否可以找到任意满足条件的集合S,S是非空集合,T是S的补集,满足sum(D[i ,j]) <= sum(D[j,i] + B[j,i]) i属于S ...
- 关于PHP动态的接收传递的GET,POST和COOKIE变量
0x01 我们知道 PHP 接收的变量最常用的是 GET,POST,COOKIE 这三个变量.GET变量是附在 url 后传输的,而 POST 变量是放在 http 包中传输的,COOKIE 则是浏览 ...
- UVA11020 优势人群(multiset)
题意: 给你N个人,每个人有两个权值,x,y对于某一个人,如果不存在某一个人x' y', x' < x && y' <= y 或者x' <= x & ...
- CVE-2017-11882:Microsoft office 公式编辑器 font name 字段栈溢出通杀漏洞调试分析
\x01 漏洞简介 在 2017 年 11 月微软的例行系统补丁发布中,修复了一个 Office 远程代码执行漏洞(缓冲区溢出),编号为 CVE-2017-11882,又称为 "噩梦公式&q ...
- Smss.exe加载win32k.sys过程总结
windows操作系统初始化 windows操作系统再初始化的过程中,当内核完全初始化而且各个组件也已经准备好后会加载一个个用户进程smss.exe(会话管理器),此进程会接着调用NtSetSyste ...
- .NET Worker Service 如何优雅退出
上一篇文章中我们了解了 .NET Worker Service 的入门知识[1],今天我们接着介绍一下如何优雅地关闭和退出 Worker Service. Worker 类 从上一篇文章中,我们已经知 ...
- linux下符号链接和硬链接的区别
存在2众不同类型的链接,软链接和硬链接,修改其中一个,硬链接指向的是节点(inode),软链接指向的是路径(path) 软连接文件 软连接文件也叫符号连接,这个文件包含了另一个文件的路径名,类似于wi ...