Shiyu

出处:CVPR2020 (oral)

paper code unofficial-code

motivation

在不增加计算开销的前提下提高语义分割的性能,而语义分割依赖于HR feature representations,如果直接输入HR images会产生很大的计算开销,所以做SSSR。而只依赖于SSSR的decoder难以恢复original details,所以他们用了SISR来guide SSSR,如何guide呢?用feature affinity module,核心是feature相似矩阵的距离。

现有的语义分割方法能取得好的性能依赖于HR的深度特征表示:large computation budgets

现有的语义分割方法保持HR representations:

  1. 用空洞卷积代替 strided 卷积,比如DeepLabs
  2. 结合HR的pathway,比如Unet

这些方法的输入通常是original HR image,当限制输入图像的大小的时候,他们的性能有明显的下降。(现有语义分割方法:FCN, DeepLabs, PSPNet, 空洞卷积,pyramid pooling module, attention, context encoding)

现有的轻量级的语音分割:通过factorization加速卷积,ESPNets(split-merge,reduce-expand加速卷积计算),采用一些有效的分类网络(mobileNet、shuffleNet),知识蒸馏帮助训练对抗网络。但他们的性能比SOTA差很多。

本文提出一种two-stream的framework (dual super-resolution learning, DSRL) 在不产生额外计算开销的情况下提高semantic 分割的准确率: 对于LR的输入保持HR representations。具体的,SISR得到的HR features用来guide spatial维度的相关性学习。DSRL可以在相同的resolution下,显著提高准确率。

现有的SISR方法:

  1. pre-upsampling SR:先通过bicubic上采样得到HR图像,再用网络refine HR图像(计算开销大:网络在HR上做的)
  2. post-upsampling SR:在网络的最后面用可学习的上采样层
  3. progressive SR:逐渐提高分辨率,可以handle multi-scale的SR(deep laplacian pyramid networks)
  4. iterative up-and-down SR:通过iterative上\下采样的层得到中间图像,结合中间图像重建最终图像(deep back-projection networks)

multi tasks:

mask R-cnn(检测+实例分割)

RCNN(姿态估计+动作识别)

cross tasks:

(希望把语义分割作为主要任务,SISR作为附加任务)

proposed method

Review of encoder-decoder framework

用来提取特征的encoder的scaling step是2,OS通常是8或者16(the ratio of input image spatial resolution to the Encoder output resolution),把最后两层strided conv换成空洞卷积。在decoder端,用一个bilinear 上采样层恢复分辨率。

现有的方法只能将feature上采样至与input image同样的大小,可能比original image小。(分割网络的输入往往是对原图做了下采样)。这样可能损失了一部分有用的label信息,另一方面,也难以只依赖decoder恢复original details。

DSRL

contribution

  1. 在不额外增加计算开销的前提下,通过保持HR representations,提高性能
  2. 泛化性:可以扩展到需要HR representation的任务中,比如人体姿态估计
  3. 实验:在语音分割和人体姿态估计任务上都获得了良好的性能,相同计算开销,提高2%

包含三个部分:

  1. semantic segmentation super-resolution (SSSR)
  2. single image super-resolution (SISR)
  3. feature affinity (FA)

其中SISR与SSSR共享特征提取器,

SSSR:加额外的上采样层(一些deconv)来得到最终的prediction mask,比如输入的是5121024,输出1024\2048. 他们的方法可以利用全部的label

SISR:只依赖decoder不足够恢复HR semantic特征表示,因为decoder的上采样结构不是简单的bilinear上采样,就是简单的sub-net,这并不会引入额外的信息,因为输入是LR的。 而SISR可以有效恢复图像细节,SSSR和SISR的feature如下图所示,SISR的feature包含更多的物体更多的复杂结构,尽管这些结构不能直接揭示物体属于哪一类,但他们可以根据像素与像素、区域与区域直接的相关性group起来,而这些像素区域的关联揭示了语义信息。

所以,SISR得到的HR feature用来guide SSSR的HR feature的学习。SISR根据original image的GT来优化。

FA: feature affinity SISR得到的structure information如何guide SSSR?用 feature affinity learning,FA来学习SSSR和SISR feature上相似矩阵的距离,相似矩阵刻画的是像素直接pairwise的关系。理论上,应该计算所有像素对的affinity,为了节省计算开销,他们subsamples得到1/8的像素对。为了减少由SISR和SSSR不一致引起的训练的不稳定性,他们还附加了一个feature transform模块。

最后的FA loss为:

$p=2, q=1$,总的loss:

其中,

$L_{ce}$ 为cross entropy loss, $w_1=0.1, w_2=1.0$

experiments

semantic segmentation:CitySpace数据集,将一张图分为19类。10242048;CamVid数据集,11类,960\720。

metric:mIoU(mean Intersection over Union)

segmentation architecture: ESPNetv2, DeepLabv3+(ablation study), PSPNet, BiseNet, DABNet (lightweight)

effect of components

输入:256512(resize, 1024\2048=>256*512)

输出:+SR的输出是5121024(2倍),不加SR的输出:256\512

+SSSR+SISR+FA > +SSSR+SISR > SSSR > 不加

原图下采样作为baseline和自己方法的输入,输出分辨率不同

【输出分辨率不同怎么比的?】

  1. 把原图的label分别下采样到256*512和512*1024比

  2. output统统上采样到原图的分辨率(1024*2048)和label比。(保持同分辨率下比较,并且不对原始的label降质)

第2 种比较相当于比的是bicubic+seg和SR+seg

effect of various input resolutions

input resolution:256*512, 320*640, 384*768, 448*896, 512*1024 (CitySpace)

对于每一种input resolution,用他们的framework都比不用性能好,且随着input resolution逐渐增大,性能增值越来越小。

human pose estimation

metric:object keypoint similarity (OKS)

architecture: HRNet-w32, 用offline person detection的结果预测关键点

输入human detection box (缩放到固定大小:256192, 162\128, 128*96)

输出heatmap(64*48)

results

visualization of segmentation features

对于structured objection提升尤其明显,比如人,车