一文总结图像语义分割模型

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

作者:咫尺小厘米

本文转载自知乎,作者已授权,未经许可请勿二次转载

语义分割是图像分割中的基本任务,是指对于图像将每个像素都标注上对应的类别,不区分个体。简单地说,我们需要将视觉输入的数据分为不同的语义可解释性类别。若是区分了个体数量,那么就是实例分割。

本文主要总结一些较为经典的语义分割模型,慢慢更新,主要是对U-Net、FCN、SegNet、PSPNet、DeepLab v1/v2/v3/v3+进行要点概括,论文的具体解读、链接和源码在每个小结的卡片中。

U-Net

1.U-Net发表于2015年,用于医学细胞分割

2.编码器-解码器架构,四次下采样(maxpooling),四次上采样(转置卷积),形成了U型结构

3.U-Net最核心的一个思想是特征图的拼接

4.SGD+Momentum,损失函数为交叉熵

5.数据预处理使用了镜像边缘,可以更好细化边界信息

6.数据增加中有一个弹性形变,符合细胞本身的特性

7.可以应对小样本的数据集进行较快、有效地分割,能够泛化到很多应用场景中去

1835d72e6807d2d6f30c19892e9c461b.jpeg

U-Net: Convolutional Networks for Biomedical Image Segmentation论文笔记:  https://zhuanlan.zhihu.com/p/98339195

FCN:Fully Convolutional Networks

1.FCN发布于2014年,是语义分割领域全卷积网络的开山之作,U-Net也在其之后

2.其主要思路是将图像分类的网络改良成语义分割的网络,通过将分类器(全连接层)变成上采样层来恢复特征图的尺寸,进行端到端训练

3.分类器变成上采样,这部分思想作者主要的解释是全连接层是一种特殊的卷积

4.选择了AlexNet、GoogLeNet和VGG作为backbone(主干网络),VGG效果最好,但是推理最慢

5.最核心的思想是特征图的融合:假设最后的输出为pool5产生的x,利用转置卷积上采样,放大32倍,得到FCN-32s;将x上采样放大2倍,和pool4产生的特征图直接相加,再上采样放大16倍,得到FCN-16s;将FCN-16s进行上采样放大2倍,与pool3产生的特征图直接相加,在放大8倍,得到FCN-8s。在实验中,FCN-8s的效果最好

6.backbone是分类网络,下采样都是maxpooling,上采样使用的是双线性插值初始化的转置卷积

7.在PASCAL VOC 2012上达到了62.2%的mIoU

5c938949cc71aca94dcfaaa55e61c02e.jpeg

Fully Convolutional Networks for Semantic Segmentation论文笔记:https://zhuanlan.zhihu.com/p/113250925

SegNet:A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

1.SegNet发布于2015年,使用编码器-解码器结构

2.其backbone是2个VGG16,去掉全连接层(13层),对应形成编码器-解码器架构

3.最核心的想法是提出了maxpool的索引来上采样的方法,从而免去了学习上采样的需要,在推理阶段节省了内存

4.作者说道这个idea是来自于无监督特征学习。在解码器中重新使用编码器池化时的索引下标有这么几个优点:1. 能改善边缘的情况;2. 减少了模型的参数;3. 这种能容易就能整合到任何的编码器-解码器结构中,只需要稍稍改动

5.文章采用的数据集是CamVid road scene segmentation 和 SUN RGB-D indoor scene segmentation。之所以不用主流的Pascal VOC12,是因为作者认为VOC12的背景太不相同了,所以可能分割起来比较容易

6.总得来说,SegNet的性能比较一般,不如同时期的DeepLab v1,但是因为它只存储特征映射的maxpool索引,所以最推理阶段内存占用少,更为高效

6efc3927e38f0b8cea2880945724cf20.jpeg

SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation论文笔记:https://zhuanlan.zhihu.com/p/113347630

PSPNet:Pyramid Scene Parsing Network

