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

news2025/1/17 1:19:16

第五章 深度学习

九、图像分割

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.coloradmin.cn/o/1674782.html

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

相关文章

分析 vs2019 c++ 中的 decltype 与 declval

&#xff08;1&#xff09; decltype 可以让推断其参数的类型。按住 ctrl 点击 decltype &#xff0c;会发现无法查阅 其定义 &#xff1a; &#xff08;2&#xff09; 但 STL 库里咱们可以查阅函数 declval 的 定义&#xff0c;很短&#xff0c;摘抄如下&#xff1a; templat…

linux服务器测试NVIDIA显卡性能

1.测试环境 一台Linux服务器电脑&#xff08;可联网&#xff09; NVIDIA显卡 注意&#xff1a;仅仅测试浮点运算性能和内存带宽 2.安装测试软件 2.1检查驱动版本 输入指令nvidia-smi&#xff0c;主要是判断显卡驱动有没有安装。如果指令存在可显示如下&#xff1a; luhos…

MySql初学日记

MySql基础 概述 结构化查询语言(Structure Query Language)简称SQL。 是一种特殊的&#xff0c;标准的数据库编程语言&#xff0c;&#xff0c;一般的数据库管理系统都支持&#xff0c;用于对数据库进行增删改查等操作&#xff0c;实现数据持久化到本地。 使用完整的管理系…

[Fork.dev] 增加用idea打开

用Fork做git管理工具时, 只有vscode 和sublime 等. 没有idea的. 今天研究了下如何操作.记录一下 点击 Action 文本框进行编辑 Path填写idea的执行位置. Parameters: 填写 ${repo:path} 代表用idea打开的文件夹路径为当前. 最终显示效果

我是学生,申请加入!KubeBlocks 首次参与开源之夏,前沿技术、丰厚奖金、大牛导师等你来!

滴滴&#xff01;KubeBlocks 参加今年的开源之夏了&#xff01;现诚邀您一起探索优质开源社区&#xff0c;通过实战提升研发能力&#xff0c;快来报名项目&#xff0c;赢取奖金和证书吧&#xff01; 开源之夏是什么&#xff1f; 开源之夏是中国科学院软件研究所发起的“开源软…

汇智知了堂布局鸿蒙生态:推出南向设备开发课程,助力物联网人才培养

随着重庆市在鸿蒙原生应用开发上的积极推进&#xff0c;包括上游新闻、新重庆、华龙网在内的多家传媒巨头携手华为开发者联盟&#xff0c;引领本地传媒业深入探索鸿蒙生态。在此背景下&#xff0c;汇智知了堂积极响应政府与行业的号召&#xff0c;宣布即日起正式开发鸿蒙南向设…

Flutter 玩转动画 + 自定义View 实现积分或金币领取流程动画

一、效果图 二、主要涉及的知识点 AnimationController、Animation、FractionalTranslation 动画Api的运用CustomPainter 自定义View以及每个时机的把握 主要是写篇博客来记录一下这个功能的实现&#xff0c;具体代码就看源代码了&#xff0c;有疑问可以私信沟通 源代码下载…

微服务熔断降级

什么是熔断降级 微服务中难免存在服务之间的远程调用&#xff0c;比如&#xff1a;内容管理服务远程调用媒资服务的上传文件接口&#xff0c;当微服务运行不正常会导致无法正常调用微服务&#xff0c;此时会出现异常&#xff0c;如果这种异常不去处理可能导致雪崩效应。 微服…

无货源做抖音小店怎么找货源?怎么判断厂家是不是源头厂家?

大家好&#xff0c;我是喷火龙 抖音小店无货源玩法最重要的就是找货源&#xff0c;找有优势、稳定、靠谱的供应链。 这篇文章就给大家讲一讲怎么去找货源&#xff0c;怎么找到真正的源头厂家。 一、怎么找货源? 无货源商家找货源在1688、多多上面可能会多点&#xff0c;因…

易图讯科技数字武装三维电子沙盘

深圳易图讯科技(www.3dgis.top)集成了高清卫星影像、地形数据、实景三维模型、基干民兵、普通民兵、重要目标、兵要地志、企业潜力 、行业潜力 、社会组织潜力 、特种装备器材潜力、敌情数据、现场环境数据、物联感知信息&#xff0c;构建一体化的数字孪生空间&#xff0c;实现…

