深度学习的分割方法

FCN:基于深度学习的语义分割模型

语义分割的定义:对像素进行精细化的分类。

用深度学习来解决语义分割,所面临的主要问题是:

  • 早期的深度模型用于分类,输出一维向量,无法分割

  • 深度模型不够精细

动机

  1. 如何让网络的可以用于分割?

让网络输出二维特征就可以了

如何令早期神经网络输出二维图像?

去掉全连接层。

  1. 如何让模型的输出足够精细?

不精细的原因是?

经过多层卷积池化,feature map的分辨率较低。

比如224*224的图像输出为7*7的feature map,很显然无法很精细

一种可行的方法就是,再把7*7给变大

具体方法就是反卷积。

模型结构

由于1/32分辨率太低,直接分割很粗糙,因此先扩大再与1/16的拼在一起...(yolov3后面的思路灵感来源于此)

FCN的pytorch实现

前面就是一个常规的CNN网络,将一张图像变成feature map。而后,进行反卷积,得到原图尺寸。

输出尺寸
输入图像224×224
卷积1224×224
池化1112×112
卷积2112×112
池化256×56
卷积356×56
池化328×28
卷积428×28
池化414×14
卷积514×14
反卷积6224×224
输出224×224

实现细节

反卷积

结果展示

反池化和反卷积:只是把尺寸恢复了,卷积(或池化)过程中丢失的信息并没有恢复

下采样(encoding)下采样(decoding)

UNet

DeepLab系列语义分割

FCN存在的问题

  1. 池化层的存在导致细节信息丢失

  2. 空间不变性(在左边、右边不对分类结果有影响)对分割任务不友好

难点1: 细节信息丢失

本质上,语义分割是一种包含了低维语义特征的任务。

对于边缘、纹理、颜色等信息较为敏感。

而池化层的存在导致了这些细节信息丢失,即便进行上采样也无法恢复。

之前讨论过,池化的意义在于对信息进行浓缩,从而扩大感受野,提高信息的维度。

那么如何才能在不损失细节信息的情况下,尽量扩大感受野?

解决方案1: 空洞卷积

 空洞卷积可以在不进行池化的前提下,尽可能地扩大感受野,从而快速提高信息的浓缩程度。

练习:计算上述模型的最终感受野

空洞卷积的优势: 扩大感受野,保存细节信息

空洞卷积的劣势: 小物体不够健壮

难点2: 空间不变性

CNN的一个重大优势在于空间不变性。

同一个物体,在图像的不同位置,不同形态,不同角度,都应当输出相同的值。

例如,一张猫的图像,总会输出猫类别的one hot向量。

但是对于分割来说,这种空间不变形会带来不便性。

对应解决方案:CRF

引入了fully connected CRF,从原图作为输入,结合特征图进行了优化。

CRF

条件随机场 (conditional random field)

前置知识

CRF是一种判别模型,利用条件概率图模型建模条件概率�(�|�)完成判别任务。

也就是说,CRF是对一个条件概率进行估计。

 CRF用于语义分割

动机

图像分割任务的核心目的在于对每个像素都分配一个标签。

然而,由于池化卷积的处理方式,导致目标区域的边缘存在较为模糊的地方。

那么就需要CRF为边缘提供新的信息,从而得到更好的边缘。

建立随机场

给定一张图像:

* 定义 $X=\{X_1, X_2, ..., X_N\}$, 其中$X_i$为第i个像素的预测标签;
* 定义 $L=\{L_1, L_2, ..., L_N\}$, 其中$L_i$为第i个像素的真实标签;
* 定义 $I=\{I_1, I_2, ..., I_N\}$, 其中$I_i$为第i个像素数据。

直观解释

每个像素点(RGB为向量)可以作为观测值,我们需要根据观测值为每个像素点推测出一个标签。

因此,现在主流的语义分割模型,基本都是以下框架

CRF循环多少次?多少个类别,循环多少次

缺点

然而,这种方法存在一个比较大的问题,即速度慢

速度慢的原因,主要来自于CRF。

CRF的求解复杂度较高,因此需要更长的时间来优化结果。

解决方案

