yolov4训练已标柱的数据集

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在已经安装配置好yolov4及opencv4.5.5的前提下,想要实现对交通锥筒的识别,下载已标柱好的交通锥筒数据集,yolov4训练

ubuntu 18.04

显卡:GTX1050

CUDA: 11.6

cuDNN: 8.4.1


1.下载数据集

https://github.com/ncs-niva/traffic-cone-image-dataset
在这里插入图片描述
其中 images 文件夹中为数据集.jpg图片,labels 文件夹中为与每张图片对应的标签
在这里插入图片描述

2.新建数据集目录

位置可自定义,能够与.cfg .data .txt .names 涉及的路径对应上就OK。

我是在data下新建了trafficcone文件夹,并将数据集图片、标签、配置文件都放进去了。

再在trafficcone文件夹下新建 build ,用于存放训练后生存的 .weights 文件。

在这里插入图片描述
PS: 可以将 labels 的内容全部复制,都粘贴在数据集图片所在的文件夹,也许配置时简单些
在这里插入图片描述

3.修改配置文件

几个配置文件的名称也可以自定义,但要保证文件名后坠正确

1)obj.names
由于只有交通锥筒需要识别,所以只有1类,名称定为trafficcone

trafficcone

2)obj-cone.data
classes:表示数据集中需要检测的物体有几类
train:表示保存训练数据集的地址
names:表示可检测物体的名称地址
backup:表示保存训练权重文件的地址

classes = 1
train = /home/xxx/darknet-master/data/trafficcone/train-cone.txt
names = /home/xxx/darknet-master/data/trafficcone/obj-cone.names
backup = /home/xxx/darknet-master/data/trafficcone/backup/

3)train-cone.txt
数据集中每张图片所在的地址

/home/xxx/darknet-master/data/trafficcone/images-labels/1.jpg
/home/xxx/darknet-master/data/trafficcone/images-labels/10.jpg
/home/hao/darknet-master/data/trafficcone/images-labels/100.jpg
/home/hao/darknet-master/data/trafficcone/images-labels/101.jpg
/home/hao/darknet-master/data/trafficcone/images-labels/102.jpg
...

4)yolov4-obj-cone.cfg

复制 build/darknet/x64/cfg文件下yolov4-custom.cfg,进行修改:

# step1: 修改batch和subdivisions
L2: batch=64                # 原来就是64
L3: subdivisions=64        # 原来是64,如果报错增大这个值
 
# step2: 修改图片的尺寸
L7: width=416             # 越大越吃显卡
L8: height=416           # 越大越吃显卡
 
# step3: ctrl + F搜索yolo,修改classes(每个yolo层都需要修改一次,一共需要修改三次)
L968: classes=1             # 只需要识别1类物体,因此需要修改成1
L1056: classes=1
L1144: classes=1
 
# step4: ctrl + F搜索yolo,修改每个yolo相邻的上一个convolution层的filter
L961: filters=18            # 因为我预测两类物体:18 = 3*(5+**1**)
L1049: filters=18
L1137: filters=18
 

5.训练

先下载预训练权重: yolov4.conv.137

./darknet detector train data/trafficcone/obj-cone.data data/trafficcone/yolov4-obj-cone.cfg yolov4.conv.137 -dont_show

PS: -dont_show 非常重要, 可能会帮助解决Dbus报警;

训练完在build 文件夹中,会看到生成 的权重文件:
在这里插入图片描述
在这里插入图片描述

5.检测目标

./darknet detector test data/trafficcone/obj-cone.data data/trafficcone/yolov4-obj-cone.cfg yolov4-obj-cone_final.weights 

PS: detector 跟的是test,与demo不同;

运行后,需要输入待识别图片的位置

在这里插入图片描述

或者可以直接在命令后加上图片路径,如:

./darknet detector test data/trafficcone/obj-cone.data data/trafficcone/yolov4-obj-cone.cfg yolov4-obj-cone_final.weights data/xxx.jpg

6.ZED2i相机实时识别并测距

C++环境

LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib data/trafficcone/obj-cone.names data/trafficcone/yolov4-obj-cone.cfg yolov4-obj-cone_final.weights zed_camera

用zed2i相机拍另一个屏幕的交通锥筒图片,也可以在室外识别真实交通锥筒(如果条件允许):
在这里插入图片描述

7.参考

官方说明:
https://gitcode.net/mirrors/alexeyab/darknet

csdn博客:
https://blog.csdn.net/qq_38316300/article/details/106771964
https://blog.csdn.net/qq_44703886/article/details/109555946
https://blog.csdn.net/m0_62114628/article/details/124356097

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows VS2017上训练自己的COCO数据集,首先需要安装相应的软件和依赖库。以下是具体步骤: 1. 安装CUDA和cuDNN:这是进行深度学习模型训练所必需的库。根据自己的显卡型号,下载并安装相应版本的CUDA和cuDNN。 2. 安装Anaconda:Anaconda是一个常用的Python环境管理工具。下载并安装Anaconda,创建一个新的Python虚拟环境。 3. 安装OpenCV:OpenCV是一个用于计算机视觉任务的开源库。在Anaconda环境中,使用以下命令安装OpenCV: ``` conda install -c conda-forge opencv ``` 4. 下载Yolov4源码:从GitHub上下载Yolov4的源代码。 5. 配置环境变量和路径:将CUDA和cuDNN的路径添加到系统环境变量中,并将Yolov4源码所在目录添加到Anaconda虚拟环境的环境变量中。 6. 下载COCO数据集:从COCO官方网站下载COCO数据集(包括图像和标注文件)。 7. 数据预处理:根据YOLOv4要求的格式,将COCO数据集进行预处理。这包括将图像和标注文件组织到特定的文件夹结构中,并生成YOLO格式的标注文件。 8. 修改配置文件:根据自己的数据集训练需求,修改Yolov4源码中的配置文件。主要修改的部分包括类别数、路径、批次大小、迭代次数等。 9. 开始训练:在命令提示符或Anaconda环境中,使用训练命令启动YOLOv4训练过程。例如: ``` python train.py --data coco.data --cfg yolov4.cfg --weights weights/yolov4.weights ``` 其中,`--data`代表数据集配置文件,`--cfg`代表模型配置文件,`--weights`代表预训练权重文件。 10. 等待训练完成:训练过程需要一定时间,根据数据集的大小和计算资源的配置,可能需要几个小时甚至更长时间。等待训练过程结束后,就可以得到自己在COCO数据集训练YOLOv4模型。 以上是在Windows VS2017上使用YOLOv4训练自己的COCO数据集的步骤。根据自己的实际情况和需求,可以进行相应的调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值