图像分割基础及经典网络结构

news/2024/5/20 10:20:36 标签: 计算机视觉, 语义分割, DeepLab, U-Net, PSP网络

目录

一、图像分割简介

(一)图像分割类型

1. 根据不同的任务和数据类型:

(二)语义分割性能指标:

二、FCN网络简介

(一)FCN网络如何工作?

(二)feature map的上采样(Upsample)操作:

(三)什么是FCN?

(四)FCN的优缺点

U-Net%E6%A8%A1%E5%9E%8B-toc" style="margin-left:0px;"> 三、U-Net模型

U-Net%EF%BC%9F-toc" style="margin-left:40px;">(一)什么是U-Net

U-Net%E7%BD%91%E7%BB%9C%E7%9A%84%E7%BB%93%E6%9E%84%E2%80%8B-toc" style="margin-left:80px;">       1.  U-Net网络的结构​

        2. 具体操作和实现原理

U-Net%E7%BD%91%E7%BB%9C-toc" style="margin-left:40px;">(二)如何实现一个U-Net网络

U-Net%E7%BD%91%E7%BB%9C%E7%9A%84%E4%B8%BB%E8%A6%81operations%EF%BC%9A-toc" style="margin-left:80px;">        1. 构建U-Net网络的主要operations:

四、PSPNet模型

(一)什么是PSP网络(backbone采用Dilated ResNet)

        1. 基础知识

        2. PSP网络的基本结构:Pyramid Scene Parsing Network

        3. PSP模块的具体形式

        4. PSP网络搭建:

(二)什么是空洞卷积(Dilated Conv)   

DeepLab%E7%B3%BB%E5%88%97-toc" style="margin-left:0px;">五、DeepLab系列

DeepLab%20V1-toc" style="margin-left:40px;">(一)DeepLab V1

DeepLab%20V1%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84-toc" style="margin-left:80px;">1. DeepLab V1网络结构

DeepLab%20V2-toc" style="margin-left:40px;">(二)DeepLab V2

DeepLab%20V2%20%E7%9A%84%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84%E2%80%8B-toc" style="margin-left:80px;">1. DeepLab V2 的网络结构​

2. 什么是ASPPmodule?

DeepLab%20V3-toc" style="margin-left:40px;">(三)DeepLab V3

DeepLab%20V3%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84%E2%80%8B-toc" style="margin-left:80px;">1. DeepLab V3网络结构​

2. ASPP module


一、图像分割简介

(一)图像分割类型

  (23条消息) 图像分割汇总_好啊啊啊啊的博客-CSDN博客

1. 根据不同的任务和数据类型:

  1. 人像分割(头发分割、人脸分割、背景分割)
  2. 自动驾驶(行人、车辆分割,车道线检测)
  3. 医学图像(病理、CT、MRl )
  4. 工业质检、分拣机器人

语义分割算法的基本流程:

1. 输入:图像(RGB)

2. 算法:深度学习模型

3. 输出:分类结果(与输入大小—致的单通道图)

4. 训练过程∶

  • 输入∶image + label
  • 前向︰out = model ( image )
  • -计算损失:loss = loss_func ( out, label )
  • 反向︰loss.backward()
  • 更新权重:optimizer.minimize(loss)

(二)语义分割性能指标:

  • MIOU:mean intersection-over-union,可有多种理解,如:分割每一类别的交并比
  • MACC:mean accuracy,即prediction和ground truth对应位置的分类准确率


二、FCN网络简介

paper:

Fully Convolutional Networks for Semantic Segmentation (cv-foundation.org)

(23条消息) 【论文翻译】Fully Convolutional Networks for Semantic Segmentation_风信子的博客-CSDN博客

(一)FCN网络如何工作?

        1. FCN分割网络的基本概念:FCN=fully convolutional networks,简而言之全卷积没有FC(fully connected layer),由上知:语义分割~=像素级分类(输入:RGB图像,输出:原图中每个像素对应的类别,即输入输出size不变),我们使用传统的CNN来进行图像分类,那FCN和CNN如何联系起来呢?答案:替换FC,换成Conv。

        2. 如何理解FC层:(此时指已替换的1X1 Conv),只改变channel的大小,即N x C' x W x H,此时的channel指是你总共的类别数,比如你的类别总共有59个,则:channel=59。再往后通过一个classifier和softmax,取最大值即是它对应的类别,从而进行语义分割

       

