参考Rank & Sort Loss for Object Detection and Instance Segmentation - 云+社区 - 腾讯云
摘要
我们提出了秩和排序损失,作为一个基于秩的损失函数来训练深度目标检测和实例分割方法(即视觉检测器)。RS损失监督分类器,这些方法的子网络,来排序所有负样本上的每个正样本,以及根据他们连续定位的质量对他们的正样本进行分类。为了解决排序和排序的不可微性,我们将错误驱动的更新和反向传播的结合重新表述为身份更新,这使我们能够在正样本的排序错误中建模。有了RS Loss,我们大大简化了训练:(I)、由于我们的分类目标,在没有额外辅助头的情况下,由分类器对正样本进行优先排序(例如,对于中心度、IoU、Mask-IoU),(ii)、由于其基于排序的特性,RS Loss对类不平衡是鲁棒的,因此,不需要采样启发式,以及(iii)我们使用无调整任务平衡系数来解决视觉检测器的多任务特性。使用RS Loss,我们仅通过调整学习速率来训练七种不同的视觉检测器,并表明它始终优于基线:例如,我们的RS Loss在COCO数据集上提高:(i)、Faster R-CNN约3框AP,在COCO数据集上提高了约2框AP的aLRP Loss(基于排名的基线),(ii)、在LVIS数据集上用重复因子采样Mask R-CNN约3.5个屏蔽AP(稀有类约7个AP);
1、介绍
由于多任务(如分类、框回归、掩码预测)的性质,目标检测和实例分割方法依赖于以下形式的损失函数:
它结合了任务t在阶段k上的损失函数(例如,对于包含与RPN和R-CNN的Faster R-CNN),由超参数加权。 在这样的方式下,超参数很容易超过10,额外超参数因任务[28]——特定的不平衡问题,如在分类任务中正负不平衡模型(例如,HTC采用采用3个不同的R-CNN)。 因此,尽管这种损失函数在几个基准测试中取得了前所未有的成功,但它们需要进行调优,而调优是耗时的,会导致次优解决方案,并使方法之间的公平比较变得困难。
最近提出的基于排名的损失函数,即“平均精度(AP)损失”和“平均定位召回精度(aLRP)损失”,与经典的基于评分的函数(如交叉熵损失和焦点损失)相比,有两个重要的优点:(1)直接优化绩效衡量(如AP),从而使训练和评估目标保持一致。 这也减少了超参数的数量,因为性能度量(例如AP)通常没有任何超参数。 (2)、由于基于排名的错误定义,它们对类别不平衡具有鲁棒性。 虽然这些损失带来了令人印象深刻的表现,但它们需要更长的训练和更多的增强。
一般来说,基于排名的损失侧重于排名正样本,而不是负样本,他们没有明确地建模正-正的交互作用。 然而,预测的优先级是,对应他们的定位质量通过使用辅助。头已成为改进性能的常用方法。 此外,最近Li等人的工作显示,当分类器被直接监督以回归预测的IOU时,可以删除aux。 并进一步提高头的性能。
在本文中,我们提出Rank & Sort (RS) Loss作为一个基于排名的损失函数来训练视觉检测(VD -即目标检测和实例分割)方法。 RS Loss不仅将正样本排在负样本前面(图1(a)),而且还根据其连续的IoU值将正样本分类(图1(b))。 这种方法带来了几个关键的好处。 由于在训练期间正样本的优先级,用RS Loss训练的检测器不需要辅助。 由于其基于排名的性质,RS Loss可以处理极不平衡的数据(例如,目标检测[28]),而无需任何抽样启发式。 此外,除了学习率,RS Loss不需要任何超参数调优,这得益于我们的无调优任务平衡系数。 由于训练的这种显著简化,我们可以很容易地将RS Loss应用于不同的方法(即多阶段、单阶段、基于锚、无锚)(即只通过调整学习率),并证明RS Loss始终优于基线。
我们的贡献可以总结如下:
(1)、我们将错误驱动的优化合并到反向传播中,以将基于不可微排名的损失优化为身份更新,该更新在训练期间唯一地提供可解释的损失值,并允许定义类内错误(例如,正样本中的排序错误)。
(2)我们提出了等级和排序损失,它定义了阳性和阴性之间的排序目标以及对阳性wrt进行优先排序的排序目标。由于这种基于排名的性质,RS损失可以在高度不平衡的数据存在的情况下训练模型。
(3)我们在不同的四个目标检测器集合和三个实例分割方法上展示了仅通过调整学习速率而没有任何辅助的RS Loss的有效性。广泛使用的COCO和长尾LVIS基准上的头部或采样试探法:例如(i)我们的RS-R CNN在COCO上将Faster-CNN提高了约3个box AP,(ii)我们的RS-Mask R-CNN在LVIS将重复因子采样提高了约3.5个mask AP(稀有类提高了约7个AP)。
2、相关工作
辅助头和连续标签
用aux预测检测的定位质量。中心度、IoU、Mask-IoU或不确定性(即方差)头以及将这些预测与NMS的分类分数相结合被显示为提高了检测性能。Lin等人发现,使用连续的预测来监督分类器优于使用辅助分类器。头部。目前,Lin等人的“质量Focal损失”是唯一一种对类别不平衡鲁棒的方法,并且使用连续标签来训练分类器。在这项工作中,我们研究了这一思想在不同网络(如多阶段网络)和不同任务(如实例分割)上的可推广性。
VD上基于排名的损失
尽管有优势,但基于排名的损失是不可区分的,并且难以优化。为了应对这一挑战,黑盒解算器使用内插的AP surface,尽管在目标检测中几乎没有收益。灾难恢复损失通过强制铰链损失(可区分)来实现正负之间的排序。最后,AP Loss和aLRP Loss通过对不可微部分使用感知器学习的错误驱动更新,分别优化了性能指标AP和LRP。RS Loss的主要区别在于,它还将连续定位质量视为标签。
VD上的目标不平衡
VD中常见的策略是使用,一个标量乘法器,并通过网格搜索来调整它们。最近,Oksuz等人采用了一种自平衡策略来平衡分类和框回归头,这两者都争夺aLRP Loss的有界范围。同样,Chen等人使用分类和回归损失的比率来平衡这些任务。在我们的设计中,特定头的每个损失都有自己的有界范围,因此头之间不会发生竞争。此外,我们使用具有相似范围的,并表明我们的RS Loss可以简单地与基于损失值的简单任务平衡策略相结合,因此除了学习速率之外,不需要任何调整。
3、身份更新基于排名的损失
使用基于排名的损失函数很有吸引力,因为它与常见的性能度量(如AP)兼容。 然而,由于排名的不可区分性,这是一个挑战。 在这里,我们首先回顾一个现有的解决方案,该解决方案通过将错误驱动的更新合并到反向传播(章节3.1)中来克服这种不可微性,然后提出我们的方法(第3.2节),它(i)、提供了可解释的损失值,(ii)、考虑了类内错误,这对使用连续标签至关重要。
3.1、回顾错误驱动优化与反向传播的结合
损失的定义:
Oksuz等人提出将基于排名的损失写成,其中Z是一个问题特定的归一化常数,P是一组正例,是在上计算的误差项。
损失的计算:
给定逻辑,L可以分三步计算(图2绿色箭头):
第一步:逻辑和之间的差异转换是 由计算。
第二步:使用,源自每对示例的误差被计算为主要项:
其中是分布的概率质量函数,在上计算的误差,在上,其中N是负样本的集合。根据定义,基于排序的误差,因此,需要输出I和j之间的成对二进制排序关系,这由输入的不可微单位阶跃函数H(x)(即,如果x ≥ 0,H(x) = 1,否则H(x) = 0)确定。
使用,可以引入不同的基于排名的函数来定义和:例如,第i个例子的排名,;第i个例子在正样本中的等级,;以及logits大于的假阳性数,。例如,对于AP损失,使用这些定义,和可以简单地分别定义为和。
第三步:
最后,L被计算为主要项的归一化和:。
优化损失
这里,目标是找到更新,然后通过模型参数进行反向传播。在三个计算步骤中(图2橙色箭头),步骤1和步骤3是可微的,而主项不是差变换的可微函数。用表示中的这一更新,并使用链式规则,表示为:
Chen等人引入了误差驱动更新,并用替换,其中是表示配对。AP损失和aLRP损失都是这样优化的。
3.2、我们的重新规划:身份更新
我们首先在3.1节中指出配方的两个缺陷:(D1)所产生的损失值()没有考虑目标,因此,当时不容易解释(参见aLRP损失和我们的RS损失-第4节); (D2) Eq. 2只在和时赋值一个非零初等项,有效地忽略了类内误差。 对于连续的标签,这些错误变得尤其重要:的标签越大,应该越大。
损失的定义:
我们将损失函数重新定义为:
在 是上所需的误差项。我们的损失定义有两个好处:(i) 直接措施目标之间的差异和所需的错误,产生一个可解释的损失价值来解决(D1),和(2)我们不限制定义正并且用替换。 虽然我们不使用模型损失,的定义完整的意义,如果有必要获得,个别错误可以计算在每个输出,因此,可以更精确地近似或一组更大的排行第三的损失函数可以表示。
损失的计算:
为了计算(Eq. 4),只需将Eq. 2替换为:
在三步算法(第3.1节,图2绿色箭头),并允许所有对有一个非零错误,解决(D2)。
优化损失:
由于错误的一对,当时,最小化。无论是多少,Eq. 5目标为0。因此,Eq.3中是主要的术语本身:,他们结论的推导我们的身份更新。
4、Rank & Sort Loss
为了监督视觉检测器的分类器,通过考虑预测的定位质量(e.g.IoU)、RS损失问题分解为两个任务:(i)排名的任务,旨在让每个正样本的排名高于负样本,和(2)排序的任务,其目的是为了对分对数在降序排序关于。 连续的ground-truth标记(例如IoUs)。 我们定义RS Loss并使用身份更新(第3.2节-图2)计算其梯度。
定义:
给定逻辑及其连续的ground-truth标签,我们将RS Loss定义为当前和目标误差在正(即> 0)上的差值的平均值:
其中是当前排名错误和当前排序错误的总和:
对于,虽然“当前排名错误”是简单的精度错误,“当前排序错误”惩罚正数与逻辑大于的倒置标签的平均值,。 请注意,当的排名高于所有时,,目标排名错误是0。 对于目标排序误差,我们对期望排序顺序中逻辑较大且标号大于的的倒标号进行平均,
其中[P]是Iverson Bracket,与前面的工作[6]相似,H(xij)在区间作为。
计算:我们遵循三步算法(第3节,图2),使用Eq. 5定义初等项,它允许我们表示正数之间的误差为:
其中排序和排序pmfs在导致错误的例子上分别均匀分布i上的排序和排序错误(即排序,与; 对于排序,with but ):
优化
为了得到,我们只需在身份更新(3.2节)之后,用RS Loss的主要项(Eq. 9)替换(Eq. 3)。 得到的for将变成(参见附录A中的派生):
由于额外的排序误差(Eq. 7,8),for 包含了提升和降级的更新信号,以相应地对正的排序:
请注意Eq. 12的第一部分和第二部分的方向是不同的。 将我在理想的排名,促进i基于误差计算本身,而一旦i基于信号从。我们为RS损失提供更深刻的一个例子在附录A。
5、利用RS损失训练视觉检测器
本节开发了一个整体损失函数来训练具有RS损失的检测器,其中只需要调整学习率。 与文献中常见的做法一样,第5.2节分析了SOTA单级目标检测器ATSS[43]的不同设计选择(即Eq. 1中的k = 1); 第5.3节将我们的设计扩展到其他架构。
5.1、数据集和实现细节
除非显式地指定,我们使用:(i)每个检测器的标准配置,只有取代损失函数,(ii) mmdetection框架,(3)16图像大小为1333×800在单个批处理(4图片/ GPU,Tesla V100)训练期间,(iv) 1×训练计划(12世纪),(v) single-scale测试图像大小为1333×800, (vi) ResNet-50骨干与FPN , (vii) COCO trainval35K (115K图像)和minival (5k图像)设置[22]训练和测试我们的模型,(iix)报告COCO风格AP。
5.2、分析和无调优设计选择
ATSS及其分类、框回归和中心头最初通过最小化进行训练:
式中为Focal Loss; 为GIoU Loss; 为带连续标签的交叉熵损失,用于监督中心度预测; ,。 我们首先去掉中心头,用我们的RS Loss(第4节)LRS替换,使用;在预测框)和ground-truth框()之间作为连续标签:
其中,任务级平衡系数一般通过网格搜索设置为常数标量。
受近期工作的启发,我们研究了两种不需要微调的先验来决定每个迭代的:(i)基于值的,以及(ii)基于量的:,其中为L1范数,和s分别为框回归和分类头输出。 在我们对RS Loss训练的ATSS的分析中,我们观察到基于值的任务平衡执行类似于微调(平均为0 AP)。 此外,我们使用基于评分的加权[17],方法是使用分类评分乘以每个预测的GIoU Loss(分析细节见附录B)。请注意,基于值的任务平衡和基于评分的实例加权都是超参数自由的,容易适用于所有网络。 有了这些设计选择,Eq. 14只有一个超参数(即在H(·)中的,设置为0:50,以平滑单位阶跃功能) 。
5.3、训练不同的结构
图3给出了我们如何采用S Loss训练不同体系结构的比较概述:当我们使用RS Loss训练分类器(图3(b))时,我们去掉了aux。 头(例如IoU- Net中的IoU头)和抽样启发式(例如YOLACT中的OHEM [1], Faster RCNN中的随机抽样)。 我们在框采用参考权重回归和面具预测,并偏向Dice Loss,损失,而不是常见的交叉熵预测:(i)它的边界区如分割其有界区间(在0和1之间),和(2)整体评价的预测,都类似于GIoU损失。 最后,我们将(Eq. 1)设为标量(即),每一次迭代(图3(c)),只有RPN例外,在aLRP Loss之后,我们将RPN的损失乘以0.20。
6、实验
为了展示RS Loss在性能和调优简单性方面的贡献,我们在七种不同架构的视觉检测器上进行了实验:四种目标检测器(即Faster R-CNN, Cascade RCNN, ATSS和PAA -章节6.1)和三种实例分割方法(即Mask R-CNN, YOLACT和SOLOv2-章节6.2)。 最后,第6.3节给出了消融分析。
6.1、目标检测上的实验
6.1.1、多阶段目标检测器
为了通过我们的RS损失训练Faster R-CNN和Cascade R-CNN(例如RS-R-CNN),我们把抽样从各个阶段(即RPN R-CNNs),使用所有锚训练的RPN和m高分的提议/图像(默认情况下,Faster R-CNN中m=1000,Casacde R-CNN中m=2000)将softmax分类器替换为二进制sigmoid分类器,并设置初始学习率为0.012。
在标准Faster R-CNN上达到了39.6的AP(表1):(i)、FPN(交叉熵和平滑L1损失)上升了3.4的AP(ii)、比SOTA基线基于排名的方法上升了2.2的AP(iii)、具有aux的IoU-Net上升了1.5的AP(iv)、Dynamic R-CNN,最近的对应方法上升了0.7。然后,我们使用轻量Carafe作为FPN中的上采用操作获得了40.8的AP(RS-R-CNN+)依然保持着比Carafe FPN高2点AP(38.6 AP),并且除了,超过了所有基于AP-和oLRP-的方法,这意味着我们的主要贡献是在RS Loss训练的分类任务中,而在本地化任务中仍有改进的空间。 RS Loss也提升了强baseline Cascade R-CNN一个点的AP,从40.3到41.3。最后,RS Loss具有最少的超参数数量,不需要一个采样器,一个辅助。的调谐(公式1)。
6.1.2、一阶段检测器
我们对ATSS和PAA分别进行了中心头和IoU头的架构训练。 对于所有基于排名的损失,我们采用Oksuz等人的锚配置(不同的锚配置不影响标准ATSS的性能),并将学习率设置为0.008。 在训练PAA的同时,我们保留了正负分的评分函数,以便在不同损失函数之间进行公平的比较。
与AP和aLRP Loss比较,基于排名的基线:我们简单地用AP Loss代替Focal Loss来训练网络,而对于aLRP Loss,与我们的RS Loss类似,由于其调整简单,我们将其学习率调整为0.005。 对于ATSS和PAA,RS Loss比基于排名的替代方案提供了显著的增益,在之前的工作中使用类SSD增强,训练了100个epoch,ATSS为1.8/2.2 AP增益,AP/aLRP Loss为3.7/3.3 PAA增益(表2)。
与Focal Loss比较,缺省损失函数:RS Loss提供大约~ 1 AP增益,当两个网络在没有辅助的情况下同等训练。 head(表2)和0.6 AP增益与aux默认网络的比较。 正面。
与QFL相比,基于分数的损失函数使用连续欠条作为标签:为了将QFL应用于PAA,我们删除了aux。IoU head(就像我们对ATSS所做的那样),测试两个可能的选项((I)默认PAA设置,= 1.3和基于IoU的加权,(ii)默认QFL设置:= 2.0和基于分数的加权–第5.2节),并报告QFL的最佳结果。虽然QFL和ATSS的RS损失结果相似,但有0.8的AP差距有利于我们的RS损失,这可能是由于PAA中不同的正负标签方法(表2)。
6.1.3、和SOTA的比较
在这里,我们使用RS-R-CNN,因为它在基线上产生了最大的改进。 我们使用多尺度训练方法训练RS-R-CNN为36个epoch,使用DCNv2在ResNet-101上随机调整较小的尺寸。 表3报告了在COCO test-dev上的结果:我们的RSR-CNN达到了47.8 AP,并且比类似训练的Faster R-CNN和Dynamic R-CNN分别高出了~ 3和~ 1 AP。 虽然我们没有增加Faster R-CNN的参数数量,但RS R-CNN的性能优于包括TridentNet在内的所有多级检测器,后者具有更多的参数。 我们的RS-R-CNN+(第6.1.1节)达到了48:2 AP, RS-Mask R-CNN+(第6.2节)达到了49.0 AP,优于所有的单级和多级对手。
6.2、在实例分割上的模型
6.2.1、多阶段实例分割方法
通过保持所有Faster R-CNN的设计选择相同,我们在COCO和LVIS数据集上训练Mask R-CNN。
COCO:我们观察到在Mask R-CNN上的分割和检测性能都获得了约2个AP增益(表4)。 同样,如假设,RS-Mask R-CNN比Mask Scoring R-CNN,带有额外的Mask IoU头,0.4和1.8 Mask和box AP;和0.9掩码oLRP。
LVIS:用我们的RS loss代替交叉熵损失,用重复因子采样(RFS)训练Mask RCNN,在长尾LVIS数据集上提高了3:5掩模AP的性能(21.7到25.2,罕见类改善了约7APr),并优于最近的同类(表5)。
6.2.2、一阶段实例分割方法
在这里,我们用RS Loss训练了两种不同的方法:(i) YOLACT,一种实时实例分割方法,涉及采样启发式(例如OHEM)。 (ii) SOLOv2作为一种无锚SOTA方法。
YOLACT:在YOLACT之后,我们通过550×550大小的图像训练(也测试)RS-YOLACT,共55个时代。 我们没有寻找周期来衰减学习速率,而是简单地采用初始学习速率为0.006的余弦退火,仔细地将YOLACT调为20、42、49和52。 然后去掉(i) OHEM(ii)语义分割头(iii)仔细调整任务权重(即= 1.5, = 6.125)和(iv)基于尺寸的归一化(即利用ground-truth区域对每个实例的掩模头损失进行归一化)。 去除每个启发式之后,性能会有轻微到显著的下降(至少需要返回-表6)。经过这些简化后,我们的RS-YOLACT将基线提高了1.5Mask AP和3.3 box AP。
SOLOv2:
遵循Wang等人的方法,我们在两种不同的设置上使用多尺度训练,对具有RS Loss的无锚SOLOv2进行了36个epoch的训练:(i) SOLOv2-light是使用ResNet-34和大小为448 × 448的图像进行推断的实时设置。 我们使用32张图像/批处理,学习速率0.012进行训练。 (ii) SOLOv2为推断时的SOTA设置,使用ResNet-101,图像尺寸为1333 × 800。 我们使用16张图片/批处理,学习速率0:006进行训练。 由于SOLOv2没有框回归头,我们使用Dice系数作为RS Loss的连续标签(参见附录C分析使用不同本地化质量作为标签进行实例分割)。 同样,RS Loss仅通过调整学习率就比基线(即Focal Loss和Dice Loss)表现得更好(表7)。
6.2.3、和SOTA比较
我们使用RS-Mask R-CNN(即带有RS Loss的标准Mask R-CNN)与SOTA方法进行比较。 为了适应我们的V100 GPU的16GB内存并保持所有设置不变,我们将Mask头中的最大建议数量限制为200,对于内存更大的GPU,可以简单地忽略这一点。 在我们的对等之后,我们首先使用ResNet-101训练RS-Mask R-CNN为36个epoch的多尺度训练,掩码AP达到40.6(表8),将Mask R-CNN提高了2.3 Mask AP,并显著优于所有SOTA方法(~ 1 AP)。 然后,我们训练RS-Mask RCNN+(即标准Mask R-CNN,除了FPN的上采样是轻量级Carafe[38]),并将多尺度范围扩展到[480; 960]达到42.0 Mask AP,甚至超过了所有带有DCN的型号。 通过ResNet-101上的DCN[44],我们的RS-Mask R-CNN+达到43.9的Mask AP。
6.3、消融实验
组件的贡献:
用RS Loss替换Focal Loss显著提高了性能(1 AP -表9)。基于评分的加权贡献不大,基于值的任务平衡简化了调优。
对不平衡的鲁棒性:
RS Loss在不进行调整的情况下,可以成功地训练具有非常不同不平衡水平的模型(表10):我们RS损失(i)用标准随机采用在COCO上达到了38.5的AP(即数据相对平衡特别是RPN),(2)利用更多的数据采样后,导致1∼AP的增加(38.5到39.6的AP),和(3)优于长尾上的所有同行LVIS数据集(由表5), 其中R-CNN的不平衡是极端的(pos:负比是1:10470 -表10)。
排序错误的影响:
为了查看额外排序错误的影响,在训练期间,我们跟踪了在有或没有额外排序错误的情况下,IoUs和分类分数之间的Spearman排序相关系数(ρ),作为排序质量的指标(见Eq. 6-8)。 正如假设的那样,使用排序误差提高排序质量,ρ,在所有/最后100次迭代中平均,RS-R-CNN从0.38/0.42到0.42/0.47。
对效率的影响:
平均而言,RS Loss的一次训练迭代所花费的时间大约是基于分数的损失的1.5倍。 更多关于RS Loss对训练和推理时间的影响的讨论见附录C。
7、结论
在本文中,我们提出RS Loss作为一个基于排名的损失函数来训练目标检测器和实例分割方法。 不像现有的基于排名的损失,其目的是将正样本排在负样本前面,我们的RS损失也对定位质量对应正样本。 对于RS Loss,我们采用了一种简单的、基于损失值的、无微调的启发式方法来平衡视觉探测器中的所有头部。 结果,我们在7个不同的视觉检测器上显示,RS Loss既持续地提高性能,又显著地简化了训练流程。