GFLV2:边界框不确定性的进一步融合,提点神器 | CVPR 2021
GFLV2基于GFLV1的bbox分布进行改进,将分布的统计信息融入到定位质量估计中,整体思想十分创新和完备,从实验结果来看,效果还是挺不错的
来源:晓飞的算法工程笔记 公众号
论文: Generalized Focal Loss V2: Learning Reliable Localization Quality Estimationfor Dense Object Detection

Introduction

GFL系列方法将bbox的四个值预测转化为四个分布预测,能够在输出预测值的同时根据分布判断预测值的预测可靠性。如图1c和图1d所示,高可靠性的预测结果的分布较为集中,低可靠性的预测结果的分布则较为分散。另外,论文将GFL的每个bbox的四个分布的最大值的均值与实际的IoU进行了对比,发现有较高的关联性,表明GFL的分布预测效果还是不错的。

在当前的目标检测算法中,定位质量(Localization Quality Estimation, LQE)越来越得到重视。LQE不仅能够帮助留下高质量的预测框,还可以避免NMS的误消除。之前的方法大都从卷积特征直接进行LQE,如图2左所示,主要是特征采用上做文章,但实际上这些采样的特征更多是跟分类相关的。如前面所述,GFL预测的bbox分布信息与实际IoU有较强的关联性,于是论文将其融入LQE中,提出了GFLV2,如图2右所示。
论文的主要贡献如下:
- 首次将bbox分布信息融入到定位质量预测中进行端到端的目标检测。
- GFLV2整体架构轻量且消耗极少,能够嵌入到其它框架中带了~2AP的提升。
- GFLV2在COCO中达到了53.3AP。
Generalized Focal Loss V1
讲GFLV2前先概括地总结一下GFLV1,主要有两点,分别是Classification-IoU Joint Representation以及General Distribution of Bounding Box Representation,具体可以看Generalized Focal Loss:Focal loss魔改以及预测框概率分布,保涨点 | NeurIPS 2020。
Classification-IoU Joint Representation
这一块是GFLV1的其中一个核心,初衷是将解决训练和推理过程定位质量预测和分类预测不一致的问题(训练时分开训练,推理时却合并输出),简单点说就是直接将分类分支的输出改为IoU和分类的合并结果\(J=[J_1,J_2,\cdots,J_m]\):

公式1将原本的离散的训练目标转成了连续的目标,为了更好的进行训练,论文也将原本用于离散值的Focal loss修改成用于连续值的Focal loss。
General Distribution of Bounding Box Representation
GFLV1的另一个核心是将直接预测bbox的四个值改为预测bbox的四个分布\(P(x)\),bbox的每条边的预测值可通过预设区域\([y_0, y_n]\)的积分\(\hat{y}=\int^{+\infty}_{-\infty}P(x)xdx=\int^{y_n}_{y_0}P(x)xdx\)获得。为了完成分布的预测,将网络的输出变为\(n\)个离散值,给定离散分布特性\(\sum^n_{i=0}P(y_i)=1\),回归值\(\hat{y}\)的计算为:

相对于直接预测值,分布\(P(x)\)还能反应预测值的可靠性。为了网络能够更好地学习预测的分布,论文还提出了针对分布学习的损失函数进行引导。
Generalized Focal Loss V2

Decomposed Classification-IoU Representation
GFLV1虽然解决了训练和推理过程定位质量预测和分类预测不一致的问题,但仅用分类分支进行联合概率的预测依然有其局限性,所以GFLV2直接融合了分类\(C\)和回归\(I\)分支:

\(C=[C_1,C_2,\cdots,C_m]\),\(C_i\in [0, 1]\)为\(m\)个类别的分类特征,\(I\in[0,1]\)为IoU特征的标量。尽管\(J\)被分解成了两个部分,但由于在训练和推理阶段都直接使用,依然可以避免不一致的问题。在计算时,先将分类分支的\(C\)和回归分支经过Distribution-Guided Quality Predictor(DGQP)得到的\(I\)进行结合,训练时使用GFLV1提出的QFL进行监督训练,推理时直接将联合结果用于NMS中。
Distribution-Guided Quality Predictor
DGQP是GFLV2的核心组件,通过小的子网将预测的分布\(P\)的统计信息转化为IoU标量\(I\),用于生成分类-IoU联合特征。跟GFLV1一样,将每条边的相对距离\(\{l,r,t,b\}\)作为回归目标,每个bbox生成对应四个离散的分布\(P^w=[P^w(y_0),P^w(y_1),\cdots,P^w(y_n)]\),\(w\in {l,r,t,b}\)。如图1所示,分布\(P\)的平坦情况能够反映bbox的质量,在实际计算中,论文选择概率分布\(P^w\)的Top-k值及其均值,concatenate后作为基础的统计特征\(F\in\mathbb{R}^{4(k+1)}\):

选择Top-k值和均值有两个好处:
- 由于\(P^w\)的和固定为1,Top-k值和均值能够更好地反映分布的平坦情况,比如值越大越尖,值越小则越平。

- Top-k值和均值能够使得统计特征对分布区域上的相对偏移不敏感,生成与目标尺寸无关的鲁棒特征。
给定统计特征\(F\)作为输入,使用小型子网\(\mathcal{F}(\cdot)\)进行IoU质量预测,子网主要由两层全连接层构成,分别接ReLU和Sigmoid激活,IoU标量\(I\)的计算为:

\(W_1\in\mathbb{R}^{p\times 4(k+1)}\),\(W_1\in\mathbb{R}^{1\times p}\),\(p\)为channel维度。由于DGQP的结构十分轻量,所以几乎不会对原本的训练和推理造成过多的额外开销。

