【论文阅读】(2023TPAMI)PCRLv2

目录

  • Abstract
  • Method
  • Method
    • nsU-Net中的特征金字塔
    • 多尺度像素恢复
    • 多尺度特征比较
    • 从多剪切到下剪切
    • 训练目标
  • 总结

Abstract

现有方法及其缺点:最近的SSL方法大多是对比学习方法,它的目标是通过比较不同图像视图来保留潜在表示中的不变合判别语义,然而它主要保留高级语义信息,不包含足够的局部信息,局部信息对医学图像分析很有用。
提出的解决方法:提出将像素级恢复任务纳入,以将更多像素级信息显示编码到高级语义信息中。讨论了尺度信息保留,提出的框架可以表述为在特征金字塔上的多任务优化问题。
效果很好。

Method

在这里插入图片描述
上面是动机插图。三层分别表示像素、尺度和语义。像素是图片的像素值,通过特征图重建生成(从特征图中恢复未损坏的输入,以保留像素级细节),特征是网络学习到的特征,语义信息是一维编码。这些在不同的尺度上进行像素恢复和特征比较(特征比较怎么做?)引入多尺度自监督潜在特征表示,以更好地迁移到下游任务。
贡献

  1. 从像素、语义和尺度三个方面统一了潜在特征中视觉信息的保存。在不同特征尺度上进行像素恢复和特征比较。
  2. 我们引入了非跳过U-Net(nsUNet)来构建特征金字塔。因防止跳跃连接踢狗学习的捷径,同时高级特征和低级特征直接组合不利于高级语义信息的提取。
  3. 受多剪切的启发,提出使用子剪切比较全局剪切块和局部剪切块。为了缓解 3D 空间中全局视图和局部视图之间互信息减少的问题,子裁剪限制了全局视图的 3D 最小边界框内的局部视图裁剪。
  4. 广泛全面的实验。
    PCRLv1证明了通过对比学习获得的不便和判别语义之外,还包含更多像素级语义信息的好处。对PCRLv1进行实质性修改。改进主要包括不限于:
    (i) 除了本地像素级和全局语义信息外,比例信息也保留在自监督视觉信息表示中。这证明可以提升在下游任务中的性能。
    (ii) PCRLv2将PCLv1的注意力像素级恢复和混合特征对比操作简化为简洁的多任务问题。
    (iii) 与PCELv1相比PCRLv2的引入了nsU-Net(非跳跃连接的U-Net)。
    usU-Net好处如下:
    a. nsU-Net的特征金字塔允许进行多尺度像素级上下文恢复和语义特征比较。像素、语义和比例的统一产生了更多可转移的视觉表示
    b. 它可以避免产生捷径解决方案,与典型跳跃连接相比,性能明显提高。
    (iv) 我们整合多剪切的想法到PCRLv2中。通过在全局视图中的3D最小边界框中随机剪切多个局部体积块来增加相互信息。
    (v) 实验效果好。

Method

在这里插入图片描述
PCRLv2的整体结构。提出nsU-Net。nsU-Net由5个特征缩放组成删除了跳跃连接,防止网络找到恢复上下文信息的捷径解决方法。在nsU-Net基础上,提出将像素级、语义和尺度信息的保存解耦为两个任务 a.多尺度像素恢复 b.多尺度特征比较。原理将像素细节和语义合并到不同比例的特征图中。在训练阶段,从特征金字塔中随机选择一个特征尺度,在尺度上进行像素恢复和特征比较,x是一批输入图像,t1和t2表示两个不同的全局增强,t1’和t2’表示连续的局部增强。
全局增强t1,t2;例如翻转和旋转,目标是从全局角度扭曲输入图像的语义。局部增强t1’,t2’表示局部像素级的转变,像是随机噪声和高斯滤波,目的是扰乱局部语义。最后增强后的图像传递给siamese网络取进行像素恢复和特征比较,利用经过t1和t2操作从x得到的x1和x2作为像素恢复任务的实际目标。
在特征金字塔上执行SSL以编码多尺度视觉表示。两个nsU-Net产生的特征图进行比较,这就是特征比较。每次随机抽取其中一个尺度,在所选尺度上进行像素恢复和特征比较,这是尺度方面的学习。

nsU-Net中的特征金字塔

在这里插入图片描述
上图是nsU-Net结构。彩色方块的是特征图。与之前的U-Net系列相比,nsUNet删除了跳过连接和关联的跳过特征映射,以防止像素恢复和特征比较任务的捷径解决方案。此外,nsUNet由五个级别的特征图(用不同的颜色表示)组成,其中进一步执行两个自我监督任务。
这里展示了特征提取的过程,特征图{F1,F2,F3,F4,F5}然后转发给后续任务相关头,分别并同时执行像素恢复和特征比较。

多尺度像素恢复

含义:旨在同时保留潜在视觉表示中的像素级和比例信息。
结构:下图(a)。
损失函数:每一个尺度都计算重建的2个特征图与x1,x2的MSE损失求和。
在这里插入图片描述
左边是像素恢复头的结构,右边是特征比较头的结构。没对特征图共享一个像素恢复头和特征比较头,不同的特征尺度使用不同的任务头。红线是比较。

