这是专栏《图像分割模型》的第2篇文章。在这个专栏里,我们将共同探索解决分割问题的主流网络结构和设计思想。

上篇文章我们学习了分割网络鼻祖FCN,今天我们来看看用解码器踢馆的SegNet。

作者 | 孙叔桥

编辑 | 言有三

1 编解码结构

分割任务中的编码器encode与解码器decode就像是玩“你来比划我来猜”的双方:比划的人想把看到的东西用一种方式描述出来,猜的人根据比划的人提供的信息猜出答案。

其中,“比划的人”叫做编码器,“猜的人”就是解码器

具体来说,编码器的任务是在给定输入图像后,通过神经网络学习得到输入图像的特征图谱;而解码器则在编码器提供特征图后,逐步实现每个像素的类别标注,也就是分割。

通常,分割任务中的编码器结构比较类似,大多来源于用于分类任务的网络结构,比如VGG。这样做有一个好处,就是可以借用在大数据库下训练得到的分类网络的权重参数,通过迁移学习实现更好的效果。因此,解码器的不同在很大程度上决定了一个基于编解码结构的分割网络的效果。

SegNet就讨论了这种不同,并在道路和室内两个场景下比较了不同解码器下,各个算法的表现。

CamVid数据库:《Semantic object classes in video: A high-definition ground truth database》

SUN RGB-D数据库:《SUN RGB-D: A RGB-D scene understanding benchmark suite》

2 SegNet

SegNet的编码器结构与解码器结构是一一对应的,即一个decoder具有与其对应的encoder相同的空间尺寸和通道数。对于基础SegNet结构,二者各有13个卷积层,其中编码器的卷积层就对应了VGG16网络结构中的前13个卷积层。

下图是SegNet的网络结构,其中蓝色代表卷积+Batch Normalization+ReLU,绿色代表max-pooling,红色代表上采样,黄色是Softmax。

SegNet与FCN的对应结构相比,体量要小很多。这主要得益于SegNet中为了权衡计算量而采取的操作:用记录的池化过程的位置信息替代直接的反卷积操作。具体如下图所示。

图中左侧是SegNet使用的解码方式,右侧是FCN对应的解码方式。可以看到,SegNet的做法是先根据位置信息生成稀疏的特征图,再利用后续的卷积计算恢复稠密特征图。而FCN则直接利用反卷积操作求得上采样后的特征图,再将其与编码器特征图相加。

3 解码器变体

前文已经提到,编解码结构中,解码器的效果和复杂程度对于整个分割网络的影响是非常大的。这里我们就一起来看一下不同解码器结构和它们的效果。

SegNet中一共尝试了8种不同的解码结构,先上结果:

这些变体共用相同的编码器结构,只是在解码器结构上有所不同。比如,将解码器的结构单纯减少层数,改变解码器最后一层通道数,改变编解码器对应结构之间的连接方式(只连接池化信息、保留特征层内信息或全部保留),改变采样方式等。

除上面几种变体外,论文中还尝试了改变上采样方法,或取消池化和下采样过程,但是这些改变都没有带来更好的结果。

4 总结与思考

关于变体的分析,可以总结为以下三点:

保留编码器所有特征图所实现的效果最好,在这一点上语义分割边缘轮廓描述度量(BF)体现最为明显。

当推理过程的内存受限时,可以使用编码器特征图的压缩形式(比如缩小维度、使用池化信息等),但需要搭配合适的解码器形式(比如SegNet类型的)来提升表现。

在给定编码器时,越大的解码器效果越好。

今天的图像分割模型到此结束,下回再见。

本专栏文章:

第一期:【图像分割模型】从FCN说起

第二期:【图像分割模型】编解码结构SegNet

第三期:【图像分割模型】感受野与分辨率的控制术—空洞卷积

如果想加入我们,后台留言吧

转载文章请后台联系

侵权必究

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI

