IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> VarifocalNet: An IoU-aware Dense Object Detector(2021CVPR) -> 正文阅读

[游戏开发]VarifocalNet: An IoU-aware Dense Object Detector(2021CVPR)

Motivation

之前的目标检测中,在推理阶段使用NMS使用分类分数作为置信度对bbox排序是有问题的,因为分类分数与定位质量没有直接联系。

后来基于这个问题,有许多解决办法:

1. 比如IOU net 中在回归分支中加了一个预测iou的分数,通过预测iou主导,cls分数作为辅助作为NMS的选取样本的依据。

2. iou -aware retina net 的话也是为了解决这个问题,但是他是直接在分类旁边加了一个iou预测分支。分类分数*iou分数作为最终置信度

2.Fcos 还是这个Centerness就是更加不一样了,就是单纯训练了一个中心度的玩意,认为上下左右回归的偏差越大这个框可能质量越不好,拿分类和中心度相乘作为nms的指标。

但是实际上,上述做法其实都还是存在问题。(这个是GFL中的解释,两篇论文的观点一致)

1. 用法问题:就是因为分类分支与这些表示回归质量的分支是独立的,虽然说你稍微解决了分类和回归之间的差距,但是你表达回归质量和分类还是各自训各自的,你最后又乘到一块。

2.?对象不一致。就是推理阶段的话你使用分类和质量相乘,但是在训练阶段你没有训练负样本的质量,所以推理的时候那些负样本可能会出现极高的分数,相乘之后说不定压过真正好的样本(score 分数高的但是质量分数没有负样本随机出来的高)

所以需要解决分类分支以及表达回归质量分支的统一性。

idea

varifocal Loss

作者首先做了一堆实验去验证上述问题,使用FCOS+ATSS作为baseline,是作者核心的实验,gt_就表示在推理过程中,将对应的预测值变成真实值。

1. without/ctr ,with/ctr 只使用是否使用centerness的AP为38.5和39.2

2. gt_ctr:使用真实centerness代替预测的centerness,AP 39.2---->41.1

3. gt_ctr_iou:使用回归的得到bbox与gt的iou值代替预测的iou值,AP 39.2--->43.5

上述三个可以看的出来,加入回归质量预测是有用的,但是影响精度不多,即使你有真实表示质量预测的centerness或者iou值,也是在38.8到43.5的5个点左右的涨幅,另一个就是iou表征回归质量明显比centerness要好。

4. gt_bbox:我个人理解了一下,推理阶段,NMS之前,就是说把gt box加入到proposals之中,对应的分类分数就是网络生成的。也就是说在茫茫样本中存在有gt box,但是他的分数不一定很高,nms过程中可能会被筛掉。结果就是AP达到56.1。这就是分类和回归的固有问题,分类分数不代表回归质量,然后你加入了centerness也就是提升到56.3,这也说明centerness并不是很行。

5. gt_cls 就说gt对应位置的一坨样本分类分数为1,AP43.1。这个确实提升不多,为啥呢,因为你gt周围的这些样本分数都是1,你nms不知道选哪个是最好的。这个时候centerness就起了作用了,中心度越高就是样本的质量越好,AP直接达到58.1。

6. 令人惊讶的是,如果你将分类分数换成回归的box与gt的iou,也就是分类分数表征回归置信度的时候,AP直接高达74.7。这个时候你在用center ness发现不增反降,因为这个时候center ness再乘上去就没什么意义了,因为你分类的分数已经关联的回归质量,不需要centerness了。这也印证了GFL中的观点。

总结来说,NMS需要的两个指标,第一个就是分类情况表示的分类分数,第二个就是预测iou 或者centerness这种回归置信度。能把两种融合起来表示Iou-aware Classification Score (IACS)才是NMS这个算法的在目标检测中的上界。

然后就是老样子,我们的分类的标签就直接变成了预测iou的分数,label smooth的方法,因为focal loss只能针对标签为0 or 1的离散值标签,现在是0~1连续的,所以就创造了varifocal loss,具体如下:

label smooth 回归预测iou分数来代替分类分数

?

?一个不对称的方法损失函数,对于负样本就是正常的focal loss 降低他的易负样本的权重,但是对于正样本来说就是正常的bce loss,多了一个iou的权重。主要特点就是正负样本的非对称加权,突出正样本的主样本。

?实验结果不敢苟同,就提升了一点,而且有一个问题是对比可能不是很公平,因为GFL里边没有用DCN(deformable convolution),所以如果GFL中用了DCN的话也不知道谁比谁好。

StarShaped Box Feature Representation?

就是先进行一个粗回归,然后得到一个边框,在边框的角点以及中心点上下左右采样点,一共九个来然后使用deformable convolution来卷一下就表示这个bbox了,但是采样位置确实是有点潦草。

Bounding Box Refinement

类似于这个Border net 中的思维一样,先粗回归,得到边界,边界信息加强再fine 边界。具体就是拿上边的star shape 采样点的信息再预测一个值,把回归的值相乘,并没有特别的大的创新感觉。

网络架构如下:

?Loss

分类就是Varifocal loss,两次边界的iou损失。

?Experiments

各个模块的涨点

?Sota实验

?Thought

感觉像是几个论文的整合,GFL+BorderNet+DCN?但是第一个实验做的特别好,对于这个nms后处理的问题剖析的很明确,这里边应该还有可以做的东西。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 09:00:48  更:2022-04-30 09:01:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 1:07:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码