多尺度特征比较

PCRLv2采用多尺度比较取代了PCRLv1中的混合对比策略。提出保留不同特征尺度的判别语义,这迫使模型保留多尺度自监督表示。
含义:旨在同时保留潜在视觉表示中的特征级和比例信息。
结构:上图(b)。
损失函数:我们将它们通过全局平均池化层和共享批量归一化层(如图4b所示)以获取一维表示vi就是红色双向箭头前面指到的地方,我们将 vi 转发给共享预测器 fP(·)预测器就是框起来的Predictor那部分,最后输出就是fp(vi)。下面那一个分支为 v i s v_i^s vis f p ( v i s ) fp(v_i^s) fp(vis)。损失函数就是负的二分之一vi和 f p ( v i s ) f_p(v_i^s) fp(vis)计算cos相似度加上 v i s v_i^s vis f p ( v i ) f_p(v_i) fp(vi)计算cos相似度。

从多剪切到下剪切

多裁剪 [5] 被认为是提高自然图像中 SSL 性能的有用策略,它通过从原始输入中采样多个标准分辨率裁剪和更多低分辨率裁剪来增加输入视图的数量。多裁剪背后的一个关键见解是捕获场景或对象的各个部分之间的关系,而低分辨率视图可确保计算成本的可控增加。
在医学图像中多裁剪在2D X射线数据中效果好,单在3D体积数据中不收敛,根源是有限的输入大小与三维空间中许多候选剪切体积之间的矛盾。们负担不起大尺寸的 3D 输入,因为使用 3D 深度模型处理它们通常会花费巨大的 GPU 内存。另一方面,如果我们过度减小 3D 输入的大小,采样视图将过于分散,无法保证模型捕获局部-全局关联。
下裁剪主要包括三个步骤:
(i)在IoU约束下随机裁剪两个广泛的全局视图;
(ii) 在裁剪的全局补丁上找到最小的 3D 边界框;
(iii) 在 3D 边界框中随机裁剪多个局部补丁。
下裁剪中有两个关键操作:IoU 对全局视图的约束和最小边界框内的局部补丁采样。在实践中,第一个操作通过确保大于固定阈值的大型补丁之间的重叠来保证全局-全局关联。第二个操作缓解了局部视图的分散问题,并帮助模型发现局部-全局关系。

训练目标

LTotal有三个术语:LR(g1,g2),LC(g1,g2)和∑ m∈{1,2} ∑ˆ N k=1 LC(lk,gm)。第一项旨在保留多尺度学习表示中的像素级细节。第二个术语解决了将多尺度语义编码为潜在特征的重要性。最后一个术语旨在捕捉多尺度的全球-局部语义关系。
LR是像素恢复任务的损失,LC是特征比较任务的损失,特征比较的损失是比较特征之间语义差异用的负的cos相似度,最后一项比较的全局和局部的语义差异。

总结

我认为读了这篇论文收获就是尺度信息、特征信息、像素信息这三个它进行了细致的描述比较,因为这三种信息对下游任务都很重要,所以它设计了多任务来对三种信息进行学习。多尺度信息相比于像素、特征信息比较模糊,它使用金字塔结构,每次选择一个尺度进行学习,很好解决了这个问题。为了更好地提取多尺度特征,防止网络学到捷径,改进了U-Net为nsU-Net。然后设计了非常巧妙的损失函数。
我学习到了一般网络分为特征提取和任务头两部分,不知道理解对不对,然后特征提取很重要,要让提取的特征有泛化性、有代表性,任务头设计如何获取相应任务结果的同时,要设计合适的损失函数。
展望:未来,将继续探索如何将不同类型的信息以最佳方式集成到SSL中。(论文中的)

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

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

相关文章

[AutoSar NVM] 存储架构

依AutoSAR及公开知识辛苦整理,禁止转载。 专栏 《深入浅出AutoSAR》, 全文 2900 字. 图片来源: 知乎 汽车的ECU内存中有很多不同类型的变量,这些变量包括了车辆各个系统和功能所需的数据。大部分变量在ECU掉电后就会丢失&#x…

深入探索Sharding JDBC:分库分表的利器

随着互联网应用的不断发展和用户量的不断增加,传统的数据库在应对高并发和大数据量的场景下面临着巨大的挑战。为了解决这一问题,分库分表成为了一个非常流行的方案。分库分表主流的技术包括MyCat和Sharding JDBC。我们来通过一张图来了解这两者有什么区…

如何进行二进制文件的读写操作?

在C语言中,进行二进制文件的读写操作是非常常见的任务,尤其在处理文件、图像、音频和视频等二进制数据时。本文将详细介绍如何进行二进制文件的读写操作,包括如何打开文件、读取文件、写入文件以及关闭文件。我们将使用标准C库中的函数来执行…

行为型模式-空对象模式

在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我…

性能测试jmeter命令行运行+html测试报告解读

windows下打开jmeter的运行窗口,可以看到提示不要用GUI模式进行负载测试,如果要用负载测试,用cli模式,因为GUI模式运行jmeter比较消耗性能。 命令行模式 windows下找到jemeter所在文件夹,打开cmd输入命令。 jmeter -n…

Centos安装gitlabce

服务器配置要求(2c4g) 1、 安装其他组件 yum install -y curl policycoreutils-python openssh perl2、 安装Postfix服务以发送电子邮件通知,启动服务并自启 yum -y install postfix systemctl enable postfix --now3、 安装gitlab&#xf…

Docker容器端口在主机的映射

Docker容器端口在主机的映射 Docker 允许你在启动容器时进行多个端口映射,以便将容器内部的端口映射到宿主机上的不同端口。你可以使用-p或--publish标志来指定端口映射。以下是一些示例,说明如何在 Docker 启动容器时进行多个端口映射: 映…

Linux系统之file命令的基本使用

Linux系统之file命令的基本使用 一、file命令介绍1.1 Linux简介1.2 file命令简介 二、file命令的使用帮助2.1 file命令的help帮助信息2.2 file命令的语法解释2.3 file命令的man手册 三、文件类型介绍四、file命令的基本使用4.1 查询file版本4.2 显示文件类型4.3 输出时不显示文…

Ubuntu 安装 docker-compose

在Ubuntu上安装Docker Compose,可以按照以下步骤进行操作: 下载 Docker Compose 二进制文件 sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker…

进阶第1章代码解读

目录 forward_net.py代码代码解读debug 代码 forward_net.py 代码 # coding: utf-8 import numpy as npclass Sigmoid:def __init__(self):self.params []def forward(self, x):return 1 / (1 np.exp(-x))class Affine:def __init__(self, W, b):self.params [W, b]def fo…

39.B树,B+树(王道第7章查找补充知识)

目录 一. B树 (1)B树的定义 (2)B树的高度 (3)B树的插入 (4)B树的删除 二. B树 (1)B树的定义 (2)B树与B树的区别 一. B树 &am…

Java架构师内功计算机网络

目录 1 导学2 网络功能和分类3 OSI七层模型3.1 局域网和广域网协议4 TCP/IP协议5 通信技术和交换技术5.1 通信技术5.2 交换技术5.2.1 路由技术5.2.2 传输介质6 通信方式和交换方式7 IP地址7.1 IP地址表示7.2 子网划分8 IPv69 网络规划与设计10 网络存储技术10.1 廉价磁盘几余阵…

软件测试进阶篇----自动化测试脚本开发

自动化测试脚本开发 一、自动化测试用例开发 1、用例设计需要注意的点 2、设计一条测试用例 二、脚本开发过程中的技术 1、线性脚本开发 2、模块化脚本开发(封装线性代码到方法或者类中。在需要的地方进行调用) 3、关键字驱动开发:selen…

【云原生之kubernetes实战】在k8s环境下部署moredoc文库系统

【云原生之kubernetes实战】在k8s环境下部署moredoc文库系统 一、moredoc介绍1.1 moredoc简介1.2 moredoc技术栈二、本次实践介绍2.1 本次实践简介2.2 本次环境规划三、检查k8s环境3.1 检查工作节点状态3.2 检查系统pod状态四、创建mysql的secret资源4.1 创建部署目录4.2 创建密…

rust学习——智能指针

智能指针 在各个编程语言中,指针的概念几乎都是相同的:指针是一个包含了内存地址的变量,该内存地址引用或者指向了另外的数据。 在 Rust 中,最常见的指针类型是引用,引用通过 & 符号表示。不同于其它语言&#xf…

【可视化Java GUI程序设计教程】第4章 布局设计

4.1 布局管理器概述 右击窗体,单击快捷菜单中的Set Layout 4.1.2 绝对布局(Absolute Layout) 缩小窗口发现超出窗口范围的按钮看不见 Absolute Layout 4.1.2 空值布局(Null Layout) 4.1.3 布局管理器的属性和组件布…

python获取安卓Hierarchy并解析

python获取安卓Hierarchy并解析 借助 uiautomator 命令 dump 当前页面的 ui hierarchy 信息 完整的 uiautomator 命令类似: adb shell uiautomator dump [--compressed] [file]解析需要使用:import xml.etree.ElementTree as ET 完整代码如下&#xff…

STM32-通用定时器

通用定时器 通用定时器由一个可编程预分频器驱动的16位自动重新加载计数器组成。应用:测量输入的脉冲长度信号(输入捕获)、产生输出波形(输出比较和PWM)。 脉冲长度和波形周期可以从几微秒调制到几毫秒,使用…

SQL 运算符

SQL 运算符 运算符是保留字或主要用于 SQL 语句的 WHERE 子句中的字符,用于执行操作,例如:比较和算术运算。 这些运算符用于指定 SQL 语句中的条件,并用作语句中多个条件的连词。 常见运算符有以下几种: 算术运算符比…

STM32:TIM通道输入捕获

本文主要讲解如何使用TIMER通道的输入脉冲捕获功能。基于STM32F7的Timer2 Channel3来进行讲解。 配置时钟 Timer2的时钟频率,对应APB1 Timer。 分频设置为96-1,这样设置定时器每次counter加1,对应的时间为1us(计时精度是1us&…