问题

YOLOX提出了一个Decoupled Head结构以代替YOLO Head,进而在YOLOv3 baseline的基础上提升了1.1个百分点的mAP,那为什么解耦头结构就能够提升检测效果呢

调研

我主要在YOLOX原论文讲述Decoupled Head这一部分,找到了引用的两篇文献,并加以解读。
第一篇文献是Song等人在CVPR2020发表的“Revisiting the Sibling Head in Object Detector”。
文中提出了,在目标检测的定位和分类任务中,存在spatial misalignment的问题,我的理解是两个任务所聚焦和感兴趣的地方不同分类更加关注所提取的特征与已有类别哪一类最为相近,而定位更加关注与GT Box的位置坐标从而进行边界框参数修正。因此如果采取用同一个特征图进行分类和定位,效果会不好,即所谓的misalignment的问题。
下图是原论文的一张图,旨在展示分类和定位所关注的内容是不一致的

第二篇文献是Wu等人(也是旷视的团队)在CVPR2020发表的“Rethinking Classification and Localization for Object Detection
文中重新对检测任务中的分类和定位两个子任务进行解读,结果发现:fc-head更适合分类任务,conv-head更适合定位任务,如下面图表结果所示。
第一行是对于分类任务而言,红色是fc-head,蓝色是conv-head,可以看到,在分类的分数上,fc-head显然更具优势,特别对于small objects;
第二行是对于定位任务而言,可以看到,在边界框回归IOU值上,conv-head更具优势。

基于上述的实验结果,该文章设计了一个Double-Head的结构(应该YOLOX的解耦头结构的灵感就是从这里来的),来提升检测的效果。

从实验结果中也可以看到,使用这种Double-Head的结构,可以将mAP提升2-3个百分点,效果还是很不错的!

总结

回到最初的问题:解耦头为何能够提升检测效果?
解耦头结构考虑到分类和定位所关注的内容的不同,比如上述Wu等人的论文所展示的。因此采用不同的分支来进行运算,有利于效果的提升!

我认为这就是一个探索的过程。这种共享的头结构最初在Fast RCNN论文中提出,一步到位,可大大提升检测速度,因此当时主要注重速度上的提升。
随着应用的逐渐广泛,包括单阶段、双阶段检测网络的发展,研究人员也逐渐在检测效果上寻找各种能提升的空间。那么对于这种耦头结构,通过实验现象和相关结果可以看到其局限性,因此研究人员提出了诸如Double-Head的结构来提升效果。
同时为了避免计算量的大量增加,比如YOLOX的Decoupled Head结构,会先进行1x1的降维操作,然后再接上分类和定位两个分支,做一个检测效果和速度的trade-off,这也是很常见的一个思路!

附:3篇论文的链接

YOLOX: Exceeding YOLO Series in 2021
Revisiting the Sibling Head in Object Detector
Rethinking Classification and Localization for Object Detection

YOLOX的解耦头结构思考相关推荐

  1. 改进YOLOv5 | 头部解耦 | 将YOLOX解耦头添加到YOLOv5 | 涨点杀器

    改进YOLOv5 | 头部解耦 | 将YOLOX解耦头添加到YOLOv5 论文地址:https://arxiv.org/abs/2107.08430 文章目录 改进YOLOv5 | 头部解耦 | 将Y ...

  2. 即插即用! | 国防科大联合慕尼黑工业大学提出新型解耦头 TSCODE: 助力目标检测器轻松涨点!

    Title: Task-Specific Context Decoupling for Object Detection Paper: https://arxiv.org/pdf/2303.01047 ...

  3. YOLOv5改进添加解耦头、ASFF

    网上有很多添加解耦头的博客,在此记录下我使用解耦头对YOLOv5改进,若侵权删 解耦头的介绍过段时间再写,先直接上添加方法(这篇文章写的很好,解释了解耦头的作用) ASFF我没有使用过,但是按照下边的 ...

  4. 【旧文章搬运】Win7可变对象头结构之InfoMask解析

    原文发表于百度空间,2010-08-11 ========================================================================== 对Win ...

  5. #获得请求来源ip_以太网数据包TCP、IP、ICMP、UDP、ARP协议头结构详解

    以太网首部 目地MAC地址(8字节) 源MAC地址(8字节) 类型(2字节) 1.IP头的结构 版本(4位) 头长度(4位) 服务类型(8位) 封包总长度(16位) 封包标识(16位) 标志(3位) ...

  6. ip tcp udp mpeg4头结构的定义

    IP包头结构浅析 版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),IPv6的值(0110) IP包头长度(Header Length):长度4比特 ...

  7. 【读书笔记】《结构思考力》——李忠秋

    前言   把每一个问题都用结构化的思维去尝试解决,这就是结构思考力,包括横向和纵向两个方面:   结构思考力可以帮助我们构化一个结构,在表达核心观点的基础上,有理有据.条理分明地证明这个观点,使我们能 ...

  8. bitmap 位图 头结构

    转自:http://www.cnblogs.com/lzlsky/archive/2012/08/16/2641698.html 位图BITMAPINFOHEADER 与BITMAPFILEHEADE ...

  9. 结构思考力系列:透过结构看清晰思考(转载)

    原创连接:https://37wiki.37wan.com/pages/viewpage.action?pageId=42222129 [作者]:看原文链接 一.理念篇:透过结构看世界 1.透过结构看 ...

最新文章

  1. Java编程笔试时输入问题:如何输入固定长度、不定长度的一维数组?如何输入固定长度、不定长度的二维数组?
  2. 谈谈考研复试的一些经验和建议
  3. 三菱d700变频器接线图_图解PLC与变频器通讯接线
  4. 开放、普惠、高性能-SLS时序存储助力打造企业级全方位监控方案
  5. 复习---使用基础语法实现栈及迭代
  6. CenterNet+ deepsort实现多目标跟踪
  7. 计算机科学与技术考研多少分算高分,清华计算机科学与技术系考研初复试高分经验分享...
  8. C#问题——interface class
  9. 7类数据分析常见的统计陷阱,快来排雷!
  10. linux安装mysql8.0.18_详解mysql8.018在linux上安装与配置过程
  11. 【转】MongoDB:C#应用
  12. 数字高程信息30m分辨率SRTM DEM数据下载与拼接(ENVI)
  13. Ubuntu 禁止集成noueavu驱动并安装NVIDIA显卡驱动
  14. Android API19 设置Alarm闹钟
  15. 用python实现分段函数_python:集成分段函数
  16. web安全之Webshell管理工具
  17. 怎么抓雷电模拟器的包_fiddler+雷电模拟器进行APP抓包(可抓HTTPS)
  18. 用vim编辑时怎么复制粘贴外部内容(在ubuntu操作系统中)
  19. 谷歌adsense作弊的方法
  20. 新手!亚马逊店铺刚下来就被封,什么原因

热门文章

  1. 2018-12-24:企业微信分享功能
  2. win10杀毒防护已经关闭了还是删除文件解决方法
  3. 照亮无尽前沿之路:华为正成为科技灯塔的守护者
  4. 法原子能机构将福岛核电站爆炸事故提升至6级
  5. Android蓝牙开发之一:打开、关闭蓝牙
  6. 雷达感应智能化技术,让家居生活更智能,雷达传感器技术应用
  7. 开关电源设计时如何减小地弹
  8. tomcat点击startup.bat闪退
  9. 二手苹果手机哪个性价比高?
  10. git公钥生成以及日常操作