被动防护不如主动出击

自网络的诞生以来&#xff0c;攻击威胁事件不断涌现&#xff0c;网络攻防对抗已然成为信息时代背景下的一场无硝烟的战争。然而&#xff0c;传统的网络防御技术&#xff0c;如防火墙和入侵检测技术&#xff0c;往往局限于一种被动的敌暗我明的防御模式&#xff0c;面对攻击者无…

CAD看图软件有哪些?这几款新手也能用

CAD看图软件有哪些&#xff1f;在工程设计、建筑制图、机械制造等领域&#xff0c;CAD&#xff08;计算机辅助设计&#xff09;看图软件是不可或缺的工具。然而&#xff0c;对于新手来说&#xff0c;选择一款合适的CAD看图软件可能会有些困难。那么&#xff0c;今天小编就来介绍…

【Linux】认识文件(四):文件系统,inode,以及软硬连接

【Linux】认识文件&#xff08;四&#xff09;&#xff1a;文件系统,inode,以及软硬连接 一.磁盘(仅了解)1.组成2.CHS寻址 二.抽象化磁盘(仅了解)三.文件系统1.什么是文件系统2.ext2文件系统的结构i.Date blocksii.Block Bitmapiii.inode1.inode Table2.inode Bitmap iiiii.GDT…

VC 编程开发中的 封装类 :log日志类 和SQL server 操作类 源代码

VC 编程开发中的 封装类 &#xff1a;日志类 和SQL server 操作类 源代码 在VC&#xff08;Visual C&#xff09;开发中&#xff0c;日志文件输出是一个至关重要的环节&#xff0c;它对于程序调试、问题排查以及系统监控等方面都具有不可替代的作用。以下是对日志文件输出在VC开…

阿里云ECS服务器实例挂载数据盘步骤(磁盘自动挂载.、访问挂载点)

阿里云ECS服务器实例挂载数据盘步骤 相关指令 df -h 查看磁盘空间 du -sh * 查看使用内存大小1.磁盘自动挂载 首先登录阿里云ECS服务器&#xff0c;通过 df -h 命令查看当前磁盘挂载情况 通过 fdisk -l 命令查看磁盘情况&#xff0c;可以发现有两个盘&#xff1a; 系统盘 …

Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)

1 漏洞概述 CVE-2018-2628 是 Oracle WebLogic Server&#xff08;WLS&#xff09;核心组件中的一个反序列化命令执行漏洞。此漏洞允许未授权的用户通过 T3 协议在远程服务器上执行任意命令&#xff0c;从而可能完全控制受影响的服务器。 2 影响版本 该漏洞影响了以下版本的…

java 并发线程应用

java 并发线程相关 线程状态 新建(NEW): 创建后尚未启动。可运行(RUNABLE): 正在 Java 虚拟机中运行。但是在操作系统层面,它可能处于运行状态,也可能等待资源调度(例如处理器资源),资源调度完成就进入运行状态。所以该状态的可运行是指可以被运行,具体有没有运行要看底层…

国外新闻媒体推广:多元化媒体分发投放-大舍传媒

前言 &#xff1a;随着全球化的进程&#xff0c;国外新闻市场呈现出快速发展的趋势。在这个趋势下&#xff0c;国外新闻媒体推广成为了各行业企业宣传业务的重要一环。本文将重点介绍大舍传媒的多元化媒体分发投放服务&#xff0c;以及对国外新闻媒体推广的意义。 1. 多元化媒…

前端已死? Bootstrap--CSS组件

目录 Bootstrap 下载 Bootstrap--全局CSS样式 栅格系统 栅格参数 正常显示 实例 代码演示: 排版 代码演示 表格 代码演示 表单 代码演示 等等...(文档很清晰了) Bootstrap--组件 结合演示:(页面) Bootstrap Bootstrap v3 中文文档 Bootstrap 是最受欢迎的 HT…

Java项目实现报文数据校验注解方式(必输项、值大小)

普通项目 导入校验依赖 <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.1.0.Final</version></dependency><dependency><groupId>javax.validation</…