【检测】Prime Sample Attention in Object Detection-程序员宅基地

技术标签: 目标检测  

Prime Sample Attention in Object Detection
作者:CUHK SenseTime Joint Lab, NTU

在目标检测中的一个普遍认知就是应该平等的对待每个sample和目标。这篇文章研究了不同的样本对于最终结果的影响。作者认为在每个minibatch中的样本既不是独立的也不是同样重要的,所以一个平均的结果并不能意味是一个更高的mAP。作者提出了Prime Sample的概念并且提出了PISA的结果,主要关注这些样本的训练过程,实验证明关注prime sample而不是hard sample对于训练来说更加有效。在MSCOCO数据集上,PISA表现的比random sampling和hard mining超过了1个百分点。

现在的目标检测办法主要用的是region-based 方法。因此region sample的选择对于检测结果来说是很重要的,然而很多的sample位于图像的背景区域,音系简单的选择所有sample或者随意选择一些是一种不合理的办法。

已经有一些研究表明主要关注一些困难的sample是一个比较有效的办法。代表的有OHEM(?)和Focal Loss。OHEM主要选择hard samples比如说有着高的loss值。Focal Loss是给loss function换了一种形式来强调difficult samples。

然而,什么才是最重要的sample呢?

这项研究提出了2个需要被重点考虑的方面:

  1. Sample不应该是独立的或者是相同重要的。本文的研究西安市,应该重点关注了那些和groundtruth有着高iou的samples。
  2. 分类和定位是相关联的。尤其是,被很好定位的samples需要以高的confidences来分类(?)

文章重点:

  1. 提出了PISA
  2. 定义了IoU-HLR
  3. 加入了classification-aware regression loss

Related Work:
Improvement of NMS with localization confidence
IoU-Net并不是完全用分类结果来做NMS,定位结果也需要。 除了传统算法中的classification和regression分支,它引入了一个其他的分支来预测sample的IoU。并且用这个预测的IoU(localization confident) 来排序所有的sample。本文和IoU-Net的主要不同有:
本文是联系两个分支而不是开发出新一个。
本文的目标不是提升NMS。 而是调查sample的重要性并且重点关注prime samples。

Sampling strategies in object detection
在目标检测中最广泛被采用的sampling scheme是random sampling。因为负样本总是比正样本多很多,所以正样本负样本见一个固定的比例可能会被设置。(?)

还有的想法是选择有着高的loss值的hard samples,但是,hard mining的目的是增加classifier的的表现能力而不是探索检测和分类的差别。

Prime Samples

mAP:
mAP的工作方式反映了对于一个目标检测器来说哪个sample更重要。
所有的bounding boxes中IoU最高的那个被认为是最重要的,并且直接影响了recall。
在对于不同物体的全部最高的IoU的bounding box中,有着最高IoU的那个更加重要

IoU Hierarchical Local Rank (IoU-HLR):
本文提出了IoU-HLR来排序在一个minibatch中sample的重要性, IoU-HLR是基于最终的sample的定位计算的,而不是regression前的bounding box的坐标,因为mAP是基于regressed sample的位置衡量的。

如下图所示,首先将所有的sample根据他们最近的objects分成不同组,然后在每个组中,根据他们的IoU降序排序得到了LoU Local Rank(IoU-LR)。然后所有的top1 LoU-LR被选出来了,然后是top2,3。。。等等。这两步的分类结果会形成在一个batch中所有样本的一个线性的命令,所以称它IoU-HLR。

在这里插入图片描述
Learn Detectors via Prime Sample Attention

如果我们只有top IoU-HLR samples进行训练,就像OHEM做的那样,mAP就会下降的很厉害因为大多数prime sample都是很容易训练的所以不能提供足够的梯度来优化classifier(为什么只是classifier?)

