如何将VOC XML文件转化成COCO数据格式

本文详细介绍了如何将VOC的XML标注文件转换为COCO数据格式,包括COCO数据结构的解析,XML文件内容的解析,并提供了一段Python代码示例进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据转换实在是个烦人的工作,被折磨了很久决定抽出时间整理一下,仅供参考。

在一个项目中,我需要将已有的VOC的xml标注文件转化成COCO的数据格式,为了方便理解,文章按如下顺序介绍:

XML文件内容长什么样
COCO的数据格式长什么样
XML如何转化成COCO格式
VOC XML长什么样?
下面我只把重要信息题练出来,如下所示:

文件夹目录 图片名.jpg path_to\at002eg001.jpg Unknown 550 518 3 0 Apple Unspecified 0 0 292 218 410 331 ... 可以看到一个xml文件包含如下信息:

folder: 文件夹
filename:文件名
path:路径
source:我项目里没有用到
size:图片大小
segmented:图像分割会用到,本文仅以目标检测(bounding box为例进行介绍)
object:一个xml文件可以有多个object,每个object表示一个box,每个box有如下信息组成:
name:改box框出来的object属于哪一类,例如Apple
bndbox:给出左上角和右下角的坐标
truncated:略
difficult:略

COCO长什么样?

COCO目录啥样?

不同于VOC,一张图片对应一个xml文件,coco是直接将所有图片以及对应的box信息写在了一个json文件里。通常整个coco目录长这样:
python coco |______annotations # 存放标注信息 | |__train.json | |__val.json | |__test.json |______trainset # 存放训练集图像 |______valset # 存放验证集图像 |______testset # 存放测试集图像

COCO的json文件啥样?

一个标准的json文件包含如下信息:

{
“info”: info,
“images”: [image],
“annotations”: [annotation],
“licenses”: [license],
}

info{
“year”: int,
“version”: str,
“description”: str,
“contributor”: str,
“url”: str,
“date_created”: datetime,
}
image{
“id”: int,
“width”: int,
“height”: int,
“file_name”: str,
“license”: int,
“flickr_url”: str,
“coco_url”: str,
“date_captured”: datetime,
}
license{
“id”: int,
“name”: str,
“url”: str,
}
是不是有点抽象?官网就是这样的,酸爽不酸爽,反正我看

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值