语义分割学习篇

part1 什么是语义分割?

语义分割使图像分类任务的一种,实际上是对图片中每个像素进行分类,将相同类别的像素聚在一起从而呈现出分割的效果。

主要应用于无人驾驶(以像素粒度感知周围环境)与医疗影像领域(以像素粒度定位病灶区域)

当物体存在遮挡时,语义分割会将整体分割,而实例分割则会对相互遮挡的物体进行区分。全景分割一般应用在无人驾驶的图像分割中。

part2 语义分割思路方法

早期思路:基于先验,按照颜色进行分割(先验知识不完全准确)

现在思路:基于卷积神经网络

滑动窗口:用不同尺寸大小的滑动窗口在图像上滑动,以某像素为中心的窗口区域看作一张图片,输入卷积神经网络,每一次滑动进行一次分类 (效率太低)

改进方法:与之前一样的卷积,但是直接将整张图片进行卷积,再通过滑动窗输入网络进行分类

新的问题:进行分类的最后一层全连接层,要求有固定的输入大小。

之前是先分割原图,卷积得到尺寸相同的小图像特征图,再输入全连接层得到类别。

现在是先将原图输入卷积层得到特征图,直接输入全连接层得到全图上的类别。而不同的原图对应的卷积后的特征图尺寸是不同的。

 解决办法:全连接层的卷积化

举个例子:卷积后的特征图为256*14*14,分类任务有3个类别,全连接层即有3个神经元,每个神经元对特征图256个通道,14*14大小都有固定的权重。那么就可以把全连接层中的每个神经元看作做一个卷积核(图片第二行这里特征图大小与卷积核大小是一致的,最后1*1*3表示这张图在三个类别中的概率)。所以对更大的尺寸不一的原图,输入全连接层就相当于对特征图做了三层卷积。得到F*F*3,就是F*F个位置上的类别,再通过滑动窗分割出F*F个位置的类别

 全连接层具体内容参考这篇博主讲的很好:http://t.csdn.cn/V2hMX

这就是下面说的全卷积网络的两大改进之一

part3 经典语义分割模型

(1)全卷积网络(Fully Convolution Network 2015)

改进一:全连接层卷积化

将分类网络转化为语义分割网络,同时兼容任意大小的输入

 改进二:预测图的上采样

保证输出预测图大小与原图大小一致

① 双线性插值(无可学习参数,word里面的放大缩小)

② 转置卷积 (有可学习的参数)

双线性插值的卷积核是定义好的,而转置卷积的卷积核是可学习的

全卷积网络的过程:

 下采样进行图像分类,再升采样得到与原图大小一致的预测图,与实际的分割图进行逐像素的交叉熵损失函数求损失并求和,作为语义分割的损失,进行反向传播迭代优化网络的可学习参数,如卷积核权重,转置卷积权重,使得损失函数最小化

新的问题:卷积神经网络逐层下采样使得特征图越来越小,使得分割图越来越小。分割精度越来越低,丢失空间信息。(高层特征经过多次采样,细节丢失严重)

解决思路:结合低层次与高层次特征图(低层次的细节与高层次的语义信息)

 低层与高层结合经典的网络是UNet

 (2)上下文信息与PSPNet(2016)

上下文往往可以帮我们做出更准群的判断,比如床上的枕头,在床上放置能够判断出是枕头。而滑动窗口丢失了上下文信息

存在问题:需要有足够大的感受野帮助我们获取上下文信息,但传统分类网络其感受野受到主干网络的结构限制

解决思路:增加感受野更大的网络分支,将上下文信息导入局部的预测中。

 (3)DeepLab

①空洞卷积解决下采样问题

由于下采样会丢失空间信息,希望能够保留特征图的长宽 → 减少下采样的次数 → 于是去掉卷积层和池化层中步长大于1的层 → 于是特征图就会变大,但是为了保证卷积核在原图中的感受野相同 → 于是要增加对应的卷积核,维持相同的感受野 → 增加了大量参数

空洞卷积: 在不增加参数的情况下增大感受野

下采样加标准卷积等价于空洞卷积

 只有原图1/4是因为进行了下采样,调整膨胀倍率即可调整感受野大小

 ②条件随机场 Conditional Random Filed ,CRF

条件随机场是对原始网络的结果进行后处理,得到更加精细化的结果

 ③空间金字塔池化 Atrous Spatial Pyramid Pooling ,ASPP

PSPNet中使用不同尺度的池化获取不同尺度上的上下文信息

DeepLab v2&v3 使用不同尺度的空洞卷积达到类似的效果

更大的膨胀率的空洞卷积,对应更大的感受野,也就能获取更多的上下文信息

 DeepLab v3+

模型方法总结部分:

part4 语义分割模型评估 

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年9月1日
下一篇 2023年9月1日

相关推荐