医疗图像处理2023年CVPR:Label-Free Liver Tumor Segmentation-无标签肝肿瘤分割

news2024/11/15 9:54:19

目录

一、摘要

二、介绍

三、相关工作

四、网络框架

1.位置选择

2.纹理处理

3.形状生成

4.后处理

5.参数设计

五、实验

1.数据集:

2.评价指标:

3.实现:

4.结果:

六、结论

一、摘要

通过在CT扫描中使用合成肿瘤(synthetic tumors),人工智能模型可以准确地分割肝脏肿瘤,而无需手动注释。优势:(I)形状和质地逼真,即使是医学专业人员也会将其与真实肿瘤混淆;(II) 有效地训练人工智能模型,该模型可以与在真实肿瘤上训练的模型类似地执行肝脏肿瘤分割。还没有任何现有的工作,仅使用合成肿瘤,达到与真实肿瘤相似甚至接近的性能。未来可以显著减少逐体素注释肿瘤的手动工作(这需要数年的时间才能创建)。此外,我们的合成肿瘤可以自动生成许多小(甚至微小)合成肿瘤的例子,并有可能提高检测小肝肿瘤的成功率,这对检测癌症的早期至关重要。除了丰富训练数据,我们的合成策略还使我们能够严格评估人工智能的稳健性。

二、介绍

训练模型需要大量的标注,而合成肿瘤能帮助我们建立新数据,但是,使用合成肿瘤训练的人工智能模型的表现明显不如使用真实肿瘤训练的模型。主要是有几个重要因素:形状、强度、大小、位置和纹理。所以我们手工制作了一种在腹部CT扫描中合成肝脏肿瘤的策略: (i)在不与容器碰撞的情况下定位,(ii)具有放大高斯噪声的纹理,(iii)由扭曲的椭球体生成的形状。

通过这样生成的图片即使是医学专业人员在视觉检查中也通常将其与真实肿瘤混淆。此外,在我们的合成肿瘤上训练的模型在分割真实肝脏肿瘤时获得了59.81%的骰子相似系数(DSC),而在真实肿瘤上训练过的人工智能获得了57.63%的DSC,这表明在训练人工智能模型时,合成肿瘤有可能被用作真实肿瘤的替代品。下面两个图片就是合成肿瘤图片让人来判断,很难判断成功。

迄今为止,没有任何先前的工作达到与在真实肿瘤上训练的模型相似(甚至接近)的性能,并且这些肿瘤不限于固定的有限大小训练集。我们的主要贡献是合成肿瘤发生器,有五个优点:

1.合成策略将医学知识嵌入到可执行程序中,通过放射科医生和计算机科学家的合作来生成真实的肿瘤。

2.整个训练阶段不需要注释成本,所得模型显著优于以前的无监督异常分割方法和肿瘤合成策略

3.人工合成肿瘤训练的人工智能模型在真实肿瘤分割中可以达到与真实肿瘤训练的人工智能模型相似的性能,并且可以推广到健康肝脏的CT扫描和其他医院的扫描

4.该合成策略可以生成各种肿瘤用于模型训练,包括小、中、大尺度的肿瘤,因此具有检测小肿瘤和促进肝癌早期检测的潜力

5.该合成策略允许直接操作肿瘤位置、大小、纹理、形状和强度等参数,为在分布外场景下评估AI模型提供了全面的测试平台

三、相关工作

无监督异常分割:一般无监督异常检测设置仅使用正常样本进行训练,没有任何异常数据,并且不提供图像级注释或像素级注释。

合成肿瘤:相关工作中手工制作的“假”肿瘤看起来与真实肿瘤有很大不同。因此,对合成肿瘤进行训练的人工智能算法可能在检测测试集中的合成肿瘤方面工作得很好,但无法识别实际的肿瘤。

从合成域到实域的泛化:评估模型在真实数据上的泛化能力,论文旨在证明我们的肿瘤生成器足够强大并且我们的模型在检测真实肿瘤方面具有突出的泛化能力。

四、网络框架

为了定位肝脏,我们首先将预先训练好的nnUNet1应用于CT扫描。有了肝脏的大致位置,然后我们开发了一系列形态图像处理操作来合成肝脏内的真实肿瘤。肿瘤生成包括四个步骤:(1)位置选择,(2)纹理生成,(3)形状生成,(4)后处理。

