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

CTA-GAN:基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 CT到增强CT的合成技术

Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries

  • 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影
    • 背景
    • 贡献
    • 实验
    • 方法
    • 损失函数
    • Thinking

基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影

https://github.com/ying-fu/CTA-GAN
Radiology 2023

背景

碘造影剂(ICAs)广泛用于CT血管造影术(CTA),可能会对人体产生不良影响,而且使用耗时且成本高昂。研究用平扫CT合成造影剂CT并评价生成的效果很有意义。CTA——Syn-CTA

  • 难点:传统的深度学习模型不能充分解决成对未对准图像的映射翻译问题。此外,先前的医学图像翻译研究集中在单个解剖位置,而临床诊断经常在多个位置进行(14,15)。

贡献

  • 本文:开发一种基于生成对抗性网络(GAN)的CTA成像模型(16-21),以合成独立于ICAs的高质量CTA样图像,并评估使用这些合成CTA(Syn-CTA)图像辅助临床诊断的可行性。使用内部和外部测试数据从定量指标视觉质量和血管疾病诊断准确性方面评估Syn-CTA图像

实验

  • 数据集:收集了17-22年颈部和腹部的成对的CT和CTA图像,1749名患者,1137训练,400验证,212测试,外部验证42名。
  • 数据处理:每个NCCT和CTA扫描被重采样到0.67x0.67x1.25的体积中,由75-490各切片组成,512x512分辨率,CTA造影剂浓度370mg/ml,注射速率4.5ml/s,将-2000-2095的像素值标准化到-1-1,排除手动检查后图像质量较差的扫描。
  • Patient Characteristics(患者特征),在1833名符合条件的患者中,84名图像质量较差的患者被排除在外,1749名患者(中位年龄,60岁[IQR,50-68岁];1057名[60.4%]男性患者和692名[39.6%]女性患者)被纳入分析。1137名患者的CT扫描用于模型训练;来自400名患者的扫描用于模型开发验证;212名患者的扫描用于模型测试(图1)。外部独立验证集包括42名患者(中位年龄67岁[IQR,59–74岁];37名[88.1%]男性患者和5名[11.9%]女性患者)。
  • 评估方法:Quantitative Evaluation(定量评价),正态平均绝对误差(NMAE)、峰值信噪比(PSNR)、结构相似性指数测量(SSIM
  • Visual Quality Evaluation(视觉质量评估),具有10年经验的专家,独立评估了CTA和Syn-CTA图像的图像质量。任何分歧都通过协商一致的方式解决。放射科医生使用主观三点量表(视觉质量评分)(25,26)评估Syn-CTA和真实CTA扫描的图像质量1、质量差;2、质量合格;3、质量好;具体而言,图像质量评估包括血管壁清晰度、管腔边缘清晰度和管腔壁对比度(附录S1,图S1)。
  • Diagnostic Evaluation(诊断评估),对每次扫描的Syn-CTA图像和真实CTA图像进行匿名化,然后将其随机并按序列号呈现给进行独立阅读视觉质量评估的同两名放射科医生。基于每次扫描的血管诊断(动脉瘤、夹层、动脉粥样硬化或健康动脉)由两名放射科医生确定。通过一致阅读解决任何诊断分歧(附录S1)。从真实的CTA图像中读取的血管诊断被视为基本事实。
    在这里插入图片描述
    人工评价:Syn-CTA测试集中的高质量分数(分数=3)的比率均大于90%,高质量分数的总体比率为95%
    在这里插入图片描述
    在这里插入图片描述

方法

在这里插入图片描述
在这里插入图片描述
论文中对方法描述不多,以下是从源代码中简化的训练步骤伪代码

# real_A2是CT,real_B2是Syn_CTA,
# NetG_A2B是生成器,R_A是校准器,spatial_transform是进行采样的一个配准场不是模型,
# netD_B是判别器,target_real = Variable(Tensor(1,1).fill_(1.0), requires_grad=False),
# target_fake = Variable(Tensor(1,1).fill_(0.0), requires_grad=Falseoptimizer_R_A.zero_grad()
optimizer_G.zero_grad()								# 只更新生成器和校准器
fake_B = netG_A2B(real_A2)  						# CT生成的Syn_CTA,fake_B
Trans = R_A(fake_B, real_B2)						# fake_B和real_B校准得到Trans
SysRegist_A2B = spatial_transform(fake_B, Trans)	# fake_B和Trans,配准得到,SysRegist_A2B
pred_fake0 = netD_B(fake_B)							# fake_B输入到判别器得到pred_fake0SM_loss = smoothing_loss(Trans)
SR_loss = L1_loss(SysRegist_A2B, real_B2)			# 配准后的生成图和real_B要长得像
adv_loss = MSE_loss(pred_fake0, target_real)  		# 对抗,fake_B的pred_fake0和1的MSElossloss = SM_loss + SR_loss + adv_loss					# 总损失
loss.backward()										# 梯度回传
optimizer_R_A.step()								# 更新R_A和G
optimizer_G.step()optimizer_D_B.zero_grad()							# 只更新判别器
with torch.no_grad():fake_B = netG_A2B(real_A2)  					# 生成器不更新权重
pred_fake0 = netD_B(fake_B)							# 再算一次pred_fake0
real_BB2 = copy.deepcopy(real_B2)			
pred_real = netD_B(real_BB2)						# 判别real_B得到pred_real
loss_D_B = MSE_loss(pred_fake0, target_fake) 		# 对抗,pred_fake0和0,pred_real和1+ MSE_loss(pred_real, target_real)	
loss_D_B.backward()
optimizer_D_B.step()								# 更新判别器

损失函数

配准后的图像和源图像的L1 loss,对抗loss

Thinking

输入是未配准的成对CT-SynCTA影像,先用CT影像生成SynCTA影像,再对SynCTA影像进行配准,再通过判别器,判别生成的影像和原始SynCTA影像。最终合成配准了的SynCTA影像。

相关文章:

CTA-GAN:基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 CT到增强CT的合成技术

Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影背景贡献实验方法损失函数Thinking 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 https://github.com/ying-f…...

电源控制系统架构(PCSA)之电源管理基础设施组件

目录 6.5 电源管理基础设施组件 6.5.1 电源策略单元 6.5.2 时钟控制器 6.5.3 低功耗Distributor 6.5.4 低功耗Combiner 6.5.5 P-Channel到Q-Channel转换器 6.5 电源管理基础设施组件 6.5.1 电源策略单元 本节介绍电源策略单元(Power Policy Unit, PPU)。PPU的完整细节见…...

影刀RPA_boss直聘翻页(避坑)

boss直聘翻页这里有个坑 问题: 无限循环中,点击下一页按钮,直到不可点击为止。 发现,在点到第5页的时候,再次点击下一页,直接就点击了页码10,导致流程直接就结束了。 在第5页进行校验&#xff0…...

第十四章 控制值的转换 - 在DISPLAYLIST中投影值

文章目录 第十四章 控制值的转换 - 在DISPLAYLIST中投影值在DISPLAYLIST中投影值 第十四章 控制值的转换 - 在DISPLAYLIST中投影值 在DISPLAYLIST中投影值 对于 %String 类型(或任何子类)的属性,XML 投影可以使用 DISPLAYLIST 参数。 简单…...

C++类与对象(5)—流运算符重载、const、取地址

目录 一、流输出 1、实现单个输出 2、实现连续输出 二、流输入 总结: 三、const修饰 四、取地址 .取地址及const取地址操作符重载 五、[ ]运算符重载 一、流输出 1、实现单个输出 创建一个日期类。 class Date { public:Date(int year 1, int month 1,…...

Vue框架学习笔记——事件修饰符

文章目录 前文提要事件修饰符prevent(常用)stop(不常用)事件冒泡stop使用方法三层嵌套下的stop三层嵌套看出的stop: once(常用)capture(不常用)self(不常用&a…...

嵌入式虚拟机原理

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…...

AMESim|Make failed:Unable to create an excutable for the system

最近在AMESIM与MATLAB进行联合仿真的时候遇到如下问题: Make failed:Unable to create an excutable for the system. 看了网上的解决办法如下 配置环境变量重装AMESIM,有顺序要求,首先是VS,然后是AMESIM与MATLAB。在AMESIM安装…...

OpenHarmony之NAPI框架介绍

张志成 诚迈科技高级技术专家 NAPI是什么 NAPI的概念源自Nodejs,为了实现javascript脚本与C库之间的相互调用,Nodejs对V8引擎的api做了一层封装,称为NAPI。可以在Nodejs官网(https://nodejs.org/dist/latest-v20.x/docs/api/n-api…...

计算机网络之网络层

一、概述 主要任务是实现网络互连,进而实现数据包在各网络之间的传输 1.1网络引入的目的 从7层结构上看,网络层下是数据链路层 从4层结构上看,网络层下面是网络接口层 至少我们看到的网络层下面是以太网 以太网解决了什么问题? 答…...

【C指针(五)】6种转移表实现整合longjmp()/setjmp()函数和qsort函数详解分析模拟实现

🌈write in front :🔍个人主页 : 啊森要自信的主页 ✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&am…...

浅谈电力设备智能无线温度检测系统

安科瑞 华楠 摘要:在长期工作中,由于设备基础变化、温湿度变化、严重超负荷运行、触点氧化等原因造成的电力设备压接不紧,触头接触部分发生改变。终导致接触电阻增大,造成巨大的风险隐患。本系统将通过无线测温的方式&#xff0c…...

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二)

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二) mp4媒体流数据 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchroniz…...

LeetCode [简单] 283. 移动零

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 283. 移动零 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 快慢指针&…...

深信服实验学习笔记——nmap常用命令

文章目录 1. 主机存活探测2. 常见端口扫描、服务版本探测、服务器版本识别3. 全端口&#xff08;TCP/UDP&#xff09;扫描4. 最详细的端口扫描5. 三种TCP扫描方式 1. 主机存活探测 nmap -sP <靶机IP>-sP代表 2. 常见端口扫描、服务版本探测、服务器版本识别 推荐加上-v参…...

面试:Kubernetes相关问题

文章目录 Kubernetes的工作流程可以分为以下几个步骤&#xff1a;简述Kubernetes中的Deployment、StatefulSet、DaemonSet的区别在Kubernetes中&#xff0c;如何进行存储管理在Kubernetes中&#xff0c;如何实现滚动升级和回滚在Kubernetes中&#xff0c;如何进行日志和监控的管…...

Go 本地搭建playground

搭建go playground 的步骤 1、安装docker 如果你使用的Ubuntu&#xff0c;docker的安装步骤可以参见这里&#xff0c;这是我之前写的在Ubuntu18.04下安装fabric&#xff0c;其中有docker的安装步骤&#xff0c;这里就不再赘述了。 CentOS下安装docker的&#xff0c;可以参见…...

Mybatis-plus常见标签

1.< 代表小于号&#xff08;<&#xff09;2.> 代表大于号&#xff08;>&#xff09;3.&le; 代表小于或等于符号&#xff08;≤&#xff09;4.&ge; 代表大于或等于符号&#xff08;≥&#xff09;5.< 代表<6.> 代表>7.ne; 代表不等于 <>8…...

一致性 Hash 算法 Hash 环发生偏移怎么解决

本篇是对文章《一文彻底读懂一致性哈希算法》的重写&#xff0c;图文并茂&#xff0c;篇幅较长&#xff0c;欢迎阅读完提供宝贵的建议&#xff0c;一起提升文章质量。如果感觉不错不要忘记点赞、关注、转发哦。原文链接&#xff1a; 《一文彻底读懂一致性Hash 算法》 通过阅读本…...

Javaweb之Vue组件库Element的详细解析

4 Vue组件库Element 4.1 Element介绍 不知道同学们还否记得我们之前讲解的前端开发模式MVVM&#xff0c;我们之前学习的vue是侧重于VM开发的&#xff0c;主要用于数据绑定到视图的&#xff0c;那么接下来我们学习的ElementUI就是一款侧重于V开发的前端框架&#xff0c;主要用…...

罗技PUBG鼠标宏技术解析:5分钟掌握智能压枪核心原理

罗技PUBG鼠标宏技术解析&#xff1a;5分钟掌握智能压枪核心原理 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 绝地求生&#xff08;PUBG&#…...

软件可持续性的长期演进与维护

软件可持续性的长期演进与维护 在数字化时代&#xff0c;软件已成为社会运转的核心基础设施。许多软件系统在初期开发后因缺乏持续维护而逐渐失效&#xff0c;甚至成为技术债务的负担。软件可持续性强调通过长期演进与维护&#xff0c;确保软件在功能、性能和安全上持续适应变…...

从MOS管到量子平台:一个硬件工程师的量子霍尔效应实验复现手记

从MOS管到量子平台&#xff1a;一个硬件工程师的量子霍尔效应实验复现手记 当我在实验室第一次观察到那条完美的量子化平台曲线时&#xff0c;显示屏上的数据点仿佛在嘲笑我过去三个月里烧坏的十二个MOS管。作为习惯了处理毫伏级信号的硬件工程师&#xff0c;要捕捉到这种只在…...

三步掌握Textractor:让外语游戏对话不再困扰你

三步掌握Textractor&#xff1a;让外语游戏对话不再困扰你 【免费下载链接】Textractor Extracts text from video games and visual novels. Highly extensible. 项目地址: https://gitcode.com/gh_mirrors/te/Textractor 还在为外语游戏中的对话看不懂而烦恼吗&#x…...

Next.js 16 + Shadcn UI:构建企业级仪表盘的全新架构方案

Next.js 16 Shadcn UI&#xff1a;构建企业级仪表盘的全新架构方案 【免费下载链接】next-shadcn-dashboard-starter Open source admin dashboard starter built with Next.js 16, shadcn/ui, Tailwind CSS, and TypeScript. 项目地址: https://gitcode.com/gh_mirrors/ne/…...

浏览器界面革命:垂直标签如何重塑现代网页浏览体验

浏览器界面革命&#xff1a;垂直标签如何重塑现代网页浏览体验 【免费下载链接】vertical-tabs-chrome-extension A chrome extension that presents your tabs vertically. Problem solved. 项目地址: https://gitcode.com/gh_mirrors/ve/vertical-tabs-chrome-extension …...

Windows无线音频传输终极指南:用Scream虚拟声卡实现多设备音频共享

Windows无线音频传输终极指南&#xff1a;用Scream虚拟声卡实现多设备音频共享 【免费下载链接】scream Virtual network sound card for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/sc/scream 还在为电脑音频无法无线传输而烦恼吗&#xff1f;想要把…...

Gazebo仿真中,UR5机械臂用Grasp_fix插件抓取物体总失败?试试这3个参数调优技巧

Gazebo仿真中UR5机械臂Grasp_fix插件抓取失败的深度调优指南 当你在Gazebo中配置好UR5机械臂和Grasp_fix插件后&#xff0c;发现机械爪要么无法识别物体&#xff0c;要么抓取后莫名其妙掉落——这种挫败感我太熟悉了。经过数十次实验和参数调整&#xff0c;我发现90%的抓取失败…...

高效PCB逆向分析:OpenBoardView专业电路板查看器深度实战指南

高效PCB逆向分析&#xff1a;OpenBoardView专业电路板查看器深度实战指南 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 面对复杂的电路板设计文件&#xff0c;你是否曾因无法直接查看.brd文件而束手无策…...

如何快速上手F3D三维查看器:面向初学者的完整指南

如何快速上手F3D三维查看器&#xff1a;面向初学者的完整指南 【免费下载链接】f3d Fast and minimalist 3D viewer. 项目地址: https://gitcode.com/GitHub_Trending/f3/f3d F3D三维查看器是一款快速、简约且功能强大的开源3D模型预览工具&#xff0c;专为设计师、开发…...