Python 全栈体系【四阶】(四十二)

第五章 深度学习

九、图像分割

3. 常用模型

3.2 U-Net(2015)

生物医学分割是图像分割重要的应用领域。U-Net是2015年发表的用于生物医学图像分割的模型,该模型简单、高效、容易理解、容易定制,能在相对较小的数据集上实现学习。该模型在透射光显微镜图像(相衬度和DIC)上获得了2015年ISBI细胞跟踪挑战赛的冠军。该图像分割速度较快,在512x512图像实现分割只需不到一秒钟的时间。

U-Net基本实现图像分割基本原理与FCN一致,先对原图进行若干层卷积、池化,得到特征图,再对特征图进行不断上采样,并产生每个像素的类别值。

3.2.1 网络结构

U-Net网络体系结构如下图所示,它由收缩路径(左侧)和扩展路径(右侧)组成,共包含23个卷积层。

  • 收缩路径遵循卷积网络的典型结构,它包括重复应用两个3x3卷积(未相加的卷积),每个卷积后面都有一个ReLU和一个2x2最大合并操作,步长为2,用于下采样。在每个下采样步骤中,特征通道的数量加倍。
  • 扩展路径中的每一步都包括对特征映射进行上采样,然后进行2x2向上卷积(up-convolution ),将特征通道数量减半,与收缩路径中相应裁剪的特征映射进行串联,以及两个3x3卷积,每个卷积后面都有一个ReLU。在最后一层,使用1x1卷积将每个64分量特征向量映射到所需数量的类。

在这里插入图片描述

3.2.2 训练细节
  • 损失函数:采用像素级交叉熵作为损失函数
  • 输入:单个大的图像,而不是大的批次图像
  • 输出:得到的输出图像比输入图像小,边界宽度不变
  • 优化方法:随机梯度下降
  • 激活函数:ReLU
  • 权重初始值:标准差为 2 N \sqrt{\frac{2}{N}} N2 的高斯分布(N表示一个神经元的传入节点数)
  • 采用数据增强策略
3.2.3 效果

(1)任务一:电子显微镜记录中分割神经元结构

  • 数据集:一组来自果蝇一龄幼虫腹侧神经索(VNC)的连续切片透射电镜图像(512x512像素)。每幅图像都有相应的完全注释的细胞(白色)和细胞膜(黑色)的真实分割图。测试集是公开的,但是它的分割图是保密的。通过将预测的膜概率图发送给组织者,可以得到评估。评估是通过在10个不同级别上对地图进行阈值化,并计算“扭曲误差”、“随机误差”和“像素误差”。
  • 效果:u-net(在输入数据的7个旋转版本上的平均值)在没有任何进一步的预处理或后处理的情况下实现了0.0003529的翘曲误差(新的最佳分数,见下表)和0.0382的随机误差。

在这里插入图片描述

(2)任务二:u-net应用于光镜图像中的细胞分割任务

  • 数据集:这个分离任务是2014年和2015年ISBI细胞追踪挑战赛的一部分,包含两个数据集。第一个数据集“PhC-U373”2包含由相差显微镜记录的聚丙烯腈基片上的胶质母细胞瘤星形细胞瘤U373细胞(见下图a,b),它包含35个部分注释的训练图像,该数据集下实现了92%的平均IOU;第二个数据集“DIC HeLa”3是通过差分干涉对比显微镜(DIC)记录在平板玻璃上的HeLa细胞(见下图c、d和补充材料)。它包含20个部分注释的训练图像。该数据集下实现了77.5%的平均IOU。

  • 效果:见下表

在这里插入图片描述

3.3 Mask R-CNN(2017)

Mask R-CNN是一个小巧灵活的通用实例级分割框架,它不仅可对图像中的目标进行检测,还可以对每一个目标给出一个高质量的分割结果。它在Faster R-CNN基础之上进行扩展,并行地在bounding box recognition分支上添加一个用于预测目标掩模(object mask)的新分支。该网络具有良好的扩展性,很容易扩展到其它任务中,比如估计人的姿势。Mask R-CNN结构简单、准确度高、容易理解,是图像实例级分割的优秀模型。

3.3.1 主要思想

(1)分割原理。 Mask R-CNN是在Faster R-CNN基础之上进行了扩展。Faster R-CNN是一个优秀的目标检测模型,能较准确地检测图像中的目标物体(检测到实例),其输出数据主要包含两组:一组是图像分类预测,一组是图像边框回归。Mask R-CNN在此基础上增加了FCN来产生对应的像素分类信息(称为Mask),用来描述检测出的目标物体的范围,所以Mask R-CNN可以理解为Faster R-CNN + FCN。整体结构如下图所示。

在这里插入图片描述

(2)算法步骤

  • 输入待处理图片,进行预处理
  • 将图片送入经过预训练的卷积神经网络,进行卷积运算获取图像的特征图
  • 对特征图中的每个点产生ROI,从而获取多个候选区域
  • 将候选区域送入RPN网络进行而分类回归(前景或背景)、边框回归,过滤掉一部分候选区域
  • 对剩余的ROI进行ROIAlign操作(将原图中的像素和特征图中的点对应)
  • 对这些ROI进行分类(N个类别)、边框回归、Mask生成

(3)数据表示方式。 Mask R-CNN为每个RoI生成K个m×m的mask,其中K表示类别数量,每个mask均为二值化的矩阵,用来描述目标物体的像素范围。如下图所示:

在这里插入图片描述

3.3.2 网络结构

Mask R-CNN构建了多种不同结构的网络,以验证模型的适应性。论文中将网络结构分为两部分:提取特征的下层网络和产生预测结果的上层网络。如下图所示:

在这里插入图片描述

对于下层网络,论文中评估了深度为50或101层的ResNet和ResNeXt网络。

对于上层网络,主要增加了一个全卷积的掩码预测分支。如下图所示:

在这里插入图片描述

图中数字表示分辨率和通道数,箭头表示卷积、反卷积或全连接层(可以通过上下文推断,卷积减小维度,反卷积增加维度)。所有的卷积都是3×3的,除了输出层,是1×1的。反卷积是2×2的,步长为2,隐藏层中使用ReLU。左图中,“res5”表示ResNet的第五阶段,为了简单起见,修改了第一个卷积操作,使用7×7,步长为1的RoI代替14×14,步长为2的RoI。右图中的“×4”表示堆叠的4个连续的卷积。

3.3.3 损失函数

Mask R-CNN损失函数由三部分构成,分类、边框回归及二值掩码。公式如下所示:

L = L c l s + L b o x + L m a s k L=L_{cls}+L_{box}+L_{mask} L=Lcls+Lbox+Lmask

分类损失 L c l s L_{cls} Lcls和检测框损失 L b o x L_{box} Lbox与Faster R-CNN中定义的相同。掩码分支对于每个RoI的输出维度为 K m 2 Km^2 Km2,即K个分辨率为m×m的二值掩码,每个类别一个,K表示类别数量。每个像素应用Sigmoid,并将 L m a s k L_{mask} Lmask定义为平均二值交叉熵损失。对于真实类别为k的RoI,仅在第k个掩码上计算 L m a s k L_{mask} Lmask(其他掩码输出不计入损失)。

3.3.4 训练细节
  • 与Faster R-CNN中的设置一样,如果RoI与真值框的IoU不小于0.5,则为正样本,否则为负样本。掩码损失函数 L m a s k L_{mask} Lmask仅在RoI的正样本上定义;
  • 图像被缩放(较短边)到800像素,批量大小为每个GPU上2个图像,每个图像具有N个RoI采样,正负样本比例为1:3;
  • 使用8个GPU训练(如此有效的批量大小为16)160k次迭代,学习率为0.02,在120k次迭代时学习率除以10。使用0.0001的权重衰减和0.9的动量;
  • RPN锚点跨越5个尺度和3个纵横比。为方便剥离,RPN分开训练,不与Mask R-CNN共享特征。
3.3.5 结果

① 检测速度:5FPS

② COCO数据集实验结果

在这里插入图片描述

  • AP:表示平均精度
  • A P 50 AP_{50} AP50:IoU = 0.50(PASCAL VOC度量标准)
  • A P 75 AP_{75} AP75:IoU = 0.75(严格度量标准)
  • A P S AP_S APS:小对象平均准确率(面积 < 322)
  • A P M AP_M APM:中等对象平均准确率(322 < 面积 < 962)
  • A P L AP_L APL:中等对象平均准确率(面积 > 962)

分割效果:

在这里插入图片描述

下图是Mask R-CNN分割效果对比。FCIS在重叠对象上有问题,Mask R-CNN则没有。

