论文
代码

环境
Ubuntu 16.04
Python3.5
cuda 9

首先把代码下载下来,可以用下面命令下载,也可以直接点击上面代码链接下载。

git clone https://github.com/AlexeyAB/darknet.git
1
1.编译
如果需要使用GPU加速,那么得打开项目里面的makefile文件修改一些参数的值。修改完成之后在直接make。
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
OPENMP=1
LIBSO=1
DEBUG=1

# cd到darknet-master目录下
make
或者 make -j8
2.测试一下开源权重

# 测试图片,结果保存在darknet-master/predictions.jpg

./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg

3.准备自己要训练的数据集,以voc数据集的格式存放

先按照上面格式准备好数据
Annotations是存放标签xml文件
JPEGImage 存放图片
ImageSets 里面txt按行存放着图片名字

000001
000002
000003…

4.制作yolov4需要的label以及txt
这个时候只用voc数据集的格式是不满足我们这里需要的格式。首先打开路径下 build/darknet/x64/data/voc/voc_label.py,修改voc_label.py里面的内容。
先把7行的关于2012的去掉,再把第9行改成自己的类别。

接着给每个路径前面加个data,如下图

修改完了之后在主目录darknet-master下执行voc_label.py,否则哪些文件会生成在build/darknet/x64/data下面,执行完成后你会看到主目录下的data/目录下会生成几个txt。主目录darknet-master下的data/VOCdevkit/VOC2007/下面会生成一个label文件夹。

5.修改配置文件

<a.>cfg/目录下复制coco.data,并且重命名为obj.data。然后使用修改下面以下内容

<b.>cfg/目录下复制coco.names,并且重命名为obj.names。改成自己类别的名称

<c.>复制cfg/yolov4-custom.cfg,并且重命名为yolo-obj.cfg,同时修改一下内容

上图中修改width和height为416,修改最大batch迭代多少个数max_batches = 6000,修改steps多久学习率下降一次,一般设置为batch个数的80%和90%。

然后三个classes的地方要修改

还有三个filters=255的地方要修改成自己的。

6.开始训练自己的数据集

./darknet detector train cfg/obj.data cfg/yolo-obj.cfg yolov4.conv.137

如若报错这个错误,则将cfg/yolo-obj.cfg 里面26行mosaic=1改成mosaic=0或者注释掉。没报错就忽略。

7.预测

./darknet detector test cfg/obj.data cfg/yolo-obj.cfg yolo-obj_xxxx.weights

预测效果如图,yolov4果然强,这是我用了1000张图训练了3000个epoch训练得到的权重效果

备注:上面的测试命令是基于编译出来的darknet来预测的,当我们工程中要用的的时候及其不方便,但是可以用以这个代码来使用模型。
8.用自己训练的权重作为预训练
有时候训练到一半突然终止了,这时候从头开始训练又很费时间,此时我们可以将自己之前保存的权重作为预训练权重。但是直接使用yolo-obj_last.weights会报错。需要做出如下转变。

#首先用第一行代码将yolo-obj_last.weights转化为olo-obj_last.conv.23
./darknet partial cfg/yolo-obj.cfg backup/yolo-obj_last.weights backup/yolo-obj_last.conv.23 23
#第二行将我们刚转化好的yolo-obj_last.conv.23作为预训练权重训练
./darknet detector train cfg/obj.data cfg/yolo-obj.cfg backup/yolo-obj_last.conv.23

