首页 > 其他分享 >yolov8中map指数提高

yolov8中map指数提高

时间:2024-10-13 21:47:46浏览次数:10  
标签:map 训练 指数 检测 模型 mAP yolov8 召回

引言:性能指标是评估对象检测模型的准确性和效率的关键工具。它们阐明了模型如何有效地识别和定位图像中的对象。这些见解对于评估和增强模型的性能至关重要。下面是我再yolov8训练过程中一些遇到的map过低的一些解决办法和见解

 

 我遇到的问题是数据集过大,导致训练不充分可以两种方法解决

子集训练

子集训练是一种智能策略,涉及在表示较大数据集的较小数据集上训练模型。它可以节省时间和资源,尤其是在初始模型开发和测试期间。如果您时间紧迫或尝试不同的模型配置,子集训练是一个不错的选择。

 fraction 参数。此参数允许您指定数据集中用于训练的比例。例如,将 fraction=0.1 将在 10% 的数据上训练模型。在提交使用完整数据集训练模型之前,可以使用此技术进行快速迭代和调整模型。子集训练可帮助您快速取得进展并及早发现潜在问题。

多尺度培训

多尺度训练是一种通过在不同尺寸的图像上进行训练来提高模型泛化能力的技术。您的模型可以学会检测不同尺度和距离的物体,从而变得更加强大。

 scale 参数。此参数按指定因子调整训练图像的大小,模拟不同距离的对象。例如将 scale=0.5 会将图像大小减小一半,而 scale=2.0 会翻倍。配置此参数可让您的模型体验各种图像比例,并提高其在不同对象大小和场景中的检测能力。

 对于人脸表情检测,可以将scale 设置为2.0以应对map过小,fraction设置为0.5以应对10000张训练集导致速度过慢

 一 .map介绍

  • mAP:适用于对模型性能进行广泛评估。

  • 低 mAP:表示模型可能需要全面改进。

  • Box(P、R、mAP50、mAP50-95):该指标可帮助我们深入了解模型在检测物体方面的性能:

    • P(精确度):检测物体的精确度,表示有多少检测是正确的。

    • R(召回率):模型识别图像中所有物体实例的能力。

    • mAP50:按 0.50 的交集大于联合(IoU)阈值计算的平均精度。这是仅考虑 "容易 "检测的模型精确度的衡量标准。

    • mAP50-95:在 0.50 至 0.95 之间的不同 IoU 门限下计算得出的平均精度的平均值。它全面反映了模型在不同检测难度下的表现。

    • 平均精度 (AP):AP 计算精度-召回曲线下的面积,提供一个包含模型精度和召回性能的单一值。

    • 平均精度(mAP):mAP 通过计算多个对象类别的平均精度值,扩展了 AP 的概念。这在多类物体检测场景中非常有用,可以全面评估模型的性能。

    • 精确度和召回率:精度量化了所有阳性预测中的真阳性比例,评估模型避免假阳性的能力。另一方面,召回率计算的是真阳性预测在所有实际阳性预测中所占的比例,衡量的是模型检测出某类所有实例的能力。

    • F1 分数:F1 分数是精确度和召回率的调和平均值,在考虑假阳性和假阴性的同时对模型的性能进行均衡评估。

一.影响 map的一些性能指标

  • IoU:在需要精确定位目标时必不可少。

  • 精确:当优先考虑尽量减少误检测时非常重要。

  • 召回:在需要检测对象的每个实例时非常重要。

  • F1 分数:在需要平衡精确度和召回率时非常有用。

三.解决办法 

下面三个案例应对map过低

案例 1

  • 情况:mAP 和 F1 分数都不理想,但召回率很高,精度却不高。

  • 解释与行动:错误检测可能太多。收紧置信度阈值可以减少错误检测,但也可能会略微降低召回率。

案例 2

  • 情况:MAP 和 Recall 可以接受,但 IoU 不足。

  • 解释与行动:模型能很好地检测物体,但可能无法精确定位。改进边界框预测可能会有所帮助。

案例 3

  • 情况:有些班级的 AP 比其他班级低得多,即使总的 mAP 还不错。

  • 解释与行动:这些类别对模型来说可能更具挑战性。在训练过程中为这些类别使用更多数据或调整类别权重可能会有所帮助。

 或者修改

backbone