【图像分割模型】编解码结构SegNet相关推荐

  1. 「图像分割模型」编解码结构SegNet

    https://www.toutiao.com/i6715692120516067847/ 这是专栏<图像分割模型>的第2篇文章.在这个专栏里,我们将共同探索解决分割问题的主流网络结构和设 ...

  2. 标准编解码结构的局限性

    理解卷积神经网络中的自注意力机制_AI公园-CSDN博客点击上方"AI公园",关注公众号,选择加"星标"或"置顶"作者:Shuchen Du ...

  3. 【图像分割模型】全景分割是什么?

    这是专栏<图像分割模型>的第12篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文是专栏的最后一篇文章,见识过了分割任务中的大量模型,也了解了语义分割与实例分割,这 ...

  4. 【图像分割模型】实例分割模型—DeepMask

    这是专栏<图像分割模型>的第11篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 本文介绍了用于实例分割任务的模型结构--DeepMask. 作者 | 孙叔桥 编辑 | ...

  5. 【图像分割模型】BRNN下的RGB-D分割—LSTM-CF

    这是专栏<图像分割模型>的第10篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 深度信息的引入往往会给分割带来更好的结果.之前提到的ENet除了直接变成ReSeg分割 ...

  6. 【图像分割模型】用BRNN做分割—ReSeg

    这是专栏<图像分割模型>的第9篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管许多人都知道RNN在处理上下文上多优于CNN,但如何将RNN用于分割任务还是值得讨论 ...

  7. 【图像分割模型】多分辨率特征融合—RefineNet

    这是专栏<图像分割模型>的第8篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. RefineNet,教你在实现特征融合与残差恒等映射的同时,怎么找回降下来的空间分辨率. ...

  8. 【图像分割模型】全局特征与局部特征的交响曲—ParseNet

    这是专栏<图像分割模型>的第7篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 尽管多尺度融合.空洞卷积都可以增加网络的感受野,但理论感受野与实际感受野仍然存在差异.那 ...

  9. 【图像分割模型】多感受野的金字塔结构—PSPNet

    这是专栏<图像分割模型>的第6篇文章.在这里,我们将共同探索解决分割问题的主流网络结构和设计思想. 在分割问题中,上下文信息与多尺度融合对于提高分割精度是十分有效的,今天我们就来谈谈用于实 ...

最新文章

  1. 元宇宙中可跨语种交流!Meta 发布新语音模型,支持128种语言无障碍对话
  2. (九)OpenStack---M版---双节点搭建---Swift安装和配置(单存储节点)
  3. c语言实践 1/1+1/2+1/3+1/4+...+1/n
  4. 躺平设计家“造风” 阿里家装数字化加速“入海”
  5. win8: hello gril
  6. 如何在 Asp.Net Core 实现 Excel 导出功能
  7. 什么甜食可以代表你的家乡?
  8. 11.4 Daily Scrum
  9. Unity3D基础33:物理射线
  10. 第五章 B树和B+树
  11. python与r语言处理excel数据_【R语言】批量读取Excel数据并合并(升级版)
  12. python字典操作首字母与星期的对应_python小课堂10 - 基本数据类型终篇集合和字典...
  13. win7计算机不显示dvd,win7系统不显示光驱盘符的解决方法
  14. 学Python,用Python自动创建PDF文档,实现办公自动化
  15. 宋星:金融行业数字营销的数据破局
  16. 友盟新浪微博授权提示“找不到文件C8998”的解决办法
  17. putty下载(Putty下载中断)
  18. 什么是本地O2O 本地O2O有哪些细分领域?
  19. SQL查询表中重复数据
  20. 国内外黑客大会资料下载

热门文章

  1. Java 高频面试题:聊一聊 JUC 下的 LinkedBlockingQueue
  2. 图解MySQL索引:B-树(B+树)
  3. Java 集合系列06: Vector深入解析
  4. java网络编程(四)
  5. xml教程之约束schema
  6. 【深入Java虚拟机JVM 05】HotSpot对象探秘
  7. 字节面试必须拿下的十道算法题,你会几道?
  8. 深入理解Spring MVC Controller返回String类型导致中文乱码的问题。
  9. java NIO模型和三大核心原理
  10. 高性能的索引实现——《深究MySQL》