论文也尝试用DFQP生成额外的特征与分类特征进行contatenate,然后再后续操作,但效果没有直接融合好,具体可以看看实验部分。
Experiment

从整体结果来看,GFLV2在准确率和速度上都有不错的表现,论文还有很多丰富的对比实验,有兴趣的可以去看看原文。
Conclusion
GFLV2基于GFLV1的bbox分布进行改进,将分布的统计信息融入到定位质量估计中,整体思想十分创新和完备,从实验结果来看,效果还是挺不错的。
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

GFLV2:边界框不确定性的进一步融合,提点神器 | CVPR 2021的更多相关文章
- OpenCV 学习笔记03 边界框、最小矩形区域和最小闭圆的轮廓
本节代码使用的opencv-python 4.0.1,numpy 1.15.4 + mkl 使用图片为 Mjolnir_Round_Car_Magnet_300x300.jpg 代码如下: impor ...
- 输出预测边界框,NMS非极大值抑制
我们预测阶段时: 生成多个锚框 每个锚框预测类别和偏移量 但是,当同一个目标上可能输出较多的相似的预测边界框.我们可以移除相似的预测边界框.——NMS(非极大值抑制). 对于一个预测边界框B,模型会计 ...
- 3D集合图元:最小边界框/包围盒(boundingbox)
对于2D边界框的应用时比较广泛地,它为一个简单匹配建立了很小的计算规则,3D模型的boundingbox则比较困难,计算代价较大.对于PCL库的使用则降低了计算难度,三维数值化降低了建模过程,可以使用 ...
- [深度学习] imgaug边界框增强笔记
imgaug边界框增强笔记主要是讲述基于imgaug库对目标检测图像的边界框进行图像增强.本文需要掌握imgaug库的基本使用,imgaug库的基本使用见[深度学习] imgaug库使用笔记. 文章目 ...
- NX二次开发-UFUN求对象的最大边界框UF_MODL_ask_bounding_box
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...
- C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例
C# 动态生成word文档 本文以一个简单的小例子,简述利用C#语言开发word表格相关的知识,仅供学习分享使用,如有不足之处,还请指正. 在工程中引用word的动态库 在项目中,点击项目名称右键-- ...
- [提权]域内提权神器 MS14-068 完整EXP
可以让任何域内用户提升为域管理员 c:\python27\python.exe ms14-068.py -u k8test3@k8.local -p k8team!@# -s S-1-5-2 ...
- mysql提权神器
java -jar udf.jar 127.0.0.1 root 123456 [32/64]
- Java 提效神器 Stream 的冷门技巧
Stream 使用这个方法创建一个 Stream 对象. new ArrayList<>().stream() Filter 过滤器,里面传递一个函数,这个函数的返回结果如果为 true ...
- SpringBoot--Easycode、mybatisX插件生成entity,controller,service,dao,mapper IDEA版 项目提效神器
一.介绍 Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大. MybatisX 是一款基于 ...
随机推荐
- git 添加子模块
参考:https://www.jianshu.com/p/10ae453701ed 问题:如果一个子模块的分支不是最新的该怎么处理? 方法:在主仓库内使用 cd 命令切换到子模块的仓库,使用 git ...
- Programming Abstractions in C阅读笔记:p293-p302
<Programming Abstractions in C>学习第73天,p293-p302总结,总计10页. 一.技术总结 1.时间复杂度 (1)quadratic time(二次时间 ...
- Rock Pi开发笔记(三):Rock Pi 4B plus(基于瑞星微RK3399)板子硬件资源介绍
前言 上一篇,概览了整个的rock pi大致系列,我们开始定位为RK3399做评估,入手RK3399,对基本的外设进行解说. 板载外设 USB3.0 × 2 USB2.0 × 2 千 ...
- java+mysql学生信息管理系统
实现:mysql+eclipse(idea设置之后也可运行)+jdk8 功能: 管理员:管理登+管理员注册 学生:添加学生信息+删除学生信息+修改学生信息+查询学生信息+学生列表展示 界面展示: 详情 ...
- flutter3-winchat桌面端聊天实例|Flutter3+Dart3+Getx仿微信Exe程序
首发原创flutter3+bitsdojo_window+getx客户端仿微信exe聊天Flutter-WinChat. flutter3-dart3-winchat 基于flutter3+dart3 ...
- BIM+物联网,打开数字孪生世界之门
建筑行业一直在寻求创新和提高效率的方法,以满足日益复杂和迫切的建筑需求.近年来,数字孪生和物联网等新兴技术的崛起为建筑信息模型(BIM)应用带来了全新的可能性.数字孪生技术通过将实体建筑与其虚拟模型连 ...
- CUDA指针数组Kernel函数
技术背景 在前面的一篇文章中,我们介绍了在C++中使用指针数组的方式实现的一个不规则的二维数组.那么如果我们希望可以在CUDA中也能够使用到这种类似形式的不规则的数组,有没有办法可以直接实现呢?可能过 ...
- 深入浅出Java多线程(十):CAS
引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十篇内容:CAS.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在多线程编程中,对共享资源的安全访问和同步 ...
- vue-simple-uploader 上传组件 用js调用 打开窗口上传
为什么有这个需求 需要弹框 让用户填些数据后,再进行上传,所以不能先点击上传按钮 重点1:添加id <uploader-btn :single="true" id=" ...
- Postman全网最详细使用教程
Postman全网最详细使用教程 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「postman」, 获取postman插件和安装程序: http://www.jav ...