Yolo模型的训练参考官网:https://pjreddie.com/darknet/yolo/

(1)在VOC数据集上训练YOLO

如果您想使用不同的训练方式,超参数或数据集,可以从头开始训练YOLO。 这是在Pascal VOC数据集上运行它的方法。

1) 获取 Pascal VOC 数据集

要训练YOLO,您需要2007年至2012年的所有VOC数据。您可以在此处找到指向这些数据的链接。 要获取所有数据,请创建一个目录以存储所有数据,然后从该目录运行:

要执行wget命令需要是linux操作系统,如果是windows系统就需要手动下载了,当然也可以使用win10下的Linux子系统,但是那网速,不说了,都是泪,建议还是去其他下载速度快的地方或者使用下载工具下载这些数据。

现在将有一个VOCdevkit /子目录,其中包含所有VOC训练数据。

2) 生成VOC数据集标签

现在我们需要生成Darknet使用的标签文件。 Darknet希望为每个图像提供一个.txt文件,并为图像中的每个真实对象添加一行,如下所示:

<object-class> <x> <y> <width> <height>

其中x,y,宽度和高度是相对于图像的宽度和高度。 为了生成这些文件,我们将在Darknet的scripts /目录中运行voc_label.py脚本。 让我们再次下载它,因为我们很懒。

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

几分钟后,此脚本将生成所有必需文件。 通常,它会在VOCdevkit / VOC2007 / labels /和VOCdevkit / VOC2012 / labels /中生成许多标签文件。 在目录中,您应该看到:

ls
2007_test.txt VOCdevkit
2007_train.txt voc_label.py
2007_val.txt VOCtest_06-Nov-2007.tar
2012_train.txt VOCtrainval_06-Nov-2007.tar
2012_val.txt VOCtrainval_11-May-2012.tar

诸如2007_train.txt之类的文本文件列出了该年份的图像文件和图像集。 Darknet需要一个文本文件,其中包含要训练的所有图像。 在此示例中,让我们训练除2007测试集以外的所有内容,以便我们可以测试模型。 执行:

cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

现在,我们将所有2007年和2012年的训练集合成一个大清单。 这就是我们要做的所有数据设置!

3) 修改Pascal Data的配置文件cfg

现在转到您的Darknet目录。 我们必须更改cfg / voc.data配置文件以指向您的数据:

  1 classes= 20
2 train = <path-to-voc>/train.txt
3 valid = <path-to-voc>2007_test.txt
4 names = data/voc.names
5 backup = backup

您应该用放置VOC数据的目录替换<path-to-voc>。

4)下载预训练模型

为了进行训练,我们使用在Imagenet上预先训练的卷积权重。 我们使用darknet53模型的权重。 您可以在此处下载卷积图层的权重(76 MB)。

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

5)训练模型

现在我们可以训练! 运行命令:

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

---------------------------------------------------------------------------------------------------------------------------------------------------------------

*****************************************************************************************************************************************

(2)在COCO数据集上训练YOLO

如果您想使用不同的训练方式,超参数或数据集,可以从头开始训练YOLO。 这是在COCO数据集上运行它的方法。

 1) 获取COCO数据

要训练YOLO,您将需要所有COCO数据和标签。 脚本scripts / get_coco_dataset.sh将为您执行此操作。 找出要放置COCO数据并下载的位置,例如:

cp scripts/get_coco_dataset.sh data
cd data
bash get_coco_dataset.sh

现在,您应该具有为Darknet生成的所有数据和标签。

2) 修改COCO配置文件cfg

现在转到您的Darknet目录。 我们必须更改cfg / coco.data配置文件以指向您的数据:

  1 classes= 80
2 train = <path-to-coco>/trainvalno5k.txt
3 valid = <path-to-coco>/5k.txt
4 names = data/coco.names
5 backup = backup

您应该将<path-to-coco>替换为放置COCO数据的目录。

您还应该修改模型cfg以进行培训,而不是进行测试。 cfg / yolo.cfg应该看起来像这样:

[net]
# Testing
# batch=1
# subdivisions=1
# Training
batch=64
subdivisions=8
....

3) 训练模型

现在我们可以训练! 运行命令:

./darknet detector train cfg/coco.data cfg/yolov3.cfg darknet53.conv.74

如果要使用多个GPU,请运行:

./darknet detector train cfg/coco.data cfg/yolov3.cfg darknet53.conv.74 -gpus 0,1,2,3

如果要停止并从检查点重新开始训练,请执行以下操作:

./darknet detector train cfg/coco.data cfg/yolov3.cfg backup/yolov3.backup -gpus 0,1,2,3