1.PSPNet发布于2017年,CVPR 2017

2.核心idea是提出了金字塔池化模块,模型带有空洞卷积

3.金字塔池化(Pyramid pooling)融合了四个比例的特征,结合多尺寸信息:SPP(AVE效果优于MAX)。最粗糙的 outside_default.png 是全局尺度的池化,剩下的层次会将图像分为不同子区域,形成不同区域的信息表示。金字塔池模块中不同level的输出包含比例不同的feature map(比如输入的维度都是 outside_default.png ,有四个层次的金字塔,那么输出的维度则为 outside_default.png )。为了保持全局特征的权重,若如果金字塔的数量为 outside_default.png ,则在每个金字塔级别之后使用 outside_default.png 卷积层将上下文表示的维度减小到原先的 outside_default.png 。然后直接对feature map进行双线性插值,恢复到输入的长宽上。最后,将不同level的特征拼接起来作为金字塔池化的全局特征。文中给出的金字塔池化模块是一个四级模块,其大小分别为 outside_default.png 。

4.其backbone为修改Resnet-101 为 ResNet-103,而且有辅助 loss,上采样是双线性插值

5.性能上PASCAL VOC 2012:85.4%(pre-trained on COCO),82.6%;Cityscape:80.2% (both coarse and fine set)。

f4a39331ec76a484637fc62961f39a88.jpeg

PSPNet:Pyramid Scene Parsing Network论文笔记:https://zhuanlan.zhihu.com/p/115004020

DeepLab v1

1.发表于2014年,CVPR2014

2.核心思想是使用空洞卷积扩大感受野,条件随机场细化边界

3.backbone是VGG16,下采样8倍

4.PASCAL VOC 2012达到了71.6%的mIOU

5.v1版本是下采样8倍,在VGG16中是前三个stage上stride为2

fa399e808e308811117faccd4a327574.jpeg

Deeplab v1:Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs论文笔记:https://zhuanlan.zhihu.com/p/113573758

DeepLab v2

1.发表于2016年,TPAMI 2017

2.和v1的区别主要是在于多了atrous spatial pyramid pooling(ASPP)

3.流程上是DCNN + Atrous convlution + CRF

4.backbone是VGG16和ResNet-101,下采样8倍(ResNet需要在第二个stage第一个bottleneck中stride为2)

5.PASCAL VOC 2012达到了79.7%的mIOU

6.ASPP是多尺度下融合特征,CRF是进行边界的精确化

e4afb9bf9461de88dd2a202efd3a9bd5.jpeg 6c466595be816c4ef0571a721f3fd292.jpeg

DeepLab v2: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs论文笔记:https://zhuanlan.zhihu.com/p/121605775

DeepLab v3

1.CVPR 2017

2.和v2的区别在于ASPP多了image-level feature,没有使用CRF

3.提出了mutil-grid,改进了级联网络的性能

4.PASCAL VOC 2012达到了85.7%的mIOU

5.流程上是端到端训练了,backbone是ResNet-101

6.下采样有8倍和16倍两种,8倍性能更好

7.计算损失时,将输出的上采样,而非是将真实注释下采样

d4789312657ced14ed51516bb383a6ef.jpeg

Deeplab v3:Rethinking Atrous Convolution for Semantic Image Segmentation论文笔记:https://zhuanlan.zhihu.com/p/124141514

DeepLab v3+

1.CVPR 2018

2.和v3的区别是多了一个解码器模块,backbone用了Aligned Xception(其中有深度可分解卷积)

3.PASCAL VOC 2012达到了87.8%的mIOU,在JFT预训练的DeepLab v3+在PASCAL VOC 2012上至今领先,达到了89.0%,但是JFT-300M是谷歌的内部数据集,不开源

90bdde97c964407bd6e3095119cce7f3.jpeg

DeepLab v3+:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation论文笔记:https://zhuanlan.zhihu.com/p/124141514

 
 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

e014b1b0b15a137e347b43b81e5f97ce.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值