【目标检测】提取保存VOC数据集选定类的标注和图片

提取VOC数据集选定类别对应的xml和图片:

修改代码中VOC数据和提取数据的路径,创建list.txt保存提取的文件名

import os
import xml.etree.ElementTree as ET
import shutil
 
# Path
ann_filepath = 'Annotations/'
img_filepath = 'JPEGImages/'
img_savepath = 'test/JPEGImages/'
ann_savepath = 'test/Annotations/'
if not os.path.exists(img_savepath):
    os.mkdir(img_savepath)
 
if not os.path.exists(ann_savepath):
    os.mkdir(ann_savepath)
 
# VOC class information
# classes = ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle',
#             'bus', 'car', 'cat', 'chair', 'cow', 'diningtable',
#              'dog', 'horse', 'motorbike', 'pottedplant',
#           'sheep', 'sofa', 'train', 'person','tvmonitor']
 
classes = ['aeroplane', 'bicycle', 'tvmonitor']    # The classes needed
 
def save_annotation(file):
    tree = ET.parse(ann_filepath + '/' + file)
    root = tree.getroot()
    result = root.findall("object")
    bool_num = 0
    for obj in result:
        if obj.find("name").text not in classes:
            root.remove(obj)
        else:
            bool_num = 1
    if bool_num:
        tree.write(ann_savepath + file)
        return True
    else:
        return False
 
def save_images(file):
    name_img = img_filepath + os.path.splitext(file)[0] + ".jpg"
    shutil.copy(name_img, img_savepath)
    with open('list.txt', 'a') as file_txt:
        file_txt.write(os.path.splitext(file)[0])
        file_txt.write("\n")
    return True
 
if __name__ == '__main__':
    for f in os.listdir(ann_filepath):
        if save_annotation(f):
            save_images(f)

参考 [1]

参考资源链接:[集装箱缺陷深度学习数据集:YOLO与VOC格式](https://wenku.youkuaiyun.com/doc/6ducmn62nf?utm_source=wenku_answer2doc_content) 在开始使用YOLO算法进行目标检测模型训练之前,首先需要对YOLO算法的工作原理数据集的组织结构有所了解。YOLO算法通过将输入图像划分为一个个网格,每个网格负责预测边界框概率,这是一种端到端的训练方法。数据集目标检测模型训练的基础,它必须被正确地组织划分,以便在训练、验证测试阶段使用。《集装箱缺陷深度学习数据集:YOLO与VOC格式》提供了一个优质的起点,接下来是具体的步骤: 1. 数据集准备:根据提供的资源,数据集已经被划分为训练集、验证集测试集。首先,确保这些数据集的文件路径已正确设置,以便在训练过程中能够被系统访问。 2. 数据预处理:加载数据集中的图片对应的.xml或.yaml标注文件。你需要解析这些文件,以便提取出用于模型训练的边界框标签信息。注意,YOLO算法要求标注的边界框格式为归一化的中心点坐标(x, y)宽高(w, h),并相对于图片尺寸进行缩放。 3. 模型选择:选择一个适合的YOLO算法版本进行训练。资源中提到,YOLOv5至YOLOv10都适用于该数据集,应根据你的需求选择合适的版本。例如,YOLOv5具有较新版本的特点,包括训练速度的优化准确性提升。 4. 网络配置:根据选定的YOLO算法版本,进行网络架构的配置。这通常包括设置适当的输入尺寸、数据增强策略、损失函数优化器等。 5. 训练过程:开始训练模型。在这个阶段,模型会通过多次迭代来调整权重,以最小化预测真实标注之间的差异。监控训练过程中的损失值准确率,确保模型不会过拟合或欠拟合。 6. 验证测试:使用验证集来调整超参数,选择最佳的模型版本。之后,使用独立的测试集来评估模型的性能,确保模型具有良好的泛化能力。 7. 模型部署:将训练好的模型部署到实际应用中,进行集装箱缺陷的实时检测。 通过上述步骤,你可以使用YOLO算法集装箱缺陷数据集进行目标检测模型的训练。此外,《集装箱缺陷深度学习数据集:YOLO与VOC格式》不仅为初学者提供了详尽的实践指导,还适合那些希望深入了解YOLO算法在特定领域应用的研究者工程师。如果你希望进一步提高模型的性能效率,建议深入学习该资源,并考虑使用高级的模型优化技术,如迁移学习模型蒸馏。 参考资源链接:[集装箱缺陷深度学习数据集:YOLO与VOC格式](https://wenku.youkuaiyun.com/doc/6ducmn62nf?utm_source=wenku_answer2doc_content)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值