读取数据集的标签,并在图像中显示出来,以判断数据集标签是否正确

(1)将annotations放到一个文件夹下,并读取标签。

import os
import glob
import pandas as pd
import xml.etree.ElementTree as ET


def xml_to_csv(path):
    xml_list = []
    for xml_file in glob.glob(path + '/*.xml'):
        tree = ET.parse(xml_file)
        root = tree.getroot()
        for Object in root.findall('object'):
            bndbox=Object.find('bndbox')
            Size = root.find('size')
            value = (root.find('filename').text,
                     int(Size.find('width').text),
                     int(Size.find('height').text),
                     Object.find('name'),
                     int(bndbox.find('xmin').text),
                     int(bndbox.find('ymin').text),
                     int(bndbox.find('xmax').text),
                     int(bndbox.find('ymax').text)
                     )
            xml_list.append(value)
    column_name = ['filename', 'width', 'height', 'class', 'xmin', 'ymin', 'xmax', 'ymax']
    xml_df = pd.DataFrame(xml_list, columns=column_name)
    return xml_df


def main():
    image_path = "D:/object_detection/research/object_detection/ROS1/VOCdevkit/RSDS2016/Annotations"
    xml_df = xml_to_csv(image_path)
    xml_df.to_csv('D:/object_detection/research/object_detection/ROS1/VOCdevkit/RSDS2016/labels.csv', index=None)
    print('Successfully converted xml to csv.')


main()

注意更改程序中的路径,生成csv格式的文件。

(2)读取csv格式的文件,并选择数据集中的某一张图片,进行显示。

 

另外也可以在labelImg中加载图片和对应的标签,显示。

 

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 PyTorch 读取标签数据集并保存按比例划分的训练集和测试集的示例代码: ```python import os import random from shutil import copyfile import torch from torch.utils.data import Dataset class UnlabeledDataset(Dataset): def __init__(self, data_dir): self.data_dir = data_dir self.image_list = os.listdir(data_dir) def __len__(self): return len(self.image_list) def __getitem__(self, idx): image_path = os.path.join(self.data_dir, self.image_list[idx]) image = Image.open(image_path).convert('RGB') return image def split_dataset(data_dir, train_ratio=0.8): # Create train and test directories train_dir = os.path.join(data_dir, 'train') test_dir = os.path.join(data_dir, 'test') os.makedirs(train_dir, exist_ok=True) os.makedirs(test_dir, exist_ok=True) # Get list of images image_list = os.listdir(data_dir) # Shuffle images random.shuffle(image_list) # Split dataset train_size = int(train_ratio * len(image_list)) train_images = image_list[:train_size] test_images = image_list[train_size:] # Copy images to train directory for image_name in train_images: src_path = os.path.join(data_dir, image_name) dst_path = os.path.join(train_dir, image_name) copyfile(src_path, dst_path) # Copy images to test directory for image_name in test_images: src_path = os.path.join(data_dir, image_name) dst_path = os.path.join(test_dir, image_name) copyfile(src_path, dst_path) ``` 在上面的代码,`UnlabeledDataset` 类是一个 PyTorch 数据集,它从无标签数据集目录读取图像。`split_dataset` 函数将无标签数据集按比例划分为训练集和测试集,并将它们保存到相应的目录。默认使用 0.8 的比例将数据集分为训练集和测试集。 使用示例: ```python data_dir = '/path/to/unlabeled/dataset' split_dataset(data_dir) # Load train and test datasets train_dataset = UnlabeledDataset(os.path.join(data_dir, 'train')) test_dataset = UnlabeledDataset(os.path.join(data_dir, 'test')) # Create data loaders train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True) test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=32) ``` 上面的示例代码将无标签数据集按比例划分为训练集和测试集,并创建了相应的 PyTorch 数据加载器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值