GFLv2 论文学习

1. 解决了什么问题?

预测定位质量对于目标检测很重要,在 NMS 时它能提供准确的得分排序,提高模型的表现。现有方法都是通过分类或回归的卷积特征来预测定位质量得分。

2. 提出了什么方法?

受到 GFLv1 的 general distribution 启发,本文提出基于边框的 { l , r , t , b } \lbrace l,r,t,b\rbrace {l,r,t,b}四个参数的分布来学习定位质量预测。边框分布如果是尖锐的,则其定位质量就高。边框分布的统计和真实定位质量之间具有紧密的关系,于是作者设计了 distribution-guided quality predictor,它学习每条预测边离散的概率分布。下图(b) 反映的是预测框 general distribution 的最大值(四条边的均值)和真实定位质量(IoU)之间的关系。

在这里插入图片描述

2.1 GFLv1

提出了分类-IoU 联合表征,减轻定位质量预测和分类预测在训练和推理时不一致的问题。给定一个类别为 c ∈ { 1 , 2 , . . . , m } c\in \lbrace 1,2,...,m\rbrace c{1,2,...,m}的目标,GFLv1 使用分类分支输出类别与 IoU 的联合表征 J = [ J 1 , J 2 , . . . , J m ] \mathbf{J}=\left[J_1,J_2,...,J_m\right] J=[J1,J2,...,Jm],满足:
J i = { IoU ( b p r e d , b g t ) , if i = c 0 , otherwise J_i = \left\{ \begin{array}{ll} \text{IoU}(b_{pred}, b_{gt}),\quad\text{if}\quad i=c \\ 0,\quad\quad\quad\quad\quad\quad \text{otherwise} \end{array} \right. Ji={IoU(bpred,bgt),ifi=c0,otherwise

边框表征的 General Distribution

现有的检测器通常使用 Dirac Delta 分布建模边框回归问题: y = ∫ − ∞ + ∞ δ ( x − y ) x d x y=\int_{-\infty}^{+\infty}\delta(x-y)x \mathop{dx} y=+δ(xy)xdx。GFLv1 提出的 General Distribution P ( x ) P(x) P(x)将每条边表示为 y ^ = ∫ − ∞ + ∞ P ( x ) x d x = ∫ y 0 y n P ( x ) x d x \hat{y}=\int_{-\infty}^{+\infty}P(x)x \mathop{dx}=\int_{y_0}^{y_n}P(x)x \mathop{dx} y^=+P(x)xdx=y0ynP(x)xdx。再从连续域转化为离散域 [ y 0 , y 1 , . . . , y i , y i + 1 , . . . , y n − 1 , y n ] \left[y_0,y_1,...,y_i,y_{i+1},...,y_{n-1},y_n \right] [y0,y1,...,yi,yi+1,...,yn1,yn],等间距为 Δ = y i + 1 − y i , ∀ i ∈ { 0 , 1 , . . . , n − 1 } \Delta=y_{i+1}-y_i,\forall i\in \lbrace0,1,...,n-1\rbrace Δ=yi+1yi,i{0,1,...,n1}。根据离散分布的性质 ∑ i = 0 n P ( y i ) = 1 \sum_{i=0}^n P(y_i)=1 i=0nP(yi)=1 y ^ \hat{y} y^的预测回归值为:

y ^ = ∑ i = 0 n P ( y i ) y i \hat{y}=\sum_{i=0}^n P(y_i)y_i y^=i=0nP(yi)yi
如上图© 和 (d) 所示,与 Dirac Delta 分布相比,General Distribution 能更好地反映边框的预测质量。

2.2 GFLv2

Decomposed Classification-IoU Representation

尽管联合表征解决了目标分类和定位质量预测在训练和推理时不一致的问题,但它仍有缺陷,因为只用了分类分支预测的联合表征。本文方法则直接利用分类分支( C \mathbf{C} C)和回归分支( I I I)的信息:
J = C × I \mathbf{J}=\mathbf{C}\times I J=C×I

C = [ C 1 , C 2 , . . . , C m ] , C i ∈ [ 0 , 1 ] \mathbf{C}=\left[C_1,C_2,...,C_m\right],C_i\in \left[0,1\right] C=[C1,C2,...,Cm],Ci[0,1]表示 m m m个类别的分类表征。 I ∈ [ 0 , 1 ] I\in \left[0,1\right] I[0,1]是一个标量,表示 IoU 表征。

尽管 J \mathbf{J} J拆分为两个部分,但在训练和推理时只用 J \mathbf{J} J C \mathbf{C} C来自于分类分支, I I I来自于回归分支的 DGQP。训练时 J \mathbf{J} J用 QFL 进行监督,推理时直接作为 NMS 的得分使用。

DGQP

DGQP 将学到的 general distribution P \mathbf{P} P输入一个子网络,得到预测的 IoU 标量 I I I,辅助生成 J \mathbf{J} J。用位置到目标框四条边的相对偏移量作为回归目标,由 general distribution 表示。用 { l , r , t , b } \lbrace l,r,t,b\rbrace {l,r,t,b}表示四条边,用 P w = [ P w ( y 0 ) , P w ( y 1 ) , . . . , P w ( y n ) ] , w ∈ { l , r , t , b } \mathbf{P}^w=\left[P^w(y_0),P^w(y_1),...,P^w(y_n)\right], w\in \lbrace l,r,t,b\rbrace Pw=[Pw(y0),Pw(y1),...,Pw(yn)],w{l,r,t,b}表示各边的离散概率。

如上图所示,学到的分布与最终检测框的质量是高度相关的,可以用一些统计数字表示 general distribution 的平坦程度。这些统计特征与定位质量高度相关,能降低训练的难度、提升预测的质量。从每个分布向量 P w \mathbf{P}^w Pw中选取 top-k 个值及其均值,将它们 concat 产生基础统计特征 F ∈ R 4 ( k + 1 ) \mathbf{F}\in \mathbb{R}^{4(k+1)} FR4(k+1)

F = Concat ( { Topkm ( P w ) ∣ w ∈ { l , r , t , b } } ) \mathbf{F}=\text{Concat}(\lbrace \text{Topkm}(\mathbf{P}^w) | w\in \lbrace l,r,t,b\rbrace\rbrace) F=Concat({Topkm(Pw)w{l,r,t,b}})

Topkm ( ⋅ ) \text{Topkm}(\cdot) Topkm()表示 top-k 个值和均值的联合操作。 Concat ( ⋅ ) \text{Concat}(\cdot) Concat()表示通道 concat。选取 top-k 个值和均值作为输入统计有两个好处:

  • 因为 P w \mathbf{P}^w Pw是固定的, ∑ i = 0 n P w ( y i ) = 1 \sum_{i=0}^n P^w(y_i)=1 i=0nPw(yi)=1,top-k 个值和均值基本上反映了分布的平坦程度:值越大,分布越尖锐;值越小,分布越平坦。
  • 如下图,top-k 值和均值能让统计特征在分布域内,对相对偏移量不敏感,表征就不易受目标尺度的影响,更加鲁棒。

[图片]

将 general distribution 的统计特征 F \mathbf{F} F作为输入,作者设计了一个微型网络 F ( ⋅ ) \mathcal{F}(\cdot) F()来预测 IoU 质量得分。该网络有 2 个全连接层,后面分别跟着 ReLU \text{ReLU} ReLU Sigmoid \text{Sigmoid} Sigmoid I I I的计算如下:

I = F ( F ) = σ ( W 2 δ ( W 1 F ) ) I=\mathcal{F}(\mathbf{F})=\sigma(\mathbf{W}_2 \delta(\mathbf{W}_1 \mathbf{F})) I=F(F)=σ(W2δ(W1F))

δ , σ \delta,\sigma δ,σ分别是 ReLU \text{ReLU} ReLU Sigmoid \text{Sigmoid} Sigmoid函数。 W 1 ∈ R p × 4 ( k + 1 ) \mathbf{W}_1\in \mathbb{R}^{p\times 4(k+1)} W1Rp×4(k+1) W 2 ∈ R 1 × p \mathbf{W}_2 \in \mathbb{R}^{1\times p} W2R1×p。实验时, k = 4 k=4 k=4表示 top-k 的参数, p = 64 p=64 p=64是隐藏层的通道数。

GFLv2 的整体结构如下图所示。DGQP 非常轻量。它只增加了几千个参数,对于模型 ResNet-50 和 FPN,DGQP 的参数量只占 ∼ 0.003 % \sim0.003\% 0.003%,不会降低训练和推理速度。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/8217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端开发实习总结参考范文(合集)

▼前端开发实习总结篇一 今天就简单聊聊上面的StrutsSpringHibernate吧。 Struts 代表:表示层;Spring代表:业务逻辑层;Hibernate则代表持久层。他们是目前在Java Web编程开发中用得最多的框架,其实这样区分是为了适应软件开发过程中各个分工…

Shell输出帮助手册

代码: 帮助手册雏形 function help(){echo -e "Help manual":echo -e " -h. -- help View the help manual"echo -e " install Installation"echo -e " uninstall Uninstall" }case "$1&qu…

【stable diffusion】保姆级入门课程05-Stable diffusion(SD)图生图-涂鸦重绘的用法

1.什么是涂鸦重绘 涂鸦重绘又称手涂蒙版。 简单来说,局部重绘手涂蒙版 就是涂鸦局部重绘的结合体,这个功能的出现是为了解决用户不想改变整张图片的情况下,对多个元素进行修改。 功能支持: 1.支持蒙版功能 2.笔刷决定绘制的元素…

基于Java+SpringBoot+Vue前后端分离摄影分享网站平台系统

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

用Python实战,畅享音乐海洋,一键采集你喜爱的音乐!

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.8 解释器 Pycharm 编辑器 模块使用: requests >>> pip install requests re 第三方模块安装方法: win R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速…

GitHub发布Copilot Chat公测版,助力开发者编写代码

近日微软GitHub推出了Copilot Chat 的公开测试版,而这个版本不仅仅局限于“代码缺省补充”与“代码纠错”,还能直接基于上文,自动联想出后文。 据了解,该AI工具主要用来助力开发者编写代码,可直接集成到开发者的桌面 …

GB/T 25000.51解读——软件产品的易用性怎么测?

GB/T 25000.51-2016《软件产品质量要求和测试细则》是申请软件检测CNAS认可一定会用到的一部国家标准。在前面的文章中,我们为大家整体介绍了GB/T 25000.51-2016《软件产品质量要求和测试细则》国家标准的结构和所涵盖的内容以及对软件产品的八大质量特性中的功能性…

安全初级:字符编码

字符编码 字符编码:是一种映射规则,根据映射规则将字符映射成其他形式的数据在计算机中存储和传输。 常用的编码 编码制定时间作用ASCII1967表示英语及西欧语言GB23121980国家简体中文字符集,兼容ASCIIUnicode1991国际标准化组织统一标准字…

自定义MVC

目录 一.什么是MVC 1.1.三层架构和MVC的区别 二.自定义MVC工作原理图 三.自定义mvc实现 3.1 创建web工程 3.2 中央处理器 3.3 Action接口定义 3.4 实现子控制器 3.5 完善中央控制器 3.5.1 请求分发功能 3.5.2 使用配置文件配置action 3.5.3 请求参数处理 1. 定义接…

DTH11 温湿度模块

文章目录 前言一、DTH11 模块介绍二、设备树设置三、驱动程序四、测试程序五、上机测试及效果总结 前言 DHT11 是一款可测量 温度 和 湿度 的传感器。比如市面上一些空气加湿器,会测量空气中湿度,再根据测量结果决定是否继续加湿。 一、DTH11 模块介绍 …

iOS 单元测试之常用框架 OCMock 详解

目录 前言: 一、单元测试 1.1 单元测试的必要性 1.2 单元测试的目的 - 约束条件是否通过形式参数来传送。 1.3 单元测试依赖的两个主要框架 二、OCMock 的集成与使用 2.1 OCMock 的集成方式 2.2 OCMock 的使用方法 2.3 mock 使用限制 前言: OC…

【unity】ShaderGraph学习笔记

【unity】ShaderGraph学习笔记 创建ShaderGraph 创建URP的shaderGraph文件 在Project面板里Create→ShaderGraph→URP→这里主要有几个选项 Lit Shader Graph:有光照三维着色器 Unlit Shader Graph:无光照三维着色器 Sprite Custom Lit Shader Gra…

CNN(卷积神经网络)的实现过程详解

概要 在图像处理领域,CNN(卷积神经网络)处于绝对统治地位,但对于CNN具体是如何用神经网络实现的,能找到的介绍要么是一大堆数学公式,要么是大段晦涩的文字说明,读起来很是辛苦,想写好一片完整的而且有深度的…

【开源项目】低代码数据可视化开发平台-Datav

Datav 基本介绍 Datav是一个Vue3搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求。 它的技术栈为:Vue3 TypeScript4 Vite2 ECharts5 Axios Pinia2 在线预览 账号: admin 密码: 123123预…

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建

Java版知识付费-轻松拥有知识付费平台 多种直播形式,全面满足直播场景需求 公开课、小班课、独立直播间等类型,满足讲师个性化直播场景需求;低延迟、双向视频,亲密互动,无论是互动、答疑,还是打赏、带货、…

RocketMq 事务消息原理

Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 ![6 基本介绍 1.MATLAB实现TCN-BiGRU时间卷积双向门控循…

实现基于UDP简易的英汉词典

文章目录 实现目标认识相关接口socketbzerobindrecvfromsendto 实现思路和注意事项完整代码Server.hppServer.ccClient.hppClient.cc 运行效果END 实现目标 实现一个服务端和一个客户端,客户端负责发送一个单词,服务端接收到后将翻译后的结果返回发送到…

Android 之 动画合集之帧动画

本节引言: 从本节开始我们来探究Android中的动画,毕竟在APP中添加上一些动画,会让我们的应用变得 很炫,比如最简单的关开Activity,当然自定义控件动画肯定必不可少啦~而Android中的动画 分为三大类,逐帧动画…

了解uuid

目录 一.认识 UUID 二.UUID 会耗尽吗 三.UUID 会重复吗 四.UUID 的版本 五.UUID的应用 六.java 如何生成UUID 一.认识 UUID uuid是经过特定的算法得到的. UUID 是 16 字节 128 位长的数字,通常以 36 字节的字符串表示,示例如下: 3F2…