SegNet论文阅读

作 者: 心有宝宝人自圆

声 明: 欢迎转载本文中的图片或文字,请说明出处

写在前面

自从FCN提出以来,越来越多的语义分割任务开始采用采用全卷积网络结构,随着FCN结构使用的增加,研究人员发先了其结构天生的缺陷极大的限制了分割的准确度:CNNs在high-level (large scale) tasks中取得了十分优异的成绩,这得益于局部空间不变性(主要是池化层增大了感受野,也丢弃了部分细节信息)使得网络能够学习到层次化的抽象信息,但这却恰恰不利于low-level (small scale) tasks

许多研究对FCN的网络架构进行优化:其中一类的目的是减少细节信息的丢失,因此优化大都是针对Encoder进行的;还有另外一类研究目的是减少将Encoder输出结果映射(上采样)到原始输入空间的损失,减少FCN中简单的双线性插值造成的信息损失,因此设计了可end-to-end训练的Decoder。FCN中的双线性插值可以使用可训练的卷积层进行替代,但为了弥补下采样带来的损失,会将Decoder中某层上采样的结果与Encoder在同层的结果相加,这又样带来了额外的存储空间消耗。

SegNet的目标就是设计一种快速、存储空间较小的适应用于实时应用的深度网络模型。

SegNet的创新点在于:使用记录maxpool层最大响应特征位置的tensor(pooling indices)来进行上采样,避免了FCN中学习上采样带来的消耗,而后再使用可训练的卷积层使稀疏的feature map密集,这将避面上面描述保存feature map产生的额外空间消耗。

1. Introduction


DCNNs在high-level vision tasks(如图像分类、目标检测等)取得优异得表现,这些工作都有共同的主题:end-to-end训练的方法比人工的特征工程方法更优。这得益于CNNs内在的局部空间不变性,然而对应low-level vision tasks(语义分割)来说,我们需要准确的位置信息而非空间信息抽象后的层次化信息。

DCNNs应用于low-level vision tasks主要难点是:

  • 信号的下采样使细节信息丢失
  • 网络对多尺度目标的泛化能力较差
  • 空间的局部不变性导致位置信息不再准确

其中最主要的是下采样问题,它是池化层和stride的联合影响造成,是准确性和速度、空间消耗的权衡(即过大的卷积核运算极度耗时、参数过大)。其目的是为了使较小的卷积核能够去学习空间中有用的信息(因此需要增大感受野),但这种下采样必然造成信息的损失。网络对于小目标的性能较差、局部不变性同样是由于池化层丢失了部分边界信息带来的问题,也就是说最大的问题集中在了池化层的处理。即使DeepLabv2使用了带洞的卷积来显式地控制感受野的大小,但网络训练的难度决定了网络模型中仍必须有下池化层的存在,所以需要将低分辨率的特征图映射(上采样)到高分辨率的输入空间,同时映射必须能准确地进行边界定位的手段。

作者同样关注了在推理期间的内存和计算时间方面的效率。SegNet由Encoder和Decoder组成,其中Encoder与Vgg-16一致,但完全去除了全连接层(也没有将其变化为全卷积层,而是直接将应传入fc6的feature map直接传入Decoder),这样既减少了训练时间和存储空间(最多的参数就在全连接层中,约占整个网络90%的参数)也减少了信息的丢失(更多的特征)。SegNet最核心的部分就是Decoder的设计,Encoder中的每一层与Decoder中一一对应,其每层的设计与DeconvNet(Zeiler,2013)类似。为了保证边界信息不丢失,Encoder需要在下采样之前保存各层feature map,但这会受到内存的限制,因此更为高效的做法是使用max-pooling indices存储各层下采样过程中各池化窗口最大特征值的位置,保存最重要的特征信息。作者的试验结果表明与使用完整的feature map相比,max-pooling indices仅造成了较小的准确率下降。总之,使用max-pooling indices:

  • 保留了部分重要的边界信息,改善了网络模型对于边界的描述
  • 减少了FCN中因上采样而需要训练的参数
  • 能在极小修改的条件下与Encoder-Decoder网络模型相结合

2. ARCHITECTURE


SegNet的结构如Fig. 2所示,其中Encoder由Vgg-16的前13层组成(但个卷积层后都加了一个BN层),去除全连接层可以保留更高分辨率的特征图,并且能够显著地减小网络的参数(from 134M to 14.7M,同时这也是网络难以训练的重要原因)。Decoder通过同层Encoder记录的max-pooling indices进行上采样,再由可训练的卷积层对于稀疏的解码特征图经行密集化处理。

2.1 Decoder Variants

