使用yolo目标检测算法预测自己的数据集来实现目标检测

目录

一、yolov4目标检测算法简介

1.1yolo发展简介

1.2yolo4简介

二、Pycharm相关配置及项目所需工具安装

2.1Pycharm相关配置

2.2项目所需工具安装

三、项目所需数据准备

3.1项目文件基本结构

3.2对图片数据集的类标签进行标注

四、利用Pycharm实现相关目标检测

五、结语


一、yolov4目标检测算法简介

1.1yolo发展简介

原始YOLO-YOLO 是第一个将绘制边界框和识别类标签问题结合在一个端到端可微网络中的目标检测网络。

YOLOv2 - YOLOv2 在 YOLO 之上进行了许多迭代改进,包括 BatchNorm、更高分辨率和锚框。

YOLOv3 - YOLOv3 建立在以前的模型之上,通过向边界框预测添加对象性分数,向骨干网络层添加连接,并在三个不同的粒度级别进行预测以提高较小对象的性能。

1.2yolo4简介

yolov4算法是在yolov3的基础上不断进行改进和开发出的一种算法。yolov4可以使用传统的GPU进行测试和训练,并能获得事实的、高精度的检测结果。与其他先进的目标检测器相比,速度快了两倍以上。以下是yolov4实现原理:

图片来源:https://blog.csdn.net/weixin_41560402/article/details/106119774

二、Pycharm相关配置及项目所需工具安装

2.1Pycharm相关配置

为所需运行的项目配置anaconda环境解释器,步骤如下:

在Pycharm终端或Anaconda Prompt下安装代码所需软件包,如:opencv-python、numpy、tensorboard等,下载代码如下(some-package换成自己所需下载的软件包):

pip install some-package

在下载过程中会发现下载速度很慢,是因为国内外版本不兼容,我们仅需使用一个镜像地址来下载软件包(此处使用的是清华园镜像,如若需要使用其他镜像,请移步百度进行下载),代码如下(同样将some-package换成自己所需下载的软件包):

pip install some-package -i https://pypi.tuna.tsinghua.edu.cn/simple

2.2项目所需工具安装

本项目用到了labelimg图像标注工具对所要预测的数据进行类标签标注,安装此工具需要在Anaconda Prompt里实现,代码如下(此处仅展示使用清华园镜像下载,不建议直接下载,会很慢!):

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

三、项目所需数据准备

3.1项目文件基本结构

该文件为教师课上提供,需要的可在评论区留言或后台私我。

3.2对图片数据集的类标签进行标注

首先应先将所需标注的图片放入文件夹内,本实验我使用的均为jpg格式以方便进行标注,图片是与同学共同搜集之后分别标注,如下图:

使用labelimg图片标注工具对图片进行标注,此处建议将图片在复制一份到桌面方便导入该工具,标注方法如下图:

用相同的方法,将所有图片进行标注,在标注过程中,每张图片在进行标注后都要进行保存。所保存的类型为一个xml文件,需将xml文件保存到如下目录:

在所有类标签都标注好过后,将所有的标签保存至voc_classes.txt内,方便模型训练,如下图:

四、利用Pycharm实现相关目标检测

在进行好上述准备工作后,即可进行代码的实现,先将voc_annotation.py文件进行运行,该项目的作用是将上述所标记的所有图片的类标签进行汇总,结果如下图:

其次对文件中的train.py文件进行训练,该训练为一个迭代过程,默认迭代次数为300,大概耗时6-8小时,如若直接运行该文件,将是一个大工程,我们可以将迭代次数进行更改,更改过后如下:

迭代完成后可以返回Total Loss(训练集损失值)和val Loss(测试集损失值),但第一次迭代的结果不太理想,二者数值均较高,通过运行predict.py文件,来识别动物的类标签,由于对数据集的训练不太理想,并且不能正确的识别动物类别,结果如下图:

 

根据提示,可以看到,我们需要一个更好的模型来更改best_epoch_weights.pth文件中本项目所需的pth文件,在更改完之后,再次对train.py代码进行迭代,并通过predict.py进行预测,发现训练集损失值和测试集损失值均降低,顺利的完成了目标检测实验。

五、结语

该篇文章主要是通过yolov4算法,在anaconda环境下进行代码的实现了对数据集目标检测色问题,但在迭代的过程中,由于一开始使用的为默认迭代次数,浪费了大量时间,在更改了迭代次数之后,减少了很多训练的时间,在训练过程中,应该注意相关配置是否正确。文章内容如有问题或疑问,敬请读者指正

  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值