文章目录
语义分割
1.语义分割基本基本介绍
1.常见的分割任务
-
语义分割:相当于分类任务,就是对每一个像素进行分类
- 基本思路 逐像素进行图像分类。我们将整张图像输入网络,使输出的空间大小和输入一致,通道数等于类别数,分别代表了各空间位置属于各类别的概率,即可以逐像素地进行分类
-
实例分割:在与语义分割基础上,更精确的对每个类别进行分类
-
全景分割:不仅对划分目标进行分割,也需要对背景进行分割
2.语义分割常见数据集
PASCAL VOC 2012 1.5k训练图像,1.5k验证图像,20个类别(包含背景)。
(155条消息) PASCAL VOC2012数据集介绍_太阳花的小绿豆的博客-CSDN博客_voc2012数据集
MS COCO COCO比VOC更困难。有83k训练图像,41k验证图像,80k测试图像,80个类别。
(155条消息) MS COCO数据集介绍以及pycocotools简单使用_太阳花的小绿豆的博客-CSDN博客_pycocotools
3.常见指标
pixel Accurcay(Gobal Accuracy):
mean Accuarcy:
mean IoU:
后面详细介绍怎么算
4.语义分割标注工具
Labelme https://github.com/wkentaro/labelme
参考博文:https:/blog.csdn.net/qq_37541097/article/details/120162702
EISeg https://github.com/PaddlePaddle/PaddleSeg
参考博文:https:/blog.csdn.net/qq_37541097/article/,details/120154543
2.转置卷积Transposed Convolution
1.什么是转置卷积
作用:上采样的作用
简单的理解就是把图片进行放大了
在深度学习框架中,上采样可以简单的理解为 任何可以让图像变成更高分辨率的技术。
上采样 (upsampling)的三种方式:插值法 (Interpolation) 、反卷积 (Deconvolution) 和 反池化 (unPooling) 。
2.转置卷积的参数
3.转置卷积的操作步骤
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OOyxyZae-1677810556191)(语义分割Img/image-20230114203522214.png)]
例子
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iUUyDNLI-1677810556192)(语义分割Img/image-20230114203637080.png)]
详细例子
普通计算
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2cbZbTc-1677810556192)(语义分割Img/image-20230114204638705.png)]
等效矩阵
像普通的一个一个移动计算卷积在真实计算中太慢了,所以使用等效矩阵直接计算,当然pytorch等使用的方法更加快速
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XuHN7R7Z-1677810556192)(语义分割Img/image-20230114204708983.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDxMOg0D-1677810556193)(语义分割Img/image-20230114204937925.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vj1zOMpI-1677810556193)(语义分割Img/image-20230114204941303.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0k0EPQoX-1677810556193)(语义分割Img/image-20230114204958553.png)]
方阵才可逆
总结
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-luf5fqBl-1677810556193)(语义分割Img/image-20230114205400347.png)]
3.FCN网络结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fVLk0rfP-1677810556194)(语义分割Img/image-20230114205654867.png)]
1.什么是FCN网络
首个端对端的针对像素级预测的全卷积网络
全卷积:将全连接层转化为卷积层
介绍为什么会有FCN网络,他的思想来源于分类任务,分类任务最后三层为全连接层,用于分类,而FCN将其转换为(convolutionalization)卷积层,用于语义分割
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aSX64s06-1677810556194)(语义分割Img/image-20230114212836504.png)]
VGGNet网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z30F49PC-1677810556194)(语义分割Img/image-20230114212854206.png)]
convolutionalization介绍
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GrIhzFDb-1677810556195)(语义分割Img/image-20230114213015714.png)]
2.模型介绍
- FCN-32模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lEaNa1rL-1677810556195)(语义分割Img/image-20230114213942855.png)]
- FCN-16s
maxpooling4:x下采样率是16
maxpooling3:x下采样率是8
- FCN-8s
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-corjohoZ-1677810556196)(语义分割Img/image-20230114214625531.png)]
- 损失类别
对一个channel经过sofetmax,和真实label进行计算
对每一个picx求CEL,在求和取平均就是整个的cross entroy loss
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zMiPsNCG-1677810556196)(语义分割Img/image-20230114215059565.png)]
4.空洞卷积Dilated convolution
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZeE14BKm-1677810556197)(语义分割Img/image-20230114215430815.png)]
1.什么是空洞卷积
Dilated convolution(具体长啥样看上图)
作用
- 增大感受野
- 保持原输入特征图的W、H
backbone
backbone这个单词原意指的是人的脊梁骨,后来引申为支柱,核心的意思。
在神经网络中,尤其是CV领域,一般先对图像进行特征提取(常见的有vggnet,resnet,谷歌的inception),这一部分是整个CV任务的根基,因为后续的下游任务都是基于提取出来的图像特征去做文章(比如分类,生成等等)。 所以将这一部分网络结构称为backbone十分形象,仿佛是一个人站起来的支柱。
在使用maxpooling进行下采样时,会丢失一些细节信息,并且无法恢复,而直接去除最大池化,会缩小感受野,所以使用空洞卷积
2.空洞卷积带来的问题
但是空洞卷积并不是越多越好会有GE
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6OxC1k6r-1677810556197)(语义分割Img/image-20230114220558676.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wNfZ9yEP-1677810556198)(语义分割Img/image-20230114220918174.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ck6s0JOs-1677810556198)(语义分割Img/image-20230114221030516.png)]
对于空洞卷积而言,每一层使用的rx应该要不同,负责就可能也损失一定的信息,如上图,而像下图,不同空洞间距r最后也使用了大量不同的数据。
3.如何解决GE问题
Hybrid Dilated Convolution (HDC)
- 如何设计膨胀卷积的膨胀系数r
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JtWJekSt-1677810556199)(语义分割Img/image-20230114221306963.png)]
根据上述公式可以判断是否合适,有没有用到所有信息
- 将dilation rates设置成锯齿结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H58ok5M4-1677810556199)(语义分割Img/image-20230114221825770.png)]
- 公约数不能大于1
效果对比
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7FtTaXjE-1677810556199)(语义分割Img/image-20230114222006862.png)]
5.基于pytorch官方实现的FCNNet
1.官方模型架构图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vXy8eDbt-1677810556199)(语义分割Img/torch_fcn.png)]
模块介绍
-
ResNet50 Backbone
前面和resNet50一样
-
Bottleneck1 对应conv4 多了使用空洞卷积
-
Bottleneck2 对应conv5
-
-
FCN-Head
-
Bilinear Interpolate:双线性插值
具体代码讲解
FCN源码解析(Pytorch)_哔哩哔哩_bilibili
6.DeepLabv1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CUMJ0WNg-1677810556200)(语义分割Img/image-20230114232729507.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xaF04W7b-1677810556200)(语义分割Img/image-20230115120138363.png)]
语义分割存在的问题
- 下采样
- 空间不敏感
1.网络优势
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oqdBbKdp-1677810556201)(语义分割Img/image-20230114233002347.png)]
2.LargeFOV
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uTRxWo4y-1677810556201)(语义分割Img/image-20230114233755040.png)]
3.模型架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g4eN2jlt-1677810556201)(语义分割Img/image-20230114233807030.png)]
4.MSc
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CbxLrieb-1677810556202)(语义分割Img/image-20230114234355455.png)]
5.DeepLab-MSc-LargeFov
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4KJP9wST-1677810556202)(语义分割Img/image-20230114234509663.png)]
DeepLabv2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JUuHi2sW-1677810556202)(语义分割Img/image-20230115120030647.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8be3ZOhN-1677810556203)(语义分割Img/image-20230115120045072.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-04m8sike-1677810556203)(语义分割Img/image-20230115114003939.png)]
1.语义分割存在的问题
- 下采样
- 针对多尺度问题(新增)
- 空间不敏感
2.网络优势
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TKSd8pSp-1677810556204)(语义分割Img/image-20230115114023048.png)]
3.ASPP
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1KNHbkJw-1677810556204)(语义分割Img/image-20230115114159479.png)]
就是根据膨胀系数的不同,选取
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gk79KnvW-1677810556204)(语义分割Img/image-20230115114324142.png)]
3消融实验
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KoSuUFlt-1677810556205)(语义分割Img/image-20230115114851000.png)]
4Learning Rate Policy
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ORteDRg-1677810556205)(语义分割Img/image-20230115115021258.png)]
5网络结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jP31CZiR-1677810556205)(语义分割Img/image-20230115115102503.png)]
Tips:
- stride=2,表示宽高都减半
- kernel_size=5,表示宽高减4
DeepLabv3
和V2的不同
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XFQrQdhp-1677810556206)(语义分割Img/image-20230115130225424.png)]
更合理设置膨胀系数
用于捕捉多尺度环境的替代架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wb426xxI-1677810556206)(语义分割Img/image-20230115131145532.png)]
1、卷积神经网络模型常常使用连续的池化或者带步长的卷积来减少特征图的分辨率,从而得到高级的抽象特征表示,但是这样会损失图像的低级信息(例如边界)。通常的处理方法是减少下采样(maxpool和带步长的卷积),保留空间细节信息,同时使用空洞卷积来增加感受野;
2、多尺度的目标分割,现有的处理方法如下:
a:Image Pyramid,将输入图像resize成不同的大小,送入网络得到分割结果后对分割结果进行融合;
b:Encoder-Decoder,encoder提取多尺度的特征,decoder对不同尺度的特征融合,解码器解码时可以从不同分辨率的特征图中复原空间细节信息;
c:Context Module,在模型加入额外模块对长距离上下文进行编码(如空洞卷积);
d:Spatial pyramid pooling,通过不同步长的池化,可以得到不同感受野的特征图,因此捕捉到不同尺度的目标。
- 不同大小的模型通过backbone,最后合成一个
- 和Unet一样,先编码再解码
- 第三种是最后一层采用膨胀卷积
- 第四种是使用多个膨胀卷积相融合
DeepLabV3的两种模型结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yDfo16Zk-1677810556206)(语义分割Img/image-20230115131152221.png)]
第一种:使用联级模型,分别融合不同的膨胀系数进行处理
第二种:使用ASPP模型,不同于V2,它有两个路径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCFwefKX-1677810556207)(语义分割Img/image-20230115132111356.png)]
Multi-grid
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jRzBYghC-1677810556207)(语义分割Img/image-20230115134915100.png)]
消融实验
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hn2fZRvv-1677810556207)(语义分割Img/image-20230115135226003.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3xULS6p3-1677810556208)(语义分割Img/image-20230115135505103.png)]
官方模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aFlxaBJK-1677810556208)(语义分割Img/image-20230115135512044.png)]
DEEPLabV3
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qVlY3QDW-1677810556208)(语义分割Img/image-20230115140246515.png)]
LRASPP
论文下载地址:https:/arxiv.org/abs/1905.02244
来源于MoblileNet-v3,属于其训练的一部分结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4PDc5pu7-1677810556209)(语义分割Img/image-20230115140614585.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pC4hcgii-1677810556209)(语义分割Img/image-20230115140715564.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NlBHzdMZ-1677810556209)(语义分割Img/image-20230115140847998.png)]
—————————————————————————————————————————————————
⨂:
数学上,克罗内克积是两个任意大小的矩阵间的运算。克罗内克积是张量积的特殊形式,以德国数学家利奥波德·克罗内克命名。
举例
相乘的操作就是在channel方向引入了注意力机制
Attention机制就是加权,目前实现形式主要包括三个方面:CNN-Attention(图像)、RNN-Attention(NLP)、self-Attention(机器翻译)。下面对CNN-Attention进行记录。
注意模块的开发大致可以分为两个方向:(1)增强特征聚合;(2)通道与空间注意相结合
记录常用的CNN-Attention主要包括以下:
SEnet(Squeeze-and-Excitation Network) 在特征通道之间加入注意力机制
—————————————————————————————————————————————————
源码讲解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9HshBxex-1677810556210)(语义分割Img/lraspp.png)]
首先通过这个网络结构我们需要用到stride=2的第二个层,所以我们在代码中进行了如下操作
# Gather the indices of blocks which are strided. These are the locations of C1, ..., Cn-1 blocks.
# The first and last blocks are always included because they are the C0 (conv1) and Cn.
stage_indices = [0] + [i for i, b in enumerate(backbone) if getattr(b, "is_strided", False)] + [len(backbone) - 1]
low_pos = stage_indices[-4] # use C2 here which has output_stride = 8 这里
high_pos = stage_indices[-1] # use C5 which has output_stride = 16
low_channels = backbone[low_pos].out_channels
high_channels = backbone[high_pos].out_channels
return_layers = {
str(low_pos): "low", str(high_pos): "high"}
backbone = IntermediateLayerGetter(backbone, return_layers=return_layers)
#重构了这个mobileNet的特征层,一个输出low即下采样八倍的特征层,另一个是high即通过1x1卷积的输出结果
model = LRASPP(backbone, low_channels, high_channels, num_classes)
return model
UNet
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NP6cAquF-1677810556210)(语义分割Img/image-20230115145218515.png)]
模型结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YcSke0tg-1677810556210)(语义分割Img/image-20230115145231764.png)]
contracting path:收缩路径
expansive path:扩展路径
一些论文介绍
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-odlDgqgR-1677810556211)(语义分割Img/image-20230115145702020.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EscPUoxO-1677810556211)(语义分割Img/image-20230115145719387.png)]
U2Net
0.前言
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CFnBdBDW-1677810556212)(语义分割Img/image-20230115145754946.png)]
SOD:显著性检测
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yMH6ivOx-1677810556213)(语义分割Img/image-20230115145831724.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cmv9j21e-1677810556213)(语义分割Img/image-20230115145845600.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-53YcatQD-1677810556213)(语义分割Img/image-20230115150011504.png)]
这个网络比之前好
1.模型架构解析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RAVFRb5b-1677810556214)(语义分割Img/image-20230115150154485.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8cKG03kZ-1677810556214)(语义分割Img/image-20230115150247024.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0z2Ja2eq-1677810556214)(语义分割Img/image-20230115150338692.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Q2Iu6CW-1677810556215)(语义分割Img/image-20230115150440885.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-io1Fe1kz-1677810556215)(语义分割Img/image-20230115150547097.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V3tSxf2e-1677810556215)(语义分割Img/image-20230115150639733.png)]
2.损失计算
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yLPLEgsp-1677810556216)(语义分割Img/image-20230115150723286.png)]
3.评价指标
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-axc5Uo6R-1677810556216)(语义分割Img/image-20230115150829972.png)]
4.数据集介绍
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bV9k6DGQ-1677810556216)(语义分割Img/image-20230115150939344.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djL4Bv6C-1677810556217)(语义分割Img/image-20230115150949468.png)]
主要参考B站up主的视频:霹雳吧啦Wz
今天的文章语义分割upload分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64048.html