Acquistion Location Confidence for accurate object detection
Acquistion Location Confidence for accurate object detection
本论文主要是解决一下两个问题:
1、分类得分高的预测框与IOU不匹配,(我猜应该是训练数据集导致的)
2、基于回归的边框修正是非单调的,缺乏可解释性。
贡献点
- IoU-guided NMS
- Optimization refine
- PRpooling
1、IoU-guided NMS

(1)传统 NMS : 根据边界框的分类置信度排序,每次选择cls score最大的框,并对与它IoU大于阈值的框抑制。定位准确的边界框中有很大一部分会被错误抑制,这是由分类置信度和定位准确度之间的不匹配造成的,
(2)IoU-NMS : 使用预测得到的IoU来对预测框进行排序,每次选择IoU最大的框并对与它IoU大于一定阈值的框抑制。
(3)soft-NMS:NMS基础上,IoU 大于阈值的框不将其分类置信度置为0。
为了使用IoU来指导排序,但在在测试的时候没有GroundTruth信息,于是设计一个网络来
估计边框与GroundTruth的IoU。如下图所示。

虚线框的是IoU-Net。
输入:Jittered-RoIs:通过对groundtruth 随机变换得到一系列的候选框(而不采用RPN输出的RoIs)
损失:smooth-L1 LOSS
输出:候选框与GroundTruth的IoU交并比(用于后续的IoU-guided NMS和优化修正算法)
2、提出的PrPooling代替了原来的RoI pooling

因为RPN网络输出的bounding box的坐标是浮点数,
- RoI Pooling:有量化误差
- RoI Align:不用量化,利用双线性插值计算出对应点的特征值。 但N=4固定,ROI大小不固定。
- PrRoI Pooling:利用双线性插值计算出对应点的特征值,该函数连续可导,有益于后续的基于优化的边框修正。

论文中的不足之处,缺少PrRoI-pooling的对照实验。在Mask-RCNN中的RoIAlign的精度相对于RoIPool明显提高。
The code is released at: https://github.com/vacancy/PreciseRoIPooling
3、基于优化的边框修正

问题:
基于回归的边界框精修非单调,对输入的分布变化敏感,不同的预测框迭代次数没法自适应。
解决方法:
通过每次修正得到的边界框预测得到IoU来修正。
基于优化的算法部分:
每次迭代对不同的预测框都做一次修正,因为PrRoI-Pool是连续可导的,所以通过梯度上升的方式进行优化,计算出边界框的变换。当变换后的边界框送入IoU-Net得到新的IoU与旧的IoU区别小于一定值或者出现退化,该边界框就不在修正。

基于回归的方法:如图第一排随着迭代次数的增加,红色的预测越来越偏离GroundTruth
基于优化的方法:如图第二排随着迭代次数增加,预测框越来越精确。
4、实验细节
(1)数据集:
80类别的MS-COCO 80k张训练图像和35k张验证图像,5k张验证图像做测试。
(2)训练参数设置:
输入图像裁剪为1200*800的大小
IoU-Net的训练数据是另外产生的。对于IoU-Net的 IoU标签通过正则化变为【-1,1】之间。
每层的参数设置为mean=0,标准差=0.01或0.001的高斯分布,batchsize大小为16,在推理部分,先还是使用了一次边框回归来初始化坐标,为了加快推理,对所有检测框做IoU -NMS前100个最大分类置信度的边框再使用基于优化的算法进行微调。
5、实验结果比较

相比于soft-NMS,采用了IoU-NMS的结果在AP90上明显提高了。

问题:AP50的结果较差。
问题原因:因为较小的IoU的框与GroundTruth的特征差异大,导致了IoU预测器不精确,修正也退化了。
解决方法:通过采集更多小IoU的来训练就可以解决

