DCT-Mask: Discrete Cosine Transform Mask Representation for
Instance Segmentation
DCT-Mask: 用离散余弦变换Mask提升实例分割性能
pdf: link.
一、简介
二进制网格掩码表示在实例分割中被广泛使用。一个典型实例是Mask R-CNN,它预测在28 × 28二进制网格上的掩码。通常,低分辨率的网格不足以捕获细节,而高分辨率的网格会极大地增加训练的复杂性。
在本文中,我们提出了一种新的掩模表示方法,利用离散余弦变换(DCT)将高分辨率二进制网格掩模编码成紧凑的向量。我们的方法称为DCTMask,可以很容易地集成到大多数基于像素的实例分割方法中。
在没有任何附加功能的情况下,DCT-Mask可以在不同的框架、骨干、数据集和训练计划上产生显著的收益。它不需要任何预处理或训练,而且对速度几乎没有影响。特别是对于高质量的注释和更复杂的主干,我们的方法有了更大的改进。此外,我们从掩模表示质量的角度分析了我们的方法的性能。DCT-Mask工作良好的主要原因是它能以低复杂度获得高质量的掩码表示。
1 背景
低分辨率的二元栅格掩模表示不足以捕获细节特征,导致上采样时产生偏差。我们发现在COCO val2017数据集中,28 × 28二进制网格的IoU命中率仅为93.8%。这意味着即使掩模分支的预测是准确的,重建的掩模也有6.2%的误差。高质量的掩模表示可以减少重构误差。
128 × 128分辨率可以实现98%的IOU。但掩模在预测高分辨率二值网格时的平均年龄精度(8720)比原来的28 × 28分辨率差。(具体的实验结果将在实验部分讨论。)掩模的区别像素沿目标边界分布,而二元网格掩模表示则对整个大网格上的所有像素进行过多预测。随着分辨率的增加,训练的复杂性将急剧增加。
掩模表示质量的提高并不能弥补其不足。
2 简介
我们探索将离散余弦变换应用于掩模表示。摘要离散余弦变换(DCT)由于其强大的能量压缩特性,在信号处理和数据压缩中得到了广泛的应用。实例分割中的掩码作为二值图像,大部分信息集中在少量的低频分量中。通过将高分辨率二进制掩模变换到频域并保留其低频分量,得到了一种高质量、低复杂度的掩模表示,称为DCT掩模表示。实验表明,在128 × 128分辨率掩模中压缩一个300维矢量,就可以达到97%的IoU。与高分辨率带来的改善相比,高频元器件的废弃信息可以忽略不计。因此,掩模表示的整体质量得到了提高。DCT与主成分分析(PCA)、稀疏编码、自编码器等字典学习压缩方法不同,DCT不需要任何预训练和预处理,DCT变换的计算复杂度为O(nlog(n)),可以在整个实例分割框架中省略。
掩码R-CNN的掩码AP具有不同分辨率的掩码网格。直接增加分辨率会降低掩码AP
创新点
- 提出了一种高质量、低复杂度的掩模表示,用于分割,该表示通过离散余弦变换将高分辨率二进制掩模编码成紧凑的向量。
- 只要稍加修改,DCT-Mask就可以集成到大多数基于像素的框架中,并在不同的数据集、骨干和训练计划上实现显著和一致的改进。
- DCT-Mask不需要额外的预处理或预培训。它以类似于低分辨率的速度实现高分辨率掩模预测
二、方法
直接增加分辨率会降低掩码AP
DCT mask representation
DCT掩码表示类似于JPEG,它将二进制掩码编码成一个紧凑的向量。如下图所示,对于二进制Ground Truth Mask ,其中H和W分别表示高度和宽度。文中用双线性插值将它调整为,其中K是Mask的大小。本文中设置K=128。值得注意的是Mask R-CNN中的K=28。
- 二维DCT-II转换到频率域
由于DCT具有较强的“能量压实”特性,我们从MDCT中选择第一个n维向量V为“Zig-zag”字形。这里DCT掩模向量V就是我们想要的掩模表示。
- 恢复
通过将V中其他部分填充为0 - 二维逆DCT
- 采用双线性插值方法调整M的大小
我们将掩模M gt ground truth编码为一个紧凑的向量V,然后解码V来重建掩模M rec。就可以用n维向量V代替二值图像作为掩模表示。
总之,在没有任何预处理或预处理训练的情况下,DCT掩模表示有效地捕获了低复杂度掩模的细节。它将掩模预测的任务转换为DCT向量V的回归。
DCT-Mask in Mask R-CNN
以Mask R-CNN为例,将DCT-Mask集成到基于像素的实例分割框架中。
Mask R-CNN是一种两阶段的实例分割方法。第一阶段通过区域建议网络(RPN)生成关于区域的建议。第二阶段包括检测分支和掩码分支。检测分支基于R-CNN Head的第一阶段建议,预测对象的类别并细化边界框。掩模分支通过Mask Head进行像素分类生成目标的Mask。
我们使用4个卷积层提取掩模特征,3个全连接层回归DCT掩模向量。卷积层的设置与Mask R-CNN相同,kernel size为3,filter number为256。前两层全连接层的输出大小为1024,最后一层的输出大小为DCT掩模矢量的维数。
此外,Mask Head的预测是class-agnostic的,通过保持较小的输出规模来降低训练复杂度。
Loss function
-
loss function of mask
其中 V i \text{V}_{\text{i}} Vi, V ^ i {\hat{V}}_{i} V^i分别表示ground-truth和prediction vector中的第i个元素。 1 obj \text{1}_{\text{obj}} 1obj阳性样本的指示函数。D是距离度量,在这篇文章中是L1损耗。 -
模型损失函数:
L
d
e
t
\mathcal{L}_{det}
Ldet为检测分支的损失,
λ
m
a
s
k
\lambda_{mask}
λmaskMask分支相应的权值。
模型推理
在推理过程中遵循标准的Mask R-CNN推理过程。在NMS之后,top-k得分框被选择并用RoIAlign后送入Mask分支。Mask分支预测每个边界框的DCT Mask向量。Box内的Mask由DCT掩码向量解码生成。
总之,保持其他部分完全不变,这里只修改Mask分支,使用3层FC替换最后2个卷积层。同样,该方法方法也可以很容易地应用到其他基于像素的实例分割框架中。
三、实验
数据集
COCO
Cityscapes datasets
LVIS∗
Detail
- 在COCO上,实验采用90K迭代,8 gpu上16 batch size,基础学习率0.02。在60K和80K迭代时,学习率降低了10倍。采用多尺度训练,从[640,800]中随机抽样较短边。短边在推断中被调整为800。
- 在Cityscapes中,我们使用24K迭代和0.01的基础学习率,并在18K时降低学习率。训练时从[800,1024]中随机采样短边,推理时调整为1024。
- 损失函数和相应的重量。
在本文中,我们选择了最佳的l1损耗和λ掩模组合= 0.007。
Ablation Study
- Dimension of DCT mask vector .DCT掩模向量的维数。
- Resolution of mask representation.掩码表示的分辨率。
- Different representations with the same quality.相同质量的不同表现。
- The effect of the architecture modifications.架构修改的效果。
- The design of the mask branch.掩模分支的设计。
More discussion to prior works