关于Yolo的学习分享

学习资源:

手把手教你搭建自己的yolov5目标检测平台_哔哩哔哩_bilibili

yolo v5 解读,训练,复现_哔哩哔哩_bilibili

Yolo原理

Yolo首先会将图片分成n*n个网格,每个网格负责干两件事,预测目标框与目标类别。预测目标框时,每个网格会预测3个目标框,通过置信值筛去。如果目标中心没在预测目标框内,直接为0,如果在的话在计算iou最后得到置信值,可借鉴公式

Pr(Classi​∣Object)∗Pr(Object)∗IOUpredtruth​=Pr(Classi​)∗IOUpredtruth

IoU,为预测框与真实框(打标签弄地)相交面积和相并面积的比值,最后获取真实目标框

Yolo跑自己的数据集

制作数据集

1、使用labelimg打标签,注意该软件是否有标签缓存,有的话要删去。

2、将制作的数据集存放进yolo第一层目录下分为imgs,labels,里面又要写入test,train

3、在data目录下写yaml文件,内容为一些数据参数(类型要与打的标签相匹配)

4、在model目录下写yaml文件,内容为模型的参数

训练数据集

  1. 配置参数:train.py文件中Weight使用官方自带的

                          Cfg使用自己制作的模型参数文件yaml

                          Data使用自己制作的数据参数文件yaml

  1. 开始训练,如果虚拟内存不够,则需要yolov5-5.0/utils/datasets.py第81行nw=0
  2. 训练完成后会出现best.py与last.py。可以通过tensorboard看结果
  3. 然后可以将训练好的pt文件在test里面测试

  opt模型主要参数解析:

    --weights:初始化的权重文件的路径地址

    --cfg:模型yaml文件的路径地址

    --data:数据yaml文件的路径地址

    --hyp:超参数文件路径地址

    --epochs:训练轮次

    --batch-size:喂入批次文件的多少

    --img-size:输入图片尺寸

    --rect:是否采用矩形训练,默认False

    --resume:接着打断训练上次的结果接着训练

    --nosave:不保存模型,默认False

    --notest:不进行test,默认False

    --noautoanchor:不自动调整anchor,默认False

    --evolve:是否进行超参数进化,默认False

    --bucket:谷歌云盘bucket,一般不会用到

    --cache-images:是否提前缓存图片到内存,以加快训练速度,默认False

    --image-weights:使用加权图像选择进行训练

    --device:训练的设备,cpu;0(表示一个gpu设备cuda:0);0,1,2,3(多个gpu设备)

    --multi-scale:是否进行多尺度训练,默认False

    --single-cls:数据集是否只有一个类别,默认False

    --adam:是否使用adam优化器

    --sync-bn:是否使用跨卡同步BN,在DDP模式使用

    --local_rank:DDP参数,请勿修改

    --workers:最大工作核心数

    --project:训练模型的保存位置

    --name:模型保存的目录名称

    --exist-ok:模型目录是否存在,不存在就创建

── data:主要是存放一些超参数的配置文件(这些文件(yaml文件)是用来配置训练集和测试集还有验证集的路径的,其中还包括目标检测的种类数和种类的名称);还有一些官方提供测试的图片。如果是训练自己的数据集的话,那么就需要修改其中的yaml文件。但是自己的数据集不建议放在这个路径下面,而是建议把数据集放到yolov5项目的同级目录下面。

── models:里面主要是一些网络构建的配置文件和函数,其中包含了该项目的四个不同的版本,分别为是s、m、l、x。从名字就可以看出,这几个版本的大小。他们的检测测度分别都是从快到慢,但是精确度分别是从低到高。这就是所谓的鱼和熊掌不可兼得。如果训练自己的数据集的话,就需要修改这里面相对应的yaml文件来训练自己模型。

── utils:存放的是工具类的函数,里面有loss函数,metrics函数,plots函数等等。

── weights:放置训练好的权重参数。

── detect.py:利用训练好的权重参数进行目标检测,可以进行图像、视频和摄像头的检测。

── train.py:训练自己的数据集的函数。

── test.py:测试训练的结果的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值