yolov3 讲解
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 讲解的更多相关文章
- Opencv+Yolov3算法实现社交距离安全检测讲解和实战(Social Distance Detector)
在我们进行交流谈话时,人与人之间总要保持一定的距离,尤其是在疫情的情况下,人与人之间更要保持一定的安全距离,今天给大家来介绍一个检测社交距离的项目,实现社交距离检测器. 社交距离(Social Dis ...
- 万字长文,以代码的思想去详细讲解yolov3算法的实现原理和训练过程,Visdrone数据集实战训练
以代码的思想去详细讲解yolov3算法的实现原理和训练过程,并教使用visdrone2019数据集和自己制作数据集两种方式去训练自己的pytorch搭建的yolov3模型,吐血整理万字长文,纯属干货 ...
- 整合Yolov3到游戏引擎
这篇其实是前文 CUDA版Grabcut的实现 的后续,和上文一样,先放视频. (博客园好像不支持视频,gif文件太大,视频链接) 在上文用CUDA实现opencv下的grabcut后,当时问题主要是 ...
- 目标检测-基于Pytorch实现Yolov3(1)- 搭建模型
原文地址:https://www.cnblogs.com/jacklu/p/9853599.html 本人前段时间在T厂做了目标检测的项目,对一些目标检测框架也有了一定理解.其中Yolov3速度非常快 ...
- Win10 + YOLOv3 环境配置,编译,实现目标检测----How to compile YOLOv3 on Windows
其他比较好的参考链接: 环境配置: 环境配置的最终图片列表:https://blog.csdn.net/shanglianlm/article/details/80322718 视频讲解YOLOv1: ...
- Yolov3代码分析与训练自己数据集
现在要针对我们需求引入检测模型,只检测人物,然后是图像能侧立,这样人物在里面占比更多,也更清晰,也不需要检测人占比小的情况,如下是针对这个需求,用的yolov3-tiny模型训练后的效果. Yolov ...
- Win10中用yolov3训练自己的数据集全过程(VS、CUDA、CUDNN、OpenCV配置,训练和测试)
在Windows系统的Linux系统中用yolo训练自己的数据集的配置差异很大,今天总结在win10中配置yolo并进行训练和测试的全过程. 提纲: 1.下载适用于Windows的darknet 2. ...
- 转 Yolov3转化Caffe框架详解
转自https://blog.csdn.net/watermelon1123/article/details/82083522 前些日子因工程需求,需要将yolov3从基于darknet转化为基于Ca ...
- pytorch版yolov3训练自己数据集
目录 1. 环境搭建 2. 数据集构建 3. 训练模型 4. 测试模型 5. 评估模型 6. 可视化 7. 高级进阶-网络结构更改 1. 环境搭建 将github库download下来. git cl ...
随机推荐
- 第1章 JavaScript 简介
第1章 JavaScript 简介 1.1 JavaScript简史 1.2 JavaScript实现 1.2.1 ECMAScript 1.2.2 文档对象模型(DOM) 1.2.3 浏览器对象模型 ...
- 根据词频生成词云(Python wordcloud实现)
网上大多数词云的代码都是基于原始文本生成,这里写一个根据词频生成词云的小例子,都是基于现成的函数. 另外有个在线制作词云的网站也很不错,推荐使用:WordArt 安装词云与画图包 pip3 insta ...
- aov.h-1.1
//AOV网与拓扑排序类 #ifndef _AOV_H_ #define _AOV_H_ #include<iostream> #include<cstdio> #includ ...
- 微信小程序后端开发流程
微信小程序后端开发流程根据官网总结为两个步骤 1.前端调用 wx.login 返回了code,然后调用wx.getUserInfo获取到用户的昵称 头像 2.服务端根据code去微信获取openid, ...
- Windows 使用 TCPing 工具来获取 TCP延迟、端口通顺情况、已禁Ping服务
https://elifulkerson.com/projects/tcping.php
- 使用Python库paramiko登录远程设备
前言 手动下载paramiko库的安装包.在PyPi库中查找即可,但是不到是我的电脑问题还是网络问题,2.0.0以上版本我都安装不了,因此我自己是安装的paramiko 1.17.0版本,此版本经过测 ...
- 对象浅拷贝Object.assign
const target = { a: { b: { c: { d: 1 } }, e: 5, f: 6, h: 10 } } const source = { a: { b: { c: { d: 1 ...
- Android布局样式
本篇介绍一下Android中的几种常用的布局,主要介绍内容有: ·View视图 ·LinearLayout ·RelativeLayout 在介绍布局之前,我们首先要了解视图View的基本属性,因为所 ...
- 基于STL的字典生成模块-模拟搜索引擎算法的尝试
该课题来源于UVA中Searching the Web的题目:https://vjudge.net/problem/UVA-1597 按照题目的说法,我对按照特定格式输入的文章中的词语合成字典,以满足 ...
- vue.js事件传值之子组件传向父组件以及$emit的使用
在项目开发中,有时候会遇到一种需求比如是:在子组件中,通过一个事件,比如点击事件,去改变父组件中的某个值,下面来看看是怎么个流程 还是先截图目录结构 父组件为app.vue,components中的文 ...