读论文“MARformer”——牙齿CBCT金属伪影去除

题目:MARformer: An Efficient Metal Artifact Reduction Transformer for Dental CBCT Images

一种有效的牙科CBCT图像金属伪影还原变压器

论文地址:arxiv

不重要的地方尽量一句话一段,减轻大家阅读压力

摘要

锥形束计算机断层扫描(CBCT)在牙科诊断和外科手术中发挥着关键作用。然而,金属牙种植体在CBCT成像过程中会带来烦人的金属伪影,干扰诊断和牙齿分割等下游处理。在本文中,我们开发了一种有效的变压器,用于从牙科CBCT图像中执行金属伪影还原(MAR)。

基于CBCT图像具有全局相似性的特点,提出了一种新的降维自注意(DRSA)模块,降低了多头自注意的计算复杂度。提出了一种基于斑块感知前馈网络(P2FFN)的局部图像信息感知方法。实验结果表明,该方法具有较好的有效性,优于现有的修复方法和两种修复变压器。

介绍

展示了两张CBCT图像,其中有或没有被牙齿中的金属污染的耀斑伪影,点出了金属伪影影响分割

现有方法有基于正弦图、优化、数据驱动的方法,这些基于CNN的缺少全局相关性,因此使用Transformer,但是Transformer计算成本高

因此提出了降维自注意(DRSA)模块,和具有大卷积核的斑块感知前馈网络(P2FFN)模块

由于牙科CBCT图像在局部区域具有空间相似性,因此可以通过在降维特征张量上执行多头自关注(MHSA)来减轻计算负担,这在变压器中消耗了最多的计算成本。为此,我们提出了一种高效的降维自注意(DRSA)模块,通过计算通道维数而不是空间维数的相似性矩阵来降低标准MHSA的计算复杂度,同时保持其利用全局相关性的能力。此外,在每个DRSA模块之后,我们引入了一个新的具有大卷积核的斑块感知前馈网络(P2FFN)模块,可以很好地恢复牙齿CBCT图像中的局部细节。

相关工作就不看啦 

模型

整体流程
整体流程

可以看到框架采用Unet,三层编码解码,每层N个变压器块,熟悉的童鞋可以只看维度就可以了

作为有监督网络,训练肯定是采用的退化方法,将添加了金属伪影的输入X 金国3*3卷积提取特征,然后输入第一层编码器输出特征是空间方向的下采样和通道方向的扩展到2C × h/2 × w/2的大小。然后再第二层同样,经过三层分层编码器后,将大小为8C × h8 × w8的输出特征图输入到bottleneck

在解码器阶段,特征映射在解码器的每个级别上向上采样,并在信道上缩小一半,并与相应级别编码器的特征输出相连接。为了保持不同级别之间的通道维度一致,使用1×1卷积将连接特征的维度从2C降至C,然后再将其馈送到下一级解码器。

不同级别编码器或解码器之间的下采样和上采样操作是通过像素unshuffle/shuffle操作来实现的。将最后一个解码器后的feature map进行3×3卷积融合得到图像残差,将残差R加入到输入图像I中,得到最终的MAR图像I‘ = I + R。

b:Transformer 块,c:降维自关注(DRSA)模块,d:
斑块感知前馈网络(P2FFN)

每个变压器块由DRSA和P2FFN组成

DRSA模块的目标是对高分辨率特征图进行有效的自关注。首先沿着通道维度计算全局相似矩阵,通过DW卷积将数据投影到注意力机制需要用到的Q\K\V,然后计算获得注意力得分Attention=Softmax(\frac1 \alpha QK^T)V,后面的reshape操作是因为医学图dcm一般很小,因此进行一定程度的转换。总体来说就是一个注意力

深度分离卷积(Depthwise Separable Convolution)不同于常规卷积操作,Depthwise Convolution的一个卷积核负责一个通道,一个通道只被一个卷积核卷积,