所以本文提出了Prime Sample Attention,一个简单有效并且可以更关注于prime samples。 PISA包括2个部分,Importancebased Sample Reweighting (ISR) and Classification Aware
Regression Loss (CARL)。 在PISA的作用下,训练进程更加偏向于prime samples而被平均对待的samples。 首先,prime sample的loss weight比其他的大,所以在这些sample上,classifier往往可以预测出更好的分数(为什么是classifier?)。第二,因为classior和regressor是通过共同的目标进行学习的,所以prime samples的分数和不重要的那些比会增加(??)。

Importance-based Sample Reweighting
在被给相同的classifier的情况下,performance的分布总是于训练样本的分布相匹配的。如果一些sample在训练数据中出现的更频繁,那么在这些sample的分类正确率就会更好(为什么是分类正确率?)hard sampling和soft sampling时改变训练数据分布的两种不同方式。Hard sampling是从所有的候选中选择一些samples来训练一个模型,然而,soft sampling是给所有的samples分配不同的权重(?)。hard可以被看作是soft的一种特殊形式,每个sample都被分配一个是0或1的loss weight(?)。

这篇文章提出了一种soft Sampling 的方法—— Importance-based Sample Reweighting (ISR), 它根据重要程度给samples分配了不同的loss weights
用线性方程可以将r_i转换为u_i,如下所示:u_i代表了class j的第i个sample的重要性值。
在这里插入图片描述
u_i 和w_i存在着一个简单的递增的关系:
在这里插入图片描述
之后,cross entropy classification loss可以被改写为:
在这里插入图片描述
n和m分别是正样本和全部样本的总量。注意到简单的增加loss weights将会改变loss的全部值和正样本负样本之间的比例,所以我们将w_i归一化到 w_i’为了保证全部正样本的loss不变。(w_i为什么不能加到regression loss中?)

Classification-Aware Regression Loss

除了re-weight classification loss 来重点关注prime samples,作者还提出了一个联合优化两个分支通过Classification-Aware Regression Loss (CARL)。CARL可以增加prime sample的分数同时降低其他的分数。Regression的质量确定了sample的重要性,并且我们希望classifier可以输出对于重要sample的更高的分数。两个分支的优化应该是相关的而不是独立的。

解决方法是让regression loss关注到classification score以至于梯度可以从regression反传到classification

p_i代表了预测到相关class的概率,

实验:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34718684/article/details/89214092

智能推荐

TensorFlow里,shape=(?, 120)里的问号是怎么回事呢_tf shape为什么有问号-程序员宅基地

文章浏览阅读4.1k次。TensorFlow里,shape=(?, 120)里的问号是怎么回事呢125self.cos_sim(1024,51)Tensor("cosine-imilarity-layer/mul_2:0",shape=(1024,51),dtype=float32)126type(self.query_batch):<class'tensorflow...._tf shape为什么有问号

[RK3568 Android11] 开发之调试RK809 codec音频-SPK喇叭_rk3568 喇叭左右声道问题-程序员宅基地

文章浏览阅读5.5k次,点赞2次,收藏10次。目录前言一、注册声卡顺序二、SPK喇叭路由配置三、tinyalsa调试工具前言瑞芯微RK809是一种复杂的功率管理集成电路(PMIC)集成编解码器,适用于由外部电源供电的多核系统应用;同时它也集成了音频编解码器,这样在硬件设计上可以直接使用RK809 codec功能,不必再外挂个其他codec芯片;RK809 codec不仅支持SPK,还支持耳机,MIC功能;一、注册声卡顺序设备树dts里面原厂帮我们配置好了rk809_sound,我们直接..._rk3568 喇叭左右声道问题

验证码的两种生成方式_"<img id=\"code\" src=\"verify/code.action\">"-程序员宅基地

文章浏览阅读1.8k次。验证码是一个非常常见的东西,基本上每一个做web开发的程序员都会遇到。本文介绍两种验证码的生成方式。一种是后台生成验证码,一种是前台直接生成验证码在spring MVC模式 中,后台生成生成验证码传递到前台。后台代码:import java.awt.Color;import java.awt.Graphics;import java.awt.image.BufferedImag_""

