语义分割网络经典:unet

2023-11-04

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达87a67302d9f8989dec2f9d7f52280ed0.png

作者:晟 沚 

编辑:赵一帆

目前分割主要存在问题

分割网络中的池化操作在减少feature的空间分辨率的同时增加了模型感受野,这也是模型应对小型平移具有鲁棒性的根本原因。但是连续的下采样得到的feature map 就会丢失一些low-level中关键信息(例如边沿,边界等)。这就让识别和准确定位产生了矛盾。如果网络不采取任何池化操作,这在目标边界定位上效果较好,但是识别性能差。 


为了解决这个问题,unet采用多个skip-connection将底层的feature和高层的feature concat,unet结构如下图。

4352ec6b057f5d4025287fc6ff5bd688.png

1

文章主要观点

  •  unet建立在FCN的网络架构上,作者在网络框架上改进,使其能够使用很少的训练图像就得到很精确的分割结果。

  • 添加连续upsample阶段,并且channel维度增大,在decoder部分concat进入更多的原图像纹理的信息。

  • unet没有FC层,卷积层的数量大约在20个左右,4次下采样,4次上采样。输入图像大于输出图像,因为在本论文中,为了预测输入图像的边缘部分,对输入图像做了镜像操作,如下图所示。

9ab4cedc203c92c45416b80ea0269e50.png

  • 细胞分割的难点是将相同类别且互相接触的细胞分开,作者提出weighted loss,让相互接触的两个细胞之间的background标签有更高的权重,其中weight map由下面公式计算得到:

88d03d347d260d3230118160963f844b.png

11e07553add313251276fd2b74cba457.png

2

训练过程

框架是Caffe,使用momentum为0.99的SGD,损失函数为交叉熵,训练输入图片与它们对应的groundtruth(输入图片和最后的图片的尺寸不一样)。数据增强方面采用弹性形变的方式增加数据,可以让模型学习得到形变不变性。这对医学图像分割是非常重要的,因为组织的形变是非常常见的情况,并且计算机可以很有效的模拟真实的形变。

其中交叉熵损失定义如下:

6715f0f1a35c9747e5d6bd17b56b612e.png

实验结果

2.1

  • unet在生物医学图像分割当中的应用结果 如下表,在没有任何预处理或后处理的情况下实现了0.0003529的warping error和0.0382的rand-error。

a16b93d166fc867646deacf3391f0069.png

  • unet在细胞分割当中的应用, 实现了92%的平均IOU,这比83%的次优算法要高很多

4dea33c7d6b4cd049d5423808119deb5.png

代码地址

2.2

网络结构部分的代码详见:

https://github.com/angelamin/Segmentation/blob/master/models/unet_vgg19bn.py

欢迎star~

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python+OpenCV视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:Pytorch常用函数手册

在「小白学视觉」公众号后台回复:pytorch常用函数手册即可下载含有200余个Pytorch常用函数的使用方式,帮助快速入门深度学习。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

26df81aff32dbb62c75ca46341d0bf67.png

2e49f8acea545e406fb8a4e9bfd42248.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

语义分割网络经典:unet 的相关文章