yolov3 讲解的更多相关文章

  1. Opencv+Yolov3算法实现社交距离安全检测讲解和实战(Social Distance Detector)

    在我们进行交流谈话时,人与人之间总要保持一定的距离,尤其是在疫情的情况下,人与人之间更要保持一定的安全距离,今天给大家来介绍一个检测社交距离的项目,实现社交距离检测器. 社交距离(Social Dis ...

  2. 万字长文,以代码的思想去详细讲解yolov3算法的实现原理和训练过程,Visdrone数据集实战训练

    以代码的思想去详细讲解yolov3算法的实现原理和训练过程,并教使用visdrone2019数据集和自己制作数据集两种方式去训练自己的pytorch搭建的yolov3模型,吐血整理万字长文,纯属干货 ...

  3. 整合Yolov3到游戏引擎

    这篇其实是前文 CUDA版Grabcut的实现 的后续,和上文一样,先放视频. (博客园好像不支持视频,gif文件太大,视频链接) 在上文用CUDA实现opencv下的grabcut后,当时问题主要是 ...

  4. 目标检测-基于Pytorch实现Yolov3(1)- 搭建模型

    原文地址:https://www.cnblogs.com/jacklu/p/9853599.html 本人前段时间在T厂做了目标检测的项目,对一些目标检测框架也有了一定理解.其中Yolov3速度非常快 ...

  5. Win10 + YOLOv3 环境配置,编译,实现目标检测----How to compile YOLOv3 on Windows

    其他比较好的参考链接: 环境配置: 环境配置的最终图片列表:https://blog.csdn.net/shanglianlm/article/details/80322718 视频讲解YOLOv1: ...

  6. Yolov3代码分析与训练自己数据集

    现在要针对我们需求引入检测模型,只检测人物,然后是图像能侧立,这样人物在里面占比更多,也更清晰,也不需要检测人占比小的情况,如下是针对这个需求,用的yolov3-tiny模型训练后的效果. Yolov ...

  7. Win10中用yolov3训练自己的数据集全过程(VS、CUDA、CUDNN、OpenCV配置,训练和测试)

    在Windows系统的Linux系统中用yolo训练自己的数据集的配置差异很大,今天总结在win10中配置yolo并进行训练和测试的全过程. 提纲: 1.下载适用于Windows的darknet 2. ...

  8. 转 Yolov3转化Caffe框架详解

    转自https://blog.csdn.net/watermelon1123/article/details/82083522 前些日子因工程需求,需要将yolov3从基于darknet转化为基于Ca ...

  9. pytorch版yolov3训练自己数据集

    目录 1. 环境搭建 2. 数据集构建 3. 训练模型 4. 测试模型 5. 评估模型 6. 可视化 7. 高级进阶-网络结构更改 1. 环境搭建 将github库download下来. git cl ...

随机推荐

  1. 第2章 在 HTML中 使用 JavaScript

    第2章 在 HTML中 使用 JavaScript 2.1 script 元素 2.1.1 标签的位置 2.1.2 延迟脚本 2.1.3 异步脚本 2.1.4 在XHTML中的使用 2.1.5 不推荐 ...

  2. linux命令——find

    简介:find是Linux系统中的常用命令(应用程序)之一.它是用来在指定目录层次结构(指定目录的子目录以及子目录的子目录)中查找符合指定条件的文件和目录 一:语法结构 find [directory ...

  3. P1308 统计单词数(cin,getline() ,transform() )

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

  4. 覆盖的面积 HDU - 1255 线段树+扫描线+离散化 求特定交叉面积

    #include<cstdio> #include<map> #include<algorithm> using namespace std; ; struct N ...

  5. ls, chgrp, chown, chmod

    ls命令 [root@client ~]# ls -la 总用量 dr-xr-x---. root root 2月 : . dr-xr-xr-x. root root 2月 : .. -rwxrwxr ...

  6. web服务器的解析漏洞罗列

    前言 服务器相关中间件存在一些解析漏洞,攻击者可通过上传一定格式的文件,被服务器的中间件进行了解析,这样就对系统造成一定危害.常见的服务器解析漏洞涉及的中间件有IIS,apache.nginx等.可利 ...

  7. ArcMap 发布 ArcGIS Server OGC(WMSServer,MapServer)服务

    完整的从ArcMap部署地图到ArcGIS Server 中作为地图服务的过程. 1. 添加图层数据-- 不能添加地图 baseMap 2. 安装ArcGIS Server ,记住登录Manager ...

  8. jenkins - docker搭建jenkins

    jenkins镜像拉取 docker pull jenkins/jenkins 为jenkins镜像分配容器 docker run -d --name jenkins \ -p 8080:8080 \ ...

  9. 梯度下降算法&线性回归算法

    **机器学习的过程说白了就是让我们编写一个函数使得costfunction最小,并且此时的参数值就是最佳参数值. 定义 假设存在一个代价函数 fun:\(J\left(\theta_{0}, \the ...

  10. java注释英语自动机翻

    一.简介 每次面试都被怼spring源码你看过吗?你用spring开发源码你都不看的吗?这样怎么开发?那我就下点决心,趁着现在疫情在家宅,我要看spring源代码.但是发现注释都是英文,勉勉强强能看懂 ...