cvpr 2023 通过学习采样来学习上采样
摘要
我们提出了DySample,一个超轻量且有效的动态上采样器。最近基于卷积核的动态上采样器(如CARAFE、FADE和SAPA)展现出了令人瞩目的性能提升,但它们引入了大量的工作量,主要是由于耗时的动态卷积和用于生成动态卷积核的额外子网络。此外,FADE和SAPA对高分辨率特征引导的需求在一定程度上限制了它们的应用场景。为了解决这些问题,我们绕过动态卷积,从点采样的角度制定上采样方法,这种方法更加资源高效,并且可以很容易地在PyTorch的标准内置函数中实现。我们首先展示了一个原始的设计,然后逐步展示如何加强其上采样行为,直至实现我们的新型上采样器DySample。与以往基于卷积核的动态上采样器相比,DySample不需要定制的CUDA包,参数、FLOPs、GPU内存和延迟都大大减少。除了轻量级特性外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五项密集预测任务中表现优异。代码可在https://github.com/tiny-smart/dysample 上找到。
1.引言
特征上采样是密集预测模型中逐步恢复特征分辨率的重要组成部分。最常用的上采样器是最近邻法(NN)和双线性插值法,后者遵循固定规则对上采样值进行内插。为了增加灵活性,在一些特定的任务中引入了可学习的上采样器,例如实例分割[13]中的去卷积和图像超分辨率[31,12,22]中的像素重组[34]。然而,他们要么受到棋盘伪影的困扰[32],要么似乎对高级任务不友好。随着动态网络[14]的普及,一些动态上采样器在几个任务上显示出了巨大的潜力。Carafe[37]生成内容感知的上采样核以通过动态卷积对特征进行上采样。随后的工作Fade[29]和SAPA[30]建议将高分辨率引导特征和低分辨率输入特征相结合来生成动态核,使得上采样过程可以由高分辨率结构来引导。这些动态上采样器往往结构复杂,需要定制CUDA实现,并且比双线性插值法需要更多的推理时间。尤其是对于FADE和SAPA,更高分辨率的引导功能会带来更多的计算工作量,并缩小它们的应用场景(必须提供更高分辨率的功能)。与早期的平面网络不同[27],现代建筑中经常使用多尺度特征;因此,高分辨率特征作为上采样器的输入可能不是必要的。例如,在特征金字塔网络(FPN)[23]中,高分辨率特征将在上采样之后添加到低分辨率特征中。因此,我们相信一个设计良好的单输入动态上采样器就足够了。
考虑到动态卷积带来的繁重的工作量,我们绕过了基于核的范式,回到了上采样的本质,即点采样,重新制定了上采样过程。具体地说,我们假设输入特征被双线性内插到连续的特征,并且生成内容感知的采样点来对连续的地图进行重新采样。从这个角度来看,我们首先提出了一个简单的设计,其中逐点偏移是通过线性投影生成的,并使用PyTorch中的GRID SAMPLE函数对点值进行重采样。然后,我们展示了如何通过一步一步的调整来改善它:i)控制初始采样位置,ii)调整偏移量的移动范围,iii)将上采样过程分成几个独立的组,得到我们新的上采样器DySample。在每个步骤中,我们都会解释为什么需要调整,并进行实验来验证性能收益。
与其他动态上采样器相比,DySample i)不需要高分辨率的引导特征作为输入,ii)除了PyTorch之外不需要任何额外的CUDA包,特别是iii)具有更少的推理延迟、内存占用、Flop和参数数量,如图1和图8所示。例如,在以MaskFormer-SwinB[8]为基线的语义分割上,DySample的性能比Carafe高46%,但只需要3%的参数数量和20%的Carafe Flop。由于高度优化的PyTorch内置函数,DySample的推理时间也接近双线性插值法(上采样256×120×120特征地图时为6.2ms,而上采样为1.6ms)。除了这些吸引人的轻量级特征外,DySample还报告了在五个密集预测任务中比其他上采样器更好的性能,包括语义分割、对象检测、实例分割、全景分割和单目深度估计。
图1.不同上采样器的性能、推理速度和GFLOPS的比较。圆的大小表示GFLOPS的成本。通过对大小为256×120×120的特征图进行×2次上采样来测试推理时间。使用SegFormer-B1[40]在ADE20K数据集[42]上测试了MIUU性能和其他GFLOP。
图8.复杂性分析。DySample系列在SegFormer-B1[40]上实现了整体最好的性能,并且在最近的强动态上采样器中耗费的延迟、内存占用、训练时间、GFLOP和参数数量最少。通过在服务器上使用单个NVIDIA GTX 3090图形处理器对256×120×120特征地图(如果需要,还包括256×240×240引导特征)进行上采样来测试推断时间。‘+’表示与双线性插值法相比的附加量。
总而言之,我们认为DySample在现有的稠密预测模型中可以安全地取代NN/双线性插值法,不仅是有效的,而且是高效的。
2.相关工作
我们回顾了深度学习中的密集预测任务、特征上采样算子和动态采样。
密集预测任务。
密集预测是指需要逐点标签预测的任务分支