当前位置:   article > 正文

如何快速上手yolov5模型的训练,以及通过训练出来的参数进行模型推理(小白教学,只教如何训练和推理,后续会就行更新如何调参)(在看本文章之前,需要保证你的环境配置成功)_yolov5推理时需要标准化吗

yolov5推理时需要标准化吗

【本文的著作权由.清风...所有,未经同意禁止转载!!!】

【 如果看完此文章有啥疑问,或者有啥错误的地方,大家都可以在下面的评论区,讨论指出。】

【作者码字不易。希望可以得到你们的点赞关注,有你们的鼓励支持,往后一定会出更多优质的文章,谢谢大家!!】


yolov5官方源码

# 1.对yolov5代码的部分认识

 

如图,图中和本文有关的(也是必须要用到的)几个文件夹:

## data文件夹

(1)data:里面存放数据集的配置文件,也可以将自己的数据集放在此文件夹中

 文件夹内容如图所示,其中我们可以根据coco128.yaml配置文件中的代码存储格式来创建自己的yaml配置文件,简单的说就是将coco128.yaml文件中的代码复制到自己创建的文件夹中。然后根具自己的需要进行修改,讲解如下图1所示。

图1

 如图1,path路径是数据集存放的总路径,其中数据集框架如下图2所示建立(仅供参考)。

图2 

如果你还是不知道如何放置数据集,你可以在下面训练代码时,将data数据集改成coco128数据集,这样代码会帮你自动从官网下载coco128数据集,可以参考此文件夹格式。

图1中,train和val的路径如图所示放置,紧接着下面会出现classes,这个是你需要训练模型的目标的分类,如图原yolov5代码中分为80类,你可以修改成自己需要的类别,其格式和源代码保持一致。


## models文件夹

                          图3

如图3,在models文件夹中yolov5提供了五个可以训练的网络模型,其中他们的区别图如图4

 图4

通过图4,可以得出以下结论:

YoloV5提供了5个主要的预先训练的网络模型,分别是YoloV5S、YoloV5M、YoloV5L、YoloV5X和YoloV5N。下面是它们的主要区别:

1. YoloV5S:最小,轻量级,适用于移动设备以及低功耗设备上的实时目标检测。但是检测精度相对较低。

2. YoloV5M:中等大小,速度快,检测精度相对于YoloV5S更高。适合于中等硬件性能的设备。

3. YoloV5L:较大,更精确,适合于高功率设备或需要高分辨率检测的应用。

4. YoloV5X:大型,包含更多的卷积层和更高的容量,性能最好。但是需要更多的内存和计算资源。

5. YoloV5N:轻量级网络,适合于嵌入式设备或边缘计算设备,快速识别难以检测的小目标等。

因此,选择哪种预训练模型通常取决于应用需求和硬件资源。如果需要高精度和高速度,则可以使用较大的模型。若需要低功耗运行,则可以选择较小的模型。

所以可以根据自己的需要,来选择自己的网络模型进行训练。

接下来,我们以yolov5s的yaml文件为例,如图5:

                                             图5

图5为yolov5s.yaml文件中上面的一部分,在修改配置文件时,我们需要修改的地方为nc变量,nc的值和我们前面图1中的classes中的类别相对应,那边有几类,这边就填写几。下面anachors为候选框,等下一次整理优化模型模型调参数时,会讲到。


当我们做完上面的工作时,就已经完成前期的准备工作了,下面我们讲讲train中的参数的含义,以及常用的参数。


# train.py训练

如图6,在yolo文件中,我们会常看到如下的参数列表:

                                                                      图6

相信大家看到,一定会想,这么多参数,我怎么记得住啊!!!!

那么我将会引领大家,熟悉几个常用的参数:

(1)weights:此参数是传入模型训练时的预训练权重的,如yolov5中的yolov5s.pt文件,在本文的第二张图片中可以看到,这个是官方给的配置文件,在自己第一次训练模型时,可以拿出来使用,来提高模型的训练成效。如果不需要,也可以将此参数设置为空。如 default=' '。

(2)cfg:这个参数传入的是我们前面讲的models中的网络模型的yaml文件的地址。

(3)data:传入的是data文件夹中的配置文件的地址,而不是我们数据集的地址。

(4)epochs:此参数表示训练的轮次,这个由自己定义,传入的是数字。

(5)batch-size:表示一次传入图片的量,也是数字,但这个数字是根据自己电脑的显卡的内存来决定的,如果设置太大,导致超出了显卡内存,会报错。如果设置太小,会导致训练时间太长。所以大家更具自己电脑的显卡配置来设置。

(6)device:此参数是设置使用cpu训练还是gpu训练,更具自己电脑配置来。

常用参数我们就已经讲完了,现在大家可以训练了。我一般都是通过pycharm终端训练,终端输入conda activate 自己的虚拟环境,转到自己的环境下面,输入以下命令(仅供参考,为了大家可以使用上面参数,我将会都写一遍)

python train.py --weights '' --data helmet.yaml --cfg v5s_helmet.yaml --epochs 5 --device cpu --batch-size 16 (此命令使用cpu训练,如果需要gpu可以将cpu改为0。0代表电脑中第一个独显)

接着我们训练完模型就可以得到runs文件夹下的一个train文件下的exp文件夹,这里面存放的就是我们训练完结果的一些报告,后期我们可以根据这些报告来优化我们的模型。


到此我们已经训练完我们的模型了,上文中的exp文件夹下的weights文件夹是中有两个权重文件best和last,我们一般使用best文件进行我们接下来的推理过程。


# detect.py文件

在detect.py中,也有和train.py类似的参数列表如图7:

图7

我们进行模型推理时,也只需要了解其中的几个参数即可:

(1)weights:这个参数传入的是我们训练出的模型中的权重(exp文件夹下的weights文件夹中的best.pt文件),传入的此文件的地址。

(2)source:传入需要推理的图片或者视频的地址

推理时,我们目前只需要用到这两个参数。(命令如下)

python detect.py --weights F:\about_yolov5\yolov5-master\runs\train\exp6\weights\best.pt --source F:\SuJuJi\video\jiance.avi

推理完的视频存在runs文件夹下的detect文件中。




到此我们的模型训练和推理就已经全部结束啦!!!!

码字不容易,希望屏幕前可爱帅气的你,留下关注和点赞再走叭!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/342681
推荐阅读
相关标签
  

闽ICP备14008679号