5.23.2 深度学习提高乳房 X 光检查中乳腺癌的检测率

开发了一种深度学习算法,该算法可以使用“端到端”训练方法在筛查乳房 X 光检查中准确检测出乳腺癌,该方法有效地利用了具有完整临床注释或仅具有整个图像的癌症 标签 的训练数据集。

在这种方法中,仅在初始训练阶段才需要病变注释,后续阶段只需要图像级标签,从而消除了对很少可用的病变注释的依赖。与以前的方法相比,我们用于对筛查乳房 X 光检查进行分类的全卷积网络方法获得了出色的性能。


作为图像分类任务,通过筛查性乳房X光检查检测亚临床乳腺癌具有挑战性,因为肿瘤本身仅占据整个乳房图像的一小部分。例如,全视野数字乳房 X 线摄影 (FFDM) 图像通常为 4000×3000 像素,而潜在癌性感兴趣区域 (ROI) 可能小至 100×100 像素。

因此,许多研究将其重点限制在注释病变的分类上。尽管对手动注释的 ROI 进行分类是重要的第一步,但全自动软件系统必须能够对整个乳房 X 线照片进行操作,以提供已知病变之外的附加信息并增强临床解释。如果 ROI 注释在乳房 X 线摄影数据库中广泛使用,那么可以轻松应用已建立的对象检测和分类方法,例如基于区域的卷积神经网络 (R-CNN)及其变体。然而,需要 ROI 注释的方法通常无法转移到缺乏 ROI 注释的大型乳腺 X 线摄影数据库。事实上,很少有公共乳房X线摄影数据库有完整的注释。

众所周知,深度学习需要大量的训练数据集才能最有效。因此,必须利用少数完全注释的数据集以及仅标记每张图像的癌症状态的较大数据集来提高乳腺癌分类算法的准确性。

当理想的大型且完整的训练数据集不可用时,预训练是解决训练分类器问题的一种很有前景的方法。使用逐层预训练来初始化具有三个隐藏层的深度信念网络(DBN)的权重参数,然后对其进行微调以进行分类。预训练提高了训练速度以及手写数字识别的准确性。另一种流行的训练方法是首先在大型数据库(例如 ImageNet32)上训练深度学习模型,然后针对其他任务微调模型。模型的权重参数已经初始化,用于识别边缘、角点和纹理等原始特征,这些特征可以轻松用于不同的任务。

使用带有 ROI 信息的完全注释数据集来预先训练用于分类局部图像块的模型。然后使用补丁分类器的权重参数来初始化整个图像分类器的权重参数,可以使用没有 ROI 注释的数据集进一步微调。

我们使用一个包含数千张图像的大型公共数字化胶片乳房X线摄影数据库来开发补丁和整个图像分类器,然后将整个图像分类器转移到一个包含数百张图像的较小的公共FFDM数据库。

1. 方法

1.1 将分类器从识别补丁转换为识别整个图像

为了对大型复杂图像执行分类或分割,一种常见的策略涉及使用滑动窗口方式的分类器来识别图像上的局部补丁,以生成概率输出网格。接下来是另一个过程,总结补丁分类器的输出,以给出最终的分类或分割结果。

假设有一个输入补丁X\in\mathrm{IR}^{\mathbf{p}\times\mathbf{q}}和一个补丁分类器:函数f,且函数f(X)\in\mathrm{IR}^{c},其中函数的输出满足f(X)_{i}\in[0,1] 以及 \Sigma_{i=1}^{c}f(X)_{i}=1c是补丁的类别数。

c=5,则类别是:良性钙化、恶性钙化、良性肿块、恶性肿块以及来自乳房X光照片的每个补丁的背景。假设输入块是从图像 M\in\mathrm{IR}^{\mathrm{r}\times\mathrm{s}} 中提取的,其中 p\ll r\mathrm{~and~}q\ll s。如果函数 f 表示卷积神经网络 (CNN),则可以在不改变网络参数的情况下将 f 应用于 M,f(M)\in\mathrm{IR^{u\times v\times c}},其中 u>1 和 v>1 取决于图像大小以及补丁分类器的步幅。

因为 CNN 的权重共享和局部性属性。如果函数 f 代表不同类别的神经网络,例如多层感知器 (MLP),那么这将变得不可行,因为 MLP 需要固定输入。因此,将输入从 X 更改为 M 后,我们得到了 c 个类别的概率输出的 u\times v  网格(称为“热图”),而不是 c 个类别的单个输出。热图的大小为 u\times v\times c 。然后可以在热图之上添加更多层来转换输出并与图像的最终分类输出连接。在补丁分类器的输出之上添加一个卷积层,将整个补丁分类器变成一个过滤器,并扩大其感受野。