用训练的方式近似地求解CRF

也就是说,将CRF过程分解成一系列的卷积过程,用RNN的方式进行求解。

step2

其次,message passing步骤中,是用m个高斯滤波器在Q上滤波实现的。

相当于对feature map进行模糊处理,等价于卷积操作。

得到如下结果

step3

第三步:compatibility transform

step4

之后,进行unary potentials,即(相减)

也就是将上次结果和这次结果的增量做对比。

最后,进行归一化,采用softmax实现。

CRF as RNN

将上述视为一个RNN过程,对每一类的feature map都进行CRF处理,即可得到较优的结果。

实现

示例代码

 DeepLab v1总体框图

分割 要得到一个二维的东西,因此,将fc--->conv2d:

code

DeepLabV2

DeepLabV2是对DeeplabV1的改进,主要改进包含以下内容:

  • 新的bottelNet

  • ASPP

  • 改进的CRF

ASPP

ASPP的灵感来自于SPPNet

旨在于将不同尺度的特征融合到一起

网络结构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353651.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

中国人民大学与加拿大女王大学金融硕士——人生选对方向很重要

有人说,人生最重要的不是财富、不是荣誉,而是选择一条正确的道路。选择正确的方向,对一个人的成长和事业的成功与否,起着决定作用。有了方向,你前进的每一步都跟接近幸福。在职计划读研的你有了解过中国人民大学与加拿…

有哪些测试框架和工具推荐? - 易智编译EaseEditing

在软件测试领域,有许多测试框架和工具可供选择。以下是一些常见的测试框架和工具的推荐: Selenium: 一个用于自动化Web应用程序测试的流行框架。它支持多种编程语言,并提供丰富的功能和灵活性。 JUnit: 一个用于Java应用程序的单元测试框架…

deepin搭建go开发环境(git、go、neovim、NvChad、Nerd Font)

安装deepin虚拟机 官网下载地址 vmware中记得版本选择是debian 10.x 64位 然后就是一些确认操作,然后就可以了 安装git apt install gedit apt install git git config --global user.name "hello" git config --global user.email hello126.com git c…

Win7下Apploc的正确安装姿势

时隔两年之后WIN7终于再次挂掉。于是重装系统打完补丁之后又遇到了安装Apploc的问题。因为印象中需要使用msiexec来安装才能正常进行,但是却记不得细节了,于是求助Google。得到的结果无论中英文基本如下: 1. Admin权限开个cmd.exe 2. cmd里运…

使用sasjs构建html5 javascript css应用

In our previous articles, we have learnt about the SASjs ecosystem and seen how we can build a SAS app with Angular. 在之前的文章中,我们了解了SASjs生态系统,并了解了如何使用Angular构建SAS应用程序 。 In this article, we will look at ho…

漫漫长夜无限服务器断开,漫漫长夜崩溃问题解决方法 | 手游网游页游攻略大全...

发布时间:2015-11-13 漫漫长夜鹿皮怎么获得 漫漫长夜鹿皮获得方法,漫漫长夜The Long Dark中的鹿皮可以造鹿皮靴.前提当然是需要鹿皮了,那肯定得去杀鹿喽,可这鹿怎么杀呢?感兴趣的一起来看看吧. 引狼杀鹿 你先要等鹿被狼杀死,之后去干掉 ... 标签: 游戏攻略 游戏秘籍 漫漫长夜…

unity自动校准(翻译)

本文只是对那篇老外博客进行了翻译,翻译的不好,自己刚过六级.肯定有很多问题,欢迎同学指出. 原文链接:http://www.paradeofrain.com/2010/07/lessons-learned-in-tilt-controls/ 回顾一下 我想简单粗糙的讲…

vivo 互联网业务就近路由技术实战

一、问题背景 在vivo互联网业务高速发展的同时,支撑的服务实例规模也越来越大,然而单个机房能承载的机器容量是有限的,于是同城多机房甚至多地域部署就成为了业务在实际部署过程中不得不面临的场景。 一般情况下,同一个机房内部的…

进出口跨境电商软件平台系统开发,源码技术架构

