MT-YOLOv6的Label Assignment选择的是和YOLOX一样的SimOTA,PP-YOLOE选择的却是TOOD,而YOLOv6再开源时也选择了TOOD。为何诸多目标检测器都选择TOOD呢?
最近关于YOLO卷起飞的事情一直耿耿于怀,但又跃跃欲试,在MT-YOLOv6开源时还并没有多么感冒,到AB大神认可YOLOv6时便感觉势头不对,应该卷一下了,于是便研究了一下YOLOv6、PP-YOLOE,其实对于目标检测出来网络结构,我最感冒的可能还是Label Assignment,一开始我知道MT-YOLOv6的Label Assignment选择的是和YOLOX一样的SimOTA,PP-YOLOE选择的却是TOOD,但是YOLOv6再开源时也选择了TOOD,翻了翻其他的检测器发现以速度著称PicoDet也不约而同的选择了TOOD,于是便有了下面的故事!
1、问题的遇见与解决之道
1.1 问题的遇见
目标检测旨在从自然图像中定位和识别感兴趣的目标,是计算机视觉中一项基本但具有挑战性的任务。通过联合优化目标分类和定位,它通常被表述为一个多任务学习问题。分类任务旨在学习专注于目标关键或显著部分的可判别特征,而定位任务则致力于精确定位目标的边界。由于分类和定位的学习机制的不同,两个任务学习到的特征的空间分布可能不同,当使用两个独立的分支进行预测时,也会导致一定程度的错位。
最近的单阶段目标检测器试图通过关注目标的中心来预测两个独立任务的一致输出。假设目标中心的Anchor(即,anchor-free检测器的anchor-point,或anchor-based检测器的anchor-box)可能会为分类和定位提供更准确的预测。例如,最近的 FCOS 和 ATSS 都使用中心分支来增强从靠近目标中心的Anchor预测的分类分数,并为相应Anchor的定位损失分配更大的权重。此外,FoveaBox 将目标预定义中心区域内的Anchor视为正样本。这种启发式设计已经取得了很好的效果,但是这些方法可能会受到两个限制:
-
分类和定位的独立性
:最近的单阶段检测器通过并行使用两个独立的分支独立地执行分类和定位任务。这样的双分支设计可能会导致两个任务之间缺乏交互,从而导致执行它们时的预测不一致。如图 1 中的“Result”列所示,ATSS 检测器识别出“Dining table”(由带有红色patch的Anchor表示),但更准确地定位了另一个目标“Pizza”(红色边界框)。 -
与任务无关的样本分配
:大多数 anchor-free 检测器使用基于几何的分配方案来选择目标中心附近的anchor-points以进行分类和定位,而anchor-based检测器通常通过计算anchor-boxes和GT之间的 IoU 来分配anchor-boxes。然而,用于分类和定位的最佳anchors通常是不一致的,并且可能会根据目标的形状和特征而有很大差异。广泛使用的样本分配方案与任务无关,因此可能难以对这两个任务做出准确而一致的预测,如图 1 中 ATSS 的“Score”和“IoU”分布所示。“Result”列也说明最佳定位anchor(绿色Patch)的空间位置可能不在目标的中心,并且与最佳分类anchors(红色patch)没有很好地对齐。因此,在非最大抑制 (NMS) 期间,精确的边界框可能会被不太准确的边界框抑制。
1.2 解决思路是什么?
为了解决上述两个问题,研究者们提出了一个任务对齐的单阶段目标检测(TOOD),旨在通过设计一个新的Head结构和面向对齐的学习方法来更准确地对齐这两个任务。
whaosoft aiot http://143ai.com
与最近的 GFL 和 ATSS 等单阶段检测器类似,所提出的 TOOD 具