顶层有效地使用补丁分类器来“扫描”整个图像,寻找癌性病变的线索并提取最终可用于整个图像分类的更高级别的特征。使用函数 g 表示顶层,整个图像分类函数可以写为 

h(M)=g(f(M))\in\mathrm{IR}^{\mathrm{d}}

其中 d 是整个图像的类别数。通常,d=2 代表我们想要预测的两类:恶性和非恶性(良性或正常)。

函数 h 接受整个图像作为输入并在整个图像级别生成标签。因此,它是端到端可训练的,与两步方法相比具有两个优点。首先,整个网络可以联合训练,避免每一步都出现次优解;其次,训练后的网络可以转移到另一个数据集,而无需明确依赖 ROI 注释。

具有 ROI 注释的大型乳房 X 线摄影数据库非常罕见且昂贵。具有数字化胶片乳房 X 光照片 ROI 注释的最大公共数据库 – DDSM – 包含数千张带有像素级注释的图像,可用于训练补丁分类器 f。一旦补丁分类器转换为整个图像分类器 h,就可以仅使用图像级标签在其他数据库上进行微调。这种方法使我们能够显着减少对 ROI 注释的要求。

1.2 网络设计

现代CNN通常是通过在输入之上堆叠卷积层,然后是一个或多个全连接 (FC) 层来连接分类输出来构建的。最大池化层通常用在卷积层中,以提高平移不变性并减小特征图大小。

VGG 网络 和 残差网络 (Resnet)

连续的网络层可以自然地分组为“块”,以便特征图大小在块的开头或末尾减小(通常为 2 倍),但在块中的其他位置保持不变。

“VGG 块”是几个具有相同深度的 3×3 卷积层的堆栈,后跟一个 2×2 最大池化层,该层将特征图大小减少 2 倍。一个VGG块可以用 N×K 的模式来表示,其中N表示每个卷积层的深度,K表示卷积层的数量。

“Resnet 块”在第一个卷积层中使用 stride=2 而不是 2×2 最大池化来减小块开头的特征图大小,然后堆叠多个卷积层。我们使用“瓶颈设计”,它由三个卷积层的重复单元组成,卷积核尺寸分别为 1×1、3×3 和 1×1。 Resnet块的一个关键特征是在每个单元的两端之间建立了一条捷径,以便直接继承特征,因此每个单元可以专注于学习“剩余”信息。

Resnet 中的每个卷积层都使用了批量归一化 (BN),众所周知,它可以加速收敛,并且还具有正则化效果。一个 Resnet 块可以用 [L−M−N]×K 的模式来表示,其中L、M和N表示一个单元中三个卷积层的深度,K表示单元的数量。

使用16层VGG网络(VGG16)和50层Resnet(Resnet50)作为补丁分类器。 VGG16 的原始设计由五个 VGG 块和两个 FC 层组成。为了与 Resnet50 保持一致,我们用全局平均池化层替换了两个 FC 层,该层计算最后一个 VGG 块输出的每个特征图的平均激活。例如,如果最后一个 VGG 块的输出大小为 7 × 7 × 512(高 × 宽 × 通道),则在全局平均池化层之后,输出变为长度为 512的一维向量。然后将该输出连接到分类输出,其中FC层。


从补丁分类器构建整个图像分类器的一种直接方法是展平热图并使用 FC 层将其连接到图像的分类输出。为了增加模型对补丁分类器输出的平移不变性,可以在热图之后使用最大池化层。此外,可以在热图和输出之间建立快捷方式,以使训练更容易。热图直接来自使用 softmax 激活的补丁分类器的输出:

f(\mathbf{z})_{j}=\frac{e^{z_{j}}}{\sum_{i=1}^{c}e^{z_{i}}}\mathrm{for} j=1, ..., c 

然而,softmax 激活会减少大输入的梯度,这在中间层中使用时可能会阻碍梯度流。因此,可以使用修正线性单元(ReLU)来代替:

f(\mathbf{z})_{j}=max(0, z_{j}) \, \, \, \mathrm{for}\, j=1, ..., c

使用卷积层作为顶层,以保留空间信息。可以在补丁分类器层的顶部添加两个卷积层块(VGG 或 Resnet),然后是全局平均池化层,然后是图像的分类输出。

2. 结果

在 CBIS-DDSM 上开发补丁和整个图像分类器

