从0-1:利用基于Pytorch的YOLO_V3训练自己的数据集

1、引言

笔者日前在进行目标检测的项目,需要使用YOLO_V3算法,奈何网上目现的教程存在各种各样的坑,无法完美进行复现。本文旨在帮助读者完美实现yolov3进行目标检测,本次实验在Ubuntu 18.04系统环境下,使用的Python版本为3.6.9(Python>=3.6),使用pytorch实现,yolov3检测算法基于eriklindernoren开源的代码。
注:文中所有的代码均整理在:https://github.com/fangcaojun/YOLO_V3-中。

2、制作VOC数据集

2.1、使用LabelImg软件标注图片

下载前文中整理好的代码并解压,将需要标注的图片放入data/VOCdevkit2007/JPEGImages/目录下,之后打开终端Terminal进入解压后的目录并在终端输入以下命令:

#进入LabelImg文件夹
cd YOLO_V3--master/data/labelImg-master/
#安装依赖环境 
sudo apt-get install pyqt5-dev-tools
sudo pip3 install -r requirements/requirements-linux-python3.txt
make qt5py3

#安装好LabelImg后,在终端下运行软件
python3 labelImg.py

打开后的LabelImg软件界面如下图所示:
在这里插入图片描述
图1 LabelImg软件界面

点击Open Dir打开要标注的图片文件夹(YOLO_V3–master/data/VOCdevkit2007/JPEGImages),选择Change Save Dir更改保存生成的xml文件位置(YOLO_V3–master/data/VOCdevkit2007/Annatations)。改好后开始标注图片,按住Ctrl+W选择标注区域进行标注并打上标签,标注好后按Ctrl+S保存,之后再进行下一张图片标注。

2.1、使用xml文件生成VOC数据集

标注完成后我们开始着手制作VOC数据集,转换代码如下所示:

import os
import random
import pickle
from os.path import join
from os import listdir, getcwd
import xml.etree.ElementTree as ET

#测试集test占总数据集比例=(1-trainval_percent),这里是0.2,可根据需要更改trainval_percent的值
trainval_percent = 0.8
#训练集train占trainval(包含训练集train和验证集val)中的比例
train_percent = 0.7

#xml文件的路径
xmlfilepath = 'VOCdevkit2007/Annotations/'
#转换生成的txt文件保存目录
txtsavepath = 'VOCdevkit2007/ImageSets/Main/'

total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)

#生成的数据集保存位置
ftrainval = open('VOCdevkit2007/ImageSets/trainval.txt', 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值