首页 > COCO KeyPoints关键点数据集准备

COCO KeyPoints关键点数据集准备

COCO KeyPoints关键点数据集准备

概述

网上搜了一圈,coco关键点数据集准备的内容比较少,这里写一篇完成的标注流程到数据集准备的文章,以备后忘

标注工具

coco官方标注工具: coco–annotator

https://github.com/jsbroks/coco-annotator

标注过程

标注界面

这里注意category_id 最好为1 ,否则会有不必要的麻烦 “category_id”: 1

标注流程

1、创建类别

2、 创建关键点名称

3、创建关键点之间连线关系

4、选择一张图片

5、标注待识别目标识别矩形框

6、在框内标注关键点keyPoints

7、标注下一张图片

标注完成之后, 导出数据集

导出结果在 coco–annotator/datasets/数据集名字/. exports/ 文件夹里

在这里插入图片描述

在这里插入图片描述

ps: 数据集也可以直接在web页面上点击下载

数据集准备

完善数据集

coco数据集标准字段
{"info": info,"licenses": [license],"images": [image],"annotations": [annotation],
}

导出的数据集默认是没有 info字段和licenses 字段的,所以我们在数据集的json文件(coco-1613789462.5181398.json)自己加上这两个字段, 如下:

在这里插入图片描述

字段如下:

"info": {"contributor": "zyl","date_created": "2021/02/01","description": "human hand keypoints","url": "","version": "1.0","year": 2021},"licenses": [{"id": 1,"name": "Attribution-NonCommercial-ShareAlike License","url": "http://creativecommons.org/licenses/by-nc-sa/2.0/"}]

分割数据集为训练集和测试集

如下,三个文件放同一个目录

在这里插入图片描述

修改splitCoco.sh 文件中的文件名为自己的json标注文件路径,运行

./splitCoco.sh

执行 得到训练集文件和测试集文件

test.json
train.json

图片文件训练集和验证集区分

我们标注的图像是放在一个文件夹里的,这里需要区分成两个文件夹 test2017/ 和 train2017/

ps:当然这里最简单的方法是把所有的图像分别拷贝到这两个目录, 即 test2017/ 和 train2017/ 里面都放所有的标注图像

分类可以通过pickUsedImg.py这个脚本进行分类,自己改改,这个代码看不懂这个文章也就不用往下看了。

最终得到的数据集

在这里插入图片描述

三个文件夹 annotations/ 、 test2017/ 、 train2017/

test2017 和train2017 分别是测试集和训练集图片

其中 annotations/文件夹如下:

在这里插入图片描述

计算数据集的mean 和std 值

参照dataset_mean_std.py 文件 路径修改为自己的数据集图片全集的目录

计算出的值如下:

在这里插入图片描述

到此,数据集准备完毕

数据集处理所需代码文件

链接: https://pan.baidu.com/s/1CmnnkthOXIjY4ndSRiqQ0g 提取码: cai9 复制这段内容后打开百度网盘手机App,操作更方便哦

–来自百度网盘超级会员v1的分享

在这里插入图片描述

更多相关:

  • 本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:【公众号dotNet工控上位机:thinger_swj】基于Socket访问西门子PLC系列教程(一)在完成上述步骤后,接下来就是编写上位机软件与PLC之间进行通信。上位机UI界面设计如下图所示:从上图可以看出...

  • 我有一个大型数据集,列出了在全国不同地区销售的竞争对手产品。我希望通过使用这些新数据帧名称中的列值的迭代过程,根据区域将该数据帧分成几个其他区域,以便我可以分别处理每个数据帧-例如根据价格对每个地区的信息进行排序,以了解每个地区的市场情况。我给出了以下数据的简化版本:Competitor Region ProductA Product...

  • 作为一名IT从业者,我来回答一下这个问题。首先,对于具有Java编程基础的人来说,学习Python的初期并不会遇到太大的障碍,但是要结合自己的发展规划来制定学习规划,尤其要重视学习方向的选择。Java与Python都是比较典型的全场景编程语言,相比于Java语言来说,当前Python语言在大数据、人工智能领域的应用更为广泛一些,而且大...

  • 这段时间通过学习相关的知识,最大的变化就是看待事物更加喜欢去了解事物后面的本质,碰到问题后解决问题思路也发生了改变。举个具体的例子,我在学习数据分析,将来会考虑从事这方面的工作,需要掌握的相关专业知识这个问题暂且按下不表,那哪些具体的问题是我需要了解的呢,以下简单罗列:1、了解数据分析师这个岗位在各个地区的需求情况?2、数据分析师的薪...

  • 这一节将开始学习python的一个核心数据分析支持库---pandas,它是python数据分析实践与实战的必备高级工具。对于使用 Python 进行数据分析来说,pandas 几乎是无人不知,无人不晓的。今天,我们就来认识认识数据分析界鼎鼎大名的 pandas。目录一. pandas主要数据结构 SeriesDataFrame二...

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...