语义分割江湖的那些事儿——从旷视说起
今天的主题是 Face++ Detection 组近两年持续在做的 Semantic Segmentation 相关工作,代表性成果主要有 1)GCN (CVPR2017)、2)DFN (CVPR2018)、3)BiSeNet (ECCV2018)。我们先来看一段演示 Demo:
CVPR2018 DFN 算法结果展示
回顾
介绍算法之前,我们先简单回顾一下语义分割(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 。今天我们介绍的三种算法都将从这两方面分别提出各自对应的解决方案。整体对比如下:
Global Convolutional Network
第一位主角是 CVPR2017 算法 Global Convolutional Network(GCN),江湖人送外号“Large Kernel”。论文 Arxiv 链接请见:https://arxiv.org/abs/1703.02719。
——Motivation——
GCN 主要将 Semantic Segmentation 分解为:Classification 和 Localization 两个问题。但是,这两个任务本质对特征的需求是矛盾的,Classification 需要特征对多种 Transformation 具有不变性,而 Localization 需要对 Transformation 比较敏感。但是,普通的 Segmentation Model 大多针对 Localization Issue 设计,正如图 2(b) 所示,而这不利于 Classification。
图 2
所以,为了兼顾这两个 Task,本文提出了两个 Principle:
- 从 Localization 来看,我们需要全卷积网络,而且不能有全连接或者全局池化等操作丢失位置信息。
- 从 Classification 来看,我们需要让 Per-pixel Classifier 或者 Feature Map 上每个点的连接更稠密一些,也就需要更大的 Kernel Size,如图 2(c) 所示。
——网络结构——
根据这两条 Principle,本文提出了 Global Convolutional Network(GCN)。如图 3 所示,这个方法整体结构正是背景介绍中提到的 U-shape 结构,其核心模块主要包括:GCN 和 BR。
图 3 网络结构
此处主要介绍 GCN 设计。正如图 3(b) 所示,它采用了较大 Kernel Size 的卷积核,来同时解决上述的两个 Issue;然后根据矩阵分解,利用 和 的卷积来替代原来的 大核卷积。相对于原本的大核卷积,该设计能明显降低参数量和计算量。图 4 可视化了 Large Kernel Conv 和 普通 Conv 网络有效感受野的对比。
图 4
可以看到,Large Kernel Conv 的有效感受野显著增大。
——实验——
文中为了验证 Large Kernel Conv 的有效性,对比了不同 Size 的 Kernel,可以看到 Kernel Size=15 时比 Base Network 整整高了 5.5% mean IoU.
此外,文中还对 Large Kernel Conv 进行了一系列讨论。
-
GCN 的有效是否得益于更多的参数?
在 GCN 中,随着 Kernel Size 的增加,网络参数也随之增长,那么网络性能的提升是否得益于使用了更多的参数?为了证明提升来自于设计的有效性而不是增加了复杂度,文中设计了不同 Kernel Size 的 GCN 和普通 Conv 的对比实验。
通过实验结果可知,随着 Kernel Size 的增加,普通 Conv 的参数量远大于 GCN,但是 GCN 的性能却持续地优于普通 Conv。
-
GCN 使用 Large Kernel Size 增大了感受野,是否可以通过堆叠多个 Small Kernel Size 的 Conv 来替代?
文章为此设计了实验对比两者的结果。
可以看到 GCN 依然优于普通 Conv 的堆叠,尤其是在较大 Kernel Size 的情况下。笔者认为这是一个很有价值的实验,可以启发我们去思考关于网络感受野的问题。我们以往认为,通过堆叠多个小核 Conv 可以达到和大核 Conv 一样的感受野,同时计算量还更少。最常见的应用比如 VGG-Net。但是,实际上并非如此。
随着网络深度的提升,理论上网络的感受野大多可以直接覆盖全图,但是实际有效感受野却远小于此。笔者的理解是对同一个 Feature Map 进行卷积,边缘区域进行计算的次数会小于中心区域,所以随着 Conv 的不断堆叠,实际上会导致边缘感受野的衰减,即有效感受野会远小于理论感受野。
最后文中给出了在 PASCAL VOC 2012 和 Cityscapes 上完整的 Training Strategy,这在当时还是很良心的,之前的一些 Paper 对此都语焉不详。具体详细的 Training 过程请参考原文。
最终 GCN 在 PASCAL VOC 2012 和 Cityscapes 上都取得了不错的结果。
——PASCAL VOC 2012——
——Cityscapes——
Discriminative Feature Network
接下来出场的是 CVPR2018 算法 Discriminative Feature Network(DFN)。论文 Arxiv 链接请见:https://arxiv.org/abs/1804.09337。详细解读请见:CVPR 2018 | 旷视科技 Face++ 提出用于语义分割的判别特征网络 DFN。
——Motivation——
本文总结了现有语义分割方法仍然有待解决的两类 Challenge(如图 5 所示):
- Intra-class Inconsistency(具有相同的语义标签,不同的表观特征的区域)
- Inter-class Indistinction(具有不同的语义标签,相似的表观特征的区域)
图 5
所以,本文从宏观角度出发重新思考语义分割任务,提出应该将同一类的 Pixel 考虑成一个整体,也就需要增强类内一致性,增大类间区分性。总结而言,我们需要更具有判别力的特征。
——网络结构——
本文提出的 DFN 主要包括两部分:Smooth Network 和 Border Network,如图 6 所示。
图 6
Smooth Network 主要解决类内不一致性问题。文中认为类内不一致性问题主要来自 Context 的缺乏。进而,我们需要引入 Multi-scale Context 和 Global Context;但是,不同 Stage 的特征虽然带来了 Multi-scale Context,与此同时也带来了不同的判别能力;因此,我们需要对这些具有不同判别力的特征进行筛选,这就诞生了其中核心的设计——Channel Attention Block(CAB)。
CAB 利用相邻 Stage 的特征计算 Channel Attention 然后对 Low-stage 的特征进行筛选,如图 7 所示。因为文中认为,High-stage 的特征语义信息更强,更具有判别力。
图 7
此外,本文首次在 U-shape 结构中采用 Global Average Pooling,这个设计非常有效。ParseNet 首次在语义分割中使用 Global Average Pooling 提取 Global Context,而之后的 PSPNet,Deeplab V3 将其在 Dilation 阵营发扬光大。而本文将其应用 U-shape 的 High-stage,并命名为“V-shape”。我们尝试将其迁移到 Detection 中的 FPN 结构,结果证明同样有效。
Border Network 主要解决类间低区分性的问题。文中认为具有相似表观特征的不同区域很容易被网络混淆,尤其是相邻之时。所以,需要增大特征之间的区分性。为此文章显式地引入了 Semantic Boundary 来引导特征学习。因为 Low-stage 主要关注一些细节边缘区域,而随着语义的增强,High-stage 的特征才是更多关注语义边界,所以 Border Network 采用了“反 U-shape”结构。
——实验——
文中进行了丰富的消融实验和可视化分析。
首先是对 Smooth Network 各部分的消融实验分析。可以看到 Smooth Network 非常有效,在 PASCAL VOC 2012 Validation Set 上可以达到 Single Scale 79.54% mean IoU。
而通过可视化输出,可以看到 Smooth Network 确实可以将类内区域变得更加一致,如图 8 所示。
图 8
同时,文中还对 Smooth Network 和 Border Network 进行了消融实验分析。
通过可视化 Border Network 的输出,可以看到 Border Network 确实可以很好地关注到 Semantic Boundary 区域,如图 9 所示。
图 9
最终,DFN 在 PASCAL VOC 2012 和 Cityscapes 上性能都达到了当时的 state-of-the-art。
BiSeNet
最后出场的主角是 ECCV 2018 算法 Bilateral Segmentation Network(BiSeNet)。前面两个算法主要关注 Accuracy,探索 mean IoU 的极限;而 BiSeNet 关注于做出一个既快又好的实时语义分割算法。最终该算法在 Cityscapes 上能取得 68.4% mean IoU 105 FPS (NVIDIA Titan XP) 的好成绩。当然,我们希望这篇工作能抛砖引玉,尝试探讨到底什么架构才更适合 Segmentation 任务,什么框架才能很好地同时获得充足的 Context 和丰富的空间信息?论文 Arxiv 链接请见:https://arxiv.org/abs/1808.00897。
详细解读请见:ECCV 2018 | 旷视科技提出双向网络 BiSeNet:实现实时语义分割。
——Motivation——
本文对之前的实时性语义分割算法进行了总结,发现当前主要有三种加速方法:1)通过 Crop 或者 Resize 限制输入图片进而减少计算量;2) 减少网络通道数,尤其是 Early Stage;3)还有像 ENet 类似的方法直接丢掉最后一个 Stage,如图 10(a) 所示。
这些提速的方法会丢失很多 Spatial Details 或者牺牲 Spatial Capacity,从而导致精度大幅下降。为了弥补空间信息的丢失,有些算法会采用 U-shape 的方式恢复空间信息。但是,U-shape 会降低速度,同时很多丢失的信息并不能简单地通过融合浅层特征来恢复,如图 10(b) 所示。
图 10
总结而言,实时性语义分割算法中,加速的同时也需要重视空间信息。基于这些观察,本文提出了一种新的解决方案 Bilateral Segmentation Network(BiSeNet)。
——网络结构——
BiSeNet 区别于 U-shape 和 Dilation 结构,尝试一种新的方法同时保持 Spatial Context 和 Spatial Detail 。所以,我们设计了 Spatial Path 和 Context Path 两部分。顾名思义,Spatial Path 使用较多的 Channel、较浅的网络来保留丰富的空间信息生成高分辨率特征;Context Path 使用较少的 Channel、较深的网络快速 downsample 来获取充足的 Context。基于这两路网络的输出,文中还设计了一个 Feature Fusion Module(FFM)来融合两种特征,如图 11 所示。
图 11
Spatial Path 只包含三个 的 Conv+BN+Relu,输出特征图的尺寸为原图的 。为了访存比考虑,此处并没有设计 Residual 结构。
Context Path 可以替换成任意的轻量网络,比如 Xception,ShuffleNet 系列,MobileNet 系列。本文主要采用 Xception39 和 ResNet-18 进行实验。可以看到,为了准确率考虑,Context Path 这边使用了类似 U-shape 结构的设计。不过,不同于普通的 U-shape,此处只结合了最后两个 Stage,这样设计的原因主要是考虑速度。此外,和 DFN 类似,Context Path 依然在最后使用了 Global Average Pooling 来直接获取 Global Context。
最后,文章中提到因为两路网络关注的信息不同,属于 Different Level 的特征,所以文中设计了一个 FFM 结构来有效融合两路特征。
——实验——
本文从精度和速度两个维度,进行了丰富的分析实验。
首先文中分析了 Context Path 这边使用不同变体的 U-shape 结构的速度和精度的对比。
此处,U-shape-8s 就是文中所展示的结构,U-shape-4s 则是普通的 U-shape 设计,即融合了更多 stage 特征。可以看到,U-shape-4s 的速度会明显慢于 U-shape-8s.
文中还对 BiSeNet 的各个部分进行了消融分析实验。
文中还给出了 BiSeNet 的 GFLOPS、参数量等信息,以及在不同硬件平台不同分辨率下的速度对比。
文中给出了 BiSeNet 分别与实时性算法和非实时性算法比较的结果。
与实时性算法比较:
虽然 BiSeNet 是实时性算法,但是它的精度甚至比一些非实时性算法还高。
与非实时性算法比较:
可以看到,BiSeNet 是一种很有效的设计。当替换上大模型之后,精度甚至高于 PSPNet 等算法。另外,需要注意的是,为了和非实时性算法进行比较,在关注精度这部分实验 BiSeNet 使用的不同于关注速度部分的 Setting,具体细节详见论文。
BiSeNet 算法对实时性语义分割算法提出了新的思考,在提升速度的同时也需要关注空间信息。同时,该设计也是一次对 Segmentation Backbone 的思考,希望设计一个对 Segmentation 任务友好的框架,当然现在还存在许多需要改进的地方。此外,该方法不仅仅可应用于实时性语义分割算法,也可应用于其他领域,尤其是在对 Spatial Detail 和 Context 同时有需求的情况下。据笔者了解,已有研究将其应用于 Potrait Segmentation.
重要的事情
- 我们的 DFN 和 BiSeNet 均已开源,后续将有更多的语义分割算法复现开源出来,欢迎大家 Star 和 Contribute:
https://github.com/ycszen/TorchSeggithub.com
- 欢迎各位同学加入旷视科技 Face++ Detection Team,简历可以投递给 Detection 组负责人俞刚 (yugang@megvii.com)
Reference
[1] Peng, C., Zhang, X., Yu, G., Luo, G., & Sun, J. (2017). Large kernel matters—improve semantic segmentation by global convolutional network. In Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on(pp. 1743-1751). IEEE.
[2] Yu, C., Wang, J., Peng, C., Gao, C., Yu, G., & Sang, N. (2018). Learning a Discriminative Feature Network for Semantic Segmentation.arXiv preprint arXiv:1804.09337.
[3] Yu, C., Wang, J., Peng, C., Gao, C., Yu, G., & Sang, N. (2018, September). Bisenet: Bilateral segmentation network for real-time semantic segmentation. In_European Conference on Computer Vision_(pp. 334-349). Springer, Cham.
[4] Long, J., Shelhamer, E., & Darrell, T. (2015). Fully convolutional networks for semantic segmentation. In_Proceedings of the IEEE conference on computer vision and pattern recognition_(pp. 3431-3440).
[5] Ronneberger, O., Fischer, P., & Brox, T. (2015, October). U-net: Convolutional networks for biomedical image segmentation. In_International Conference on Medical image computing and computer-assisted intervention_(pp. 234-241). Springer, Cham.
———解读者介绍——-
余昌黔,华中科技大学自动化系在读博士,旷视科技研究院算法实习生,语义分割算法 DFN、BiSeNet 第一作者,研究方向涵盖语义分割、全景分割、快速分割、视频分割等,并在上述方向有着长期深入的研究;2018 年,参加计算机视觉顶会 ECCV 挑战赛 COCO+Mapillary,分获全景分割(Panoptic Segmentation)两项冠军,并受邀作现场口头报告。个人网页:
Changqian Yuchangqianyu.me
编辑于 2019-01-23
时间:2019-02-09 14:32 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
- [机器学习]人工智能十年回顾:CNN、AlphaGo、GAN……它们曾这
- [机器学习]机器学习基础图表:概念、原理、历史、趋势和算法
- [机器学习]20年以后,半数工作将被人工智能取代?这些“高危行业”有哪些
- [机器学习]人工智能十年回顾:CNN、AlphaGo、GAN……它们曾这
- [机器学习]年终总结:2021年五大人工智能(AI)和机器学习(ML)发展趋势
- [机器学习]神经科学如何影响人工智能?看DeepMind在NeurIPS2
- [机器学习]美俄人工智能军事应用
- [机器学习]民调不靠谱?人工智能预测拜登获胜
- [机器学习]ResNet、Faster RCNN、Mask RCNN是专利算法吗?盘点何恺
- [机器学习]YOLO算法最全综述:从YOLOv1到YOLOv5
相关推荐:
网友评论: