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

目录

一、摘要

二、介绍

三、相关工作

四、网络框架

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.rhkb.cn/news/322465.html

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

相关文章

Mybatis Plus二级缓存 使用@CacheNamespace 失效@CacheNamespace和@CacheNamespaceRef

1、注解 CacheNamespace(flushInterval 100000,eviction LruCache.class,readWrite false,size 1024)2、xml配置 <cache eviction "LRU" flushInterval "100000" readOnly "true" size "1024"/> 二级缓存&#xff0c;配置文…

vue快速入门(五十)重定向

注释很详细&#xff0c;直接上代码 上一篇 本篇建立在之前篇目前提下针对重定向进行演示 新增内容 路由重定向写法 源码 src/router/index.js //导入所需模块 import Vue from "vue"; import VueRouter from "vue-router"; import myMusic from "/v…

【C++】环境搭建CentOS Clion报错Unsupported git Version 1.8.3.1

【C】环境搭建Clion-Unsupported git Version 1.8.3.1 Git升级步骤1.卸载旧版本2.安装依赖3.下载git最新版本包4.解压git文件包5.编译文件5.将git加入环境变量6.验证git版本 如上图所示&#xff0c;报错Unsupported git Version 1.8.3.1 At least 2.17.0 is required 报错意思…

Pytorch常用的函数(九)torch.gather()用法

Pytorch常用的函数(九)torch.gather()用法 torch.gather() 就是在指定维度上收集value。 torch.gather() 的必填也是最常用的参数有三个&#xff0c;下面引用官方解释&#xff1a; input (Tensor) – the source tensordim (int) – the axis along which to indexindex (Lo…

Tomcat端口占用解决方案

Windows操作系统 出现这种情况&#xff1a; Error was Port already in use :40001&#xff1b;nested exception is :java.net.BindException: Address already in use : JVM_Bind; 步骤1&#xff1a;按下winR键&#xff0c;输入cmd 步骤2&#xff1a;输入以下命令 netstat …

基于MPPT最大功率跟踪和SVPWM的光伏三相并网逆变器simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于MPPT最大功率跟踪和SVPWM的光伏三相并网逆变器simulink建模与仿真。包括PV模块&#xff0c;MPPT模块&#xff0c;SVPWM模块&#xff0c;电网模块等。 2.系统仿真结果 1不…

92、动态规划-最小路径和

思路&#xff1a; 还是一样&#xff0c;先使用递归来接&#xff0c;无非是向右和向下&#xff0c;然后得到两种方式进行比较&#xff0c;代码如下&#xff1a; public int minPathSum(int[][] grid) {return calculate(grid, 0, 0);}private int calculate(int[][] grid, int …

吴恩达机器学习笔记:第 9 周-16推荐系统(Recommender Systems) 16.5-16.6

目录 第 9 周 16、 推荐系统(Recommender Systems)16.5 向量化&#xff1a;低秩矩阵分解16.6 推行工作上的细节&#xff1a;均值归一化 第 9 周 16、 推荐系统(Recommender Systems) 16.5 向量化&#xff1a;低秩矩阵分解 在上几节视频中&#xff0c;我们谈到了协同过滤算法&…

如何使用client-go构建pod web shell

代码示例及原理 原理是利用websocket协议实现对pod的exec登录&#xff0c;利用client-go构造与远程apiserver的长连接&#xff0c;将对pod容器的输入和pod容器的输出重定向到我们的io方法中&#xff0c;从而实现浏览器端的虚拟终端的效果消息体结构如下 type Connection stru…

路由策略与路由控制

1.路由控制工具 匹配工具1&#xff1a;访问控制列表 &#xff08;1&#xff09;通配符 当进行IP地址匹配的时候&#xff0c;后面会跟着32位掩码位&#xff0c;这32位称为通配符。 通配符&#xff0c;也是点分十进制格式&#xff0c;换算成二进制后&#xff0c;“0”表示“匹配…

element-ui table sortable排序 掉后端接口方式

实例: 官方解释:如果需要后端排序&#xff0c;需将sortable设置为custom&#xff0c;同时在 Table 上监听sort-change事件&#xff0c;在事件回调中可以获取当前排序的字段名和排序顺序&#xff0c;从而向接口请求排序后的表格数据。 1.table上要加 sort-change"sortCha…

15_Scala面向对象编程_访问权限

文章目录 Scala访问权限1.同类中访问2.同包不同类访问3.不同包访问4.子类权限小结 Scala访问权限 知识点概念 private --同类访问private[包名] --包私有&#xff1b; 同类同包下访问protected --同类&#xff0c;或子类 //同包不能访问(default)(public)默认public --公…

Python | Leetcode Python题解之第78题子集

题目&#xff1a; 题解&#xff1a; class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:self.res []self.backtrack([], 0, nums)return self.resdef backtrack(self, sol, index, nums):self.res.append(sol)for i in range(index, len(nums)):self…

物联网实战--平台篇之(四)账户后台交互

目录 一、交互逻辑 二、请求验证码 三、帐号注册 四、帐号/验证码登录 五、重置密码 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240124016/category_12631…

P9422 [蓝桥杯 2023 国 B] 合并数列

P9422 [蓝桥杯 2023 国 B] 合并数列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 用队列即可 当两个队列队首&#xff1a;a b &#xff0c;弹出 当a < b&#xff0c;把a加给其后一个元素&#xff0c;弹出a 当b < a&#xff0c;把b加给其后一个元素&#xff0c;弹出…

git 配置相关

问题一&#xff1a;ssh-keygen -t ed25519 -C "Gitee SSH Key" 这个命令中的 ed25519 字符是什么意思&#xff1f; ssh-keygen 是一个用于生成SSH密钥的工具&#xff0c;SSH&#xff08;Secure Shell&#xff09;是一种网络协议&#xff0c;用于加密方式远程登录和其…

Docker使用进阶篇

文章目录 1 前言2 使用Docker安装常用镜像示例2.1 Docker安装RabbitMQ2.2 Docker安装Nacos2.3 Docker安装xxl-job&#xff08;推荐该方式构建&#xff09;2.4 Docker安装redis2.5 Docker安装mysql 3 Docker自定义镜像3.1 Dockerfile的基本结构3.2 Dockerfile指令3.3 自定义JDK镜…

免费思维13招之三:赠品型思维

免费思维13招之三:赠品型思维 这节来学习一下免费模式中的三个子思维——赠品型思维、主副型思维和分级型思维。这三个思维有一个共同的名字又叫——产品型思维。 什么是产品型思维?顾名思义,就是在产品上的商业思维。也就是说,通过某一产品的免费来吸引客户,而后进行其…

redis--安装

简介 官网&#xff1a;RedisInsight - The Best Redis GUI 各个版本官网下载地址&#xff1a;http://download.redis.io/releases/ Redis和Memcached是非关系型数据库也称为NoSQL数据库&#xff0c;MySQL、Mariadb、SQL Server、PostgreSQL Oracle 数据库属于关系型数据 应用…

You don’t have permission.

The document “XXX” could not be saved. You don’t have permission. 1.查看修改了iOS系统库导致的, 根据提示, 进入到"XXX"文件中, 然后commandz回退/取消 2. Xcode 调试遇到的报错&#xff08;持续更新&#xff09;