图像分割,也可以称为 语义分割,图像语义分割,

它是指像素级的分类,即图像上每个像素的类别,如属于 人还是兽,从而进行区域分割; 

 

FCN VS CNN 网络结构

CNN 是图像级的分类,很多地方把他们混在一起讲了一大堆,个人觉得没必要,本文只讲重要的,废话请百度;

全卷积网络,Full Convolutional Networks,它是 图像分割 的基础框架,很多模型都是基于 FCN 进行的改进;

全卷积网络,顾名思义,就是没有全连接,类比 CNN ,就是把 全连接改成 卷积,就是全卷积网络了;

后面的 3 个全连接改成了 全卷积;

 

FCN 网络

1. image 经过 conv 和 pool 得到 pool1 的 feature map,size 变为 1/2;

2. pool1 经过 conv 和 pool 得到 pool2 的 feature map,size 变为 1/4;

3. 依次...,最终得到 5 个 feature map;

作者对 这 5 个 feature map 进行了几种尝试:

1.  直接把 feature map 5 进行 32 倍上采样,得到和原图 size 一致的 图像,称为 FCN32;

feature map 5 x 32

2. 保留 feature map 4,把 feature map 5 进行 2 倍上采样,然后和 feature map 4 逐点相加,再进行 16 倍上采样,得到和原图 size 一致的图像,称为 FCN16;

(feature map 5 x 2 + feature map 4) x 16

3. 先把 feature map 5 进行 2 倍上采样,然后和 feature map 4 逐点相加得到 fm,在把 fm 进行 2 倍上采样,和 feature map 3 进行逐点相加,然后进行 8 倍 上采样,称为 FCN8;

[(feature map 5 x 2 + feature map 4) x 2 + feature map 3] x 8

最终在每个像素上采样 softmax 进行分类评分,做损失,做预测等;

 

尝试结果如下图

很明显,FCN8 效果最好,它 保留的 浅层特征最多; 

 

 

FCN 的原理就是这么简单,当然还有些细节,比如 图片过小的话,pool5 可能很小,甚至为 0,这些不重要;

 

FCN 图示

最后的 21 是 20 个类别 + 1 个背景,21 类; 

 

FCN 总结

优点:端到端;输入尺寸无需固定;

缺点:分割不够精细;对像素进行独立分类,没有考虑像素之间的关系;

 

 

参考资料:

https://zhuanlan.zhihu.com/p/34453588  FCN 论文笔记

https://zhuanlan.zhihu.com/p/31428783  图像语义分割入门+FCN/U-Net网络解析