使用YOLOv4识别自己的数据集

一.YOLOv4的基本介绍

        YOLOv4是一种目标检测算法,全称为You Only Look Once Version 4。它是基于YOLO系列算法的一种改进版本,旨在更快且更准确地识别图像中的物体。YOLOv4采用了多尺度特征图融合技术,结合了高分辨率特征和低分辨率特征的优点,使得算法能够更好地检测出小目标和大目标。

二.配置环境

1.anaconda环境配置

安装anaconda是因为它可以下载不同python版本下的工具包,下载anaconda可以去官网,也可以去镜像网站安装。

anaconda官网:Distribution | Anacondaicon-default.png?t=N7T8https://www.anaconda.com/download

清华源镜像:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirroricon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 根据自己的电脑下载对应的版本。具体的安装方法可以参考专门安装的教程,比如:Anaconda超详细安装教程(Windows环境下)_conda安装-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/fan18317517352/article/details/123035625

安装完之后可以在命令提示符使用 conda --version指令检验一下。

之后就可以在pycharm配置环境

2.在pycharm创建conda环境

 我是将anaconda安装到了D盘,你要找到自己安装到哪里,后面的地址应该是一样的,找到执行地址,然后创建环境,python版本3.8,3.9都可以。

然后就是安装python包了

 pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
 pip install  tensorboard -i https://pypi.tuna.tsinghua.edu.cn/simple
 pip install  matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple 

 其中pytorch包比较复杂,这个要看你是否装有cuda,使用cuda之后训练权重的速度会快很多,我这里建议都装一下。要是装cuda要保证你的显卡是n卡,也就是英伟达显卡才能使用。

三.安装CUDA

安装cuda的主要步骤有三步

1.检查自己电脑适配cuda版本的上限

2.安装CUDA Toolkit和cuDNN

3.安装与cuda版本适配的pytorch

第一步:

安装cuda要先查看你电脑支持的最高版本是什么

在命令提示符输入:

nvidia-smi.exe

即可查看版本。 

可以看看出我这支持cuda最新版本是12.2版本,我们下载不要超过这个版本就好了。 

第二步:

下载cuda主要下载两个包:

CUDA Toolkit和cuDNN,其中cuDNN主要是加速训练用的,是否安装看自己选择,这里推荐安装

具体如何安装可以可以去查看相关的教程,我这里安装的是11.3.0的版本,链接如下:

CUDA Toolkit 11.3 Downloads | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/cuda-11.3.0-download-archive?target_os=Windows

安装之后就可以安装对应的cuDNN了,cuDNN下载地址为:cuDNN 历史版本 | NVIDIA 开发者icon-default.png?t=N7T8https://developer.nvidia.cn/rdp/cudnn-archive

这里按着cuda的版本安装就得了,然后我们检查一下,运行行输入: 

nvcc -V

 

第三步:

到了这一步就容易多了,我们的目标是安装cuda版本的pytorch,打开pytorch官网:

Previous PyTorch Versions | PyTorchicon-default.png?t=N7T8https://pytorch.org/get-started/previous-versions/找到自己对应的版本,我这里使用的11.3.0版本的cuda,conda环境就选择这个

检查是否安装成功,可以使用如下代码检验:

import torch
import torchaudio
import torchvision
print(torch.__version__) #输出torch版本
print(torchaudio.__version__) #输出torchaudio版本
print(torchvision.__version__) #输出torchvision版本
print(torch.cuda.is_available())  # 如果这个命令返回True,那么PyTorch可以使用CUDA

 

这里报错是没有后端音频,并无大碍。 

四.代码文件介绍

使用的开源数据集:

水果分类目标检测VOC数据集_数据集-飞桨AI Studio星河社区 (baidu.com)icon-default.png?t=N7T8https://aistudio.baidu.com/datasetdetail/92360/1

 这里使用的开源代码如下:

GitHub - bubbliiiing/yolov4-pytorch: 这是一个YoloV4-pytorch的源码,可以用于训练自己的模型。icon-default.png?t=N7T8https://github.com/bubbliiiing/yolov4-pytorch我们打开代码文件

在VOCdevkit->VOC2007中有三个文件夹

其中Annotations文件夹存放的是你要识别物品的标签和在图片中的坐标

JPEGImages文件中则存放你要识别的图片,也就是数据集,要jpg格式的,ImageSets里面存放的是一些模型相关的文件,不需要改动

这里推荐使用labelImg标注图片

然后点左上角的File,点save选择Annotations文件夹为保存地址即可。

将创建好的标签名称放在model_data文件下的cls_class.txt文件中,cls_class.txt文件需要自己创建

之后将voc_annotation文件中的class_path路径修改成上面的标签文件,也就是cls_classes文件。

运行之后会出现每个标签在数据集出现的次数。

然后我们就可以训练自己的权重了,这里也是class_path路径修改成上面的标签文件在train.py运行训练,训练之后会在logs出现权重文件。

如果你装了cuda,这里改成True

这里是运行好的权重文件,在logs目录下面

epoch_map 平均精度曲线图

epoch_loss 损失曲线图

train loss表示训练损失。

val loss实线表示验证损失。

smooth train loss表示平滑后的训练损失。

smooth val loss表示平滑后的验证损失。

最后进行预测,将yolo文件中的model_path和onnx_path路径改成自己训练出来的权值路径,classea_mate路径改成自己的标签文件路径

最后展示一下训练结果:

以上就完成了,我的能力还处于小白阶段,如有思路错误,还请大佬指点,共同学习。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值