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

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

折腾了两天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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值