图像分割,也可以称为 语义分割,图像语义分割,
它是指像素级的分类,即图像上每个像素的类别,如属于 人还是兽,从而进行区域分割;
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网络解析