论文基于RetinaNet提出了IoU-aware sinage-stage目标检测算法,该算法在regression branch接入IoU predictor head并通过加权分类置信度和IoU预测值得到anchor的最终分数,从实验结果看来,算法能有效提升定位的准确率

论文:IoU-aware Single-stage Object Detector for Accurate Localization

Introduction


 论文希望是在保持实时性的同时,提高one-stage检测器的准确率。论文认为,one-stage的性能之所以低,是因为分类分数与定位精度之间的低相关性导致的(其实不止one-stage detector,几乎所有的detector都存在这个问题)。在提取anchor后,分类分支与定位分支是相互独立的,造成分类与定位间的mismatch。而在推理时,IoU是缺失的,这带来两个严重的问题:

  • NMS时,只能使用分类置信度来进行anchor排序,导致高IoU但低分类分数的anchor被过滤
  • 计算AP时,依然是使用分类置信度进行排序计算的,高分类置信度但低IoU的anchor会降低高IoU阈值时的AP,(mAP计算

 为了解决以上问题,论文在regression分支添加了一个同步的IoU预测head,基于提出IoU-aware single-stage目标检测算法。在训练的时候,IoU head与另外两个分支一起训练。而推理时,anchor的最终分数由分类置信度和预测的IoU相乘所得,并用于最后的NMS和AP计算

IoU-aware single-stage object detector


Model architecture

  如图1所示,IoU-aware single-stage目标检测算法主要基于RetinaNet,使用相同的主干和FPN。在regression分支,论文添加了一个IoU预测head(3x3卷积+sigmod激活层),用于预测anchor的IoU($[0,1] $)。论文提到可以设计一个与分类和regression一样完全独立的分支,但这样的设计会影响模型的效率,添加head的方式能在带来最少额外计算下提升AP,是个不错的折中

Training

  跟RetinaNet一样,分类分支使用focal loss,regression分支使用smooth L1。由于IoU$\in [0,1]$,IoU分支使用二值交叉熵

Inference

  在推理时,每个anchor的分数计算方式如公式5,参数$\alpha$用于控制分类和IoU的权重。可以看出,最终分数能很好地关联分类置信度和定位准确率

Experiments


Implementation Details

  论文大部分的实验基于MS COCO,为了说明算法的通用性,对比实验(ablation studies)中补充了PASCAL VOC上的结果

  论文使用2张GPU配合 large minibatch sgd进行训练。在主要实验中,输入尺寸为$[800, 1333]$,训练12个周期。在对比实验中,输入尺寸为$[600, 1000]$,测试了不同backbone下的实验结果

Main Results

  为了公平起见,论文用MMdetection复现了部分对比的算法(带*的),结果如table1所示。从表可以看出,不同主干的IoU-aware RetinaNet能整体带来大约1.0%~1.6%的AP提升。在AP50时,性能提升不太稳定,而在AP75时,则能大幅提升1.7%~2.3%,这说明IoU-aware能有效地提高定位的准确率。此外,IoU-aware RetinaNet的性能已经超过了two-stage的Faster R-CNN,得益于其定位的高准确率

Ablation Studies

  • IoU Prediction Loss

  论文进行了不同的IoU loss函数的实验,在实验时,最终的分数由预测的IoU和分类置信度直接相乘所得。baseline估计是RetinaNet,文中没提到。从结果可以看出,BCE loss的结果是最好的

  • Detection Confidence Computation

  论文对$\alpha$的值进行了实验,实验使用IoU predictor+BCE loss,仅改变最后分数计算时的权重。如Table 3和Table4所示,实验结果有以下几点:

  1. 当$\alpha=1$(即仅用分类置信度)时,AP提升0.2%,这说明multi-task训练对模型是有作用的
  2. 当$\alpha=0.5$和$\alpha=0.4$时,AP达到最高,AP50提升0.4%-0.8%,AP70和AP80提升2.0%~2.7%,说明论文提出的方法提升了IoU的准确率
  3. 当$\alpha$降低时,AP70和AP80在提升,说明预测的IoU与定位准确率十分有关系。此外,若将预测的IoU和分类置信度直接相乘,结果也是很明显的,AP提升1.1%
  • Ablation Studies on PASCAL VOC

  在PASCAL VOC上,IoU-aware RetinaNet能大约提升1.1%~2.2%AP,说明论文提出的算法在其它训练集也有实用性

Conclusions


  论文提出IoU-aware single-stage目标检测算法,添加IoU prediction head以及加权得分来解决分类置信度与定位准确率之间的mismatch问题。从实验结果看来,该算法是有效的







笔者补充


  这篇论文是一篇arxiv上的初稿,论文提出的IoU predict head以及联合分类分数输出最终结果是一个不错的trick,加到别的算法中应该也能很好地提升AP。但论文整体看起来需要更多的亮点来支撑,特别是$\alpha$值的提出和实验,结果跟直接相乘差不多,感觉不够惊艳,希望后面能看到对这篇文章更好的补全

参考文章

写作不易,未经允许不得转载~

更多内容请关注个人微信公众号【晓飞的算法工程笔记】

新文预览 | IoU-aware Single-stage Object Detector for Accurate Localization的更多相关文章

  1. C# 9.0 新特性预览 - 类型推导的 new

    C# 9.0 新特性预览 - 类型推导的 new 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大 ...

  2. C# 9.0 新特性预览 - 空参数校验

    C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...

  3. C# 9.0 新特性预览 - 顶级语句

    C# 9.0 新特性预览 - 顶级语句 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它们 ...

  4. C# 9.0 新特性预览 - init-only 属性

    C# 9.0 新特性预览 - init-only 属性 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章 ...

  5. 20天等待,申请终于通过,安装和体验IntelliJ IDEA新UI预览版

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于IDEA的预览版 IDEA会启用新的UI,这事情之 ...

  6. Windows Phone 8.1SDK新特性预览

    前言    Windows Phone 8.1的预览版将在近期推送,WP 8.1的SDK也已经进入到RC阶段,可以从这里安装.本次更新的SDK被直接集成到了VS2013Update2里面,不再是单独的 ...

  7. (转)Visual Studio 2013新功能预览:增代码的透明度和可追溯性

    微软打破了Visual Studio两年升级一次的传统,Visual Studio 2012发布还不足一年,微软就计划发布了Visual Studio 2013了.在今天的TechEd大会上,微软宣布 ...

  8. avalon1.3的新特性预览

    avalon1.2的性能优化风暴很快就告一段落,入职也快一个月了,许多乱七八糟的事也少了下来,估计未来一个月会有许多好东呈现给大家. 首先是一个性能检测工具.由于MVVM是将原本由人脑干的事,转到各种 ...

  9. .NET6系列:C#10新功能预览

    系列目录     [已更新最新开发文章,点击查看详细] 2021年4月19日微软发布公告称将于今年夏季发布首款64位的 Visual Studio 2022,2021年5月20日又发布了 Visual ...

随机推荐

  1. 中国的规模优势,有望帮助AI芯片后来者居上?

    ​芯片一直是个神奇的东西,表面上看是电脑.笔记本.智能手机改变了世界,其实,真正改变世界的硬件内核是芯片,芯片相关的技术才是科技界最实用.最浪漫的基础技术,也正因如此,谁掌握了芯片基础技术,谁就能立于 ...

  2. java对象POJO和JavaBean的区别

    "Plain Ordinary Java Object",简单普通的java对象.主要用来指代那些没有遵循特定的java对象模型,约定或者框架的对象.POJO的内在含义是指那些:有 ...

  3. 收费的QQ群 改变的不只是所谓的在线教育

    改变的不只是所谓的在线教育" title="收费的QQ群 改变的不只是所谓的在线教育"> 如果说国内互联网企业中最会捞钱的,腾讯敢认第二,恐怕没有其他的企业敢认第一 ...

  4. coreseek 在gcc 4.9+ 上编译不通过 [sphinxexpr.o] Error 1 错误解决方案

    这几天玩hhvm,把gcc环境都装到4.9了,然后编译coreseek的时候就出问题,google一大圈,貌似捕风捉影看到一些信息说是gcc4.7+的c++作用域必须用this->去引用,这里整 ...

  5. Vue.observable()使用方法

    前言 随着组件的细化,就会遇到多组件状态共享的情况, Vuex当然可以解决这类问题,不过就像 Vuex官方文档所说的,如果应用不够大,为避免代码繁琐冗余,最好不要使用它,今天我们介绍的是 vue.js ...

  6. C++走向远洋——31(六周,项目一,1.1)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:fenshu.cpp * 作者:常轩 * 微信公众号:World ...

  7. RTL8812AU双频无线网卡在ubuntu19和20上的驱动安装

    旧爱已去 疫情在家,突然邻居敲门说,我这网上不了,帮下忙呗兄弟:兄弟都叫了,哥就冒回险,口罩扎起,一顿xxxx,原来是路由器没插到wlan口,看他拉网线可怜,就把我台式机上无线网卡送给他了,这就是又送 ...

  8. 视频描述(Video Captioning)近年重要论文总结

    视频描述 顾名思义视频描述是计算机对视频生成一段描述,如图所示,这张图片选取了一段视频的两帧,针对它的描述是"A man is doing stunts on his bike", ...

  9. [LeetCode] 面试题 10.01.合并排序的数组

    题目: 这道题有多种实现的思路,这里使用双指针结合数组有序的特点进行解决 思路: m代表A初始时有效元素的个数,n代表B中元素的个数,那么n+m才是A的总长度 从A的最后一个位置开始,设为cur,分别 ...

  10. C++泛化双向链表

    泛型双向链表 双向链表(doublyLinkedList.h) /******************************************************************* ...