VOC2012 数据集二次处理

本文介绍了如何进行VOC2012数据集的二次处理,参考了WZMIAOMIAO的深度学习项目,涉及内容包括数据集的结构,如Annotations中的.xml标注文件,ImageSets中的.txt文件,JPEGImages中的.jpg图片,以及SegmentationClass和SegmentationObject中的.png图片。该过程对于深度学习中的目标检测任务至关重要。
摘要由CSDN通过智能技术生成

参考:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_object_detection/yolov3_spp 

VOC数据集格式:

  • Annotations:             .xml 标注文件
  • ImageSets:            .txt 文件(存放训练测试的 图片名,对应JPEGImage的图片和.xml标注文件)
  • JPEGImages:              .jpg 图片
  • SegmentationClass:    .png 图片
  • SegmentationObject:   .png 图片

"""
数据集处理  xml转txt     (trans_voc2yolo.py)
1.将voc数据集标注信息(.xml)转为yolo标注格式(.txt),并将图像文件复制到相应文件夹
2.根据json标签文件,生成对应names标签(my_data_label.names)
"""
import os
from tqdm import tqdm
from lxml import etree
import json
import shutil

# voc数据集根目录以及版本
voc_root = "/kaggle/input/pascal-voc-2012"
voc_version = "VOC2012"

# 转换的训练集以及验证集对应txt文件
train_txt = "train.txt"        # 记录着用于训练的图片名
val_txt = "val.txt"

# 转换后的文件保存目录
save_file_root = "./my_yolo_dataset"
# label标签对应json文件
label_json_path = "/kaggle/input/voc-classes/pascal_voc_classes.json"

# 拼接出voc的images目录,xml目录,txt目录
voc_images_path = os.path.join(voc_root, voc_version, "JPEGImages")
voc_xml_path = os.path.join(voc_root, voc_version, "Annotations")   # 所有的图像标注信息
train_txt_path = os.path.join(voc_root, voc_version, "ImageSets", "Main", train_txt)
val_txt_path = os.path.join(voc_root, voc_version, "ImageSets", "Main", val_txt)

# 检查文件是否都存在
assert os.path.exists(voc_images_path),"voc_images_path not exist..."
assert os.path.exists(voc_xml_path), "voc_xml_path not exist..."
assert os.path.exists(train_txt_path), "train_txt_path not exist..."
assert os.path.exists(val_txt_path), "val_txt_path not exist..."
assert os.path.exists(label_json_path), "label_json_path not exist..."
if not os.path.exists(save_file_root):
    os.makedirs(save_file_root)

def parse_xml_to_dict(xml):
    """
    xml文件标注这该张图片的信息:来源source,名称,大
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值