PASCAL VOC标注格式

PASCAL的全称是Pattern Analysis, Statistical Modelling and Computational Learning
VOC的全称是Visual Object Classes
第一届PASCAL VOC举办于2005年,然后每年一届,于2012年终止
PASCAL VOC数据集的官网地址:http://host.robots.ox.ac.uk/pascal/VOC/
当前最完整的是PASCAL VOC 2012数据集,包括:20类物体,train/val 数据集有11,530张图片,包括 27,450 目标检测标记和 6,929 分割标记,可用于图像分类、目标检测和分割。
其标注文件为.xml格式,其关键字段的意义:

  • folder: 文件夹
  • filename:文件名
  • database: 数据库名
  • annotation: 标记文件格式
  • size:图像尺寸,width宽、height高,depth通道数
  • segmented: 分割
  • object, name: 标签名;pose:是否是姿势;truncated:是否被截断;difficult:是否识别困难。
  • bndbox, 边界框位置
    PASCAL VOC标注格式范例

标注文件中的关键信息,用xml.etree.ElementTree模块来读取,范例代码如下

import os
import numpy as np 
import xml.etree.ElementTree as ET

xml_filename = r'D:\PASCAL VOC2012\VOCdevkit\VOC2012\Annotations\2007_000042.xml'
tree = ET.parse(xml_filename)
objs = tree.findall('object')
for i, obj in enumerate(objs):
    x1 = float(obj.find('bndbox').find('xmin').text)
    y1 = float(obj.find('bndbox').find('xmax').text)
    x2 = float(obj.find('bndbox').find('ymin').text)
    y2 = float(obj.find('bndbox').find('ymax').text)
    name = str(obj.find('name').text)
    print(name, x1, y1, x2, y2)

输出结果:

train 263.0 500.0 32.0 295.0
train 1.0 235.0 36.0 299.0

你可能感兴趣的:(PASCAL VOC标注格式)