目标检测中的标签分配策略

2023-11-10

介绍

label assignment 主要指的是检测器在训练阶段区分正负样本,并给feature map 不同位置匹配合适的监督目标,用于计算损失,进而完成梯度更新,合适的分配策略对于模型来说至关重要,在一定程度上决定了模型的性能。

分类

目前标签分配根据非负即正划分为硬标签分配(hard LA) 和软标签分配(soft LA),其中硬标签分类依据在训练阶段是否动态调整阈值,又可以细分为静态和动态两种。静态分类策略主要依据于模型的先验知识,例如距离阈值和iou阈值等,来选取不同的正负样本,例如二阶段目标检测分配策略和Fcos等,软标签分配策略主要依据在训练阶段采用不同的动态分配策略,如ATSS、SimOTA和PAA等。但是在本质上,不管是动态还是静态分配策略,预测框只有两个结果非负即正,且动态分配策略也是伪动态,如ATSS利用训练阶段的统计量来划分正负样本,但在模型配置和数据量固定时,模型在训练阶段的统计量几乎不存在较大差异,因此并不会产生更好的变化和调整。

软标签分配策略会根据预测结果与gt计算软标签和正负权重,在候选正样本(中心点落在gt框内)的基础上依据正负样本权重分配正负样本并计算相应的损失。且在训练的过程中动态调整软标签和分配权重,例如autoassign、TOOD和DW等。这里面存在了一个训练的冷启动问题,在模型训练的早期,参数都是随机初始化的,若存在一个检错的框,但分类和回归的得分都很高,那么模型会朝着让它更优的方向前进,这就导致一个较好的location没机会翻盘,一些模型加入了中心先验知识去抑制该情况,比如autoassign、DW等。

方法讲解

ATSS

基于L2距离和iou阈值自适应的选择正负样本

  1. 针对每个gt,在不同尺度的特征图上计算预测框与gt的l_{2}距离,选取其中最小的前k(默认为9)个作为候选正样本。
  2. 计算每个gt和候选正样本的iou值,并统计这些iou值的均值和方差
  3. 求和均值和方差,并将该值作为划分正负样本的阈值,大于该值的候选正样本为最终正样本,反之就是负样本。其中某个候选正样本,匹配到多个gt,则与得分最高的gt进行匹配

SimOTA

基于代价矩阵和iou,在训练的过程中动态的选择正负样本

  1. 将落在真实框内的特征点作为候选正样本
  2. 计算候选正样本与gt的分类交叉熵和回归损失,两值相加即为代价矩阵的元素值
  3. 计算gt和候选正样本的iou值,并对计算出的iou值进行排序,选取前k个值(默认为16)进行相加,该值作为最终划分正样本的个数值k_{2}。针对每个gt,选择代价矩阵最小的k_{2}个候选正样本作为最终的正样本,其余的为负样本。分配到多个gt的预测框取选取最小代价的进行匹配

AutoAssign

基于预测框的分类得分、框回归得分、中心先验得分计算正负权重,实现对gt框内物体的形状自适应,以及不同FPN层物体正负样本的自动划分

  1. 所有FPN的特征点落在gt框内的作为候选正样本,其余的作为负样本
  2. 针对负样本,其负样本属性权重为1,正样本属性权重为0,而针对候选正样本,其负样本属性权重可以理解为该location 预测出的框和所有gt 计算出来的最大iou值,其值越小,负样本属性权重就越高,其计算方式为分类得分乘以前背景得分,而正样本属性权重来自于分类得分,前后景得分和iou得分,以及综合考虑中心先验得分,加上中心先验得分主要为了解决冷启动问题
  3. loss = 所有样本的负权重+候选正样本的正权重

TOOD

  针对分类回归任务解耦所带来的空间不一致问题,即要求正样本必须同时定位高置信度,而负样本必须低置信度低定位,综合考虑两者,设计出一种预测框的度量方式,基于此度量方式,对预测框进行正负样本的划分

  1. 所有FPN的候选点落在gt框内即为候选正样本,其余为负样本
  2. 针对每个gt,计算其与候选正样本的iou值,并将该iou值和置信度得分,经过如下方式,后续度量值

                                                            t = s^{\alpha }\times \mu ^{\beta }

其中s\mu分别表示的是置信度得分和iou得分,\alpha\beta分类是超参数,用于调整两者的影响

     3.  根据t排序选择前k个候选正样本作为最终的正样本

     4. 如果一个预测框和多个gt进行匹配,则选择iou最大的那个gt

     5.计算正样本和度量t的celoss以及gt的GIoU损失

TODO

后续有时间更新Fcous、DW和GFL分配策略

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测中的标签分配策略 的相关文章