DDSM 包含无损 JPEG 格式的数字化胶片乳房 X 光照片,该格式现已过时。我们使用了名为 CBIS-DDSM 的更高版本的数据库,其中包含转换为标准 DICOM 格式的图像。该数据集由 1249 名女性的 2478 张乳房 X 光检查图像组成,是从 CBIS-DDSM 网站下载的,并且包括大多数检查的头尾 (CC) 和内侧斜 (MLO) 视图。

每个视图都被视为单独的图像。我们在患者级别随机分割 CBIS-DDSM 数据集 85:15,以创建独立的训练和测试集。训练数据进一步按 90:10 分割以创建独立的验证集。以分层方式进行分割,以在训练、验证和测试集中保持相同比例的癌症病例。训练、验证和测试集中的图像总数分别为:1903、199 和 376。


CBIS-DDSM 数据库包含 ROI 的像素级注释及其病理学确认的标签:良性或恶性。它还将每个 ROI 进一步标记为钙化或肿块。大多数乳房 X 光检查仅包含一个 ROI。所有乳房X光照片均转换为PNG格式,并使用插值缩小至1152×896;没有执行图像裁剪。

通过从 ROI 和背景区域采样图像块来创建两个块数据集。所有补丁的大小相同,均为 224×224,足以覆盖大部分注释的 ROI。

第一个数据集 (S1)  由多组补丁组成,以 ROI 为中心。

第二个数据集(S10)由从每个 ROI 周围随机采样的 10 个块组成,与 ROI 的最小重叠率为 0.9,并包含一些背景,以更完整地捕获潜在的信息区域。

与ROI的最小重叠率为0.9时,意味着预测框与真实ROI的重叠面积至少要占两者并集面积的90%

网络训练

整个图像分类器的训练分两步完成。第一步是训练补丁分类器。我们将使用 ImageNet32 数据库预先训练权重的网络与随机初始化权重的网络进行了比较。

在预训练网络中,底层表示往往在不同任务中保留的原始特征,而顶层表示与特定任务更相关且需要进一步训练的高阶特征。对所有层使用相同的学习率可能会破坏底层学到的特征。为了防止这种情况,采用了三阶段训练策略,其中除了最后一层之外的所有层的参数学习都被冻结,并从顶层到底层逐渐解冻,同时降低学习率。

补丁分类器

S10 集比 S1 集更难分类,因为它包含从 ROI 周围采样的斑块,而不是以 ROI 为中心,这更难与背景区域区分开。在 S1 集上,随机初始化和预训练的 Resnet50 分类器都达到了相似的精度,但预训练网络的收敛时间是随机初始化网络的一半。

背景分类最简单,恶性钙化最难分类。恶性钙化最有可能被错误分类为良性钙化,其次是恶性肿块。良性钙化最有可能被错误分类为背景,其次是恶性钙化。恶性肿块最有可能被错误分类为良性肿块,而良性肿块最有可能被错误分类为恶性肿块或背景,具体取决于斑块分类器。

将补丁转换为整个图像分类器

使用预先训练的 Resnet50 和 VGG16 补丁分类器,测试了整个图像分类器顶层的几种不同配置。还评估了热图的移除以及在补丁分类器层顶部添加两个 Resnet 或 VGG 块,然后是全局平均池化层和分类输出。通过计算独立测试集上每张图像的 AUC 来评估模型性能。


显著性图说明了整个图像分类器认为输入图像的哪个区域负责癌症预测。图 4a 显示了真阳性 (TP) 图像的显著性图,其中识别的区域位于恶性 ROI 内或附近。这表明图像分类器能够正确定位其决策所依据的癌症区域。图 4b 显示了典型的 FP 图像,其中识别的区域位于类似于恶性 ROI 的良性 ROI 中。图 4c 显示了典型的 FN 图像,其中恶性 ROI 难以辨别,并且没有响应通过低截止值。

图 4d 显示了一个示例热图,它提供了输入图像的粗略分割;然后顶层使用分割对整个图像进行分类。

组合 CC 和 MLO 视图可以提高性能,因为每个视图都可以包含唯一的信息。删除只有单个视图可用的样本后,90% 的测试集仍用于分析 169 个乳房中每个乳房的两个视图。我们使用了一种简单的方法,即取两个视图的平均分数。

在基于 Resnet 的整个图像分类器中插入了一个热图,其中有两个 [512−512−1024]×2 块作为顶层。插入的热图是一个1×1的卷积层,它将 卷积核 的数量从之前的卷积层(2048)减少到5个,这对应于补丁分类器的5个类别。为了促进梯度的反向传播,使用ReLU代替热图中的softmax激活。

