yolov8从下载到应用,查看训练是否到最佳结果(自学ing)

自学中,此篇文章仅供参考,若不正确请指明,谢谢

获取

1.从git取得yolo源码

链接如下

git clone https://github.com/ultralytics/ultralytics
2.下载yolov8对应的安装库

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

训练数据集

1.创建文件

创建格式(detect,seg)

                                     test

                     images     train

        data   

                     labels      tarin

                                     test

Classify

         train   ---类别名--images

data

         test ----类别名--images

2.进行训练

 1.这个是在原有pt的模型基础上,进行训练

yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

2.只用自己的进行训练

yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640
3.进行预测
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

5.若用engine模型,pt转engine模型

yolo export model=path/to/best.pt format=onnx  # export custom trained model

参数设置

在训练和预测过程中都可应用参数,让配置更加准确

1.train(常用参数)
model:  # 设置模型。格式因任务类型而异。是从头开始训练.yaml还是迁移学习.pt
data:  # 设置数据,支持多数类型 一办事yaml类型的数据
epochs:   # 可设置适合自己的轮数
patience: # 设置多少次没有一个好的结果就会停止训练
imgsz:   # 图像数据的大小
device:  # 设备的选择 cuda device=0 or device=0,1,2,3 or device=cpu
workers: 8  # 每个进程使用的cpu的工作环境数
project: project name
pretrained: False  # 是否使用预训练模型,如果有之前的模型,可以使用之前的模型继续进行训练
verbose: True  # whether to print verbose output
single_cls: False  # 将多类数据作为单类进行训练
image_weights: False  # 使用加权图像选择进行训练马赛克增强
close_mosaic: 10  # 最后几个周期禁用
resume: False  # 从上一个检查点开始恢复培训

2.预测参数
source:  # 进行测试饿数据源
show: False  # 查看预测图片
save_txt: False  # 是否在输出结果中打印txt信息
save_conf: False  # 是否在输出结果中打印置信度
save_crop: False  # 保存偏短图像的结果
hide_labels: False  # 隐藏坐标
hide_conf: False  #是否隐藏置信度
vid_stride: 1  # 输入视频帧率步长
line_thickness: 3  # bounding box thickness (pixels)
visualize: False  # 可视化模型特征
augment: False  # apply image augmentation to prediction sources
agnostic_nms: False  #不同种类的抑制
retina_masks: False  #分割:高分辨率掩模
boxes: True # Show boxes in segmentation predictions

结果查看

1.文件构成

2.各部分解释

1)weights

里面包含训练best.pt和last.pt两部分,大部分的情况可以选取最好的.pt文件进行训练

2)args.yaml

里面为此次训练的训练参数

3)confusion_matrix.png

混淆矩阵

x轴是真实类别,y轴是预测类别,根据这张图,我们可以看出分类模型发生的错误,和正在发生的错误。(例如:对于目前这张图来说,11类是效果最不好的)

那我们如何看类表格呢,我们可以现看只有简单几类的情况

整体表格分为四部分

混淆矩阵真实为0真实为1
预测为0TNFP
预测为1FNTP

正确结果为TN和TP的数值。错误结果为FN和TP

由此我们可以查看上图多类的结果

我们可以根据此,推算出很多公式

1.精确度:预测为正的样本有多少是正确的

precision=TP/(TP+FP)

2.召回率:真实为正的样本有多少被正确预测为正

recall=TP/(FN+TP)

3.F1值 综合考虑精确度和召回率的数值(下文有提到)
4.准确度:所有样本中模型正确预测的比例

accuracy:(TN+TP)/(TN+FP+FN+TP)

4)Confusion Matrix Normalized

5)F1-Confidence Curve

横坐标是置信度,纵坐标是F1

对于不同的模型,有很多的准确性和回归,这样我们需要引入F1参数,来选择最优解

最直接的办法就是取Precision与Recall的平均值,但取平均值并不可取。因为有时二者有一个极高,一个极低时,这样平均值是高的,但实际的效果并不会好。。通过F1-score的方式来权衡Precision与Recall,可以有效的避免短板效应,这在数学上被称为调和平均数。

一般我们认为,一条曲线(A)包含另一条曲线(B),我们认为A曲线效果更好

这个主要讲的是置信度与每一种类之间的关系。对于所有的种类,最好的结果置信度在0.259.

6)Precision-Confidence Curve

这幅图主要是置信度与准确率的关系,在置信度为0.935的情况下,准确率为1

7)Precison-Recall Curve

主要是回归和置信度之间的关系

-----持续更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值