yolov3训练模型

运习环境

opencv2.4.3
cuda9.3
ubuntu 16.04
GTX 1070
python3
没有Gpu要训练很久很久

yolov3的下载和测试

网上都千篇一律的讲了而且过于简单就不再说了
在这里标记一下遇到git clone 拉不下来的问题

Failed to connect to github.com port 443: Operation timed out

sudo gedit /etc/hosts 把git hub相关的全部注释掉

yolov3训练自己的数据

我体验下来先说一下整体思路:
1 要有自己的图片集合,
2 要把图片中我们想要识别的物体标注出来--使用工具labelImg
3 修改配置文件进行训练

首先在darknet下构建目录Vocdevkit

在这里插入图片描述然后在Vocdevkit下再建立Voc2021,底下再建三个文件夹
JPEGImages 是你的图片集合
Annotations 等会用lableImage时的输出目录
ImageSets 里存放训练和测试集合
voc2021.py 是用程序分配训练集和测试集到ImageSets下
voc2021.py 代码如下

import os
import random

trainval_percent = 0.1
train_percent = 0.9
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:
            ftest.write(name)
        else:
            fval.write(name)
    else:
        ftrain.write(name)

ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

等图片都标记完再执行程序 ,执行完成之后可以看到imageSets下生成Main,Main里是这样
在这里插入图片描述进入train是这样的

在这里插入图片描述Annotations 底下的文件是xml格式的,要注意图片集的命名方式要统一.

然后手动标记图片

使用labelImage 很简单,但是需要一张一张的标也麻烦.这个工具有一个输入目录和一个输出目录.

接下来文件加入自己的数据集

在darknet文件夹内打开终端,

1 wget https://pjreddie.com/media/files/voc_label.py

打开,修改一下:
classes保存自己要检测的类别即可,我用的数据集只有一个类别

在这里插入图片描述

2. 在终端输入

1 python voc_label.py
2 cat 2021_train.txt 2021_val.txt  > train.txt

结束后,应该会发现,出现三个txt文件2007_train.txt,2007_val.txt,2007_test.txt,
这是真正有用的三个文件。

接下来修改三个配置文件

都在darknet目录下
data/voc.names
cfg/voc.data
gedit cfg/yolov3-voc.cfg

修改voc.names 告诉自己的类别名每行一个
在这里插入图片描述
voc.data 输入数据集路径和输出路径还有类的个数
在这里插入图片描述
最后修改cfg/yolov3-voc.cfg 注意一共有8处需要修改,每个yolo标记和这个标记之前的convolutional
在这里插入图片描述
还有开头
在这里插入图片描述

最后就可以开始训练了

下载yolov3的初始权重,还要下载一下darknet53.conv.74的模型参数

wget https://pjreddie.com/media/files/darknet53.conv.74

在darknet文件夹下打开终端运行:

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74

效果图
在这里插入图片描述
[学习博客]
https://blog.csdn.net/Cheungleilei/article/details/103504050

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值