图像分割实战-系列教程2:Unet系列算法(Unet、Unet++、Unet+++、网络架构、损失计算方法)

图像分割实战-系列教程 总目录
语义分割与实例分割概述
Unet系列算法

1、Unet网络

1.1 概述

  • 整体结构:
  • 概述就是编码解码过程
  • 简单但是很实用,应用广
  • 起初是做医学方向,现在也是

虽然用的不是很多,在16年特别火,在医学领域、小目标领域做分割,其实到现在为止也还在用,因为在深度学习中网络越简单越好,这篇内容也会介绍Unet++版和Unet最新版

相比于yolo、maskrcnn、fastrcnn这些,Unet远比这些网络简单。网络越大的时候,感受野也越大,实际上就会更加适合一些大目标。

## 1.2 结构 如图的网络架构中,左边从上到下,仍然是一层一层卷积的过程,三层卷积一个block,这个过程也就是图像长宽减小、通道变多的过程。一直到最底下的一层,tensor维度从(572,572,1)变成了(28,28,1024),当然这个过程从代码中打印出来会比较清晰。
  • 第一个Block的输出会给到最后一个Block的输入和第二个Block的输入
  • 而第二个Block的输出会给到第三个Block的输入和倒数第二个Block的输入
  • 而同时最后一个Block会接受倒数第二个Block的输入和第一个Block的输入
  • 这种从上到下,从左到右的结构与以前的网络有所不同
  • 其中第一个Block和最后一个Block是一个对应的输入输出,对应的数据维度也是一样的,在当前这个网络中没有保持一样在后续新版本会保持一致

这整个过程相当于编码和解码的过程,整个网络呈现一个U字形,Unet在医学领域一直有不错的发挥

2、Unet各版本比较

2.1 Unet

在这里插入图片描述

  • 主要网络结构:
  • 还引入了特征拼接操作
  • 以前我们都是加法,现在全都要
  • 这么简单的结构就能把分割任务做好

2.2 U-net++概述

  • 整体网络结构:
  • 特征融合,拼接更全面
  • 其实跟densenet思想一致
  • 把能拼能凑的特征全用上就是升级版了
    在这里插入图片描述
    相比于Unet,++版本多做了一些融合的事情

2.3 U-net++损失计算方式

  • Deep Supervision :
  • 也是很常见的事,多输出
  • 损失由多个位置计算,再更新
  • 现在来看,很多视觉任务都可以套用这招

在这里插入图片描述
如图所示,第一层中 x 0 , 1 x^{0,1} x0,1 x 0 , 2 x^{0,2} x0,2 x 0 , 3 x^{0,3} x0,3 x 0 , 4 x^{0,4} x0,4等4个位置都参与了损失计算,由于很多位置都参与了损失计算可以再各个阶段都获取一个比较好的效果,使得最终的结果更好。

2.4 Unet++优点

  • 可以更容易剪枝:
  • 因为前面也单独有监督训练
  • 可以根据速度要求来快速完成剪枝
  • 训练的时候同样会用到L4,效果还不错
    在这里插入图片描述
    如图所示,原本是一个4层的网络,由于多个部分参与了损失计算,可以很方便的直接去掉最后一层看最后的结果,如果对速度要求发生变化,就可以尝试去掉第四层。

2.5 Unet+++

  • U-net+++(了解下就行)
  • 不同的max pool整合低阶特征
  • (X1和X2,轮廓之类的)
  • 上采样整合高阶特征
  • (感受野大的,全局的)
  • 各层统一用卷积得到64个特征图
  • 5*64=320,最终组合得到全部特征

在这里插入图片描述
这里看清楚了,是有3个+,其实这方面的论文有不少,4+和5+都有,实际上大同小异。

低阶特征(长宽大、特征图数少,如图 X E n 1 X^1_{En} XEn1 X E n 2 X^2_{En} XEn2)通过maxpooling降维,
高阶特征(长宽大、特征图数少,如图 X E n 4 X^4_{En} XEn4 X E n 5 X^5_{En} XEn5)通过线性插值增维,
统一变成nn64的维度,然后全部拼接在一起,这里就是nn645 = nn*320

图像分割实战-系列教程 总目录
语义分割与实例分割概述
Unet系列算法

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GRNdb:解码不同人类和小鼠条件下的基因调控网络