随机推荐

  • myBase7安全破解的方法

    转自https blog csdn net weixin 42414714 article details 89642305 首先 保证myBase7是关闭状态 然后执行以下步骤 1 找到myBase7的安装目录 右击mybase的启动图标
  • 用Python预测收入,来看看你的收入到底应该是多少?

    Python界的网红机器学习 这股浪潮已经逐渐成为热点 而Python是机器学习方向的头牌语言 用机器学习来玩一些好玩的项目一定很有意思 比如根据你的职业 婚姻 家庭 教育时间等等来预测你的收入 这么神奇 不信的话 一起跟我往下看 1 数据
  • 如何使用chatGPT进行论文润色(中英文均可)

    1 为什么ChatGPT可以进行论文润色 ChatGPT本质是一个基于GPT3 5 应用在对话场景的超大语言模型 在各种数据集上经过训练而来的 很好的掌握了语言的 本质 特征 自然可以进行语言相关的工作 论文润色只是小事情 2 如何使用ch
  • 搭建简单的神经网络——使用pytorch实现鸢尾花的分类

    最近写毕业论文 看到网上的pytorch入门nn方法乱七八糟 遂写了本篇方法 好让更多的人可以使用pytorch实现简单的神经网络方法 version python 3 7 9 pytorch 1 7 0 function 利用神经网络进行
  • 区块链中的:哈希算法

    什么是哈希算法 哈希算法 又称散列算法 它是一个单向函数 可以把任意长度的输入数据转化为固定长度的输出 h H x h H x h H x 例如 对 morning 和 bitcoin 两个输入进行某种哈希运算 得到的结果是固定长度的数字
  • 当根据条件查询数据库中记录没有,但是又想返回0怎么办?

    我们平时在操作数据库的时候 对于null的记录或者字段相信大家都可以用ifnull 来判断为null的时候需求返回什么数据 但是如果根据条件查询的时候 数据库根本没有这条记录但是又想返回数据不存在时候的结果该怎么办 比如你统计一个时间区间的
  • 关于g2o的使用笔记

    文章目录 前言 一 g2o进行非线性优化 二 g2o进行前端位姿优化 三 g2o进行后端位姿优化 总结 前言 g2o是比较流行的图优化库 在视觉slam中的应用非常广泛 关于如何利用g2o求解BA优化问题 在此作个笔记 以供后面的学习中方便
  • webRTC的标准与发展

    Web实时通信 WebRTC 是标准 协议和JavaScript API的集合 两者的组合可实现浏览器 对等 之间的对等音频 视频和数据共享 WebRTC无需依赖第三方插件或专有软件 而是将实时通信转变为任何Web应用程序都可以通过简单的J
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 一觉睡醒,ChatGPT 竟然被淘汰了?

    点击上方 码农突围 马上关注 这里是码农充电第一站 回复 666 获取一份专属大礼包 真爱 请设置 星标 或点个 在看 来源丨转自公众号 机器之心 编辑 杜伟 陈萍 OpenAI 的 Andrej Karpathy 都大力宣传 认为 Aut
  • Stream流(入门篇)

    目录 前言 1 Stream流概述 2 获取Stream流的方式 2 1 单列集合获取Stream流 2 2 双列集合获取Stream流 2 3 数组获取Stream流 2 4 零散数据获取Stream流 3 Stream流的中间方法 4
  • mybatisplus 增删改查&使用技巧

    一 查询条件使用 单个查询 如果返回多条会抛异常 User user userService getOne Wrappers
  • Docker-compose安装mysql

    介绍 本系列文章主要介绍使用docker compose部署mysql nginx redis等中间件 前后分离微服务项目部署流程 不介绍docker安装以及基础命令 话不多说首先进入mysql安装教学 操作 首先创建个目录用来存放dock
  • vue2和vue3的10种组件通信

    vue2和vue3的10种组件通信
  • Android 12(S) 版本适配指南

    前言 系统行为变更通常属于以下两种类别之一 面对所有应用的行为变更 运行在该系统版本上的所有应用都会影响 而无论应用的targetSDKVersion为何 通常应该先针对这些变更进行适配和测试 这有助于用户在新版本系统上运行你的应用时 用户
  • 打开多个Android Studio卡死的解决方法(提示内存不足)

    找到Android Studio的安装路径 打开bin文件夹下的studio exe vmoptions 可以用记事本打开 找到下面三个参数 默认设置的如下 Xms256m Java能够分配的内存 Xmx768m JAVA能够分配的最大内存
  • using namespace std 介绍

    using namespace std 首先我们要知道 这句代码的意思是 打开标准命名空间 即告诉编辑器我们将要使用名字空间std中的函数或者对象 using 意思就是正在使用的意思 namespace 的引用是为了解决不同space中命名
  • 浅析Java单例设计模式,自写demo,简单易懂

    单例模式特点 1 构造器私有 2 在一个Java应用程序中 可保证只有一个实例对象 3 只提供一个供外界调用的getInstance 方法 单例模式优点 1 减少某些对象的频繁创建 降低系统开销和内存占用 2 外部调用不使用new关键字 降
  • 每次运行项目都会出现这个reload script assemblies

    会卡死的话试一下 Window gt Package Manager 然后去更新跟删掉你不用的 想直接就让它不出现的话 设置成这个样子 但是这样设置是有问题的具体看官方文档 域重新加载 Unity 手册
  • 语义分割网络经典:unet

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 作者 晟 沚 编辑 赵一帆 目前分割主要存在问题 分割网络中的池化操作在减少feature的空间分辨率的同时增加了模型感受野 这也是模型应对小型平移具有鲁棒性的根本原因