同样是对于一张 5×5 像素、三通道彩色输入图片(shape为5×5×3),Depthwise Convolution首先经过第一次卷积运算,不同于上面的常规卷积,DW完全是在二维平面内进行。卷积核的数量与上一层的通道数相同(通道和卷积核一一对应)。所以一个三通道的图像经过运算后生成了3个Feature map(如果有same padding则尺寸与输入层相同为5×5)
具体参考大佬博客 https://blog.csdn.net/IT__learning/article/details/119107079

 P2FFN模块是由一个1×1扩大频道维度从C到γC, GELU激活函数,一个深度方面7×7卷积GELU感知局部图像,而另一个1×1卷积缩减渠道维度从γC 到C。

细节部分,之后复现网络可能用到

Tranformer块数量分别是,1、2、4、8, 注意力头的数目为1、2、4、8

空间和通道下采样比r均设为2。我们在P2FFN中设置通道尺寸C = 48,扩展因子γ = 2。

实验

数据就不看了,看两张图

效果可以说好的离谱

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

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

相关文章

闲鱼平台与宝藏详情API接口

一、闲鱼平台简介 闲鱼,是我国知名二手交易平台,成立于2015年,隶属于阿里巴巴集团。联讯数据用户可以在闲鱼上买卖二手商品,实现闲置物品的流通与再利用。随着我国互联网经济的快速发展,闲鱼平台用户规模不断扩大&…

Python内置debug库: pdb用法详解

文章目录 0. 引言1. 基本用法1.1 设置断点1.2 通过命令行启动 pdb 2. 常用命令2.1 n (next)2.2 s (step)2.3 c (continue)2.4 l (list)2.5 p (print)2.6 h (help)2.7 b (break)2.8 cl (clear)2.9 q (quit) 3. 例子 0. 引言 pdb(Python Debugger)是Pytho…

如何使用 Midjourney换脸,将一个人面部复制并粘贴到任意人身上

嘿,想不想将一个人的面部随意粘贴到任意人身上?现在开始教学如何使用 Discord 中的Midjourney Bot 实现,这就是“COPY A FACE”这个超酷的功能,它能帮你一键把脸贴到任何图片上。用到的是一个叫“InsightFace”的开源Discord机器人…

压缩列表(ziplist)

压缩列表(ziplist): ziplist是列表键和哈希键的底层实现之一 当一个列表键只包含少量列表项,并且每个列表项要么是小整数或者短字符串,那么redis会使用ziplist来做列表键的实现当一个哈希键只包含少量键值对&#xff0…

java入门1.4.0

前言: 在1.4.0版本中,更新了对语言三大要素的理解 红字为更新,绿字为迭代 这时我们目前拥有的知识 正片: 有了这些内容,我们就可以顺利进入到Spring Boot阶段了 Q:有人就会问,面向对象的特性…

C#——集合List

list list集合和Arraylist基本一样,只不过list是C#2.0版本新加入的范型类型。list也可以通过索引操作里面的元素,也有对list进行增删改查 概念 Array静态数组 * Arraylist 动态数组 * list集合 * 1. Array是容量是固定的,但是ArrayList和…

09-Spark架构

相比MapReduce僵化的Map与Reduce分阶段计算,Spark计算框架更有弹性和灵活性,运行性能更佳。 1 Spark的计算阶段 MapReduce一个应用一次只运行一个map和一个reduceSpark可根据应用复杂度,分割成更多的计算阶段(stage)…

编程一般大学什么学院:揭秘计算机科学教育的多元归属

编程一般大学什么学院:揭秘计算机科学教育的多元归属 在探讨编程教育在大学中的归属时,我们往往会遇到一个问题:编程究竟属于哪个学院?这个问题的答案其实并不简单,因为编程作为计算机科学的核心内容,其教…

如何正确操作工业高温烤箱

高温烤箱广泛应用于陶瓷、丝印、汽车配件、电子、机电、通讯、化工、器材、印刷、制药、工业、橡胶、油漆、食品之烘烤、水份干燥、预热等用途。那么要想工业高温烤箱在使用的过程中能够正常运行,那么正确的操作是必不可少的, 1、防止触电:高…

