图像分割模型LViT-- (Language meets Vision Transformer)

参考:LViT:语言与视觉Transformer在医学图像分割-CSDN博客

背景

  • 标注成本过高而无法获得足够高质量标记数据
  • 医学文本注释被纳入以弥补图像数据的质量缺陷
  • 半监督学习:引导生成质量提高的伪标签
  • 医学图像中不同区域之间的边界往往是模糊的,边界附近的灰度值差很小,很难提取出高精度的分割边界

贡献

  • 指数伪标签迭代机制(EPI):帮助像素级注意模块(PLAM)----在半监督LViT设置下保持局部图像特征
  • LV (Language-Vision)损失被设计用来直接使用文本信息监督未标记图像的训练
  • 构建了包含x射线和CT图像的三个多模态医学分割数据集(图像+文本)
  • 模型
    • CNN (卷积神经网络):处理输入的图像,提取局部特征。
    • ViT (视觉Transformer):利用Transformer结构,处理从CNN提取的特征,并结合来自文本嵌入的特征。
    • BERT-Embed (BERT嵌入):利用BERT模型对输入的文本进行嵌入,提取语义信息。
  • 如何利用已有的图像-文本信息提高分割性能
    • 使用嵌入层代替文本编码器获得文本特征向量(减少模型中参数的数量)
    • 具有像素级注意模块(PLAM)的混合CNNTransformer结构能够更好地合并文本信息(CNN:局部特征;transformer:全局特征)
  • 如何充分利用文本信息,保证伪标签的质量
    • 伪标签迭代机制(Exponential Pseudo label Iteration mechanism, EPI)
      • 利用标记数据的标签信息和未标记数据的潜在信息
      • EPI间接结合文本信息,以指数移动平均线(EMA)的方式逐步完善伪标签[10]
    • LV (Language-Vision) loss的设计目的是直接利用文本信息来监督未标记医学图像的训练。

模型

双u型结构:u型CNN支路+u型Transformer支路

左面的红方框是Transformer支路,右面的红方框是CNN支路。

  • CNN分支作为信息输入源和预测输出的分割头
  • ViT分支用于图像和文本信息的合并(Transformer处理跨模态信息的能力)
  • u型CNN分支的跳接位置设置一个像素级注意模块(PLAM)----保留图像的局部特征信息

U形CNN分支

  • 每个CNN模块:Conv、BatchNorm(BN)和ReLU激活层
  • Maxpool对图像特征进行下采样(老规矩了) 
  • CNN-ViT交互模块:使用了上采样等方法来对齐来自ViT的特征。重构后的ViT特征通过残差与CNN特征连接,形成CNN-ViT交互特征。
  • 提高局部特征的分割能力:跳接处设计了PLAM,将CNN-ViT交互特征输入到PLAM中,再将交互特征传递到UpCNN模块,逐层向上给出信息。

U形Vit分支

  • 用于合并图像特征和文本特征
  • 第一层DownViT模块接收BERT-Embed输入的文本特征和第一层DownCNN模块输入的图像特征。
  • BERT-Embed的预训练模型是BERT_12_768_12模型,它可以将单个单词转换为768维的单词向量。
  • 跨模态特征合并操作
    • CTBN块还包括Conv层、BatchNorm层和ReLU激活层,用于对齐x_{img}、1和x_{text}的特征维度。
    • ViT由多头自注意组成
    • LN表示归一化层
    • 第2层、第3层和第4层的后续DownViT模块既接收上层DownViT模块的特征,又接收相应层的DownCNN模块的特征

PLAM 

  • 旨在保留图像的局部特征,并进一步融合文本中的语义特征
  • 并行分支:Global Average Pooling (GAP),Global Max Pooling (GMP) 
    • 加法操作:合并具有相似语义的相应通道特征并节省计算
    • 连接操作:更直观地整合特征信息,并有助于保留每个部分的原始特征
  • 使用MLP结构和乘法操作来帮助对齐特征大小
  • PLAM通过增强局部特征来缓解Transformer带来的对全局特征的偏好
  • PLAM采用通道注意和空间注意相结合的方式(我的理解是通道注意力机制:PLAM,空间注意力机制:Transformer)

指数伪标签迭代机制

更新后的伪标签将用于无标签数据的训练,使得无标签数据可以像有标签数据一样为模型提供监督信息。这种方式能够有效利用大量的无标签数据,提高模型的泛化能力和鲁棒性。 

  1. 初始生成

    • 使用有标签数据训练初始模型,生成伪标签。初始模型可以通过图中的Down CNN和Up CNN部分进行训练。
  2. 预测和更新

    • 在每一轮训练中,使用当前模型(例如图中的LViT模型)对无标签数据进行预测,生成新的伪标签。
    • 通过EPI机制更新伪标签,逐步提高其质量。这一过程在图中没有具体表示,但它是数据处理的一部分。
  3. 再训练

    • 使用更新后的伪标签对模型进行再训练。模型结构可以包括图中的Down ViT和Up ViT部分,以及中间的PLAM模块。

LV (Language-Vision) Loss 

  • 结构化的文本信息来形成相应的掩码(对比标签)
  • 计算文本之间的余弦相似度
    • x_{text},p表示伪标签对应的文本特征向量
    • x_{text},c表示对比标签对应的文本特征向量


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

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

相关文章

Java | Leetcode Java题解之第118题杨辉三角

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> ret new ArrayList<List<Integer>>();for (int i 0; i < numRows; i) {List<Integer> row new…

Docker-02-02 Docker离线下载安装与配置(linux)

一、Docker下载 官网下载地址:Index of linux/static/stable/x86_64/ (docker.com) 推荐下载最新的社区版: 二、将安装包上传至服务器并解压 将安装包上传至服务器的/usr/local目录并解压 cd /usr/local lstar -zxvf docker-18.06.3-ce.tgz三、将docker目录下的文件复制到…

ubuntu server 24.04 (Linux) 源码编译安装 OpenResty 1.25.3.1 Released

1 下载: OpenResty - 开源官方站 2 通过xftp等方式上传到ubuntu服务器 3 安装 #解压 tar zxvf openresty-1.25.3.1.tar.gz #创建运行用户 sudo groupadd www sudo useradd -g www www -s /bin/false #安装依赖软件 sudo apt update sudo apt-get install libpcre3-dev l…

OSINT 与心理学:通过开源情报进行剖析和行为分析

在不断发展的心理学领域&#xff0c;人们越来越认识到通过应用开源情报 (OSINT) 方法取得进步的潜力。OSINT 主要以其在安全和情报领域的应用而闻名&#xff0c;并且越来越多地展示其在心理分析和行为分析方面的潜力。本文探讨了 OSINT 和心理学的迷人交叉点&#xff0c;研究如…

前端项目上线

目录 1项目打包 2本地服务器部署 2.1具体操作步骤 2.2解决刷新 404 问题 2.3请求无法发送问题 3nginx 服务器部署 3.2nginx 配置代理练习 安装nginx nginx部署启动项目 3.3nginx 部署前端项目 4云服务器部署 本地资源上传 配置服务器与nginx 1项目打包 ●我…

【设计模式】JAVA Design Patterns——Data Transfer Object(数据传递对象模式)

&#x1f50d;目的 次将具有多个属性的数据从客户端传递到服务器&#xff0c;以避免多次调用远程服务器 &#x1f50d;解释 真实世界例子 我们需要从远程数据库中获取有关客户的信息。 我们不使用一次查询一个属性&#xff0c;而是使用DTO一次传送所有相关属性。 通俗描述 使用…

部署LAMP环境

红帽9搭建LAMP 安装Apache 2.安装数据库服务 3.安装php (1)使用IP访问/phpinfo.php 4.安装phpMyAdmin &#xff08;1&#xff09;数据库端口改为学号后五位 &#xff08;2&#xff09;登录phpmyadmin 5.SSH增加一个端口10022&#xff0c;fttp增加两个端口10080和8080 &#xf…

李廉洋:5.29黄金震荡,原油持续走高,今日美盘行情走势分析及策略。

黄金消息面分析&#xff1a;当前美国存在一个令人担忧且未被充分关注的问题&#xff1a;房地产行业低迷、高利率和抵押贷款利率、租金高涨以及美联储的紧缩政策构成了一个恶性循环。由于高房价和高抵押贷款利率&#xff0c;美国住房经济活动远低于两年前的水平。为了让该行业好…

Apache、Nginx、IIS文件解析漏洞

目录 1、文件解析漏洞介绍 2、Apache相关的解析漏洞 &#xff08;1&#xff09;多后缀解析漏洞 &#xff08;2&#xff09;Apache配置问题 &#xff08;3&#xff09;换行符解析漏洞 &#xff08;4&#xff09;罕见后缀解析 3、Nginx相关的解析漏洞 &#xff08;1&…

《java数据结构》--栈的详解

一.栈的认识 栈是一种不同于链表和顺序表的储存数据结构&#xff0c;它对存储数据和取出数据有着特殊的要求&#x1f914;。 首先栈只能从一端存储数据&#xff0c;也就是从一端进&#xff0c;还从这一端出这也是栈最大的特点&#xff0c;这也导致在栈中存取数据都必须遵循先…

C++线程任务队列模型

功能描述 实现一个任务队列&#xff0c;用于任务的执行 任务队列 任务队列可以添加、删除任务&#xff0c;实现对任务的管理添加任务后&#xff0c;任务队列可以开始执行任务队列执行任务方式为串行执行 任务 任务执行需要持续一段10s内随机的时间&#xff0c;执行过程通过…

打造爆款活动:确定目标受众与吸引策略的实战指南

身为一名文案策划经理&#xff0c;我深知在活动策划的海洋中&#xff0c;确定目标受众并设计出能触动他们心弦的策略是何等重要。 通过以下步骤&#xff0c;你可以更准确地确定目标受众&#xff0c;并制定出有效的吸引策略&#xff0c;确保活动的成功&#xff1a; 明确活动目…

【Oracle篇】rman标准化全库备份策略:完整备份or增量备份(第三篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

单元测试框架Pytest的基本操作

Pytest基本操作 1. 详解1.1 命名规则:1.2 自定义查找规则:1.3 3种运行方式1.4 执行顺序2. 断言2.1 定义2.2 断言的规则3. mark3.1 mark的作用3.2 mark的标记方式3.3 注册标签名3.4 skip跳过标记4. pytest的参数化5. pytest的夹具(fixture测试夹具)5.1. 作用5.2. 夹具应用场…

web前端框架设计第十一课-常用插件

web前端框架设计第十一课-常用插件 一.预习笔记 1.路由的基础使用 2.动态路由 3.嵌套路由 二.课堂笔记 三.课后回顾 –行动是治愈恐惧的良药&#xff0c;犹豫拖延将不断滋养恐惧

Web渗透-MySql-Sql注入:联合查询注入

SQL注入&#xff08;SQL Injection&#xff09;是一种网络攻击技术&#xff0c;攻击者通过将恶意的SQL代码插入到应用程序的输入字段&#xff0c;从而欺骗应用程序执行未经授权的操作。这种攻击方式可以导致严重的安全问题&#xff0c;包括&#xff1a; 数据泄露&#xff1a;攻…

UE5 UE4 快速定位节点位置

在材质面板中&#xff0c;找到之前写的一个节点&#xff0c;想要修改&#xff0c;但是当时写的比较多&#xff0c;想要快速定位到节点位置. 在面板下方的 Find Results面板中&#xff0c;输入所需节点&#xff0c;找结果后双击&#xff0c;就定位到该节点处。 同理&#xff0c;…

【CUDA】Nsight profile驱动的CUDA优化

前置准备 安装NVIDIA Nsight Compute。 安装好后选择使用管理员权限启动下载官方 Demo 代码官方博客Shuffle warp 1. 任务介绍及CPU版本 1.1 任务介绍 任务理解&#xff1a; 有一个 L x M 的矩阵 M 1 M_1 M1​ 对其每行取平均值 得到 V 1 ∈ R L 1 V_1 \in \mathbb{R}^{…

pikachu—exec“eval“

这是原画面 然后呢&#xff1f; 我们知道会传入到后台rce_eval.php来处理然后通过 eval()是啥? 在eval括号里面可以执行外来机器的命令 然后我们通过php的一个内置的命令 我们通过phpinfo()&#xff1b; 这是输入后的结果

(四十八)第 7 章 图(图的数组(邻接矩阵)存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…