VMware16安装CentOS7、网络配置、远程连接_远程访问vm16虚拟机-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏8次。目录1、安装准备2、安装3、网络配置4、远程连接安装准备VMware16转载 - Linux>>CentOS 7镜像下载安装转载 - VMware 16 安装 CentOS 7.9 详细图文教程注意1、以下不要选,我选了启动不了虚拟机2、若在安装时配置网络,网关、掩码参数需要确定网络配置:连通网络,设置静态IP初始状态:ping不通百度、IP地址为空、网卡配置文件也是默认配置方法方法一:安装时配置,如上述教程方法二:安装后进入系统配置1、_远程访问vm16虚拟机

Java数据库连接API(JDBC)_java连接数据库用什么api好-程序员宅基地

文章浏览阅读323次。JDBC的PreparedStatement是预编译的Statement,防止SQL注入,由于是预编译的,查询一次之后放到数据库的缓存,下次执行时发现相同,所以执行效率高。_java连接数据库用什么api好

JavaScript增强AJAX基础-程序员宅基地

文章浏览阅读69次。<title>js类型</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <script type="text/javascript"> //num为number类型 v..._ajax增强

随便推点

杰里之.V006 音箱版本删除录音文件,需要优化 system.a 库【篇】_ac6965a电路图-程序员宅基地

文章浏览阅读139次。// folder : /xxxxxx // filename : xxxx0000.yyy u8 file_api_delete_file(const char *path, const char *folder, const char *filename, u32 *file_index)_ac6965a电路图

教大家如何去看开源项目_开源项目哪里找-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏10次。如何去看开源项目_开源项目哪里找

Linux 硬件时间(RTC time)、系统时间(UTC时间、Universal time)、本地时间(Local time)、时区(Time zone)与夏令时(DST)解析-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏34次。硬件时间,也被称为实时时钟(RTC),是指计算机主板上的一个独立于操作系统的设备,它在电源关闭甚至断电情况下也能保持运行。其功能是记录当前的日期和时间。系统时间是计算机内部使用的时间,它通常在启动时从RTC设置,然后由系统时钟进行跟踪。系统时钟是操作系统内核的一部分,可以以毫秒或纳秒级别提供精确时间。本地时间是系统时间经过时区转换后的时间。时区是根据地理位置确定的,全球分为24个时区,每个时区大约代表15度的经度。例如,北京时间是UTC+8,而伦敦时间是UTC+0。时区是为了方便统一时间而划分的地理区域。_rtc time

免费获取股票历史交易数据方法与代码获取股票实时数据方法集合_哪里有股票的历史实时数据-程序员宅基地

文章浏览阅读6.7k次,点赞2次,收藏34次。小编在这里提供2种方法去获取股票数据,第一种通过使用第三方平台提供的方法来获取到所需要的股票历史数据。第二种通过接口使用代码获取实时的股票数据_哪里有股票的历史实时数据

泛微Ecology9.0流程Ecode实践:通过修改Store对象隐藏流程明细表列实例_泛微oa根据主表选择按钮隐藏明细表列-程序员宅基地

文章浏览阅读570次,点赞7次,收藏9次。Ecology9复写组件,E9隐藏明细表列,E9隐藏明细表栏,泛微隐藏明细表列_泛微oa根据主表选择按钮隐藏明细表列

趋势预测算法大PK!_趋势预测算法 csdn-程序员宅基地

文章浏览阅读1w次,点赞5次,收藏61次。https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/106368395趋势预测在很多应用场景中都会起到至关重要的作用,比如淘宝商家会考虑库存量应该保持在多少才能够满足客户需求,商场希望得知假期会迎来多大的客流量以安排系列活动,机场想要预测五一黄金周会有多大的客运量来做相应的应急部署等。在智能运维领域,趋势预测同样具有一定的理论意义和实际应用价值。趋势预测在运维场景中的应用背景在实时监控系统中会采集到大量的数据,有些数据具有周期性等时_趋势预测算法 csdn

推荐文章

热门文章

相关标签