(二)feature map的上采样(Upsample)操作:

        1. Up-sampling最常用,使用双线性插值(Bilinear Interpolation),进行feature map的变换可以看作图像到图像的resize,如:Fc7shape = [N x C x H x W] 到 Fupscoreshape = [N x C' x H' x W']

     2. Un-pooling

         3. Transpose Conv

(三)什么是FCN?

       1.  FCN网络的结构:采用encoder+decoder架构,主要有三个block:convolution、down-sampling、up-sampling,backbone采用VGG,只将两个FC替换成1x1的Conv,再经过上采样到和输入一样,再classifier和softmax进行像素分类。

        2. FCN每层的具体操作

        3. FCN的 layer fusion

(四)FCN的优缺点

优点:

  • 任意尺寸输入
  • 效率高(相较以前)
  • 结合浅层信息

缺点:

  • 分割结果不够精细
  • 没有考虑上下文信息


U-Net%E6%A8%A1%E5%9E%8B"> 三、U-Net模型

paper:

https://arxiv.org/pdf/1505.04597.pdf 论文链接

(23条消息) 《U-Net: Convolutional Networks for Biomedical Image Segmentation》论文阅读之UNet_Gavinmiaoc的博客-CSDN博客_unet 参考文献

U-Net%EF%BC%9F">(一)什么是U-Net

U-Net:采用encoder和decoder的U形结构,输入输出大小不变,采用Skip结合方式:Concatenation,以结合上下文信息即左顾右盼U-Net的输出层与FCN网络相同,都是1x1Conv变换为给定的类别=Channel数,再过一个softmax和argmax得到最终结果。crop和resize操作区别 - wemo - 博客园 (cnblogs.com)

U-Net%E7%BD%91%E7%BB%9C%E7%9A%84%E7%BB%93%E6%9E%84%E2%80%8B">       1.  U-Net网络的结构

        2. 具体操作和实现原理

U-Net%E7%BD%91%E7%BB%9C">(二)如何实现一个U-Net网络

U-Net%E7%BD%91%E7%BB%9C%E7%9A%84%E4%B8%BB%E8%A6%81operations%EF%BC%9A">        1. 构建U-Net网络的主要operations:

  • Conv 3x3,(with batchnorm, relu)
  • Pool 2D Conv 3x3,(含batchnorm,relu)
  • Pool2D
  • Transpose Conv 2x2
  • Crop,Concat(或Eltwise_Add,感觉差不多,前者会花费更多的算力,后者直接加方便;不同场景下效果可能有些不同)
  • Conv 1×1
  • SoftMax,argmax,squeeze 


四、PSPNet模型

paper:

https://arxiv.org/pdf/1612.01105.pdf 论文链接

(23条消息) 【个人整理】深入详解金字塔场景解析网络(PSPNet)_MIss-Y的博客-CSDN博客_pspnet网络

为什么有PSP?语义分割处理时,我们可以发现,许多错误都与不同感受野获取的全局信息和语境关系有着部分甚至是完全的关联。因此,一个拥有适当场景级全局信息的深度网络可以大大提高场景解析的能力。 而PSP的出现,表明其能够聚合不同区域的上下文信息,从而可以有效获取全局语境信息。

(一)什么是PSP网络(backbone采用Dilated ResNet)

        1. 基础知识

        什么是感受野?用于产生特征的输入图像中的区域大小;只针对于局部操作,例如:Conv和pooling。

        PSP网络如何获取上下文信息?增大感受野(Receptive Field),以 获取更多的信息。

        如何增大感受野?通过使用不同scale的kernel对相同的feature map进行conv,将得到的不同scale的feature map经过上采样后和原feature map进行concat,得到最后的feature pyramid汇聚了全局的语境信息。(后面这部分的描述是针对PSP模块)

        2. PSP网络的基本结构:Pyramid Scene Parsing Network

        3. PSP模块的具体形式

        4. PSP网络搭建:

        其中的Adaptive Pool最大的特点是:无论输入input的size是多少,输出的size总为指定的size,这个就是为PSPmodule中得到feature pyramid做准备。

(二)什么是空洞卷积(Dilated Conv)   

        为什么引入空洞卷积?在FCN中通过pooling增大感受野缩小图像尺寸,然后通过upsampling还原图像尺寸,但是这个过程中造成了精度的损失,那么为了减小这种损失理所当然想到的是去掉pooling层,然而这样就导致特征图感受野太小,因此空洞卷积应运而生。

         Dilated Conv的优点:可以增大感受野;不降低分辨率;不引入额外参数和计算。

         Dilated Conv操作的原理:2种理解,第一种:空洞处为0,即卷积核的拓展;第二种:在feature map上每隔一行或一列取数与kernel进行卷积。



DeepLab%E7%B3%BB%E5%88%97">五、DeepLab系列

paper:

https://arxiv.org/pdf/1412.7062v3.pdf   V1论文

https://arxiv.org/abs/1606.00915  V2论文

https://arxiv.org/abs/1706.05587 V3论文

 https://arxiv.org/abs/1802.02611  V3+论文

(23条消息) DeepLab系列总结_fanxuelian的博客-CSDN博客_deeplab系列

DeepLab series关键结构对比:

DeepLab%20V1">(一)DeepLab V1

DeepLab%20V1%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84">1. DeepLab V1网络结构

DeepLab%20V2">(二)DeepLab V2

DeepLab%20V2%20%E7%9A%84%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84%E2%80%8B">1. DeepLab V2 的网络结构

2. 什么是ASPPmodule?

SPP是空间金字塔池化(A为atrous,空洞;ASPP利用了空洞卷积的优势,从不同尺度上提取特征,因为相同的事物在同一张图或不同图像中存在尺度上的差异,(23条消息) 多尺度 理解_Dorothy_Xue-CSDN博客_多尺度是什么意思),前面提到的PSP是金字塔场景解析,两者都是为了提取全局语境信息,非常相似,不同点我还没有感受出来,感觉思想是一样的,咳咳只是我感觉,有大神看见错误或者有想法尽管说尽量留言,我是菜鸟入门。😅

DeepLab%20V3">(三)DeepLab V3

DeepLab%20V3%E7%BD%91%E7%BB%9C%E7%BB%93%E6%9E%84%E2%80%8B">1. DeepLab V3网络结构

2. ASPP module

升级版的ASPP,adaptive pool参照PSP部分,interpolation参照上文

提示:以上纯粹为个人学习记录,个人理解看法,有问题请大家不吝赐教,感谢大家。

参考链接:

(23条消息) 【语义分割语义分割评估指标mIOU_筱-CSDN博客_miou语义分割空洞卷积(dilated Convolution) - 知乎 (zhihu.com)(23条消息) 【语义分割语义分割评估指标mIOU_筱-CSDN博客_miou语义分割


http://www.niftyadmin.cn/n/1396177.html

相关文章

(2)学习集合,引申学习索引器和泛型

有1个Person类,下面我们要在前台利用集合去定义3个Person对象,然后返回这3个对象的Name public class Person { private string _firstName; private string _lastName; public string Name { get { return _firstName _lastName; …

数据库相关知识总结

mysql基本命令 mysql基本命令 1.基础常用命令 mysql -uroot -p密码;(也可以不带密码,之后输入) 本地登录mysql -h 登录ip -p 端口(通常3306) -uroot -p密码; 远程登录desc 表名;查看表的各个字段的属性,以及自增键mysqldump -u用户 -p 数据库…

栈和队列例题

一、连续区域矩形面积(栈) 题目概述 Sample Input 3 1 2 3 4 1 2 3 3 4 1 2 3 4 -1Sample Output12 14题目大意:给出一系列矩形的宽度和高度,矩形沿着x轴对齐,求这些矩形组成的连续矩形区域的最大面积。 解题方法&…

dotnet下的Hook API

/// <summary>/// 对CAPIHook进行了dotnet下的封装。/// 其中fnHook: 为挂钩的函数的新地址的委托/// 不要传送和挂钩的函数不一致的委托&#xff0c;关于如果从程序上阻止这个行为&#xff0c;暂时还没有想到好的办法。///// 在dotnet中使用APIHook时发现了以下…

PHP基础知识总结

PHP基础知识 PHP 代表 PHP: Hypertext PreprocessorPHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码PHP 代码在服务器上执行&#xff0c;结果以纯 HTML 形式返回给浏览器PHP 文件的默认文件扩展名是 ".php" PHP能做什么 PHP 可以生成动态页面内容PHP 可以创建、…

第十届蓝桥杯省赛B组题解记录

1.组队 思路&#xff1a;从每个位置可以选取的人选入手&#xff0c;每个人选不可重复&#xff0c;组合求最大。 方法一&#xff1a;深搜dfs #include<bits/stdc.h> using namespace std; int team[20][6],maxs0,vis[20]; void dfs(int sum,int n) //sum为出场运动员的…

游活水公园有感

游活水公园有感 ——代腾飞 2007年11月04日 于成都 山泉石上响 鱼儿戏水清 芦影碧波动 悠悠活水情

SPFA、迪杰斯特拉、弗洛伊德算法C++实现

三者不同&#xff0c;就我个人理解而言&#xff0c;迪杰斯特拉是求单源点最短路径且权值为非负&#xff0c;算法效率为&#xff1a;&#xff1b;弗洛伊德算法是求任意两点间的最短路径&#xff0c;算法复杂度高&#xff0c;为&#xff1b;SPFA为单源点最短路径&#xff0c;权值…