当前位置: 首页 > article >正文

计算机视觉算法比较

1. 难分样本和易分样本

在目标检测和图像分割任务中,"易分样本"和"难分样本"的定义主要基于模型对这些样本的预测准确性和置信度。

易分样本(Easy Samples)

易分样本是指那些模型能够轻松正确分类或定位的样本。这类样本通常具有以下特征:

  • 高置信度预测:模型对这些样本的预测概率接近真实标签。例如,在二分类问题中,正样本的真实标签为1,模型预测的概率 Y ^ x y c \hat{Y}_{xyc} Y^xyc 接近1;负样本的真实标签为0,模型预测的概率 Y ^ x y c \hat{Y}_{xyc} Y^xyc 接近0。
  • 低损失值:由于模型已经很好地拟合了这些样本,因此它们对应的损失函数值较低。这意味着这些样本对总损失的贡献较小。

示例:

假设你正在训练一个目标检测模型,并且有一个边界框的中心点位置非常明确,背景简单且没有干扰物。模型能够很容易地将该中心点的位置预测出来,并且预测的概率非常高。这就是一个典型的易分样本。

难分样本(Hard Samples)

难分样本是指那些模型难以正确分类或定位的样本。这类样本通常具有以下特征:

  • 低置信度预测:模型对这些样本的预测概率远离真实标签。例如,在二分类问题中,正样本的真实标签为1,但模型预测的概率 Y ^ x y c \hat{Y}_{xyc} Y^xyc 接近0;负样本的真实标签为0,但模型预测的概率 Y ^ x y c \hat{Y}_{xyc} Y^xyc 接近1。
  • 高损失值:由于模型未能很好地拟合这些样本,因此它们对应的损失函数值较高。这意味着这些样本对总损失的贡献较大。

示例:
假设你正在训练一个目标检测模型,并且有一个目标物体部分被遮挡,或者目标物体与背景颜色非常相似,导致模型难以准确预测该目标的位置和类别。这就是一个典型的难分样本。

Focal Loss中的处理

Focal Loss是一种常用的损失函数,旨在解决类别不平衡问题,并通过动态调整样本权重来提高模型的性能。它特别关注难分样本,同时减少易分样本的影响。

Focal Loss的基本形式

对于每个样本 ( x , y , c ) (x, y, c) (x,y,c),其损失函数可以表示为:

F L ( p t ) = − α t ( 1 − p t ) γ log ⁡ ( p t ) FL(p_t) = -\alpha_t (1 - p_t)^\gamma \log(p_t) FL(pt)=αt(1pt)γlog(pt)

其中:

  • p t p_t pt 是模型对样本的预测概率。
  • α t \alpha_t αt 是平衡因子,通常用于加权正负样本。
  • γ \gamma γ 是焦点参数,调节简单样本和困难样本之间的权重。
易分样本 vs 难分样本的具体表现
  • 易分样本:当 p t p_t pt 接近1时, ( 1 − p t ) γ (1 - p_t)^\gamma (1pt)γ 的值很小,损失函数数值较小。这意味着易分样本对总损失的贡献较小。

    F L ( p t ) = − α t ( 1 − p t ) γ log ⁡ ( p t ) ≈ 0 FL(p_t) = -\alpha_t (1 - p_t)^\gamma \log(p_t) \approx 0 FL(pt)=αt(1pt)γlog(pt)0

  • 难分样本:当 p t p_t pt 接近0时, ( 1 − p t ) γ (1 - p_t)^\gamma (1pt)γ 的值较大,损失函数数值较大。这意味着难分样本对总损失的贡献较大。

    F L ( p t ) = − α t ( 1 − p t ) γ log ⁡ ( p t ) ≫ 0 FL(p_t) = -\alpha_t (1 - p_t)^\gamma \log(p_t) \gg 0 FL(pt)=αt(1pt)γlog(pt)0

2. CenterNet和Yolox确定正样本区别

CenterNet
基本原理
Heatmap-based方法通常用于基于关键点的目标检测,例如CenterNet。这类方法通过生成热图(heatmap)来表示目标的中心位置,并根据这些热图进行目标检测。

热图生成:
对于每个类别,生成一个热图(heatmap),热图上的每个像素值表示该位置是某个目标中心的概率。在训练过程中,真实目标的中心位置会在热图上标记为高响应值(通常是1),周围的像素则通过高斯分布逐渐降低响应值

Focal loss
在这里插入图片描述
heatmap中变种的Focal loss
在这里插入图片描述

上图展示了Heatmap损失函数,该函数是在Focal Loss的基础上进行了改进其中的 α \alpha α β \beta β是两个超参数,用来均衡难易样本 Y x y c Y_{xyc} Yxyc表示GT值(Ground Truth值), Y ^ x y c \hat{Y}_{xyc} Y^xyc表示预测值; N N N表示关键点的个数。

  • Y ^ x y c \hat{Y}_{xyc} Y^xyc = 1 时,易分类样本的预测值接近为1,此时 ( 1 − Y ^ x y c ) α (1 - \hat{Y}_{xyc})^\alpha (1Y^xyc)α就是一个很小的数值,此时损失函数的数值就比较小,起到了降低该样本权重的作用。
  • Y ^ x y c \hat{Y}_{xyc} Y^xyc = 1 时,难分类样本的预测值接近为0,此时 ( 1 − Y ^ x y c ) α (1 - \hat{Y}_{xyc})^\alpha (1Y^xyc)α就是一个很大的数值,此时损失函数的数值就比较小,起到了增加该样本权重的作用。
  • Y ^ x y c \hat{Y}_{xyc} Y^xyc= 1 时, 为了防止 Y ^ x y c \hat{Y}_{xyc} Y^xyc过高接近于1,利用W来充当惩罚项。当 Y x y c Y_{xyc} Yxyc越接近中心点,W的数值就会越小,用来进一步减轻惩罚力度。

