COCO2017标注文件格式和YOLO标注文件格式的解析

这篇具有很好参考价值的文章主要介绍了COCO2017标注文件格式和YOLO标注文件格式的解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明:本篇博客内容是作者在制作数据集时的一些记录,引用了一些博客的内容,并结合个人理解进行了归纳,引用出处在“参考内容”章节,若有侵权,请联系作者删除。若有纰漏和错误,敬请指正!

1、COCO2017数据集的标注格式及含义

COCO的全称是Common Objects in COntext,是微软团队提供的一个可以用来进行图像识别的数据集。MS COCO数据集中的图像分为训练、验证和测试集。
总共有80个类别。
COCO数据集现在有3种标注类型:object instances(目标实例),object keypoints(目标上的关键点)和image captions(看图说话),使用json文件存储。
如下:
COCO2017标注文件格式和YOLO标注文件格式的解析

打开person_keypoints_val2017.json文件。
从头至尾按照顺序分为以下段落,看起来和目标检测差不多。
json文件主要包含以下几个字段:

{
    "info": info, # dict
    "licenses": [license], # list ,内部是dict
    "images": [image], # list ,内部是dict
    "annotations": [annotation], # list ,内部是dict
    "categories": # list ,内部是dict
}

1、info 类型:就是一些信息记录,如下

{"info": 
{"description": "COCO 2017 Dataset",
"url": "http://cocodataset.org",
"version": "1.0",
"year": 2017,
"contributor": "COCO Consortium",
"date_created": "2017/09/01"},
}

2、Licenses:包含多个license的数组,可以看成是一种版权许可证。

"licenses": [
        {
            "url": "http://creativecommons.org/licenses/by-nc-sa/2.0/",
            "id": 1,
            "name": "Attribution-NonCommercial-ShareAlike License"
        },
        {
            "url": "http://creativecommons.org/licenses/by-nc/2.0/",
            "id": 2,
            "name": "Attribution-NonCommercial License"
        },

3、images:记录了一些关键信息,如图像的文件名、宽、高,图像id等信息。height代表是图片的高度,weight代表图像的宽度,id代表的是图片的id,每一张图片具有唯一id

 "images": [
        {
            "license": 4,
            "file_name": "000000397133.jpg",
            "coco_url": "http://images.cocodataset.org/val2017/000000397133.jpg",
            "height": 427,
            "width": 640,
            "date_captured": "2013-11-14 17:02:52",
            "flickr_url": "http://farm7.staticflickr.com/6116/6255196340_da26cf2c9e_z.jpg",
            "id": 397133
        },]

4、annotations:包含了目标检测中annotation所有字段,另外额外增加了2个字段。
新增的keypoints是一个长度为3 ∗k的数组,其中k是category中keypoints的总数量。每一个keypoint是一个长度为3的数组,第一和第二个元素分别是x和y坐标值,第三个元素是个标志位vv为0时表示这个关键点没有标注(这种情况下 x = y = v = 0),v为 1 时表示这个关键点标注了但是不可见(被遮挡了),v为2时表示这个关键点标注了的同时也可见。
num_keypoints表示这个目标上被标注的关键点的数量(v > 0),比较小的目标上可能就无法标注关键点。
COCO2017标注文件格式和YOLO标注文件格式的解析
id字段:指的是这个annotation的一个id
image_id:等同于前面image字段里面的id。
category_id:类别id
segmentation:
area:标注区域面积
bbox:标注框,x,y为标注框的左上角坐标。
iscrowd:决定是RLE格式还是polygon格式。
从person_keypoints_val2017.json文件中摘出一个annotation的实例如下:

{
	"segmentation": [[125.12,539.69,140.94,522.43,100.67,496.54,84.85,469.21,73.35,450.52,104.99,342.65,168.27,290.88,179.78,288,189.84,286.56,191.28,260.67,202.79,240.54,221.48,237.66,248.81,243.42,257.44,256.36,253.12,262.11,253.12,275.06,299.15,233.35,329.35,207.46,355.24,206.02,363.87,206.02,365.3,210.34,373.93,221.84,363.87,226.16,363.87,237.66,350.92,237.66,332.22,234.79,314.97,249.17,271.82,313.89,253.12,326.83,227.24,352.72,214.29,357.03,212.85,372.85,208.54,395.87,228.67,414.56,245.93,421.75,266.07,424.63,276.13,437.57,266.07,450.52,284.76,464.9,286.2,479.28,291.96,489.35,310.65,512.36,284.76,549.75,244.49,522.43,215.73,546.88,199.91,558.38,204.22,565.57,189.84,568.45,184.09,575.64,172.58,578.52,145.26,567.01,117.93,551.19,133.75,532.49]],
	"num_keypoints": 10,
	"area": 47803.27955,
	"iscrowd": 0,
	"keypoints": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142,309,1,177,320,2,191,398,2,237,317,2,233,426,2,306,233,2,92,452,2,123,468,2,0,0,0,251,469,2,0,0,0,162,551,2],
	"image_id": 425226,
"bbox": [73.35,206.02,300.58,372.5],
"category_id": 1,
	"id": 183126
},