许多用于语义分割的网络都拥有相似的架构,为了对比各种设计之间造成速度、存储、模型性能的差异,作者设计了以下几种变种(原始网络模型的简化版):

  • SegNet-Basic:4个编码器 + 4个解码器,所有kernel_size = 7,Decoder中使用max-pooling indices取代学习一个conv层来进行上采样

  • SegNet-Basic- EncoderAddition:与FCN的解码技术类似,将Decoder解码的结果与同层Encoder的feature map相加传入下一层,增加了内存消耗

  • SegNet-Basic-SingleChannelDecoder:Decoder采用单通道conv层,可以显著减少内存的消耗,但损失了部分信息

  • FCN-Basic:与SegNet-Basic相同的Encoder,使用FCN的解码技术(Fig. 3,将Decoder上采样结果与同层Encoder的feature map相加后传入下一层),此结构中Encoder最后一层的K通道feature map会被一个卷积层压缩成Number of Class通道feature map后传入Decoder

  • FCN-Basic-NoAddition:去除FCN-Basic Decoder中将上采样并将结果与同层Encoder的feature map相加的步骤,显著减少内存的消耗,但损失了部分信息

  • FCN-Basic-NoDimReduction:去除FCN-Basic压缩Encoder输出通道数的conv层,这样会带来更多内存消耗(需要保存Encoder最后的feature map,压缩后空间更小),但减少了信息损失

  • FCN-Basic-NoAddition-NoDimReduction:去除FCN-Basic-NoAddition和FCN-Basic-NoDimReduction对应的部分

2.2 Training

训练过程中比较新颖的地方是使用median frequency balancing,基于真实标记的分布为各类别的损失重新加权,以减弱类别不平衡对模型带来的影响。median frequency balancing需要如下的步骤:

  • 计算整个训练集中各个类别出现的频率:f_c=\frac{训练集中被标记为c的像素数}{训练集中所有图片的总像素数},c=1,...,K

  • 选出集合[f_1,...,f_K]中的中位数f_{median}

  • 为每个类别的loss分配权重w_c=\frac{f_{median}}{f_c},c=1,...,K

这意味着训练集中数量较大的类的权值小于1,数量最小的类的权值最大。默认情况是为每个类别都赋予1作为权重,这被称作natural frequency balancing。

2.3 Analysis

比较不同Decoder变体的性能,选择了如下几种指标:

  • global accuracy (G):数据集中正确分类的像素的百分比
  • class average accuracy (C):所有类别预测准确率的平均值
  • mean intersection over union (mIoU):比类平均准确率更严格,因为它惩罚FP预测;然而mIoU并不是损类别平衡cross-entropy损失函数的优化目标(其优化目标是准确率最大化)
  • boundary F1-measure (BF):涉及计算边界像素的F1指标。给定一个像素容错距离,计算预测值和ground truth类别边界之间的精确度和召回率。作者使用图像对角线的0.75%作为容错距离。与mIoU相比,BF的评判结果更符合人类对语义分割效果的判定


在各网络已训练至均收敛的条件下,各变体的评价结果如Table 1所示。结果表明:

  • (1) Decoder需要训练,使用双线性插值作为Decoder的效果最差。
  • (2) SegNet-Basic和FCN-Basic性能相近,但后者由于保存各层的feature map消耗更多内存。
  • (3) FCN-Basic-NoAddition的性能差于结构最相近的SegNet-Basic,表明Encoder中信息的重要性。
  • (4) 不对Encoder的输出进行压缩,能带来性能的提升,但在保存feature map时会增大内存消耗。
  • (5) 与FCN-Basic-NoAddition和FCN-Basic-NoAddition-NoDimReduction相比,SegNet-Basic-SingleChannelDecoder虽然丢失了部分信息,但仍保留了部分Encoder中的信息,因此性能优于前两者。
  • (6) 在不限制内存和推断时间的条件下,FCN-Basic-NoDimReduction和SegNet-EncoderAddition达到了最优的性能,FCN-Basic-NoDimReduction的BF1最高,表明存储空间和准确率之间存在着权衡。

作者总结了如下要点:

  • 更高的性能\Rightarrow不压缩feature map,记录Encoder各层feature maps
  • 更小的存储空间\Rightarrow压缩feature map,记录max-pooling indices
  • 感受野更大的解码器性能更好

3. BENCHMARKING


作者将完整的SegNet与FCN、DeepLab- LargFOV、DeconvNet进行比较,发现:

  • CRF后处理的改善效果在训练集足够大的条件下不明显。
  • 难以使用median frequency balancing训练较大的网络,但使用median frequency balancing能较明显地提高网络性能。
  • 网络在训练集收敛后,过拟合仍未发生,这表明过拟合在训练大型网络是不是严重的问题。

4. 总结


SegNet更关注内存消耗(尤其注重)与推断时间,尽管对于模型的性能没有较为明显的提升,但使我们了解到减少Encoder中信息损失的重要性和训练Decoder、结合Encoder信息的重要性。此外,其使用median frequency balancing和BF1指标都对于训练与评价都有很好的启发。

因为SegNet不存在特别难以构建的地方(或与之前我写过网络的类似),这里仅进行理解阅读不再进行代码复现。

Reference

[1] Badrinarayanan, Vijay , A. Kendall , and R. Cipolla . "SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation."IEEE Transactions on Pattern Analysis and Machine Intelligence (2017).

[2] Zeiler, Matthew D , and R. Fergus . "Visualizing and Understanding Convolutional Networks." European Conference on Computer Vision Springer International Publishing, 2013.

转载请说明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容