GRNdb:解码不同人类和小鼠条件下的基因调控网络 摘要introduction数据收集和处理Single-cell and bulk RNA-seq data collection and processing 单细胞和bulk RNA-seq 数据收集和处理Cell cluster identification for scRNA-seq datasets (scRNA-seq 数…

在 Linux 中使用 cat 命令

cat 命令用于打印文本文件的文件内容。至少,大多数 Linux 用户都是这么做的,而且没有什么问题。 cat 实际上代表 “连接(concatenate)”,创建它是为了 合并文本文件。但只要有一个参数,它就会打印文件内容。因此,它是用…

vscode中默认shell选择

terminal.integrated.defaultProfile.linux在vs的Preference的Settings里面搜索terminal.integrated.defaultProfile.linux,默认的应该是null,将其修改为bash即可。 linux———/bin/sh、 /bin/bash、 /bin/dash的区别

[设计模式 Go实现] 创建型~抽象工厂模式

抽象工厂模式用于生成产品族的工厂,所生成的对象是有关联的。 如果抽象工厂退化成生成的对象无关联则成为工厂函数模式。 比如本例子中使用RDB和XML存储订单信息,抽象工厂分别能生成相关的主订单信息和订单详情信息。 如果业务逻辑中需要替换使用的时候…

基于JWT的用户token验证

1. 基于session的用户验证 2. 基于token的用户身份验证 3. jwt jwt代码实现方式 1. 导包 <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.18.2</version> </dependency> 2. 在登录…

golang锁源码【只有关键逻辑】

条件锁 type Cond struct {L Lockernotify notifyList } type notifyList struct {wait uint32 //表示当前 Wait 的最大 ticket 值notify uint32 //表示目前已唤醒的 goroutine 的 ticket 的最大值lock uintptr // key field of the mutexhead unsafe.Pointer //链表头…

Redis经典五大类型源码及底层实现(一)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

Excel模板填充:从minio上获取模板使用easyExcel填充

最近工作中有个excel导出的功能&#xff0c;要求导出的模板和客户提供的模板一致&#xff0c;而客户提供的模板有着复杂的表头和独特列表风格&#xff0c;像以往使用poi去画是非常耗时间的&#xff0c;比如需要考虑字体大小&#xff0c;单元格合并&#xff0c;单元格的格式等问…

Cisco模拟器-企业网络部署

某企业园区网有&#xff1a;2个分厂&#xff08;分别是&#xff1a;零件分厂、总装分厂&#xff09;1个总厂网络中心 1个总厂会议室&#xff1b; &#xff08;1&#xff09;每个分厂有自己的路由器&#xff0c;均各有&#xff1a;1个楼宇分厂网络中心 每个楼宇均包含&#x…

Apache Doris (五十五): Doris Join类型 - Colocation Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. Colocation Join原理

Gitee触发Jenkins403讨逆猴子-解决方案

Jenkins报&#xff1a;403 No valid crumb was included in the request 具体解决方案如下&#xff1a; 执行如下脚本内容&#xff1a; hudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION true成功后&#xff1a; Gitee再次测试&#xff1a…

51单片机项目(24)——基于51单片机的温控风扇protues仿真

1.功能设计 使用传感器测量温度&#xff0c;并将温度显示在LCD1602上。如果温度超过阈值&#xff0c;那么就打开风扇&#xff0c;否则风扇不打开。&#xff08;仿真的时候&#xff0c;用直流电机模拟风扇&#xff09;。 仿真截图如下&#xff1a; 此时温度是27度&#xff0c;我…

C++初阶——基础知识(函数重载与引用)

目录 1.命名冲突 2.命名空间 3.缺省参数 4.函数重载 1.函数重载的特点包括&#xff1a; 2.函数重载的好处包括&#xff1a; 3.引用 引用的特点包括 引用的主要用途包括 引用和指针 引用 指针 类域 命名空间域 局部域 全局域 第一个关键字 命名冲突 同一个项目之间冲…

自动驾驶学习笔记(二十四)——车辆控制开发

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 控制算法 控制标定 控制协议…

C# PrinterSettings修改打印机纸张类型,paperType

需求&#xff1a;直接上图&#xff0c;PrinterSettings只能改变纸张大小&#xff0c;打印质量&#xff0c;无法更改打印纸类型 爱普生打印机打印照片已经设置了最高质量&#xff0c;打印图片仍不清晰&#xff0c;需要修改打印纸类型&#xff0c;使用PrintDialog调出对话框&…

Avalonia学习(十五)-OxyPlot

今天开始继续Avalonia练习。展示一些样例&#xff0c;尤其是第三方库的使用。 本节&#xff1a;OxyPlot 1.引入OxyPlot.Avalonia 2.项目引入 在Main方法里增加OxyPlotModule.EnsureLoaded()方法调用。 public static void Main(string[] args) {OxyPlotModule.EnsureLoade…

向量数据库调研

向量数据库的优势 数据库类型 适用场景 典型数据库举例 关系型数据库&#xff08;RDBMS&#xff09; 处理结构化数据&#xff0c;擅长OLTP&#xff0c;如财务、人事管理等。 MySQL&#xff0c;Oracle&#xff0c;SQL Server 非关系型数据库&#xff08;NoSQL&#xff09;…

太阳系三体模拟器

介绍 《三体》是刘慈欣创作的长篇科幻小说&#xff0c;文中提到的三体问题比较复杂和无解。 该项目代码就是利用 Python 来模拟三体的运行&#xff0c;此项目代码完全共享&#xff0c;欢迎下载。 我们可以自己通过调整天体的初始坐标、质量和矢量速度等等参数来自定义各种场景…

使用Android Studio等idea工具开发flutter应用,必备的debug调试技能,非常好用

我们程序员不论开发什么软件&#xff0c;都需要一把锋利的调试工具&#xff0c;这是必不可少的&#xff0c;不然出现问题了&#xff0c;你都不知道问题是啥&#xff0c;出现在哪&#xff0c;就更别说怎么解决了。所以我这里就介绍一下android studio开发flutter必备的调试技能&…

全栈架构:从0开始,Vue的搭建与开发

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴拿到一线互联网企业、上市企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 然后&#xff0c;很多小伙伴平时聚焦CRUD&#xff0c;没有亮点项目&#xff0c; 黄金项目。 简历也写得是非常lo…