在这里插入图片描述

③ 人体姿态估计效果

Mask R-CNN框架可以很容易地扩展到人类姿态估计。将关键点的位置建模为one-hot掩码,并采用Mask R-CNN来预测K个掩码,每个对应K种关键点类型之一(例如左肩,右肘)。实验结果如下:

在这里插入图片描述

人体姿态估计效果图如下所示:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度剖析进程概念与进程状态

文章目录 1. 前言2. 什么是进程2.1 进程概念2.2 进程描述——PCB 3. 进程的一些基本操作3.1 查看进程3.2 结束进程3.3 通过系统调用获取进程标示符3.4 通过系统调用创建子进程 4. 进程状态4.1 普适的操作系统层面4.2 具体Linux操作系统层面 5. 两种特殊的进程5.1 僵尸进程5.2 孤…

Linux中的磁盘分析工具ncdu

2024年5月14日&#xff0c;周二上午 概述 ncdu 是一个基于文本的用户界面磁盘使用情况分析工具。它可以在终端中快速扫描目录&#xff0c;并统计该目录下的文件和文件夹的磁盘使用情况&#xff0c;以交互友好的方式呈现给用户。 安装 在 Debian/Ubuntu 系统下&#xff0c;可…

算法:滑动窗口题目练习

目录 题目一&#xff1a;长度最小的子数组 题目二&#xff1a;无重复字符的最长子串 题目三&#xff1a;最大连续 1 的个数III 题目四&#xff1a;将 x 减到 0 的最小操作数 题目五&#xff1a;水果成篮 题目六&#xff1a;找到字符串中所有字母异位词 题目七&#xff1a…

Java modbus 实现RTU串口作为slave(服务端)读写数据

这里要了解下modbus的RTU和TCP 的几个名称关系&#xff1a; Modbus/RTU&#xff1a;主站 和从站 关系 Modbus/TCP&#xff1a;客户端和服务端关系 关系 主站主动找从站读写数据 客户端主动找服务端读写数据 所以当使用Modbus/TCP时&#xff0c;主站一般作为客户端&#xff…

树莓派发送指令控制FPGA板子上的流水灯程序

文章目录 前言一、树莓派简介二、整体实现步骤三、树莓派设置四、树莓派串口代码五、Verilog代码5.1 串口接收模块5.2 流水灯模块 六、quartus引脚绑定七、 运行效果总结参考 前言 ​ 本次实验的目的是通过树莓派和FPGA之间的串口通信&#xff0c;控制FPGA开发板上的小灯。实验…

Excel常用操作