教你一招,一键学会NAS磁盘“净身出户”的好方法!

在毕业季这个充满离别与新的开始的时刻,空气中似乎也弥漫着一种“断舍离”的氛围。就在这个特殊的季节里,我们迎来了618购物节,各种诱人的优惠活动如雨后春笋般涌现。铁威马618优惠不断!T系列部分低至六折! 在这个热闹…

超级会员卡积分收银小程序源码系统,在线充值+商家核销+在线下单 附带源代码+搭建部署教程

系统概述 在当今数字化快速发展的时代,移动支付已经成为人们生活中不可或缺的一部分。为了满足商家和消费者对于便捷、高效支付体验的需求,超级会员卡积分收银小程序源码系统应运而生。本文将深入介绍该源码系统的开发背景及其特色功能,附带…

录制视频软件哪个好?录制视频,4款好软件推荐

随着网络技术的飞速发展和社交媒体的普及,录制视频已经成为人们记录生活、分享知识和展示才华的重要方式。在众多录制视频软件中,如何挑选一款功能强大、操作简便的工具,成为了许多用户的难题。本文将为您推荐4款优秀的录制视频软件&#xff…

Java证件识别中的身份证识别接口

现如今,越来越多的互联网应用需要对身份证进行实名认证,但不知道大家有没有发现,从最初的手动录入身份证信息转变到了现在的图片上传自动识别呢?其实,这都是因为集成了身份证识别接口功能,今天,…

C语言队列操作及其安全问题

在C语言中,队列是一种常用的数据结构,特别适用于嵌入式开发中的任务调度、缓冲区管理等场景。下面是一个简单的循环队列的模板代码,它使用数组来实现队列,并提供了基本的入队(enqueue)和出队(de…

海康威视设备网络SDK_Win64 V6.1.9.4_build20220412 java本地demo实现预览视频下载、摄像头转向控制等

海康威视设备网络SDK_Win64 V6.1.9.4_build20220412 java本地demo实现预览视频下载、摄像头转向控制等

SpringMVC系列九: 数据格式化与验证及国际化

SpringMVC 数据格式化基本介绍基本数据类型和字符串自动转换应用实例-页面演示方式Postman完成测试 特殊数据类型和字符串自动转换应用实例-页面演示方式Postman完成测试 验证及国际化概述应用实例代码实现注意事项和使用细节 注解的结合使用先看一个问题解决问题 数据类型转换…

LearnOpenGL 及 ShaderToy 的 CMake 构建框架

文章目录 构建目标具体框架根目录src 目录app 目录import.cmake其他 CMake 函数 使用框架实际效果摄像机坐标变换使用 assimp 库加载模型shadertoy 测试 framebuffer 离屏渲染 其他 为了复习 OpenGL(主要是看到 shadertoy 上有好玩的着色器),…

C#开发-集合使用和技巧(六)特殊转换方法SelectMany的介绍和用法

介绍 SelectMany 方法在C#中用于将集合中的元素转换为其他类型的集合&#xff0c;并将这些集合扁平化为一个单一的序列。它是LINQ的一部分&#xff0c;允许你在一个序列上进行投影和过滤操作&#xff0c;然后将结果合并成一个序列。 方法定义 public static IEnumerable<…

城市行人感知新方法:基于音频的行人检测与预测

智慧城市的重要组成部分之一是部署传感器技术来监控和控制城市的各种服务和功能。城市使用各种传感器来评估城市服务的提供和获取方式&#xff0c;这有助于缓解瓶颈问题&#xff0c;并提前预警潜在的服务中断。了解城市服务需求的时间和空间变化有助于更好的资源利用、更公平的…

ionic 项目通过 android studio 打开报错 capacitor.settings.gradle 文件不存在

问题出现 原因分析 在程序相应的目录上面&#xff0c;没有找到对应的配置文件&#xff0c;但是这个文件不是我们自己生成的&#xff0c;而是通过 ionic 编译之后生成。 处理方案 先执行 ionic build&#xff0c;将 ionic 项目打包出来然后执行 npx cap sync 再使用 Android…