VisDrone格式训练自己FPN数据集

数据格式定义
在这里插入图片描述

Xml转txt

import os
import os.path
import xml.etree.ElementTree as ET
import glob

class_names = ['opium']
xmlpath = 'xml文件路径'
txtpath = '保存txt文件路径'


def xml_to_txt(xmlpath, txtpath):
    os.chdir(xmlpath)
    annotations = os.listdir('.')
    annotations = glob.glob(str(annotations) + '*.xml')

    # file_save = 'train' + '.txt'
    # file_txt = os.path.join(txtpath, file_save)
    # f_w = open(file_txt, 'w')

    for i, file in enumerate(annotations):
        in_file = open(file)
        file = file[:-4]
        file_txt = txtpath + file + '.txt'
        f_w = open(file_txt, 'w')
        print(file_txt)

        tree = ET.parse(in_file)
        root = tree.getroot()

        for obj in root.iter('object'):
            current = list()
            name = obj.find('name').text

            class_num = class_names.index(name)

            xmlbox = obj.find('bndbox')

            x1 = int(xmlbox.find('xmin').text)
            x2 = int(xmlbox.find('xmax').text)
            y1 = int(xmlbox.find('ymin').text)
            y2 = int(xmlbox.find('ymax').text)

            f_w.write(str(x1) + ',' + str(y1) + ',' + str(x2-x1) + ',' + str(y2-y1) + ',' + '1,1,0,0' + '\n')

            # f_w.write(x1 + ',' + y1 + ',' + x2 - x1 + ',' + y2 - y1 + ',1,1,-1,-1' + '\n')
            f_w.close


xml_to_txt(xmlpath, txtpath)

对于生成的txt文件,以4的倍数txt文件必须有一个object_category项为4
在这里插入图片描述
否则无法生成.tfrecord文件

参考:
https://blog.csdn.net/qq_36401512/article/details/85261576
https://blog.csdn.net/Angela_qin/article/details/80944604

源码:https://github.com/yangxue0827/FPN_Tensorflow

Faster R-CNN(区域卷积神经网络)是一种流行的目标检测算法,它结合了Region Proposal Network (RPN) 和 Fast R-CNN 的优点。如果你想在PyTorch上使用Faster R-CNN来训练自己的数据集,你需要遵循以下步骤: 1. 数据准备:首先,你需要准备标注好的训练图像和相应的边界框(BBox)。PASCAL VOC、COCO等都是常见的目标检测数据集,如果你有自己的数据,需要将其转换成标准格式,如XML或YOLO的txt文件。 2. 准备库:安装必要的库,包括PyTorch、Detectron2(基于Faster R-CNN的库)、torchvision,以及用于数据处理的工具如`xml.etree.ElementTree`(如果需要解析XML)。 3. 加载预训练模型:下载并加载预训练的Faster R-CNN模型,比如COCO模型,作为起点,这将为你的网络提供基础结构。 4. 定义自定义数据模块:创建一个新的数据模块,继承自Detectron2的`DatasetMapper`,并针对你的数据集调整输入大小、颜色空间转换等参数。 5. 训练配置:编写一个训练配置文件,指定优化器、学习率策略、迭代次数、批大小等参数,并指明你的模型路径。 6. 实现训练循环:使用Detectron2的`DefaultTrainer`类,设置数据模块、模型、配置和其他训练选项,然后运行训练循环。 ```python from detectron2.engine import DefaultTrainer # 创建训练器实例 trainer = DefaultTrainer( model="COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x", data_loader_train=..., data_loader_val=..., cfg=cfg, # 自定义训练配置 ) # 开始训练 trainer.train() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值