轻量级语义分割模型论文阅读笔记(一)

本文汇总一些阅读过的轻量级语义分割模型相关论文,并记录一些心得感想。

ShuffleNet (V1)

文章链接
代码链接
发表时间:2017

上古的经典文献。主要贡献是提出pointwise group convolution和channel shuffle两种操作。文章的 motivation 有两方面:

(1)现有方法未充分考虑1x1卷积的计算量,往往仅对3x3以上卷积使用group conv。
(2)仅用分组卷积无法实现分组间的信息交换。

针对第一个 motivation,文章提出使用 pointwise group conv 以减少 1x1 卷积的计算开销。针对第二个 motivation,文章提出一种创新的 channel shuffle 操作,以分组卷积+打乱通道顺序的方式实现通道间的信息提取与交互。

channel shuffle 的示意图如下图所示,不同颜色代表不同分组的特征(通过卷积,每个分组内的特征是可以有信息交互的),经过先分组卷积、再通道乱序、再接着后续的分组卷积的操作,不同分组(不同颜色)的特征也可以得到信息交互。需要注意的是,这里的 shuffle 不同于在 Python 编程时常用的random.shuffle,打乱通道的顺序是事先设定好的,而不是随机的。从这点来说,这里的 shuffle 翻译为『重排』可能会更好。
轻量级语义分割模型论文阅读笔记(一)_第1张图片

ShuffleNet V2

文章链接
代码链接
发表时间:2018

本文首先指出了现有文章的两大『盲点』:
(1)memory access cost(MAC)和并行度是FLOPs以外值得考虑的因素,这两者都影响运行时间;
(2)即使FLOPs相同,implementation相关的优化也会导致实际运算时间的差异,例如相同通道数的3x3卷积不一定就比1x1卷积慢9倍。

针对第一点,作者提出应该使用更直接的 metric 来衡量轻量模型的性能,即使用运行时间代替FLOPs衡量模型性能(毕竟在实际使用的时候我们真正关心的是时间而不是 FLOPs 这样的纸面数据)。针对第二点,作者提出在计算运行时间时也应该考虑具体的平台。

为了优化运行时间,作者做了一些观察,有以下发现:
(1)输入输出通道数相同时,理论上最节省MAC;
(2)过度的group convolution会增加MAC;
(3)multi-path结构+small operators代替large operator(类似GoogLeNet)影响模型并行性能;
(4)逐像素操作对运行时间的影响不应该被忽略,它们包含小FLOPs但是大MAC。

文章的改进也主要基于作者的以上观察,这里就不过多展开。相比 ShuffleNet V1,这篇文章感觉主要是在做一些增量式的『微创新』,创新的步子没有迈得太大,不过很实用。

ENet

文章链接
代码链接
发表时间:2016

文章本身并没有提出创新性的模块(不过因为是很早的文献了,可能在那个时代还是比较创新的),但混合了一系列模型结构设计上的技巧,如下采样层的设计、激活函数设置的位置、卷积核分解、空洞卷积等。此外,文章还讨论了downsampling对轻量级模型的利与弊。对轻量级模型而言,合适的downsampling 设置确实非常重要而且十分 tricky。

ICNet

文章链接
代码链接
发表时间:2018

网络结构图如下所示:
轻量级语义分割模型论文阅读笔记(一)_第2张图片

为了在accuracy和speed之间实现更好的tradeoff,文章提出采用级联(cascade)结构,分别使用不同量级的网络结构对不同分辨率的输入进行处理,分支间使用CFF融合。CFF 是 cascade feature fusion 的缩写,该模块由一些1x1卷积层、BN 层和上采样层组成,使用逐像素加法融合来自不同分支的特征。

对于这样的多分支结构,深度监督的重要性自然不用多说,文章也是对标签进行了重采样,在每个CFF施加中间层监督以加速收敛和提升特征有效性。

ESPNet (V1)

文章链接
代码链接
发表时间:2018

文章着眼于对基本的卷积模块的改进,提出ESP模块代替标准卷积。ESP模块的结构如下图所示,其基于空洞卷积的改进PPM结构高效提取多感受野信息(微观版本的 PSPNet?)。相比 PSPNet,ESP 模块能够在保持相同感受野的情况下,极大减少参数量。
轻量级语义分割模型论文阅读笔记(一)_第3张图片

有意思的一点是,作者在实验中发现使用hierarchical的特征融合方式(如上图(b)所示)有助于改善空洞卷积导致的栅格伪影,不过作者并没有解释为什么。我猜测可能是因为hierarchical的sum操作能够为用于concat的特征在空间维度填补一些『孔洞』。

你可能感兴趣的:(轻量级语义分割模型,论文阅读,深度学习,python,图像处理,人工智能)