iou画 yolov3_利用YOLOV3训练自己的数据

这篇博客详细介绍了如何利用YOLOV3训练自己的数据集,包括数据准备、XML标注、TXT文件生成、配置文件修改以及训练过程。步骤涵盖从创建VOC2007文件结构,到使用labelImg标注工具,再到利用Python脚本转换XML为TXT,并修改YOLOV3的相关配置文件进行训练。
摘要由CSDN通过智能技术生成

写在前面:YOLOV3只有修改了源码才需要重新make,而且make之前要先make clean。

一.准备数据

在/darknet/VOCdevkit1下建立文件夹VOC2007.

voc2007文件夹下建立三个文件夹,分别为Annotations,ImageSets和JPEGImages,其中JPEGImages存放所有.jpg格式的训练图片,Annotations存放所有图片的xml文件

图片最好按数字顺序排列,如00001.jpg,00002.jpg等,可以用脚本生成。

ImageSets文件夹下存放三个子文件夹,Main中存放train.txt,即用于训练的图片名字

二.生成xml文件

xml文件采用labelimg标注

cd labelImg

python labelImg.py

先进入labelImg所在路径,然后用python打开.py文件,即可打开标注工具。

三、生成txt文件

因为YOLOV3训练时需要用的是txt文件,因此需要将xml生成对应的txt,可采用voc_label.py脚本。

在利用voc_label.py脚本生成txt文件之前,还需要先生成一个train.txt文件,该文件位于ImageSets文件夹下的Main文件夹中,主要存图片名称(不包含后缀)

可采用以下脚本生成

# -*- coding:utf-8 -*-

import sys

import os

import random

data_dir='/home/wmy/darknet/VOCdevkit1/VOC2007/JPEGImages'

file_list=[]

write_file_name='/home/wmy/darknet/VOCdevkit1/VOC2007/ImageSets/Main/train.txt'

write_file=open(write_file_name,'w')

for file in os.listdir(data_dir):

if file.endswith(".jpg"):

write_name=file.split('.')[0]

file_list.append(write_name)

sorted(file_list)

number_of_lines=len(file_list)

for current_line in range(number_of_lines):

write_file.write(file_list[current_line]+'\n')

write_file.close()

运行该脚本将生成存放图片名称的txt文件。

将该脚本放在与VOCdevkit1同等目录下,稍作修改。

import xml.etree.ElementTree as ET

import pickle

import os

from os import listdir, getcwd

from os.path import join

sets=[(', 'train')] #根据数据修

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值