图像语义分割的理解(基于FCN和U-net)(全卷积网络与cnn的区别)

参考:https://blog.csdn.net/sinat_24143931/article/details/78696442
FCN是深度学习应用在图像分割的代表作, 是一种端到端(end to end)的图像分割方法, 让网络做像素级别的预测直接得出掩模图(或者说label map)

图像语义分割示意

FCN对图像进行像素级的分类,从而解决了语义级别的图像分割(semantic segmentation)问题。与经典的CNN在卷积层之后使用全连接层得到固定长度的特征向量进行分类(全联接层+softmax输出)不同,FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。

全卷积网络

通常CNN网络在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。以AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务,因为它们最后都得到整个输入图像的一个概率向量,比如AlexNet的ImageNet模型输出一个1000维的向量表示输入图像属于每一类的概率(softmax归一化)。
全卷积网络(FCN)的结构示意图

全卷积网络

通常CNN网络在卷积层之后会接上若干个全连接层, 将卷积层产生的特征图(feature map)映射成一个固定长度的特征向量。以AlexNet为代表的经典CNN结构适合于图像级的分类和回归任务,因为它们最后都得到整个输入图像的一个概率向量,比如AlexNet的ImageNet模型输出一个1000维的向量表示输入图像属于每一类的概率(softmax归一化)。

如图所示,
在这里插入图片描述
在CNN中, 猫的图片输入到AlexNet, 得到一个长为1000的输出向量, 表示输入图像属于每一类的概率, 其中在“tabby cat”这一类统计概率最高, 用来做分类任务

FCN与CNN的区别在于把于CNN最后的全连接层转换成卷积层,输出的是一张已经Label好的图片, 而这个图片就可以做语义分割

CNN的强大之处在于它的多层结构能自动学习特征,并且可以学习到多个层次的特征:

较浅的卷积层感知域较小,学习到一些局部区域的特征

较深的卷积层具有较大的感知域,能够学习到更加抽象一些的特征

高层的抽象特征对物体的大小、位置和方向等敏感性更低,从而有助于识别性能的提高, 所以我们常常可以将卷积层看作是特征提取器

在这里插入图片描述

将传统分类网络的最后几层全连接层替换为1x1的卷积核,在通过上采样和反卷积(转置卷积) 得到图像,所以可以输入任意尺寸的图像.(cnn受限于全连接层,必须输入指定尺寸的图像才行)

但直接放大的效果并不好,采用叠加的方式,将几钟不同的图合成新图的效果最好.
在这里插入图片描述

缺点

  • 得到的结果还是不够精细。进行8倍上采样虽然比32倍的效果好了很多,但是上采样的结果还是比较模糊和平滑,对图像中的细节不敏感。

  • 对各个像素进行分类,没有充分考虑像素与像素之间的关系。忽略了在通常的基于像素分类的分割方法中使用的空间规整(spatial regularization)步骤,缺乏空间一致性。

目前总结到这里先,过段时间进行unet分析

猜你喜欢

转载自blog.csdn.net/qq_42121640/article/details/86077025