IoU-Net相较于FPN、Mask-RCNN速度下降了一点,但精度有所提升,时间耗费应该主要是在基于优化的边框修正上
Acquistion Location Confidence for accurate object detection的更多相关文章
- [论文理解] Acquisition of Localization Confidence for Accurate Object Detection
Acquisition of Localization Confidence for Accurate Object Detection Intro 目标检测领域的问题有很多,本文的作者捕捉到了这样一 ...
- 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)
Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...
- 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation
在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...
- 目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Tech report
目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Te ...
- [论文理解]Region-Based Convolutional Networks for Accurate Object Detection and Segmentation
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation 概括 这是一篇2016年的目标检测 ...
- 2 - Rich feature hierarchies for accurate object detection and semantic segmentation(阅读翻译)
Rich feature hierarchies for accurate object detection and semantic segmentation Ross Girshick Jeff ...
- 深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation
论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...
- 论文阅读笔记四十八:Bounding Box Regression with Uncertainty for Accurate Object Detection(CVPR2019)
论文原址:https://arxiv.org/pdf/1809.08545.pdf github:https://github.com/yihui-he/KL-Loss 摘要 大规模的目标检测数据集在 ...
- 目标检测(一)RCNN--Rich feature hierarchies for accurate object detection and semantic segmentation(v5)
作者:Ross Girshick,Jeff Donahue,Trevor Darrell,Jitendra Malik 该论文提出了一种简单且可扩展的检测算法,在VOC2012数据集上取得的mAP比当 ...
随机推荐
- 2018.8.10 python中的迭代器
主要内容: 1.函数名的使用 2.闭包 3.迭代器 一.函数名的运用 函数名是一个变量,但他是一个特殊的变量,与括号配合可执行函数的变量. 1.函数名的内存地址 def func(): print(' ...
- 路由器配置深入浅出—路由器接口PPP协议封装及PAP和CHAP验证配置
知识域: 是针对点对点专线连接的接口的二层封装协议配置 PPP的PAP和CHAP验证,cpt支持,不一定要在gns3上做实验. 路由器出厂默认是hdlc封装,修改为ppp封装后,可以采用pap验证或者 ...
- pymysql 防止sql注入案例
from pymysql import connect def main(): """sql演示""" # 1.输入一个语句,根据id展示相 ...
- Flask:数据库的建模
学习完模板系统,接下来要研究的就是框架对数据库的操作,不论python的那个框架,直接使用数据库API(redis.pymysql等)都可以进行操作,但是这些操作不够方便,于是就有了ORM 1.Fla ...
- TOMACT 各个版本集合
http://archive.apache.org/dist/tomcat/ 再点击 bin 目录,找到想下载的即可
- Dubbo 全链路追踪日志的实现
微服务架构的项目,一次请求可能会调用多个微服务,这样就会产生多个微服务的请求日志,当我们想要查看整个请求链路的日志时,就会变得困难,所幸的是我们有一些集中日志收集工具,比如很热门的ELK,我们需要把这 ...
- 第二十五章 system v消息队列(一)
IPC对象的持续性 随进程持续 :一直存在直到打开的最后一个进程结束.(如pipe和FIFO) 随内核持续 :一直存在直到内核自举(内核自举就是把主引导记录加载到内存,并跳转执行这段内存)或显示删除( ...
- 还不会用FindBugs?你的代码质量很可能令人堪忧
前言 项目中代码质量,往往需要比较有经验的程序员的审查来保证.但是随着项目越来越大,代码审查会变得越来越复杂,需要耗费越来越多的人力.而且程序员的经验和精力都是有限的,能审查出问题必定有限.而在对代码 ...
- C语言打印年历
摘要:使用C语言打印年历 最初看到这个是觉得比较有意思,记得读书时候只写过月历,年历要复杂一些,现在水平提高了,来重新写一下吧. 看了网上的一些代码,大都比较繁琐,本文采用全新的思路完成年历打印. 整 ...
- C/C++ return *this和return this的区别
首先我们知道~ class Test { public: Test() { return this; //返回的当前对象的地址 } Test&() { return *this; //返回的是 ...