WIN10 +pytorch版yolov3训练自己数据集

本文详细介绍了如何在Windows 10环境下,利用PyTorch训练YOLOv3模型来处理自己的数据集。从环境搭建、数据集构建、模型训练、测试与评估,到可视化和网络结构更改,每个步骤都有清晰的指导,包括所需软件安装、XML文件转换、数据格式要求和恢复训练的方法。
摘要由CSDN通过智能技术生成

pytorch版yolov3训练自己数据集

目录

1. 环境搭建

  1. 将github库download下来。
git clone https://github.com/ultralytics/yolov3.git
  1. 建议在linux环境下使用anaconda进行搭建
conda create -n yolov3 python=3.7
  1. 安装需要的软件
pip install -r requirements.txt

环境要求:

  • python >= 3.7
  • pytorch >= 1.1
  • numpy
  • tqdm
  • opencv-python

其中只需要注意pytorch的安装:

https://pytorch.org/中根据操作系统,python版本,cuda版本等选择命令即可。

关于深度学习环境搭建请参看:https://www.cnblogs.com/pprp/p/9463974.html

anaconda常用用法:https://www.cnblogs.com/pprp/p/9463124.html

2. 数据集构建

1. xml文件生成需要Labelimg软件

在Windows下使用:
wget https://github.com/pprp/DeepLearning/blob/master/windows_v1.5.1/labelImg.exe
  • 使用快捷键:
Ctrl + u  加载目录中的所有图像,鼠标点击Open dir同功能
Ctrl + r  更改默认注释目标目录(xml文件保存的地址) 
Ctrl + s  保存
Ctrl + d  复制当前标签和矩形框
space     将当前图像标记为已验证
w         创建一个矩形框
d         下一张图片
a         上一张图片
del       删除选定的矩形框
Ctrl++    放大
Ctrl--    缩小
↑→↓←        键盘箭头移动选定的矩形框

2. VOC2007 数据集格式

-data
    - VOCdevkit2007
        - VOC2007
            - Annotations (标签XML文件,用对应的图片处理工具人工生成的)
            - ImageSets (生成的方法是用sh或者MATLAB语言生成)
                - Main
                    - test.txt
                    - train.txt
                    - trainval.txt
                    - val.txt
            - JPEGImages(原始文件)
            - labels (xml文件对应的txt文件)

通过以上软件主要构造好JPEGImages和Annotations文件夹中内容,Main文件夹中的txt文件可以通过python脚本生成:

import os  
import random  
  
trainval_percent = 0.8
train_percent = 0.8  
xmlfilepath = 'Annotations'  
txtsavepath = '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('ImageSets/Main/trainval.txt', 'w')  
ftest = open('ImageSets/Main/test.txt', 'w')  
ftrain = open('ImageSets/Main/train.txt', 'w')  
fval = open('ImageSets/Main/val.txt', 'w')  
  
for i  in list:  
    name=total_xml[i][:-4]+'\n'  
    if i in trainval:  
        ftrainval.write(name)  
        if i in train:  
            ftrain.write(name)  
        else:  
            fval.write(name)  
    else:  
        ftest.write(name)  
  
ftrainval.close()  
ftrain.close()  
fval.close()  
ftest.close()

生成labels文件,voc_label.py文件具体内容如下:

# -*- coding: utf-8 -*-
"""
Created on Tue Oct  2 11:42:13 2018
将本文件放到VOC2007目录下,然后就可以直接运行
需要修改的地方:
1. sets中替换为自己的数据集
2. classes中替换为自己的类别
3. 将本文件放到VOC2007目录下
4. 直接开始运行
"""

import xml.etree.ElementTree as ET
i
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值