计算支付成功率 使用公式 ROUND(B2/C2,4)*100&"%" 字符串拼接 将A1-A10的数字用英文逗号拼接 TEXTJOIN(",",TRUE,A1:A10) 将A1-A10中大于5的数字用英文逗号拼接 ARRAYFORMULA(TEXTJOIN(",",TRUE,IF(A1:A10>5,A1:A10,"")…

未来想从事营销策划类的工作,需要怎么学习?

从事营销策划类的工作&#xff0c;提升和学习主要从以下三个方面&#xff1a; 一、营销底层逻辑的搭建 二、营销系统知识的构建 三、大量营销案例的积累 营销入门&#xff0c;其实大多数人一直都在入门的道路上&#xff0c;每个人都是终身学习者。虽然从事营销工作十年多了…

2024年5月中,AITOP100平台活动专区迎来六场AI大赛盛事!

AITOP100平台的活动专区在2024年5月中旬更新的6场AI大赛来了&#xff01; 随着人工智能技术的飞速发展&#xff0c;AI设计已经成为了创新与创意的新领域。2024年5月中旬&#xff0c;由腾讯研究院、剪映、站酷等互联网大厂主办的6场AI设计大赛震撼来袭&#xff0c;为广大AI设计…

【数据分析面试】43.寻找给小费最多的客人(Python:字典用法)

题目&#xff1a; 寻找给小费最多的客人 &#xff08;Python) 给定两个非空列表user_ids和tips&#xff0c;编写一个名为most_tips的函数&#xff0c;用于找到给小费最多的客户。 示例&#xff1a; 输入&#xff1a; user_ids [103, 105, 105, 107, 106, 103, 102, 108, 1…

短剧看剧系统,当前互联网热门项目工具系统模板。

目录 揭秘爆款神器&#xff1a;短剧看剧系统&#xff0c;让你的内容火遍全网&#xff01; 一、短剧看剧系统&#xff1a;一站式解决方案 二、灵活定价&#xff0c;实现收益最大化 三、高效管理&#xff0c;团队协作更轻松 四、数据驱动&#xff0c;精准把握市场动态 五、智…

设置linux终端用户输入空闲一段时间后就自动断开(linux终端超时自动断开)

在 /etc/profile 中加入TMOUT变量即可。 在文件的最后追加以下两行 export TMOUT600 # 600秒内无操作就断开。 readonly TMOUT # 将变量设置为只读&#xff0c;防止用户更改如图

企业计算机服务器中了rmallox勒索病毒怎么解密,rmallox勒索病毒解密工具流程

在当今数字化时代&#xff0c;越来越多的企业依赖计算机服务器进行办公开展业务&#xff0c;计算机服务器犹如企业的心脏&#xff0c;能够为企业存储许多重要的核心信息&#xff0c;帮助企业有效的开展各项工作业务&#xff0c;提高企业的生产效果&#xff0c;但网络是一把双刃…

springMVC基础使用(示例)

maven依赖&#xff08;javax.servlet-api版本与spring-webmvc班恩要匹配不然会报java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRespons&#xff09;&#xff1a; <dependencies><dependency><groupId>javax.servlet</groupId><arti…

CAN模块开发问题概述

问题一 问题描述 工作环境&#xff1a;ECU外接canoe 操作&#xff1a;使用CANoe模拟发送NM报文&#xff0c;然后停发或者断开CANoe 现象&#xff1a;程序跑死&#xff0c;调用call stack查看压栈情况如下图所示 定位代码如下图所示。可见是由于CAN模块在设置Controller状态时…

计算机毕业设计 | vue+springboot调查问卷管理系统(附源码)

1&#xff0c;研究目的 在进入21世纪以后&#xff0c;互联网得到了蓬勃的发展&#xff0c;电子问卷调查也开始逐渐流行起来。传统纸质问卷和电子问卷相比较后&#xff0c;传统问卷还存在很多弊端&#xff1a; 问卷分发起来比较困难&#xff0c;并且分发试卷耗费大量的金钱和时…

网络安全法中关于网络信息的保护和监管,有哪些规定?

网络安全法作为我们数字时代的重要法律保障&#xff0c;对于网络信息的保护和监管有着明确且详细的规定。这些规定不仅体现了国家对于网络安全的重视&#xff0c;也为我们每个人在数字世界中提供了坚实的法律屏障。 首先&#xff0c;我们来看一个关于网络运营者主体责任的案例。…

uniapp开发安卓app使用文字转语音技术

在 UniApp 开发安卓应用时&#xff0c;要实现文字转语音&#xff08;Text-to-Speech, TTS&#xff09;技术&#xff0c;你可以利用 UniApp 的跨平台能力结合原生模块或第三方服务来实现。以下是一些建议的步骤和方法&#xff1a; 1. 使用 UniApp 原生模块&#xff08;如果支持…

【架构-17】通信系统架构设计理论

通信系统网络架构 1. 局域网网络架构 拓扑结构&#xff1a;星型、总线型、环型、树型。 网络架构&#xff1a;单核心架构&#xff08;结构简单&#xff0c;地理范围受限&#xff09;、双核心架构&#xff08;网络拓扑结构可靠&#xff0c;投资较单核高&#xff09;、环型架构…

更高效的数据交互实现丨 DolphinDB Arrow 插件使用教程

Apache Arrow 是一种跨语言的内存数据交换格式&#xff0c;旨在为用户提供高效的数据结构&#xff0c;以实现在不同的数据处理系统之间共享数据而无需进行复制。它由 Apache 软件基金会开发和维护&#xff0c;目前已经成为许多大型数据处理和分析框架的核心组件之一。在分布式框…

收藏:如何轻松建立CRM系统的帮助中心

大家好&#xff0c;今天咱们来聊聊怎么给公司的CRM系统建个帮助中心。为什么CRM系统需要建立帮助中心呢&#xff1f;很简单&#xff0c;就是为了让客户、员工在遇到问题时能有个快速找到答案的地方&#xff0c;提升咱们的服务质量和内部工作效率。 一、为什么需要建立CRM系统的…