INbreast30 数据集是一个公共数据库,包含最近获取的 FFDM 图像。与 CBIS-DDSM 的数字化胶片乳房 X 光照片相比,这些图像具有不同的强度分布,如两个数据库的示例图像所示(图 5)。因此,INbreast 提供了一个绝佳的机会来测试整个图像分类器跨乳房 X 线摄影平台的可移植性。 INbreast 数据库包含 115 名患者和 410 张乳房 X 光照片,包括 CC 和 MLO 视图。

INbreast数据库包括放射科医生的BI-RADS44评估类别,其定义如下:0,检查不完整; 1、没有发现任何问题; 2、良性; 3、可能是良性的; 4、多疑; 5、高度提示恶性肿瘤; 6、已知的活检证实的癌症。

端到端训练方法可以成功地使用带有图像级标签的附加小型训练集来微调整个图像分类器,从而大大减轻了多种不同乳房X线摄影的训练集构建负担平台。

一旦构建了整个图像分类器,就可以使用缺乏 ROI 注释的附加数据集对其进行微调,即使像素强度分布不同,就像从异构乳房 X 线摄影平台组装的数据集经常出现的情况一样。与之前的深度学习方法相比,我们使用端到端方法训练的所有卷积网络都具有极具竞争力的性能,并且在不同的乳腺 X 线摄影平台上更具通用性。

使用胶片和数字乳房X光照片进行乳腺癌分类,这些方法是端到端可训练的。两项研究都使用多实例学习(MIL)并修改整个图像分类器成本函数以满足 MIL 标准。 

通过采样更多或更大的补丁以包括 ROI 周围的邻近区域和其他背景区域,可以提高整个图像分类的准确性。然而,计算负担随着采样的补丁的数量或大小而线性增加,并且性能增益可能会迅速减少。

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

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

相关文章

springboot vue 开源 会员收银系统 (2) 搭建基础框架

前言 完整版演示 前面我们对会员系统https://blog.csdn.net/qq_35238367/article/details/126174288进行了分析 确定了技术选型 和基本的模块 下面我们将从 springboot脚手架开发一套收银系统 使用脚手架的好处 不用编写基础的rabc权限系统将工作量回归业务本身生成代码 便于…

Tensorflow入门实战 P01-实现手写数字识别mnist

目录 1、背景:MNIST手写数字识别 2、完整代码(Tensorflow): 3、运行过程及结果: 4、小结(还是很清晰的) 5、 展望 🍨 本文为🔗365天深度学习训练营 中的学习记录博客…

Kafka之【生产消息】

消息(Record) 在kafka中传递的数据我们称之为消息(message)或记录(record),所以Kafka发送数据前,需要将待发送的数据封装为指定的数据模型: 相关属性必须在构建数据模型时指定,其中…

JavaEE技术之分布式事务(理论、解决方案、Seata解决分布式事务问题、Seata之原理简介、断点查看数据库表数据变化)

文章目录 JavaEE技术之分布式事务准备:1. 本地事务回顾1.1 什么是事务1.2 事务的作用1.3 事务ACID四大特性1.4 事务的并发问题1.5 MySQL事务隔离级别1.6 事务相关命令(了解)1.7 事务传播行为(propagation behavior)1.8 伪代码练习1.9 回滚策略1.10 超时事…

144.栈和队列:有效的括号(力扣)