Ubuntu下yolov4训练自己的数据集相关推荐

  1. 一文多图搞定制作自己的VOC数据集+使用yolov4训练自己的数据集+封装video测试脚本(基于ubuntu)

    一文多图搞定制作自己的VOC数据集+使用yolov4训练自己的数据集+封装video测试脚本(基于ubuntu) 制作VOC数据集 标注自己的数据集 整理数据集路径格式 训练数据集 环境 在Linux ...

  2. Yolov4训练自己的数据集

    Yolov4训练自己的数据集 代码运行环境Ubuntu18.04+python3.6+显卡1080Ti+CUDA10.0+cudnn7.5.1+OpenCV3.4.6+Cmake3.12.2,详细环境 ...

  3. win10下yolov3训练自己的数据集

    在win10下用yolov3训练自己的数据集 1.  在darknet-master\build\darknet\x64 新建yolo-obj.cfg文件(可以直接复制yolov3.cfg,然后重命名 ...

  4. yolov4训练自己的数据集实现安全帽佩戴检测

    昨儿立下来的flag,今天还是要含泪完成的,抓紧时间赶呀!!! 本次用yolov4来实现人佩戴安全帽检测,若未佩戴安全帽则将人脸框出来,若佩戴安全帽,则将安全帽以及人脸框出来,多说无益,直接看效果吧! ...

  5. PspNet在MMsegmentation框架下成功训练Pascal VOC2012数据集及踩坑实录

    时间:2021/08/29/05:45:28 一晚上了,难以置信,我竟然还不困,还有着整理博客的冲动.也就在这周,熬夜能力突然就在几个晚上的不归宿中突破了,一夜过后天壤之别,一晚比一晚能熬,之前还会担 ...

  6. (Pytorch) YOLOV4 : 训练自己的数据集【左侧有码】

    项目地址:https://github.com/argusswift/YOLOv4-pytorch 这份代码实现的逻辑非常清楚,主要一些数据集处理的代码需要相应的改动: 这里的数据集label格式: ...

  7. windows下Icnet训练自己的数据集

    一.数据集标注:Labelme 安装后labelme后,在C:\Users\xxx\Anaconda3\Lib\site-packages\labelme\utils下修改_io.py def lbl ...

  8. YoloV4训练自己的数据集(二)

    本文主要介绍使用GPU测试网络,请先看前文然后再看本文.上文中我没有使用Opencv以及GPU,因此测试时间较长,本文介绍使用Opencv以及GPU. 1.安装OpenCV 首先去Opencv官网下载 ...

  9. 【C++ Caffe】ubuntu下MNIST训练结果

    训练过程在这我的这篇博客 https://blog.csdn.net/Feeryman_Lee/article/details/104523858 以下为训练结果 lichunlin@ThinkPad ...

  10. 视频教程-Windows版YOLOv4目标检测实战:训练自己的数据集-计算机视觉

    Windows版YOLOv4目标检测实战:训练自己的数据集 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多 ...

最新文章

  1. java实现二叉树的非递归遍历
  2. MySQL复合条件连接查询
  3. Java开发人员必须看到的13个Decks保持更新
  4. 明白了为什么java方法上面为什么要加个@符号
  5. 电竞人才平均月薪感受下!上海薪资领跑全国
  6. Flash在浏览器里调试获取trace
  7. python全景图像拼接_超详讲解图像拼接/全景图原理和应用 | 附源码
  8. java DataInput接口
  9. Android手机检测存储卡软件,SD Insight-洞察SD卡(检测SD卡真假)app下载1.5.7安卓最新版-西西软件下载...
  10. matlab 矩阵分行标准化,matlab如何将矩阵标准化 命令是什么?
  11. 用户权限---u+s\g+s\o+t三个特殊权限说明
  12. 大数据技术之数据仓库
  13. springboot毕设项目蔬菜种植水肥一体化管理系统70ro1(java+VUE+Mybatis+Maven+Mysql)
  14. 1008day1:列表-字符串基础知识、正则提取字符串小数、python数据类型、判断为假的方法、格式判断if elif elif else、字符串遍、计算器、提取str字母、斐波那契数列、水仙花数
  15. PRN(20210426):Online Continual Learning with Maximally Interfered Retrieval
  16. 【创客空间】相关资料
  17. 关于.h文件的书写格式
  18. Silk Zip文件分割器
  19. 项目管理十大管理过程和知识领域思维导图(系统集成项目管理),如何学习系统集成项目管理教程
  20. 微信公众号开发--服务号

热门文章

  1. Tensorflow2.0.0版本和Keras2.4.3不兼容
  2. CTF—攻防练习之HTTP—命令执行漏洞
  3. SCF: 简单配置门面[转]
  4. JavaScript学习——JavaScript 条件 语句 switch语句 while语句
  5. SpringBoot 使用小技巧合集
  6. day6常用模块,数据库操作
  7. mysql首字母排序,抛弃传统的php首字母排序
  8. 使用rsync+inotify配置触发式(实时)远程同步
  9. SQL Server 通过发布订阅 实现数据库同步
  10. 关于 LimitedConcurrencyLevelTaskScheduler 的疑惑