ubuntu20下yolov4训练多目标实战

news/2024/7/11 0:00:56 标签: YOLO

1、安装nvidia驱动和cudnn,不熟悉的小伙伴请移步:Ubuntu20.04安装NVIDIA显卡驱动、CUDA、CUDNN及突破NVENC并发限制_ubuntu20.04安装显卡驱动_BetterJason的博客-CSDN博客

2、编译opencv,不熟悉的小伙伴请移步:ubuntu20.04 和centos8平台opencv4.5.3&opencv_contrib编译_BetterJason的博客-CSDN博客

3、编译yolov4,不熟悉的小伙伴请移步:ubuntu20下yolov4的编译_BetterJason的博客-CSDN博客

4、使用Labelimg工具标注文件,每个图片文件将会产生一个对应的xml文件

5、建立训练文件的目录结构:在darkent目录下建立如下文件夹:

将标注产生的xml文件复制到Annotations目录下

将训练图片复制到JPEGImages目录下

6、使用 genfiles.py(脚本文件在文末给出)将标注的xml文件转换为yolov4标注格式的txt文件,执行genfile.py之前,请打开genfiles.py将如下内容改为自己训练类的内容:

然后执行: python3 genfiles.py

执行genfiles.py后的文件布局:

在darkent目录下产生:2007_test.txt  2007_train.txt

2007_train.txt:用于训练

2007_test.txt :用于测试

最终训练使用到文件:

darkent/2007_train.txt   (训练文件信息)

darkent/2007_test.txt    (测试文件信息)

/darknet/VOCdevkit/VOC2007/JPEGImages (训练的图片文件)

darknet/VOCdevkit/VOC2007/labels   (yolov4格式的标注有文件)

7、训练参数设置:

在darknet/data目录下修改文件

将 voc.names 复制为 voc-xxx.names,  voc-xxx.names是你自己重新命名的配置文件

sudo vim voc-xxx.names

 将voc.data 复制为voc-xxx.data,voc-xxx.data是你自己重新命名文件

sudo vim voc-xxx.data

8、下载训练的权重文件 yolov4.conv.137 (下载地址文末给出)

9、修改训练的cfg文件

darknet/cfg目录下

将 yolov4-custom.cfg 复制为 yolov4-xxx.cfg , yolov4-xxx.cfg是你自己命名的训练配置文件名字

修改 yolov4-xxx.cfg

sudo vim /cfg/ yolov4-xxx.cfg

ps:

batch要能够被subdivisions整除

 width 和height是训练时把训练图片resize的大小,就是把训练图片resize为width和height在送往训练器,其中width和height必须能被32整除。

修改三个yolo层前面的卷积层参数:

 10、开始训练

cd darknet
./darknet detector train data/voc-xxx.data  cfg/yolov4-xxx.cfg  yolov4.conv.137 -map

 11、训练完成后,在darknet/backup目录下保存训练的权重用带best的权重

12、测试修改 darknet/cfg/yolov4-xxx.cfg

# 对图片进行测试
./darknet detector test data/voc-xxx.data data/yolov4-xxx.cfg backup/yolov4-xxx_final.weights data/dog.jpg
# 对视频进行测试
./darknet detector test data/voc-xxx.data data/yolov4-xxx.cfg backup/yolov4-xxx_final.weights  test.mp4
# 对摄像头进行测试
./darknet detector test data/voc-xxx.data data/yolov4-xxx.cfg backup/yolov4-xxx_final.weights -c 0

相关文件下载:

链接:https://pan.baidu.com/s/1eGL616eVGWeHCuRpDqqSTQ?pwd=31wq
提取码:31wq
--来自百度网盘超级会员V6的分享


http://www.niftyadmin.cn/n/459836.html

相关文章

需求分析报告

聊天系统设计与实现需求分析报告 1.引言 (1)编写目的 为了保证聊天系统的开发工作顺利进行,特将项目的需求及在开发工作中所涉及的相关问题以书面形式加以约定,并作为项目开发工作的基础性文件,以便团队根据文档开展和检查工作。 在本文档中,首先从用户的角度出发,对用户…

【数理统计】假设检验的基本思想(一)

文章目录 选择题选择题 在参数假设检验中,Ⅱ风险是( C )。 A. P { 拒绝 H 0 ∣ H 0 为真 } P\{拒绝H_0|H_0为真\} P{

深入剖析 Java 并发工具 ThreadLocal

文章目录 ThreadLocal是什么ThreadLocal 的主要作用有: ThreadLocal 的内部实现原理是什么?使用 ThreadLocal 实现事务管理: ThreadLocal是什么 ThreadLocal 是 Java 中的一个工具类,它提供了线程局部变量。意思是,它可以创建变量副本给每个线程使用,而每个线程访问变量副本时…

在Android手机上安装kali Linux 的 QA

本文仅提供在安装时遇到问题的解决方案,查看安装链接请进入教程页面。 教程 https://www.hestudio.net/posts/install-kali-on-android-renew.html 一些命令 这里只说明我的教程涉及到的命令,查看其他博主教程的命令请转到对应博主的文档里查看&…

基于Java+Swing实现聊天室

基于JavaSwing实现聊天室 一、系统介绍二、功能展示三、其它1.其他系统实现 四、获取源码 一、系统介绍 Java聊天室系统主要用于实现在线聊天,基本功能包括:服务端和客户端。本系统结构如下: (1)服务端: 1…

基于Java校园代购服务订单系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

Swagger的使用详细教程

Swagger的使用详细教程 Swagger是一款开源的API文档工具,它提供了一种简单且强大的方式来描述、展示和测试RESTful风格的Web服务接口。本文将详细介绍Swagger的使用方法,包括安装配置和使用示例。 步骤 1. 添加Swagger依赖 首先,在你的Sp…

翻筋斗觅食策略改进灰狼算法(IGWO)

目录 一、动态扰动因子策略 二、翻筋斗觅食策略 三、改进灰狼算法收敛曲线图 灰狼优化算法存在收敛的不合理性等缺陷,目前对GWO算法的收敛性改进方式较少,除此之外,当GWO迭代至后期,所有灰狼个体都逼近狼、狼、狼,…