MMDetection学习笔记-04自定义COCO数据集

以COCO标注格式是JSON,主要由image、categories和annotations 三个字段表示。COCO格式文件的好处是可以用一个文件表示所有的标注数据。程序接收一个COCO.json文件可以处理整个数据集。

  • 整体结构:
{
	#“info”:info, #一般用不上,可以置空
	#"licenses":[license], #一般用不上,可以置空
	images:[image], 
	annotations:[annotation],
	categories:[category]
}
info,image和license共享的字段信息;annotation和category不共享字段信息。
  • images
    images包含多个image实例的数组。
    对于一个image类型的实例为:
{
	"file_name":"文件名或文件路径",#最终目标是让训练时候,程序找到这个文件
	"height":360, "width":640,
	"data_captured":"数据获取时间",
	"id":391185 #文件ID
},
#上面代码展示了标注的核心内容,只要把上述标注清楚,程序就可以正常运行。上述代码表示一幅图片img1。img2、img3......等很多实例也是类似img1.下面代码展示了images
images{
	img1,
	img2,
	img3,
	img4,
	......
}
  • categories
    categories包含多个category实例的数组。category结构体描述如下:
{
	"id":int,#类别ID
	"name":string,#类别名
	"supercategory":string#类别父类,例如vehicle(bicycle),选填。填了也没啥用处,不填还可能报错
}

coco一共有80类,即id会递增到80。一个实际例子如下:
在这里插入图片描述

  • annotations
    annotations是一个包含多个annotation实例的列表。annotation类型本身又包含了一系列的字段。
{
	"id":int,#标注ID
	"image_id":int,#这个标注属于哪张图片
	"category_id":int,#这个标注属于某个类别
	"segmentation":RLE or [polygons],#segmentation格式取决于这个实例是一个单个的对象。iscrowd=0时,使用polygons格式;iscrowd=1时,使用RLE格式
	"area":float,#标注区域面积
	"bbox":[x,y,width,height],#标注框,x,y为标注框的左上角坐标。
	"iscrod":0 or 1 #决定是RLE格式还是polygon格式。单个对象:iscrowd=0;多个对象iscrowd=1
}

下图是一个annotations的示例:
在这里插入图片描述

  • 检测标注文件是否正确
    可以使用pycoctools工具或MMDetection可视化工具来检验得到的标注文件是否正确。
    在这里插入图片描述
    执行类似于下面图片中的命令可以查看COCO数据集是否标注清楚:
    在这里插入图片描述

reference1
reference2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

www5599667788

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值