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 ...
随机推荐
- 大二网课ing学习周记
行稳致远,久久为功! 一个概念套着一个概念哦!码就是关键字,标识属性是也! 1.什么是主码和外码,请举例说明. 关键字也叫码! 首先,在一个关系中,能惟一标识元组的属性or最小属性集称为关系的候选码. ...
- PHP0019:PHP 图像验证码 、图像水印效果 、 生成缩约图
- PHP0013:PHP操作文件案例 遍历phpdamin目录
- SpringBoot整合NoSql--(二)MongoDB
简介: MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案.MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是 ...
- 数据结构(集合)学习之Map(二)
集合 框架关系图 补充:HashTable父类是Dictionary,不是AbstractMap. 一:HashMap中的链循环: 一般来说HashMap中的链循环会发生在多线程操作时(虽然HashM ...
- 数据库MySQL中关于“多表关联更新”的那些事
在常见的sql中,我们经常在查询中进行多表关联查询,用的比较熟练.今天在开发中遇到一个实际业务场景是多表关联更新,一时不知所措.本着多学习的态度,没有直接写java代码去实现,终于把多表关联更新的sq ...
- 吴裕雄--天生自然HADOOP操作实验学习笔记:hive安装
实验目的 了解hive的原理和安装方式 学习使用MySQL数据库 使用hive进行基本操作 实验原理 1.Hive Hive是一个数据仓库技术,包括解释器.编译器.优化器,一次将一个sql语句装化为m ...
- 用记事本编辑HTML文件后保存代码全堆在一起了,记事本打开html文件格式乱了
经常会遇到这么一个现象,记事本打开编辑html代码,保存后格式就乱了,代码全部堆在一行了.遇到这种情况有时候也很无语 因为平常工作中也经常遇到这样的情况,后来通过研究,大概找到问题的所在. 我是这么一 ...
- Hdu1042 N! (阶乘高精度模板)
Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in ...
- Wannafly Winter Camp 2020 Day 5J Xor on Figures - 线性基,bitset
有一个\(2^k\cdot 2^k\) 的全零矩阵 \(M\),给出 \(2^k\cdot 2^k\) 的 \(01\) 矩阵 \(F\),现在可以将 \(F\) 的左上角置于 \(M\) 的任一位置 ...