Yolov3(pytorch)训练自己的数据集(一)

本文介绍了使用YOLOv3(pytorch)训练自动驾驶数据集的过程,包括数据准备、数据集转化和配置文件设置。通过DataFountain的四维图新竞赛数据,将原始标注转为YOLOv3所需的格式,涉及txt、xml和data配置文件的修改。
摘要由CSDN通过智能技术生成

折腾了两天YOLOV3,填了几个坑,记录一下。
使用的代码:https://github.com/ultralytics/yolov3

一、数据准备

1.1 训练集和验证集

为了节省数据集的制作时间,直接利用DataFountain“四维图新”自动驾驶感知算法竞赛的数据,如图所示为其中的一个训练集。
在这里插入图片描述下图为官方给出的数据标注,前四个数字为边框的坐标,第五个数字为目标类别,最后一个为置信度
在这里插入图片描述

1.2 数据集转化

对于此代码,需要将数据集转化为如下格式
在这里插入图片描述
images文件夹下的两个文件夹分别存放训练和验证的图片,labels文件夹下的两个文件夹分别存放训练集和验证集的目标txt文件,其中每一张图片对应一个txt文件。
首先将官方给的train.txt文件分成每张图片对应一个txt文件,代码如下

# 把train.txt中的每张图片的信息提取出来
train_txt_dir = '../train.txt'
train_save_txt = './train_txt/'
f = open(train_txt_dir, 'r')
lines = f.readlines()
for line in lines:
    name = line[0:6] + '.txt'
    print(name)
    txtname = train_save_txt + name
    line = line[22:]
    if len(line) == 0:     # 去掉没有目标的图片
       continue
    else:
        file = open(txtname, 'w')
        for content in line.split():
            file.write(content[:-2])
            file.write('\n')
        file.close()

接着将生成的txt文件转化为VOC数据集中的xml格式,代码如下:

import os, sys
import glob
from PIL import Image

img_dir = '/media/tim_mary/study/PycharmProjects/kaggle/PyTorch-YOLOv3/data/adas/images/train'
txt_dir = '/media/tim_mary/study/PycharmProjects/kaggle/PyTorch-YOLOv3/data/adas/data_pro/train_txt'
xml_dir = '/media/tim_mary/study/PycharmProjects/kaggle/PyTorch-YOLOv3/data/adas/data_pro/train_xml'

class_name = ['red', 'green', 'yellow', 'red_left', 'red_right', 'yellow_left',
              'yellow_right', 'green_left', 'green_right', 'red_forward', 'green_forward',
              'yellow_forward', 'horizon_red', 'horizon_green', 'horizon_yellow', 'off',
              'traffic_sign', 'car', 'motor', 'bike', 'bus', 'truck', 'suv', 'express', 'person']

txt_lists = glob.glob(txt_dir + '/*.txt')
img_basenames1 = []
for item in txt_lists:
    img_basenames1.append(os.
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
根据提供的引用内容,训练自己的数据集可以按照以下步骤进行: 一、制作数据集 1. 打标签:对于每张图片,使用标注工具对目标物体进行标注,生成相应的标签文件。 2. 数据扩充:可以对数据集进行数据增强操作,如旋转、缩放、平移等,以增加数据的多样性。 3. 数据格式转换:将标签文件和图像文件转换为模型所需的特定格式,如YOLOv5所需的txt或csv格式。 二、输入网络训练 1. 修改配置文件:根据自己的数据集训练需求,修改YOLOv5的配置文件,如调整网络结构、设置类别数等。 2. 修改训练文件:将制作好的数据集导入到训练文件中,并设置训练的超参数,如学习率、批大小等。 三、查看GPU训练进展:使用合适的GPU监控工具,如nvidia-smi,来查看训练过程中GPU的使用情况和训练进展。 四、优化训练进程 1. 分析原因:如果训练进程较慢,可以通过观察GPU和CPU的占用情况,分析瓶颈所在。 2. 解决问题:根据分析结果,采取相应的优化措施,如增加CPU的计算能力、优化数据读取速度、调整模型的参数配置等。 五、检测自己的模型:训练完成后,使用训练得到的模型对测试集进行检测,评估模型的性能。 以上是利用YOLOv5训练自己的数据集的一般步骤。如果您需要更详细的步骤或者有其他相关问题,请提出。 相关问题: 1. YOLOv5的配置文件有哪些需要修改的参数? . 除了YOLOv5,还有哪些深度学习模型可以用来进行目标检测? 3. 如何评估训练得到的模型在测试集上的性能?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值