5、categories字段:对于每一个category结构体,相比目标检测中的中的category新增了2个额外的字段,keypoints 是一个长度为k的数组,包含了每个关键点的名字;skeleton 定义了各个关键点之间的连接性(比如人的左手腕和左肘就是连接的,但是左手腕和右手腕就不是)。目前,COCO的keypoints只标注了person category(分类为人)。
COCO2017标注文件格式和YOLO标注文件格式的解析

2、人脸关键点综述内容

2.1 人脸关键点检测基本概念

人脸关键点检测也称为人脸关键点检测、定位或者人脸对齐,是指给定人脸图像,定位出人脸面部的关键区域位置,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓等和人脸检测类似,由于受到姿态和遮挡等因素的影响,人脸关键点检测也是一个富有挑战性的任务。
把关键点的集合称作形状(shape),形状包含了关键点的位置信息,而这个位置信息一般可以用两种形式表示,第一种是关键点的位置相对于整张图像,第二种是关键点的位置相对于人脸框(标识出人脸在整个图像中的位置)。把第一种形状称作绝对形状,它的取值范围是[0,img_width]或者[0,img_height];第二种形状称作相对形状,它的取值范围是0到1。这两种形状可以通过人脸框来相互转换。
人脸关键点的检测有许多重要的应用场景。
人脸姿态对齐:人脸识别等算法都需要对人脸的姿态进行对齐从而提高模型的精度。
人脸美颜与编辑:基于关键点可以精确分析脸型、眼睛形状、鼻子形状等,从而对人脸的特定位置进行修饰加工,实现人脸特效美颜,贴片等娱乐功能。
人脸表情分析与嘴型识别:基于关键点可以对人的面部表情进行分析,从而用于互动娱乐,行为预测等场景。
人脸关键点检测方法分类:
基于ASM(Active Shape Model)和AAM (Active Appearnce Model)的传统方法
基于级联形状回归的方法
基于深度学习的方法
人脸关键点的里程碑算法如下。
1995年,Cootes的ASM(Active Shape Model)。
1998年,Cootes 的AAM(Active Appearance Model) 算法。
2006年,Ristinacce的CLM(Constrained Local Model)算法。
2010年,Rollar 的cascaded Regression 算法。
2013年,Sun 开创深度学习人脸关键点检测的先河,首次将 CNN 应用到人脸关键点定位上。
目前,应用最广泛且效果精度最高的是基于深度学习的方法。
2.2 人脸关键点标注点数发展
因为实验需要的数据集的格式要求,这里主要介绍5点标注和68点标注两种。
2.2.1、5点标注
标注人脸面部最关键的有5个点,分别为左右两个嘴角,两个眼的中心,鼻子,这5个关键点属于人脸内部关键点,根据它们就可以计算出人脸的姿态。
2014年发布的MTFL/MAFL数据集中标注了双眼、鼻子和2个嘴角共5个关键点。
COCO2017标注文件格式和YOLO标注文件格式的解析

2.2.2、68点标注
68点标注是现今最通用的一种标注方案,早期在1999年的Xm2vtsdb数据集中就被提出,300W数据集和XM2VTS等数据集也都采用了68个关键点的方案,被OpenCV中的Dlib算法中所采用。
68个关键点的标注也有一些不同的版本,这里介绍最通用的Dlib中的版本,它将人脸关键点分为内部关键点和轮廓关键点,内部关键点包含眉毛、眼睛、鼻子、嘴巴共计51个关键点,轮廓关键点包含17个关键点。
COCO2017标注文件格式和YOLO标注文件格式的解析

3、YOLO的数据标签格式

将COCO-WholeBody数据集的JSON标签转换为YOLO格式,并使用一个*.txt文件(如果图像中没有人脸,则不需要*.txt文件)。*.txt文件规格如下:

  • 每个对象一行

  • 每行的格式是:class x_center y_center width height

  • 方框的坐标必须要归一化到(0-1),如果方框以像素为单位,请将x_center和width除以图像宽度,将y_center和height除以图像高度。

  • 类别必须从0开始。

对应于下面图像的标签文件包含2个类别,分别是人体(person,类别0)和人脸(face,类别1):
COCO2017标注文件格式和YOLO标注文件格式的解析

然后将YOLO的标签数据可视化,如下所示:
|COCO2017标注文件格式和YOLO标注文件格式的解析
COCO2017标注文件格式和YOLO标注文件格式的解析
COCO2017标注文件格式和YOLO标注文件格式的解析
COCO2017标注文件格式和YOLO标注文件格式的解析