修改主干部分,使用常用的一个强的backbone一般都会带来mAP的提升,但是在考虑速度的情况下,还是要谨慎使用过大的backbone。。

fpn

目前我只是使用过fpn,是不是其他的fpn会带来提升我也没试过。

标签:map,训练,指数,检测,模型,mAP,yolov8,召回
From: https://blog.csdn.net/weixin_62323885/article/details/142904509

相关文章

  • C++之multimap:关键字分类的利器
    目录1.引言2.主要特点3.成员函数4.使用实例 5.注意事项1.引言        在C++中,multimap是标准模板库(STL)中的一个关联容器,它存储键值对(key-valuepairs),并且允许键的重复。multimap内部通常通过红黑树(或其他平衡二叉搜索树)实现,这保证了元素按照键的顺序进行存储......
  • day07=集合进阶(Set、Map集合)
    day07——集合进阶(Set、Map集合)一、Set系列集合1.1认识Set集合的特点Set集合是属于Collection体系下的另一个分支,它的特点如下图所示下面我们用代码简单演示一下,每一种Set集合的特点。//Set<Integer>set=newHashSet<>(); //无序、无索引、不重复//Set<Integer>set=......
  • java中HashMap扩容机制详解(扩容的背景、触发条件、扩容的过程、扩容前后的对比、性能
    在Java中,HashMap是一个非常常用的数据结构,基于哈希表实现,它通过键值对的形式存储数据。为了保证其操作的效率,HashMap采用了一种动态扩容机制。当HashMap中元素数量增长到一定程度时,会自动进行扩容。本文将详细讲解HashMap的扩容机制,包括其触发条件、过程、及扩容过程中可能......
  • C++STL~~map
    文章目录序列式容器和关联式容器一、map的概念二、map的使用三、map&multimap的差异四、map的练习五、总结序列式容器和关联式容器序列式容器前面已经接触过STL中的部分容器如:string、vector、list、deque、array、forward_list等,这些容器统称为序列式容器,因为逻辑......
  • 利用Redis的BitMap统计每月用户连续签到
    利用Redis的BitMap统计每月用户连续签到我们按月来统计用户签到信息,签到记录为1,未签到则记录为0.把每一个bit位对应当月的每一天,形成了映射关系。用0和1标示业务状态,这种思路就称为位图(BitMap)。这样我们就用极小的空间,来实现了大量数据的表示Redis中是利用string类型数据......
  • R语言:ERGM指数随机图模型
    文章目录ERGM模型介绍R语言操作ERGM模型介绍ERGM模型(ExponentialRandomGraphModels)是一种统计模型,用于研究和描述网络中的关系模式。它基于指数家族的分布函数,并使用最大似然估计来估计模型的参数。ERGM模型可用于分析各种类型的网络,包括社交网络......
  • 高可用之限流-03-Semaphore 信号量做限流
    限流系列开源组件rate-limit:限流高可用之限流-01-入门介绍高可用之限流-02-如何设计限流框架高可用之限流-03-Semaphore信号量做限流高可用之限流-04-fixedwindow固定窗口高可用之限流-05-slidewindow滑动窗口高可用之限流-06-slidewindow滑动窗口sentinel源码......
  • 【WebGIS】1、基于MS4W的MapServer安装
    1、MapServer简介MapServer是一个基于胖服务器/瘦客户端模式的实时地图发布系统。当客户端发送数据请求时,服务器实时处理空间数据,并将生成的数据发送给客户端。MapServer遵循OGC系列规范,可以集成PostGIS和开源数据库PostgreSQL,并对地理空间数据进行存储和SQL查询。基于ka......
  • 指数的奇偶性由什么决定?
    指数函数的奇偶性由其指数部分和底数的符号共同决定。在数学中,奇函数和偶函数的定义和指数的特性结合在一起,可以帮助我们分析指数函数是否为奇函数或偶函数。下面详细解释指数函数的奇偶性如何判断:1.奇函数和偶函数的定义回顾偶函数:函数(f(x))满足(f(-x)=f(x)),......
  • 基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)
    项目介绍项目中所用到的算法模型和数据集等信息如下:算法模型:  yolov8、yolov8+SE注意力机制或yolov5、yolov5+SE注意力机制,直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有GPU,无法自行训练。数据集:  网上下载的数据集,格式都已......