input:上面是CT图,下面的是肝脏掩模图;salt-noise:盐噪声产生;scaling:缩放比例;interpolation:插值;ellipse:椭圆生成;elastic deformation:弹性变形;edge blurring:边界模糊。

1.位置选择

为肿瘤选择一个合适的位置,因为肝肿瘤通常不允许任何血管(如肝静脉、门静脉和下腔静脉)通过它们,为了避开血管,我们首先通过体素阈值进行血管分割。分段的血管遮罩由以下公式给出:

其中f′(x,y,z)是平滑的CT扫描,f′(x, y, z) =f(x, y, z) ⊗ g(x, y, z; σa)。 通过将具有标准差σa的高斯滤波器g(x,y,z;σa)应用于原始CT扫描f(x,y,z);⊗是标准的图像滤波算子。

平滑可以有效地消除CT重建带来的噪声。阈值T被设置为略大于肝脏的平均Hounsfield单位(HU)的值。 l(x, y, z)为肝脏掩膜(背景=0,肝脏=1);⊙是逐点乘法,b是一个超参数。

v(x, y, z)就是血管掩膜,那么人们可以检测一个选定的位置是否有使肿瘤与血管碰撞的危险。

前提就是这个图有肿瘤,在提出一个随机位置(X, Y, Z)∈{X, Y, Z | l(X, Y, Z) = 1}后,我们通过判断肿瘤半径r范围内是否有血管来进行碰撞检测。若∃v(X, Y, Z) = 1,∀X∈[X−r,X r], Y∈[Y−r, Y r], Z∈[Z−r, Z r],则存在碰撞的风险,因此需要重新选择位置。这个过程迭代,直到找到一个没有碰撞的肿瘤位置(xt, yt, zt)。有了理想的肿瘤位置,我们就可以生成肿瘤的纹理和形状。

2.纹理处理

首先生成一个三维高斯噪声,预定义的平均HU强度µt和与肝实质(不含血管的肝脏区域)相同的标准差σp, T (x, y, z) ~ N(µt, σp)。由于随机高斯噪声作为肿瘤的纹理通常过于尖锐,我们通过在x, y, z方向上使用3阶的样条插值(三次插值)将纹理放大来软化纹理,放大后的纹理表示为T ' (x, y, z)。比例因子η∈[1,∞]决定了生成的纹理感觉有多粗糙。η = 1表示高斯纹理没有缩放,导致相邻体素之间的值波动较大。η越大,晶粒度越大,这可能与真实的肿瘤织构相似。最后,考虑到层析成像质量,我们使用高斯滤波器g(x, y, z;σb)。

其中σb为标准差。经过模糊处理后,纹理与真实成像产生的纹理相似。

3.形状生成

大多数肿瘤从中心开始生长并逐渐膨胀,使小肿瘤(即r < 20mm)接近球形。这促使我们用椭球体生成类似肿瘤的形状。从均匀分布U(0.75r, 1.25r)中随机抽取椭球x、y、z方向的半轴长度,并将生成的椭球掩模以(xt, yt, zt)为中心放置。

对于生成的椭球肿瘤掩膜t(x, y, z)(背景=0,肿瘤=1),其形状与扫描体积f(x, y, z)相同,采用由σe控制的弹性变形来丰富其多样性,更接近自然生长的肿瘤。

将变形后的肿瘤蒙版记为t' (x, y, z),为了使生成的肿瘤与周围肝实质之间的过渡更加自然,我们最后通过高斯滤波器g(x, y, z;σc)与标准差σc。模糊形状t′′(x, y, z) = t′(x, y, z) ⊗ g(x, y, z; σc).

4.后处理

第一步是将肿瘤放置在扫描体f(x, y, z)和相应的肝掩膜l(x, y, z)上, 假设肿瘤掩膜阵列t”(x, y, z)和纹理阵列T”(x, y, z)具有与f(x, y, z)和l(x, y, z)相同的形状,我们可以通过方程得到新的带有肿瘤的扫描体。

新扫描体对应的肿瘤(bg=0,肝脏=1,肿瘤=2)的新掩模,可以用l ' (x, y, z) = l(x, y, z) t ' (x, y, z)进行合成。然后放置肿瘤后再用两步,模拟质量效应和胶囊外观,让图更真。