4 参考内容

COCO数据集标注格式及意义
理解COCO数据集中的关键点标注
[yolov5] yolo的数据标签格式
人脸关键点综述
感谢这些作者的知识分享。文章来源地址https://www.toymoban.com/news/detail-481063.html

到了这里,关于COCO2017标注文件格式和YOLO标注文件格式的解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • labelimg标注的VOC格式标签xml文件和yolo格式标签txt文件相互转换

    目录 1 labelimg标注VOC格式和yolo格式介绍 1.1 voc格式 1.2 yolo数据格式介绍 2 voc格式数据和yolo格式数据相互转换 2.1 voc转yolo代码 2.2 yolo转voc格式代码          labelimg标注工具怎么安装和使用在我的博客中已经讲解了,有需要可以看看,博客。         VOC格式文件保存在和图像名

    2024年02月02日
    浏览(53)
  • coco数据集标注格式

    以下主要介绍目标检测(目标实例):   COCO数据集中目标实例的json文件整体是以字典的形式来存储内容的。主要包括5个key(info、licenses、images、annotations、categories)。 info这个key对应的值的类型是一个字典; licenses, images, annatations 和 categories这几个key对应的值的类型是一

    2024年02月13日
    浏览(40)
  • 关于目标检测任务中,YOLO(txt格式)标注文件的可视化

    本文是针对yolo标注格式txt文件的可视化脚本介绍  如果是VOC格式的xml文件,参考:关于目标检测任务中,XML(voc格式)标注文件的可视化 代码比较简单, 50行这样 。。。。 下面是代码的目录结构,1.jpeg 是数据图像,1.txt是对应的相对坐标信息和索引类别 result.png 是保存的绘制

    2024年02月03日
    浏览(69)
  • 将YOLO数据集转成COCO格式,单个文件夹转为单个json文件,例如.../images/train转为instance_train.json

    参考链接 :objectdetection-tricks/tricks_4.py 相关视频教学:tricks_4 用于yolov5和v7中的yolo格式转换coco格式的脚本.(如何在v5和v7中输出ap_small,ap_middle,ap_large coco指标) 还可以参考相关的VOC转COCO的方式:damo-yolo/voc2coco.py 代码效果 :将数据集转成COCO格式, 单个文件夹 转为 单个json 文件

    2024年02月01日
    浏览(46)
  • 伪装目标检测中数据集的标注格式:COCO和VOC

    1.OSFormer中提供的COD10K的json格式,是coco的格式,但由于伪装目标检测任务的特殊性,标注信息中还有一个segmentation段 首先将一整个json文件分解: 然后转化为VOC格式: 这样生成的xml文件,没有之前COD10K标注的segmentation信息,还需要进一步考虑,在转换为xml的脚本中加上识别

    2024年04月27日
    浏览(56)
  • 统计数据集中目标大、中、小个数【需要用到yolo的txt标注文件数据,其他格式数据不一定适用】

    统计数据集中目标大、中、小个数 最近看到一篇论文,其中在数据集介绍部分统计了大、中、小目标信息。因此,为了获取数据集的统计信息,我参考了作者写的代码基于tensorpack统计coco数据集中大、中、小目标的数量 精简版代码如下(内有多个参数需要修改,仔细查看注释

    2024年02月13日
    浏览(47)
  • 100种目标检测数据集【voc格式yolo格式json格式coco格式】+YOLO系列算法源码及训练好的模型

    提示:本文介绍并分享了应用于 各行业 、 各领域 非常有用的 目标检测数据集 (感谢您的关注+三连, 数据集持续更新中… ),其中绝大部分数据集作者 已应用于各种实际落地项目 ,数据集 整体质量好 , 标注精确 ,数据的 多样性充分 , 训练 模型拟合较好 ,具有较高

    2023年04月09日
    浏览(51)
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集

    由于本人水平有限,难免出现错漏,敬请批评改正。 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看 YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制 YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层 YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU YOLOv7训练自己的数据集(口罩检测)

    2024年02月15日
    浏览(39)
  • 目标检测任务中常用的数据集格式(voc、coco、yolo)

    VOC数据集(Annotation的格式是xmI) Pascal VOC数据集是目标检测的常用的大规模数据集之一,从05年到12年都会举办比赛,比赛任务task: 分类Classification 目标检测Object Detection 语义分割Class Segmentation 实例分割Object Segmentation Action Classification(专注于人体动作的一种分类) Person Layout(

    2024年02月14日
    浏览(49)
  • 数据集格式相互转换——CoCo、VOC、YOLO、TT100K

    将annotations目录下的所有xml标注文件按coco格式写入了json文件中。 此处得到的是全部的标签信息,可根据如下代码进行train、val和test的比例划分: train和val同理。 train、val和test分别执行一次即可。 以上代码参考自博文数据转换。

    2023年04月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包