offeset损失函数
在这里插入图片描述

正样本确定:

  • 中心点: 对于每个真实目标,其边界框的中心点被标记为正样本。
  • 邻近区域: 除了中心点外,周围一定范围内的像素也被视为正样本,但响应值较低(通过高斯分布衰减)。这个范围通常由超参数控制。

损失函数:
使用Focal Loss或类似的损失函数来优化热图预测结果,使得模型能够准确地预测出目标的中心位置及其邻近区域。

YOLOX
锚框分配(Anchor-based vs Anchor-free):

  • Anchor-based:传统的YOLO版本使用预定义的锚框(anchors)来匹配目标。每个锚框负责预测一个目标,根据IoU(Intersection over Union)来分配正负样本。
  • Anchor-freeYOLOX采用anchor-free的方式,不需要预定义的锚框,而是直接在特征图的每个位置预测目标。

正样本确定:
中心采样: YOLOX使用了一种称为“中心采样”的方法来确定正样本。具体来说,对于每个真实目标的边界框,计算其中心区域(通常是边长为d的小方形区域,d是一个超参数)。在这个区域内,所有特征图位置都被认为是正样本。
动态标签分配: YOLOX引入了SimOTA(Simple Online and Realtime Tracking Algorithm),这是一种动态标签分配策略。它根据预测结果和真实目标之间的匹配度(如IoU)动态分配正负样本,从而提高了模型的鲁棒性和准确性。
损失函数:
使用分类损失(如BCE Loss)、定位损失(如GIoU Loss)等来优化模型输出。YOLOX还使用了一些额外的技巧,如多正样本分配策略和在线硬样本挖掘(Online Hard Example Mining, OHEM),进一步提升性能。

3. CenterNet比Yolox进行关键点检测的优势有哪些

高斯分布衰减
CenterNet:在热图上对目标中心点及其邻近区域进行高斯分布衰减,使得中心点周围的像素也能参与到损失计算中,从而提高了模型的鲁棒性和准确性。
YOLOX:通常不使用这种高斯分布衰减机制,而是依赖于IoU(Intersection over Union)或其他相似度度量来进行正负样本分配。这在某些情况下可能不如高斯分布那样精细。

4. YoloV5
正样本匹配

正样本匹配的目的:对于图像中的每一个bbox,找出:
(1)它由输出特征图中的那些grid cell 来负责预测
(2)以及又那些尺寸的anchor来负责预测。
基于 这些负责预测的grid cells中负责预测的anchors,得到的预测bbox就是正样本,否则就是负样本。
也可以简单理解为: 负责预测gt boxanchor 就是正样本,不负责预测的anchor 就是负样本。
在这里插入图片描述a. 选择gt bbox中心点与grid cell的规则.
b. 选择适合anchors用于预测gt box的规则

在这里插入图片描述
predicted bbox的坐标计算
在这里插入图片描述
选择负责预测的grid cell
在这里插入图片描述
选择负责预测的anchor
在这里插入图片描述
实际上:就是gt box落在 anchor box 宽高的1/4anchor box 宽高的4倍之间,则该anchor 用于预测gt box
在这里插入图片描述

4. Yolov8
DFL (Distribution Focal Loss)

DFL预测输出形式
在这里插入图片描述
DFL_LOSS结构形式
在这里插入图片描述
其中 t l tl tl t r tr tr w l wl wl w r wr wr获得的示例:
在这里插入图片描述


http://www.kler.cn/a/570739.html

相关文章:

  • Hadoop大数据技术栈简介
  • Windows 环境下 Nginx、PHP 与 ThinkPHP 开发环境搭建
  • 【西瓜书《机器学习》十至十二章内容通俗理解】
  • 算法day5 bfs搜索
  • golang的io
  • Angular Superresolution with Antenna Pattern Errors论文阅读
  • C 语言在微软平台:经典与创新的交融
  • 算法学习之路】5.贪心算法
  • 钉钉宜搭智能车辆管理系统:AIoT技术驱动的全场景解决方案(价值体现版)
  • 零信任架构和传统网络安全模式的
  • USRP6330-通用软件无线电平台
  • C与C++的区别
  • 【前端】前端设计中的响应式设计详解
  • 005-Docker 安装 Redis
  • LeetCodeHot100_0x05
  • IT安全运维指南:手册、工具与资源速览
  • 私有云基础架构
  • C++核心编程之STL_string容器
  • Python网络爬虫技术:现代应用、对抗策略与伦理边界
  • 【开源项目】好用的开源项目记录(持续更新)