Acquistion Location Confidence for accurate object detection

本论文主要是解决一下两个问题:

1、分类得分高的预测框与IOU不匹配,(我猜应该是训练数据集导致的)

2、基于回归的边框修正是非单调的,缺乏可解释性。

贡献点

  1. IoU-guided NMS
  2. Optimization refine
  3. 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的坐标是浮点数,

  1. RoI Pooling:有量化误差
  2. RoI Align:不用量化,利用双线性插值计算出对应点的特征值。 但N=4固定,ROI大小不固定。
  3. 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的更多相关文章

  1. [论文理解] Acquisition of Localization Confidence for Accurate Object Detection

    Acquisition of Localization Confidence for Accurate Object Detection Intro 目标检测领域的问题有很多,本文的作者捕捉到了这样一 ...

  2. 目标检测--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 ...

  3. 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation

    在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...

  4. 目标检测系列 --- 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 ...

  5. [论文理解]Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

    Region-Based Convolutional Networks for Accurate Object Detection and Segmentation 概括 这是一篇2016年的目标检测 ...

  6. 2 - Rich feature hierarchies for accurate object detection and semantic segmentation(阅读翻译)

    Rich feature hierarchies for accurate object detection and semantic segmentation Ross Girshick Jeff ...

  7. 深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation

    论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...

  8. 论文阅读笔记四十八: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 摘要 大规模的目标检测数据集在 ...

  9. 目标检测(一)RCNN--Rich feature hierarchies for accurate object detection and semantic segmentation(v5)

    作者:Ross Girshick,Jeff Donahue,Trevor Darrell,Jitendra Malik 该论文提出了一种简单且可扩展的检测算法,在VOC2012数据集上取得的mAP比当 ...

随机推荐

  1. day08整理(周总结\列表\字典内置方法)

    一.周总结 一 计算机基础之编程 1.什么是编程语言 编程是人与计算机交流的介质 2.什么是编程 通过编程语言写一堆文件 3,为什么编程 取代劳动力,帮人类干活 二 计算机组成 1.CPU 控制器 控 ...

  2. webpack中如何使用图标字体

    1.webpack安装相关依赖 $ npm install font-awesome-webpack less less-loader css-loader style-loader file-loa ...

  3. JS旋转和css旋转

    js旋转 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <styl ...

  4. 自定义segue的方向

    花了挺久时间,终于通过google在stake overflow上找到了解决方式. 总结一下:重写一个custom的segue,在storyboard的右边设置segue为custom,并设置其对应的 ...

  5. Rust入坑指南:有条不紊

    随着我们的坑越来越多,越来越大,我们必须要对各种坑进行管理了.Rust为我们提供了一套坑务管理系统,方便大家有条不紊的寻找.管理.填埋自己的各种坑. Rust提供给我们一些管理代码的特性: Packa ...

  6. 聊一聊Java中的各种运算符

    计算机之所以叫“计算机”,其最基本用途之一就是运算,对应刚刚接触Java的小伙伴而言,熟悉并掌握Java中的各种运算符及其在表达式中的运算优先级是十分必要的. 算术运算 算术运算主要用来处理数学中的加 ...

  7. Python SQLAlchemy入门教程

    本文将以Mysql举例,介绍sqlalchemy的基本用法.其中,Python版本为2.7,sqlalchemy版本为1.1.6. 一. 介绍 SQLAlchemy是Python中最有名的ORM工具. ...

  8. Laravel + Vue + Element 考勤应用 - 人力资源系统

    项目地址 Bee 介绍 Bee 是人力资源系统中的考勤应用,主要功能用于员工申请假单.Bee具有较高的性能.扩展性等,其中包括前后端分离.插拔式的规则验证(验证器).数据过滤(装饰器).消息队列等,后 ...

  9. Oracle“ORA-00911: 无效字符”解决方式

    在工作中碰到ORA-00911:无效字符的问题, 代码如下: <select id="querySendMsg" parameterType="map" ...

  10. Java高性能反射工具包ReflectASM

    ReflectASM 使用字节码生成的方式实现了更为高效的反射机制.执行时会生成一个存取类来 set/get 字段,访问方法或创建实例.一看到 ASM 就能领悟到 ReflectASM 会用字节码生成 ...