随机推荐

  • 【C++初阶】list的模拟实现 附源码

    一 list介绍 list底层是一个双向带头循环链表 这个我们以前用C语言模拟实现过 gt 双向带头循环链表 下面是list的文档介绍 list文档介绍 我们会根据 list 的文档来模拟实现 list 的增删查改及其它接口 二 list模
  • 【深入理解C++】三种继承方式、函数遮蔽

    文章目录 1 三种继承方式 2 函数遮蔽 1 三种继承方式 继承可以让子类拥有父类的所有成员 成员变量和成员函数 public继承 父类 继承方式 子类 public public public protected public prote
  • Ideal必备宝藏插件

    Ideal必备宝藏插件 1 CodeGlance 代码迷你缩放图插件 方便拉到对应的代码 2 Codota代码提示工具 3 Alibaba Java Coding Guidelines 阿里巴巴的编码规约检查插件 4 Lombok 实体类插
  • UmiJS学习

    UmiJS4学习笔记 起步 官网学习 https umijs org 开发环境 Umi js 需要使用 Node js来进行开发 因此请先确保电脑已经安装了 Node js 且版本在 14 以上 安装pnpm npm install pnp
  • mysql Using where; Using join buffer (Block Nested Loop)

    SELECT FROM t1 INNER JOIN t2 ON t1 id t2 CODE sql执行很慢 explain 发现Using join buffer Block Nested Loop 产生的原因有可能是 JOIN 的字段类型
  • JavaScript-MD5加密

    代码 或者 示例 var hash md5 value 2063c1608d6e0baf80249c42e2be5804 var hash md5 111111 96e79218965eb72c92a54
  • 精通CSS-添加样式

    精通CSS 添加样式 一 CSS 选择符 1 子选择符与同辈选择符 2 通用选择符 3 属性选择符 4 伪元素 5 伪类 6 结构化伪类 7 表单伪类 二 层叠 三 特殊性 1 利用层叠次序 四 继承 五 为文档应用样式 1 link 与
  • macOS下更改默认的Python版本

    本机环境 macOS11 6 macOS默认已经安装了python 只不过版本是Python2 7 其相比Python 3缺少了很多特性 而且速度也比Python 3慢 因此建议大家安装Python 3 python download 这里
  • 国内镜像下载Android10源码并编译(实测)

    1 安装ubuntu 不会的百度 一大把 2 安装编译环境必要软件 sudo apt get install git core gnupg flex bison build essential zip curl zlib1g dev gcc
  • unity 中带贴图以及动画的模型文件转为 lowpoly 风格的方法

    本篇讲述的是使用代码来修改的方法 其实unity已经给我们提供了设置的方法 Normals选择Calculate Smoothing Angle调整为0即可 这里的内容是在这篇文章的基础上进行的修改 https blog csdn net
  • winget安装提示:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd

    问题 当我们使用 Winget 包管理器安装软件时总是提示以下错误 执行此命令时发生意外错误 InternetOpenUrl failed 0x80072efd unknown error 解决方法 DNS是一种将网址转化为IP地址的重要工
  • 蓝桥杯C/C++ 基础练习 矩阵乘法 C语言

    题目 思路分析 题目要求输入N阶矩阵 可以动态定义二维数组A N N 来存储该矩阵A 由于矩阵A的M次幂也是N阶矩阵 那么需要定义另一个数组B N N 来存储该矩阵 在继续分析之前需要明确矩阵的乘法规则 举例如下图图1 不清楚者可自行百度
  • Rockchip

    1 Graphics介绍 1 1 使用X11 Graphics Xserver 是在常规桌面 Linux 平台上使用的显示系统 Rockchip 有一个定制的 Xserver 可以实现 glamor 2D acceleration Xser
  • 《面向对象程序设计》授课计划2022-2023-02

    面向对象程序设计授课计划 可参照此计划 在课前预习 待完善 授课内容 课本章节 PPT 课堂 PPT 课本配套 一 课程介绍 课程要求 编程语言 面向对象简介 C 简介 实验环境 CH1 OOP00 BeforeTheClassStarts
  • BP神经网络公式推导及实现(MNIST)

    BP神经网络的基础介绍见 http blog csdn net fengbingchun article details 50274471 这里主要以公式推导为主 BP神经网络又称为误差反向传播网络 其结构如下图 这种网络实质是一种前向无反
  • Journal of Proteome Research

    题目 Improving Silkworm Genome Annotation Using a Proteogenomics Approach 期刊 Journal of Proteome Research 发表时间 June 28 201
  • 数组根据某个条件筛选出符合的数据,生成一个新的数组

    前言 使用vue结构 把一个数组重新组合 一 数组重新组合 得到符合条件的新的数组 代码如下 示例 menuList icon el icon search index 11 title 协议管理 subs index homes agre
  • 测试四:jmeter使用过程遇到的问题

    1 查看结果树的条数设置 如果用1000个并发量测20个接口则响应的数据量太多想要查看到每一个的响应树结果 结果只显示了一部分 发现可以通过修改配置文件来增加响应的条数 全局搜索并修改配置文件为view results max result
  • 均值已知检验方差_方差分析怎么做?用3个假设来验证流程

    点击上方 中国统计网 订阅我吧 背 景 假如你们现在针对用户提出了三种提高客单价的策略A B C 现在想看一下这三种策略最后对提高客单价的效果有什么不同 那我们怎么才能知道这三种策略效果有什么不同 最简单的方法就是做一个实验 我们可以随机挑
  • 目标检测中的标签分配策略

    介绍 label assignment 主要指的是检测器在训练阶段区分正负样本 并给feature map 不同位置匹配合适的监督目标 用于计算损失 进而完成梯度更新 合适的分配策略对于模型来说至关重要 在一定程度上决定了模型的性能 分类