计算机视觉与深度学习-图像分割-视觉识别任务01-语义分割-【北邮鲁鹏】-CSDN博客

视觉识别任务

在这里插入图片描述

语义分割

语义分割定义

给每个像素分配类别标签。

不区分实例只考虑像素类别。

在这里插入图片描述

语义分割思路滑动窗口

在这里插入图片描述

滑动窗口缺点

重叠区域的特征反复被计算效率很低。

所以针对该问题提出了新的解决方案–全卷积。

语义分割思路全卷积

让整个网络只包含卷积层一次性输出所有像素的类别预测。
在这里插入图片描述

全卷积优点

不用将图片分为一个个小区域然后再对这一个个小区域进行分类而是一次性输出像素的类别预测减少了重叠区域重复计算从而减少了运算量加快了运算速度。

全卷积缺点

1 处理过程中一直保持原始分辨率即卷积过程中一直保持图片长宽不变。对于显存的需求会非常庞大甚至使得前向数据不能完整的保存在显存中。

针对这个问题提出了先下采样然后上采样。

2 上采样是根据下采样得到的高级语义得到的但是有时候高级语义效果并不好还需要使用低级语义。

针对这个问题提出了Unet将下采样过程中的低级语义整合到上采样过程中从而使得效果更好。

先下采样再上采样

在这里插入图片描述

下采样算法

pooling池化

strided convolution

上采样算法

unpooling反池化
nearest neighbor

对于每个池化区域最近邻反池化会将池化后的值复制到恢复区域的每个位置以填充恢复区域。这样可以将特征图恢复到与池化之前相同的尺寸。
在这里插入图片描述
需要注意的是最近邻反池化是一种近似的逆操作因为池化操作中的信息丢失是不可逆的。因此最近邻反池化只能恢复到大致相似的尺寸和分布而无法完全还原原始特征图。

bed of nails

对于每个池化区域最近邻反池化会将池化后的值把数据放在左上角其他位置置零以填充恢复区域。这样可以将特征图恢复到与池化之前相同的尺寸。
在这里插入图片描述

unpooling缺点

人为给定的像素值可能是噪声。
人为给定的非0像素值可能原来并不在当前位置。

针对这些问题提出了反池化操作思想–index Unpooling。

Index Unpooling

Index Unpooling的基本原理是根据池化时记录的最大值索引位置将池化后的特征值放回到对应的恢复区域中。具体而言对于每个最大值索引位置Index Unpooling会将一个固定的值例如1放置在对应的恢复区域中其余位置为零。通过这种方式可以恢复出与池化之前相同尺寸的特征图。

max unpooling反池化

方式一固定写死

对于一些模型来说上采样和下采样的结构往往是对称的可以在下采样的Max Pooling时记录最大值的位置在unpooling的时候把数据还原到最大值的位置其余位置置零。

在这里插入图片描述

转置卷积Transpose Convolution

方式二自动学习

回顾

3 × 3 3 \times 3 3×3卷积步长stride1零填充pad1
在这里插入图片描述

3 × 3 3 \times 3 3×3卷积步长stride2零填充pad1
在这里插入图片描述

一维例子
在这里插入图片描述
步长为1

下采样
在这里插入图片描述
上采样
在这里插入图片描述

步长为2
在这里插入图片描述

UNET

上采样是根据下采样得到的高级语义得到的但是有时候高级语义效果并不好还需要使用低级语义。

针对这个问题提出了Unet将下采样过程中的低级语义整合到上采样过程中从而使得效果更好。

在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6