题目描述 代码解决 class Solution { public:bool isValid(string s) {// 如果字符串长度为奇数&#xff0c;不可能是有效的括号字符串if(s.size() % 2 ! 0) return false;// 使用栈来存放括号stack<char> st;// 遍历字符串中的每一个字符for(int i 0; i < s.size();…

Error:(6, 43) java: 程序包org.springframework.data.redis.core不存在

目录 一、在做SpringBoot整合Redis的项目时&#xff0c;报错&#xff1a; 二、尝试 三、解决办法 一、在做SpringBoot整合Redis的项目时&#xff0c;报错&#xff1a; 二、尝试 给依赖加版本号&#xff0c;并且把版本换了个遍&#xff0c;也不行&#xff0c;也去update过ma…

Parasoft C++Test软件静态分析操作指南_软件质量度量

系列文章目录 Parasoft CTest软件安装指南 Parasoft CTest软件静态分析操作指南_编码规范/标准检查 Parasoft CTest软件静态分析操作指南_软件质量度量 Parasoft CTest软件静态分析_自动提取静态分析数据生成文档 Parasoft CTest软件单元测试_操作指南 Parasoft CTest软件单元…

C语言章节学习归纳--数据类型、运算符与表达式

3.1 C语言的数据类型&#xff08;理解&#xff09; 首先&#xff0c;对变量的定义可以包括三个方面&#xff1a; 数据类型 存储类型 作用域 所谓数据类型是按被定义变量的性质&#xff0c;表示形式&#xff0c;占据存储空间的多少&#xff0c;构造特点来划分的。在C语言中&…

2461. 长度为 K 子数组中的最大和(c++)

给你一个整数数组 nums 和一个整数 k 。请你从 nums 中满足下述条件的全部子数组中找出最大子数组和&#xff1a; 子数组的长度是 k&#xff0c;且子数组中的所有元素 各不相同 。 返回满足题面要求的最大子数组和。如果不存在子数组满足这些条件&#xff0c;返回 0 。 子数…

设计模式6——单例模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 单例模式&#xff08;Singleto…

完成商品属性分组和商品属性关联维护

文章目录 1.前端页面搭建1.复制attrgroup-attr-relation.vue到src/views/modules/commodity下2.加入超链接和引入组件 src/views/modules/commodity/attrgroup.vue1.加入超链接2.引入组件 3.数据池加入变量4.使用组件1.引用组件2.添加方法3.测试&#xff0c;点击关联&#xff0…

建站平台布局结构

建站平台布局结构对于网站的成功至关重要。一个良好的布局结构能够有效地吸引用户&#xff0c;提升用户体验&#xff0c;并且有助于网站的搜索引擎优化&#xff08;SEO&#xff09;。在设计网站布局结构时&#xff0c;需要考虑到用户导航、信息层次结构、页面加载速度等方面&am…

Android JetPack快速上手

学习地址 【Android Jetpack组件从入门到入坟&#xff0c;全家桶全面学习教程精讲&#xff0c;通俗易懂】 review 研究生期间接触过一部分android开发&#xff0c;近期有个小项目需要进行开发&#xff0c;临时恶补了一下Android相关知识点&#xff0c;突然发现Android新增了…

VBA语言専攻每周通知20240524

通知20240524 各位学员∶本周MF系列VBA技术资料增加611-615讲&#xff0c;T3学员看到通知后请免费领取,领取时间5月24日晚上18:00-5月26日晚上18:00。本次增加内容&#xff1a; MF611:用InputBox录入日期 MF612:信息提示10秒后关自动关闭 MF613:只是信息提示10秒 MF614:显…

如何解决Nginx反向代理不生效?

目录 背景 过程 日志 检查配置文件 重启服务 检查容器内的配置文件 容器和宿主机 其他 背景 用了两年的nginx新加的反向代理不生效 Docker挂载的配置文件启动的Nginx&#xff0c;配置一切正常&#xff0c;但是反向代理不生效&#xff0c;???先自查一波 过程 日志 …

RDDM论文阅读笔记

CVPR2024的残差去噪模型。把diffusion 模型的加噪过程分解为残差diffusion和noise diffusion&#xff0c;其中残差diffusion模拟从target image到degraded image的过程&#xff0c;而noise diffusion则是原来的diffusion过程&#xff0c;即从图片到高斯噪声的加噪过程。前者可以…

如何让社区版IDEA变得好用

如何让社区版IDEA变得好用 背景 收费版的idea功能非常强大&#xff0c;但是费用高。社区版的免费&#xff0c;但是功能被阉割了。如何才能让社区版Idea变得好用&#xff0c;就需要各种插件支持了。经过全局配置编码&#xff0c;maven&#xff0c;jdk版本&#xff0c;在加上各…

架构二。。

1、CAP 只能3选2 1&#xff09;一致性&#xff08;Consistency&#xff09; 客户每次读都是返回最新的写操作结果 2&#xff09;可用性&#xff08;Availability&#xff09; 非故障节点在合理的时间内返回合理的响应 3&#xff09;分区容忍性&#xff08;Partition Tolerance…

Ribbon负载均衡(自己总结的)

文章目录 Ribbon负载均衡负载均衡解决的问题不要把Ribbon负载均衡和Eureka-Server服务器集群搞混了Ribbon负载均衡代码怎么写ribbon负载均衡依赖是怎么引入的&#xff1f; Ribbon负载均衡 负载均衡解决的问题 首先Ribbon负载均衡配合Eureka注册中心一块使用。 在SpringCloud…

计算机网络之应用层知识点总结

6.1 网络应用模型 &#xff08;1&#xff09;应用层概述 &#xff08;2&#xff09;网络应用模型的介绍 客户/服务器&#xff08;C/S&#xff09;模型 P2P模型 6.2 域名解析系统DNS &#xff08;1&#xff09;DNS系统介绍 &#xff08;2&#xff09;域名 &#xff08;3&#…