①质量效应是指不断扩大的肿瘤将周围组织推开,本文选择局部缩放翘曲来实现质量效应。 局部缩放翘曲:它重新映射像素在一个圆更接近圆周。对于距离圆中心为γ的像素,重新映射的像素距离γ′为

γmax为膨胀圆面积的半径,I∈[0,100]为控制膨胀强度的超参数, 较大的I导致更强的翘曲。翘曲后分别命名为f”(x, y, z)和l”(x, y, z),后一个(肝脏/肿瘤分割标签)已经准备好进行后续训练。

②胶囊外观,通过亮化肿瘤边缘来模拟包膜的外观。 边缘面积可由:

其中lb和ub分别为从肿瘤掩膜中滤波边缘的下界和上界。然后我们增加模糊边缘区域的HU强度来模拟胶囊。

d为预先定义的肿瘤与其包膜之间的HU强度差。新的扫描体积f ''' (x, y, z)现在可以用于训练或图灵测试,这就是最后合成肿瘤图。

5.参数设计

五、实验

1.数据集:

肝脏肿瘤的详细逐体素注释在LiTS中有提供。肝脏肿瘤体积为38mm3 ~ 349 cm3,肿瘤半径为[2,44]mm。人工智能模型(例如U-Net)在101个带有肝脏和肝脏肿瘤注释的CT扫描上进行训练,并且从其他数据集中收集了116个健康肝脏CT扫描数据集。然后,我们在这些扫描中生成肿瘤,产生巨大的图像标签对合成肿瘤,用于训练人工智能模型,生成了五个级别的肿瘤大小用于模型训练。

2.评价指标:

采用DSC (Dice similarity coefficient)和NSD (Normalized Surface Dice, NSD公差为2mm)评价肿瘤分割效果;通过敏感性和特异性评价肿瘤检测性能。对于上述所有指标,计算95% ci,并使用小于0.05的p值截断值来定义统计显著性。

3.实现:

代码是基于MONAI2框架在U-Net和Swin UNETR上实现的,输入图像以[-21,189]的窗口范围进行裁剪,然后归一化使其均值为零,单位标准差为零。在训练过程中,从三维图像体中裁剪出96 × 96 × 96的随机斑块。所有模型训练4000次,基本学习率为0.0002。批处理大小为每个GPU两个。我们采用线性预热策略和余弦退火学习率计划。对于推理,我们通过将重叠面积比设置为0.75来使用滑动窗口策略。

4.结果:

使用来自胰腺CT、CHAOS和BTCV的116个CT扫描和我们的无标签肿瘤生成器,我们在LiTS基准上优于所有这些方法,而以前的方法使用101个CT扫描和来自LiTS的注释。

①使用视觉图灵测试进行临床验证:20张真30张假专业人员来看,就是上面的图人员看的结果

②与最先进方法的比较:只关注肝脏区域进行训练和测试,之前所有的无监督方法在分割真实肝脏肿瘤时都表现出次优的性能。

③推广到不同的模型和数据:使用Swin UNETR3验证了合成肿瘤的普遍性,从图4可以看出,在真实肿瘤上训练的模型性能略好于在合成肿瘤上训练的模型,但由于p值大于0.05,两者的结果没有统计学差异。还使用来自其他数据集(即msd -胰腺,msd -脾脏,msd -结肠)的数据评估了它们的领域泛化能力,其鲁棒性优于仅使用来自lit的真实数据进行训练的模型,并且同时在三个外部数据集上获得更高的特异性,因为它减少了接受侵入性诊断程序的患者数量和相关费用。

④小肿瘤检测的潜力:由于大多数患者在早期阶段仍然无症状,因此在实际数据集中很少有这样的病例。因此,先进的肿瘤发生器可以生成包含各种肿瘤大小的合成数据,用于训练和测试模型,解决真实数据中存在的大小不平衡问题,下图的下面板为按肿瘤大小分层的定量肿瘤检测性能,上面板为两例小肿瘤进行定性比较。大量合成小肿瘤的产生可以提高模型对真实小肿瘤的检测效率,从而对癌症的早期发现起到至关重要的作用。

⑤可控鲁棒性基准:医学影像学的标准评价仅限于确定人工智能在检测肿瘤方面的有效性。这是因为现有测试数据集中标注的肿瘤数量不够大,不足以代表真实器官中发生的肿瘤,特别是只包含有限数量的非常小的肿瘤。而合成肿瘤可以作为一个可访问的和全面的来源,用于严格评估人工智能在各种不同大小和位置的器官中检测肿瘤的性能,帮助微调人工智能算法。

⑥形状生成的消融研究:为了显示肿瘤生成中每个步骤的重要性,我们设计了聚焦于形状生成和小肿瘤合成的消融研究,从全肿瘤分割和小肿瘤检测两个方面对不同综合策略不完全设置训练的模型进行了评价。

六、结论

本文研究了一种有效的合成肝脏肿瘤的策略。在零人工注释的情况下,我们验证了在合成肿瘤上训练的人工智能模型的表现与在LiTS数据集中(花了几个月的时间创建)训练的真实肿瘤相似。这揭示了利用合成肿瘤在更大规模的健康CT数据集(比肝脏肿瘤CT扫描更容易获得)上训练人工智能模型的巨大潜力。此外,合成肿瘤使我们能够评估人工智能在CT扫描中检测不同位置、大小、形状、强度、纹理和分期的肿瘤的能力。在未来,我们将考虑生成对抗网络(GANs),扩散模型,并可能使用3D几何模型如NeRF进行改进,以生成更好的肿瘤纹理。

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

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

相关文章

秋招算法刷题10(栈和队列)

0509 232.用栈实现队列 class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack new ArrayDeque<Integer>();outStack new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop…

【计算机网络】计算机网络概述、计算机网络性能指标 习题1

0 1. 计算机网络可被理解为( )。 A.执行计算机数据处理的软件模块 B. 由自治的计算机互连起来的集合体 C.多个处理器通过共享内存实现的紧耦合系统 D. 用于共同完成一项任务的分布式系统 0 2.计算机网络最基本的功能是( )。 A.数据通信 B. 资源共享 C. 分布式处理 D. 信息综合…

关于一致性,你该知道的事儿(上)

关于一致性&#xff0c;你该知道的事儿&#xff08;上&#xff09; 前言一、缓存一致性二、内存模型一致性三、事务一致性四、分布式事务一致性4.1 分布式系统的一些挑战4.2 关于副本的一些概念4.3 分布式事务之共识问题4. 3.1 PC(two-phase commit, 2PC)4.3.2 Raft 三、后记参…

[240512] x-cmd 发布 v0.3.6: (se,wkp,ddgo...)x( kimi,gemini,gpt...)

目录 x-cmd 发布 v0.3.6新增了 jina 模块新增了 ddgo 模块新增了 se 模块wkp 模块新增了 writer 模块cosmo 模块 x-cmd 发布 v0.3.6 本次版本的最新引入的功能都是目的为了进一步探索 LLM 的使用。 本版本的改进分为两类&#xff1a;资讯类模块&#xff08;Wikipedia&#xf…

现代制造之Solidworks三维建模篇

现代制造 有现代技术支撑的制造业&#xff0c;即无论是制造还是服务行业&#xff0c;添了现代两个字不过是因为有了现代科学技术的支撑&#xff0c;如发达的通信方式&#xff0c;不断发展的互联网&#xff0c;信息化程度加强了&#xff0c;因此可以为这两个行业增加了不少优势…

【matlab基础知识代码】(十八)无约束最优化问题

min下面的x称为优化向量或者是决策变量 匿名函数法 >> f(x)(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2)); x0[0; 0]; [x,b,c,d]fminsearch(f,x0), x 0.6111 -0.3056 b -0.6414 c 1 d 包含以下字段的 struct: iterations: 72 funcCount: 137 algor…

【JavaEE 初阶(五)】文件操作和IO

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多文件操作 目录 1.前言2.认识文件3.文件操作3.1File 属性3.2构造方法3.3File类方法 4.文件内容操作4.1R…

python内置类memoryview()详解

memoryview() Python 的一个内置class&#xff0c;可直接使用。它返回给定参数的“内存视图”对象。内存视图对象是一个对支持缓冲区协议&#xff08;如 bytes 或 bytearray&#xff09;的数据的“窗口”或“视图”&#xff0c;它允许你在不复制数据的情况下操作内存中的数据。…

【机器学习】 技术栈和开发环境搭建

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 博客目录 技术栈编程语言库框架编辑器项目IDE …

数据分析需要注意哪些法律法规

数据分析 前言一、数据处理过程二、数据收集阶段的法律规则数据收集应具备合法、正当、透明原则数据收集应坚持最小必要原则数据收集应遵守知情-同意规则数据收集应遵守目的明确性要求 三、数据储存的法律规则四、数据使用与处理的阶段的法律规则数据安全保护义务按照数据分级分…

Linux:文件IO

Linux&#xff1a;文件IO C语言 文件IOfopen Linux 文件IOopen接口close接口write接口read接口 内存文件管理struct filestruct files_struct文件描述符 fd 缓冲区 C语言 文件IO 在正式讲解Linux中是如何对文件进行IO前&#xff0c;我们先简单回顾以下C语言中&#xff0c;是如…

【牛客】SQL206 获取每个部门中当前员工薪水最高的相关信息

1、描述 有一个员工表dept_emp简况如下&#xff1a; 有一个薪水表salaries简况如下&#xff1a; 获取每个部门中当前员工薪水最高的相关信息&#xff0c;给出dept_no, emp_no以及其对应的salary&#xff0c;按照部门编号dept_no升序排列&#xff0c;以上例子输出如下: 2、题目…

项目1:STM32+DHT11+FreeRTOS+emwin+LCD

第一部分&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;************ 【屏幕显示DHT11数据】 面向对象的思想编写硬件驱动程序&#xff0c;DHT11采集环境中的温湿度数据。使用FreeRTOS提供的任务间通信、同步、互斥&#xff0c;将DHT…

【Linux】AlmaLinux 9.4版本发布

AlmaLinux 9.4 正式版发布&#xff0c;该版本基于 Redhat Enterprise 9.4&#xff0c;内核版本号&#xff1a; 5.14.0-427.13.1.el9_4.x86_64 相对于Rocky Linux&#xff0c; AlmaLinux更加的稳定&#xff0c;生产环境建议使用AlmaLinux来替代CentOS 7.x AlmaLinux 9.4版本系统…

MIPI DPHY HS传输模式SoT和EoT的传输值

目录 1. 高速传输模式的传输序列 2. SoT传输序列 3. EoT传输序列 1. 高速传输模式的传输序列 Mipi DPHY的高速数据传输&#xff08;HST&#xff1a;High Speed Transmission&#xff09;以突发&#xff08;Burst&#xff09;方式发生。 为了帮助接收机同步&#xff1a; (1) …

Python-VBA函数之旅-str函数

目录 一、str函数的常见应用场景 二、str函数使用注意事项 三、如何用好str函数&#xff1f; 1、str函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、str函数的常…

Redis-配置文件详解

Redis配置文件详解 units单位 配置大小单位&#xff0c;开头定义基本度量单位&#xff0c;只支持bytes&#xff0c;大小写不敏感。 INCLUDES Redis只有一个配置文件&#xff0c;如果多个人进行开发维护&#xff0c;那么就需要多个这样的配置文件&#xff0c;这时候多个配置 文…

指针(5)加油吧

指针&#xff08;5&#xff09; 拿冒泡排序来举例&#xff1a; 1 .qsort void qsort (void* base,//base指向待排序数组的首元素的指针size_t num,//base指向数组中元素的个数size_t size,//base指向的数组中的一个元素的大小&#xff0c;单位是字节int(*cmp)(const void*,co…

前端工程化,前端监控,工作流,部署,性能

开发规范 创建项目的时候&#xff0c;配置下 ESlint&#xff0c;stylelint&#xff0c; prettier&#xff0c; commitlint 等; ESLint 主要功能&#xff1a; ESLint 是一个静态代码检查工具&#xff0c;用于在 JavaScript 代码中识别和报告模式。它的目标是提供一个插件化的 …

LeetCode 138. 随机链表的复制

目录 1.原题链接&#xff1a; 2.结点拆分&#xff1a; 代码实现&#xff1a; 3.提交结果&#xff1a; 4.读书分享&#xff1a; 1.原题链接&#xff1a; 138. 随机链表的复制 2.结点拆分&#xff1a; ①.拷贝各个结点&#xff0c;连接在原结点后面&#xff1b; ②.处…