回顾
介绍算法之前,我们先简单回顾一下语义分割(semantic segmentation)的历史。众所周知,计算机视觉有三大核心任务——分类、检测、分割,三者号称是深度学习炼丹师的“三大浪漫”。分类针对整张图片,检测针对图片的局部,语义分割则如图1所示,旨在给输入图片上的每个像素赋予一个正确的语义标签。图 1:PASCAL VOC 2012 图片示例
传统的分割算法我们先按下不表。时间拨回到 2015 年,语义分割江湖之中,FCN 横空出世,自此 DL/NN 方法席卷了整个语义分割领域。短短几年,各个 Benchmark 的 state-of-the-art 不断刷新,成果喜人。
FCN 前期阶段,研究重点主要是解决“网络逐渐衰减的特征尺寸和需要原图尺寸的预测之间的矛盾”,换言之,就是如何解决网络不断 downsample 造成的信息损失;期间百家争鸣,百花齐放,涌现了希望保存或者恢复信息的 unpool、deconv 等方法,也出现了进行结构预测的各种花式 CRF 方法。
“大道之争”之中,碰撞出了两个最重要的设计:U-shape Structure 和 Dilation Conv,据此形成当下语义分割领域网络设计最常见的两大派系:
1)U-shape 联盟以 RefineNet、GCN、DFN 等算法为代表;
2)Dilation 联盟以 PSPNet、Deeplab 系列方法为代表;
随着 Base Model 性能不断提升,语义分割任务的主要矛盾也逐渐演变为“如何更有效地利用 context”;
这中间又是一番腥风血雨,我们今天介绍的 3 位主角也在其中贡献了一份力量。
介绍
语义分割任务同时需要 Spatial Context 和 Spatial Detail 。今天我们介绍的三种算法都将从这两方面分别提出各自对应的解决方案。整体对比如下:
图 2:GCN、DFN、BiSeNet针对Spatial Context & Spatial Detail的解决方案
Global Convolutional Network
第一位主角是 CVPR2017 算法 Global Convolutional Network(GCN),江湖人送外号“Large Kernel”。论文 Arxiv 链接请见:arxiv.org/abs/1703.0271。
-Motivation
GCN 主要将 Semantic Segmentation分解为:Classification 和 Localization两个问题。但是,这两个任务本质对特征的需求是矛盾的,Classification需要特征对多种Transformation具有不变性,而 Localization需要对 Transformation比较敏感。但是,普通的 Segmentation Model大多针对 Localization Issue设计,正如图3(b)所示,而这不利于 Classification。
图 3:A)分类网络;B)卷积分割网络,为localization设计;C)我们的全局卷积网络
所以,为了兼顾这两个Task,本文提出了两个 Principle:
1. 从 Localization 来看,我们需要全卷积网络,而且不能有全连接或者全局池化等操作丢失位置信息。
2.从 Classification 来看,我们需要让 Per-pixel Classifier 或者 Feature Map 上每个点的连接更稠密一些,也就需要更大的 Kernel Size,如图3(c) 所示。
-网络结构
根据这两条 Principle,本文提出了Glob