深度学习,语义分割---FCN (Fully Convolutional Networks for Semantic Segmentation)

贡献:
a)为语义分割引入了 端到端 的全卷积网络
端到端:输入是原始数据,输出是最后的结果,特征可以自己去学习,所以特征提取这一步也就融入到算法当中,不需要人来干预了。原来输入端不是直接的原始数据,而是在原始数据中提取的特征,因为图像像素数太多,数据维度高,会产生维度灾难,所以原来一个思路是手工提取图像的一些关键特征,这实际就是就一个降维的过程
b)重新利用 ImageNet 的预训练网络用于语义分割
d)引入跳跃连接来改善上采样粗糙的像素定位
e)比较重要的发现是,分类网络中的全连接层可以看作对输入的全域卷积操作,这种转换能使计算更为高效,并且能重新利用 ImageNet 的预训练网络。经过多层卷积及池化操作后,需要进行上采样,FCN 使用反卷积(可学习)取代简单的线性插值算法进行上采样深度学习,语义分割---FCN (Fully Convolutional Networks for Semantic Segmentation)_第1张图片
FCN全卷积网络的原理:
FCN将传统CNN中的全连接层转化成一个个的卷积层。如下图所示,在传统的CNN结构中,前5层是卷积层,第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的一维向量,分别对应1000个类别的概率。FCN将这3层表示为卷积层,卷积核的大小(通道数,宽,高)分别为(4096,1,1)、(4096,1,1)、(1000,1,1)。所有的层都是卷积层,故称为全卷积网络。
经过多次卷积(还有pooling)以后,得到的图像越来越小,分辨率越来越低(粗略的图像),从这个分辨率低的粗略图像恢复到原图的分辨率,FCN使用了上采样。例如经过5次卷积(和pooling)以后,图像的分辨率依次缩小了2,4,8,16,32倍。对于最后一层的输出图像,需要进行32倍的上采样,以得到原图一样的大小。这个上采样是通过反卷积(deconvolution)实现的。对第5层的输出(32倍放大)反卷积到原图大小,得到的结果还是不够精确,一些细节无法恢复。于是将第4层的输出和第3层的输出也依次反卷积,分别需要16倍和8倍上采样,结果就精细一些了。下图是这个卷积和反卷积上采样的过程。
深度学习,语义分割---FCN (Fully Convolutional Networks for Semantic Segmentation)_第2张图片
下图是32倍,16倍和8倍上采样得到的结果的对比,可以看到它们得到的结果越来越精确
深度学习,语义分割---FCN (Fully Convolutional Networks for Semantic Segmentation)_第3张图片
FCN的优点和不足
优点:接受任意大小的输入图像
更加高效,避免了由于使用像素块而带来的重复存储和计算卷积的问题。

缺点:不够精细。进行8倍上采样虽然比32倍的效果好了很多,但是上采样的结果还是比较模糊和平滑,对图像中的细节不敏感。二是对各个像素进行分类,没有充分考虑像素与像素之间的关系,忽略了在通常的基于像素分类的分割方法中使用的空间规整(spatial regularization)步骤,缺乏空间一致性。

你可能感兴趣的:(硕士,FCN,语义分割,深度学习,全卷积网络)