【目标检测】自定义Dataset方法(VOC数据集)——pytorch实现

推荐参考:TORCHVISION OBJECT DETECTION FINETUNING TUTORIAL
以VOC2007数据集为例:

import os
import torch
from torch.utils.data import Dataset
from PIL import Image

from lxml import etree
from xml.etree import ElementTree

"""
VOC2007数据集格式:
└──VOCdevkit
    └──VOC2007
        └──JPEGImages
            └──0.jpg
            └──1.jpg
            └──2.jpg
            └──...
        └──Annotations
            └──0.xml
            └──1.xml
            └──2.xml
            └──...
        └──ImageSets
            └──Main
                └──train.txt
                └──val.txt
                └──trainval.txt
                └──test.txt
      
"""

'''
xml文件信息(例):
<annotation>
    <folder>JPEGImages</folder>
    <filename>0.jpg</filename>
    <path>X:/.../.../VOCdevkit/VOC2007/JPEGImages/0.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>600</width>
        <height>800</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>peach</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>100</xmin>
            <ymin>250</ymin>
            <xmax>150</xmax>
            <ymax>260</ymax>
        </bndbox>
    </object>
    <object>
        <name>cat</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>200</xmin>
            <ymin>50</ymin>
            <xmax>550</xmax>
            <ymax>370</ymax>
        </bndbox>
    </object>
</annotation>
'''


class CustomDataset(Dataset):  # 自定义数据集
    def __init__(self, root, transforms=None, dataset_property="train"):  # 初始化方法
        self.root = root  # 数据路径,应指向".../.../VOCdevkit"
        self.transforms = transforms  # 预处理方法,一般来说需要传入,注意区分训练数据和验证数据的预处理方法
        self.images_dir = os.path.join(self.root, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CV_Peach

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

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

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

打赏作者

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

抵扣说明:

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

余额充值