| |
|
开发:
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 分数高的但是质量分数没有负样本随机出来的高) 所以需要解决分类分支以及表达回归质量分支的统一性。 ideavarifocal 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,具体如下: ? ?一个不对称的方法损失函数,对于负样本就是正常的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后处理的问题剖析的很明确,这里边应该还有可以做的东西。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |