当前位置: 首页 > news >正文

论文阅读:H-ViT,一种用于医学图像配准的层级化ViT

来自CVPR的一篇文章,用CNN+Transformer混合模型做图像配准。可变形图像配准是一种在相同视场内比较或整合单模态或多模态视觉数据的技术,它旨在找到两幅图像之间的非线性映射关系。

1,模型结构

首先,使用类似特征金字塔网络(FPN)的CNN作为主干网络,用于从输入图像中提取多尺度的特征图。顶层的Sh个CNN特征被用来生成Transformer特征。这些特征首先会被映射成通道数量为fe,然后做embedding。然后输入双注意力模块。双注意力模块会生成变形场,最后网格采样器根据变形场生成目标图像。

2,双注意力模块

双注意力模块由自注意力和交叉注意力组成,

如图展示了双注意力模块在不同尺度上应用自注意力和交叉注意力的过程。交叉注意力和自注意力都是QKV结构。

其中第一部分是自注意力,QKV均来自同一尺度特征。下面两个部分是交叉注意力,Q和KV来自不同尺度的特征。

3,损失函数

本文模型使用的损失函数包含两个部分:相似性损失和平滑性损失。

相似性损失的公式如下:

平滑性损失的作用是为了防止产生不连续的变形场,公式如下:

平滑性损失计算的是变形场的空间梯度的L2范数,这样可以更强烈地惩罚那些梯度较大的区域。

整体损失函数公式如下:

其中λ是预定义的系数。

4,变形场和网格采样器

4.1 变形场

变形场(Deformation Field)是图像配准中的一个重要概念,是一个从移动图像(源图像)到目标图像的映射。它定义了移动图像中每个点在目标图像空间中的新位置。数学上,变形场可以表示为一个向量场,其中每个向量指向源图像中相应点在目标图像中的位置偏移。

4.2网格采样器

它的作用是根据一个给定的变形场来重新采样图像的像素网格,从而实现图像的变形或映射。变形场通常是一个向量场,网格采样器根据变形场中的向量,计算出原始图像中每个像素点的新位置。如果新位置是子像素位置,则需要使用插值方法来计算这个新位置的像素值。

5,实验

5.1 使用的度量

为了量化模型的性能,使用了多种度量标准,如Dice分数、HD95、SDlogJ等。

其中,HD95:是Hausdorff距离的95%分位数,意味着在95%的情况下,配准误差不会超过这个值。这是一种衡量两组几何对象之间相似度的方法,常用于评估图像配准算法的性能。Hausdorff距离是度量两个点集A和B之间最大距离的度量。计算公式为:H(A,B) = max(h(A,B), h(B,A)),其中h(A,B)表示集合A中的点到集合B中最近点的最大距离,h(B,A)表示集合B中的点到集合A中最近点的最大距离。

SDlogJ:Standard Deviation of the Logarithm of the Jacobian Determinant,是一个统计量,用于度量变形场中雅可比行列式对数值的标准差。雅可比行列式描述了一个点从一个坐标系统映射到另一个坐标系统时体积变化的比率。简单来说,它反映了变换过程中局部体积的膨胀或收缩情况。由于雅可比行列式值可能非常大或非常小,为了方便数学处理和比较,通常会取其对数值。这样做可以使得数据更加平稳。

5.2 实验结果

实验使用了五个公开可用的T1 MRI数据库,包括OASIS、IXI、ADNI、LPBA和Mindboggle。对比了VoxelMorph、MIDIR、CycleMorph、ViT-V-Net和TransMorph等基准方法。实验表格比较多那就不贴了,总之就是超越了这些方法。

相关文章:

论文阅读:H-ViT,一种用于医学图像配准的层级化ViT

来自CVPR的一篇文章,用CNNTransformer混合模型做图像配准。可变形图像配准是一种在相同视场内比较或整合单模态或多模态视觉数据的技术,它旨在找到两幅图像之间的非线性映射关系。 1,模型结构 首先,使用类似特征金字塔网络&#…...

【MySQL】(基础篇七) —— 通配符和正则表达式

通配符和正则表达式 本章介绍什么是通配符、如何使用通配符以及怎样使用LIKE操作符进行通配搜索,以便对数据进行复杂过滤;如何使用正则表达式来更好地控制数据过滤。 目录 通配符和正则表达式LIKE操作符百分号(%)通配符下划线(_)通配符 通配符使用技巧正…...

HTML静态网页成品作业(HTML+CSS)—— 名人霍金介绍网页(6个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有6个页面。 二、作品演示 三、代…...

MySQL: 索引与事务

文章目录 1. 索引 (Index)1.1 概念1.2 作用1.3 使用场景1.4 索引的使用1.5 索引的使用案例 (不要轻易尝试)1.6 索引背后的数据结构1.7 重点总结 2.事务2.1 为什么要使用事务2.2 事务的概念2.3 事务的使用2.4 对事务的理解2.5 事务的基本特性 1. 索引 (Index) 1.1 概念 索引是…...

2024年最新Microsoft Edge关闭自动更新的方法分享

这里写自定义目录标题 打开【服务】 打开【服务】 windows中搜索服务,如下图: 打开服务界面,找到“Microsoft Edge Update Service (edgeupdate)” 及 “Microsoft Edge Update Service (edgeupdatem)” 两个服务,设置为禁用...

Unity3D TextMeshPro组件使用及优化详解

在Unity3D游戏开发中,文本渲染是一个不可或缺的部分。而TextMeshPro作为Unity的一个插件,提供了更高质量、更灵活的文本渲染功能,为开发者带来了极大的便利。本文将详细介绍TextMeshPro组件的使用技巧以及优化方法,并通过代码实例…...

react 0至1 【jsx】

1.函数调用 // 项目的根组件 // App -> index.js -> public/index.html(root)const count 100function getName () {return test }function App () {return (<div className"App">this is App{/* 使用引号传递字符串 */}{this is message}{/* 识别js变…...

算法训练营day58

题目1&#xff1a;392. 判断子序列 - 力扣&#xff08;LeetCode&#xff09; 暴力解法 class Solution { public:bool isSubsequence(string s, string t) {if(s.size() > t.size()) return false;if(s.size() < t.size()) {swap(s, t);}bool reslut false;int flag …...

JAVA面试中,面试官最爱问的问题。

解释Java中的抽象类和接口的区别。 在Java中&#xff0c;抽象类和接口都是用来定义类的抽象行为和特性的&#xff0c;但它们有一些关键区别&#xff1a; ### 抽象类 1. **定义**&#xff1a;抽象类是使用abstract关键字修饰的类&#xff0c;不能被实例化&#xff0c;只能被继…...

【机器学习300问】115、对比K近邻(KNN)分类算法与逻辑回归分类算法的差异与特性?

在学习了K近邻&#xff08;KNN&#xff09;和逻辑回归&#xff08;Logistic Regression&#xff09;这两种分类算法后&#xff0c;对它们进行总结和对比很有必要。尽管两者都能有效地执行分类任务&#xff0c;但它们在原理、应用场景和性能特点上存在着显著的差异。本文就是想详…...

Selenium IDE 工具

官网 ## https://blog.csdn.net/weixin_49770443/article/details/129366721## https://www.selenium.dev/selenium-ide/是什么&#xff1f; Selenium IDE是 Selenium Suite 下的开源 Web 自动化测试工具。 Selenium IDE 一个用于火狐 (firefox) 浏览器的插件&#xff0c;打开…...

python的open函数

1.open() 1.1 参数11.2 参数21.3 参数32.with open() as 3.open函数常用的方法 3.1 读3.2 写3.3 获取文件读写类型3.4 指针移动3.5 当前指针位置3.6 truncate在python中使用open函数对文件进行处理。 1.open() python打开文件使用open()函数,返回一个指向文件的指针。该函数常…...

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第六周) - 预训练模型

预训练模型 1. 预训练模型介绍 1.1. ELMo1.2. GPT1.3. BERT 2. Seq2Seq 2.1. T52.2. BART 3. Tokenization 1. 预训练模型介绍 在预训练语言模型出现之前&#xff0c;统计语言模型&#xff08;如N-gram模型&#xff09;是主流方法。这些模型利用统计方法来预测文本中的下一个…...

【Redis】Redis常见问题——缓存更新/内存淘汰机制/缓存一致性

目录 回顾数据库的问题如何提高 mysql 能承担的并发量&#xff1f;缓存解决方案应对的场景 缓存更新问题定期生成如何定期统计定期生成的优缺点 实时生成maxmemory 设置成多少合适呢&#xff1f;项目类型上来说 新的问题 内存淘汰策略Redis淘汰策略为什么redis要内存淘汰内存淘…...

【redis】redis事务

目录 Redis事务四个命令redis事务特性redis事务执行原理 Redis 事务的使用基本使用watch 监控watch 实现原理补充 Redis事务 Redis事务是一种将多个命令打包成一个单独操作的机制&#xff0c;它保证了在执行这些命令期间&#xff0c;其他命令无法插入。 四个命令 Redis事务通…...

编程入门费用:揭开学习成本的神秘面纱

编程入门费用&#xff1a;揭开学习成本的神秘面纱 编程&#xff0c;这一曾被视为专业领域的技能&#xff0c;如今已逐渐走入大众视野。越来越多的人开始尝试学习编程&#xff0c;然而&#xff0c;对于初学者来说&#xff0c;编程入门费用无疑是一个重要的考虑因素。那么&#…...

js/javascript获取时间戳的5种方法

1.获取时间戳精确到秒,13位 const timestamp Date.parse(new Date()); console.log(timestamp);//输出 1591669256000 13位 2.获取时间戳精确到毫秒,13位 const timestamp Math.round(new Date()); console.log(timestamp);//输出 1591669961203 13位 3.获取时间戳精…...

window系统下为django自动绘制模型类关系图

Django 提供第三方包 django-extensions&#xff0c;可以用来将 Django 中的 Models 生成 E-R 图。 1 安装包 pip install django-extensions 2 配置 在 Django settings.py 文件&#xff0c; INSTALLED_APPS 中添加 django_extensions INSTALLED_APPS (django_extension…...

Redis的数据淘汰策略和集群部署

05- Redis的数据淘汰策略有哪些 ? Redis 提供 8 种数据淘汰策略&#xff1a; 淘汰易失数据(具有过期时间的数据) volatile-lru&#xff08;least recently used&#xff09;&#xff1a;从已设置过期时间的数据集&#xff08;server.db[i].expires&#xff09;中挑选最近最少…...

解决CentOS 7无法识别ntfs的问题

解决CentOS 7无法识别ntfs的问题 方式一&#xff1a; Centos默认不支持ntfs文件格式&#xff0c;直接在Centos7上插U盘或移动硬盘无法识别&#xff0c;安装 ntfs-3g即可&#xff1a; # yum install epel-release -y # yum install ntfs-3g -y[rootbogon ~]# rpm -qa | grep nt…...

排名前五的 Android 数据恢复软件

正在寻找数据恢复软件来从 Android 设备恢复数据&#xff1f;本指南将为您提供 5 款最佳 Android 数据恢复软件。浏览这些软件&#xff0c;然后选择您喜欢的一款来恢复 Android 数据。 ndroid 设备上的数据丢失可能是一种令人沮丧的经历&#xff0c;无论是由于意外删除、系统崩…...

Java 程序结构 -- Java 语言的变量、方法、运算符与注释

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 003 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…...

淘宝/天猫商品详情优惠券获取API 接口

天猫商品优惠券数据API接口是一种用于获取天猫商品优惠券信息的接口。通过该接口&#xff0c;商家或开发者可以获取到商品的优惠券信息&#xff0c;包括优惠券的名称、金额、使用条件等。 该接口的主要参数包括商品ID、优惠券ID等&#xff0c;通过传入这些参数&#xff0c;可以…...

Vue前端ffmpeg压缩视频再上传(全网唯一公开真正实现)

1.Vue项目中安装插件ffmpeg 1.1 插件版本依赖配置 两个插件的版本 "ffmpeg/core": "^0.10.0", "ffmpeg/ffmpeg": "^0.10.1"package.json 和 package-lock.json 都加入如下ffmpeg的版本配置&#xff1a; 1.2 把ffmpeg安装到项目依…...

样式的双向绑定的2种方式,实现样式交互效果

与样式标签实现双向绑定 通过布尔值来决定样式是出现还是消失 show代表着布尔值&#xff0c;show的初始值是false所以文本不会有高亮的效果&#xff0c;当用户点击了按钮&#xff0c;就会调用shows这个函数&#xff0c;并将show的相反值true赋值并覆盖给show,此时show的值为tru…...

供应链经理面试题

供应链经理面试题通常会涉及对供应链管理的基本理解、工作经验、解决问题的能力以及团队协作等多个方面。 请简要介绍一下你在供应链管理领域的工作经验和取得的成绩。你如何定义供应链管理&#xff1f;它在企业中的作用是什么&#xff1f;你认为供应链经理最重要的职责是什么…...

快速理解 Node.js 版本差异:3 分钟指南

Node.js 是一个广泛使用的 JavaScript 运行时环境&#xff0c;允许开发者在服务器端运行 JavaScript 代码。随着技术的发展&#xff0c;Node.js 不断推出新版本&#xff0c;引入新特性和改进。了解不同版本之间的差异对于开发者来说至关重要。以下是一个快速指南&#xff0c;帮…...

【Qt实现录频】

在Qt中实现录制视频可以通过使用Qt Multimedia模块来实现。你可以使用QCamera类来访问摄像头并捕获视频数据。以下是一个简单的示例代码,用于在Qt中实现录制视频: #include <QCamera> #include <QCameraInfo> #include <QCameraViewfinder> #include <…...

Golang编译导致的代码错觉

文章目录 背景分析代码疑问 直接上汇编gdb调试优化后的汇编staticunit64s查看禁止优化后的汇编 查看编译过程的SSA生成SSAb对应的SSAc对应的SSAgo官方文档的解释 对比C语言的表现总结 背景 网上看到一段代码&#xff0c;来源是Golang 编译器优化那些事&#xff0c;百思不得其解…...

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件 H2 是一个用 Java 开发的嵌入式数据库&#xff0c;它的主要特性使其成为嵌入式应用程序的理想选择。H2 仅是一个类库&#xff0c;可以直接嵌入到应用项目中&#xff0c;而无需独立安装客户端和服务器端。 常用开源数…...