一、进出口跨境电商软件平台系统开发需做好相应的前期准备,如确定市场、了解政策、推广宣传等。 欢迎名片沟通探讨 确定目标市场:选择合适的目标市场。需要了解目标市场的消费习惯、政策法规以及竞争情况。 了解海关相关政策:针对不同国家或…

机器学习——集成学习(装袋法Bagging、提升法Boosting、梯度提升决策树GBDT、随机森林RF)

集成学习 集成学习通过构建并结合多个学习器来完成学习任务 集成方法是用多种学习方法的组合来获取比原方法更优的结果 使用于组合的算法是弱学习算法 即分类正确率仅比随机猜测略高的学习算法 但是组合之后的效果仍可能高于强学习算法 即集成之后的算法准确率和效率都很高…

C++,Qt部分面试和笔试题

面试这么多次,C这块基础太差了,乘着还有印象总结下相关的面试问答和笔试题,后续会不断更新内容 目录 问答题1.计算机网络七层体系结构2.C中关键字static和const的使用3.QList和QVector for循环输出速度比较4.构造函数能否为虚函数5.谈谈你对面…

Mysql进阶【1】论述索引,索引数据结构,MVCC

1. ReadView 案例,解释为什么 RR 和 RC 隔离级别下看到查询结果不一致 案例 01- 读已提交 RC 隔离级别下的可见性分析 开启两个回话,会话事务级别都是READ-COMMITED; 操作步骤 开启两个数据库会话,设置事务为提交读事务2查询id1数据&#…

纯净内存清理加速软件(Mem Reduct)

纯净内存清理加速软件(Mem Reduct) 文章目录 纯净内存清理加速软件(Mem Reduct)一、Mem Product是什么?二、使用步骤1.下载2.安装 总结 你还为了加速球还困扰全家桶吗,看看这个!! 一、Mem Product是什么&a…

如何清理占用计算机内存,告诉你如何深度清理电脑内存

在如今这个社会时代中,电脑可以说是人们在日常生活中必不可少的一个工具,电脑对我们的学习和工作都起着非常大的作用。但电脑也有出现问题的时候,比如说电脑内存变得越来越小,遇到该问题是该如何处理呢?当然是进行清理内存啦,今天小编就给大家分享一下清理电脑内存的方法…

计算机C盘内存清理

计算机C盘总是莫名其妙的就满了,于是总结了一些清理C盘垃圾以及维护C盘内存的方法。大家有别的有效的方法欢迎告诉我,随时补充。 目录 一、 清理C盘垃圾方法1 利用系统自带的磁盘清理工具进行清理2 定期清理系统临时文件3 清理电脑缓存垃圾4 定期清理浏…

服务器系统如何清理,服务器清理内存怎么清理

服务器清理内存怎么清理 内容精选 换一换 本节操作指导您完成Windows操作系统云服务器磁盘空间清理。弹性云服务器匀出一部分磁盘空间来充当内存使用,当内存耗尽时,云服务器可以使用虚拟内存来缓解内存的紧张。但当内存使用率已经非常高时,频繁的内存与虚拟内存的切换会导致…

Lftp+Sftp传输总结

背景介绍:因为备份数据的不断扩大,需要把现网备份的数据(2T左右)传回到本地进行异地保存。但是2T太大了,需要进行压缩,这里采用了3G一个压缩包的方式。以下是压缩脚本 #!/bin/bash # 此脚本是全量压缩mongo…

xftp,xftp怎么连接

服务器管理进行文件传输用的最多的就是FTP传输,那xftp怎么连接服务器呢?打开xftp软件,新建一个连接,填上要连接的IP,端口号,用户名,密码等,保存即可。在选项中选择编码为UTF-8&#…

JAVA日志框架

JAVA日志框架 常见日志框架日志级别阿里日志规约什么时候打印日志配置文件log4j.propertieslogback-spring.xmllogback的默认配置 导入依赖日志使用方式,引入slf4j的API输出用户日志 常见日志框架 日志框架:Log4j 、Logback 。 日志门面:Slf…

VSFTP服务

概述: FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP(File Transfer Protocol: 文件传输协议)作用: Internet 上用来…