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

6.7.31 使用端到端训练的基于 EfficientNet 的卷积网络在双视图乳房 X 线摄影中进行乳腺癌诊断

最好的技术之一进行了两次迁移学习:第一种是使用在自然图像上训练的模型来创建“块分类器”,对子图像进行分类;第二种是使用块分类器扫描整个乳房 X 光检查并创建“单视图全图像分类器”。建议进行第三次迁移学习,以获得一个“双视图分类器”,以使用两个乳房 X 光检查视图:双侧头尾和内外斜向。

使用 EfficientNet 作为模型的基础。使用 CBIS-DDSM 数据集对整个系统进行“端到端”训练。为了确保统计稳健性,我们使用以下方法对系统进行了两次测试:(a) 5 倍交叉验证;(b) 数据集的原始训练/测试划分。使用 5 倍交叉验证达到了 0.9344 的 AUC(在 ROC 的等错误率点上,准确度、灵敏度和特异性为 85.13%)。使用原始数据集划分,技术实现了 0.8483 的 AUC。

1. 引言

乳房 X 线照片必须由经验丰富的放射科医生进行解读,以降低错误率。

在自然图像中,定义图像类别的目标占据了很大的区域。这不会发生在乳房 X 光检查上,其中癌症组织可能只占据很小的区域。因此,直接训练 CNN 或进行传统的迁移学习来对乳房 X 光检查进行分类通常效果不佳。

Shen 等人 [4] 提出了一个克服这一挑战的好主意,即进行两次迁移学习。 第一个使用在 ImageNet [5] 自然图像上训练的模型来初始化“补丁分类器”,该分类器将小乳房 X 光片补丁分为五类:背景、良性钙化、恶性钙化、良性肿块和恶性肿块。第二个使用补丁分类器初始化“单视图全图像分类器”,该分类器使用具有癌症状态的整个乳房 X 光片进行端到端训练。换句话说,首先构建补丁分类器,因为它比构建整个图像分类器更容易​​。 随后,补丁分类器扫描整个乳房 X 光片,生成描述乳房 X 光片每个区域存在不同类型病变的可能性的属性图。整个图像分类器使用这些图进行最终分类并进行端到端训练。

1.1 文章贡献

在本文中,提出了一些对 Shen 等人的方法的改进,以提高其性能:

  • 原始技术使用 ResNet [6] 和 VGG [7] 作为基础模型。用较新的 EfficientNet [8] 替换了它们。
  •  标准乳房 X 线摄影包括每个乳房的两个视图:双侧头尾 (CC) 和内外斜向 (MLO)。原始算法一次只处理一个视图,为了将两个视图考虑在内,它只是对独立处理的两个视图的分数取平均值。 除了原来的两个视图之外,我们的技术还执行了第三个迁移学习,以将两个视图考虑在内。 使用单视图分类器初始化“双视图分类器”,然后使用具有癌症状态的双视图乳房 X 线摄影对整个系统(贴片、单视图和双视图分类器)进行端到端训练。

2. 文献综述

2.1 基于 CNN 的乳腺癌诊断

Kooi 等人 [12] 比较了使用最先进的经典方法、基于 CNN 的方法和放射科医生对乳房 X 线摄影 ROI 进行分类的结果。他们得出的结论是,CNN 的性能与放射科医生相当,并且优于经典方法。

Rodriguez 等人 [13] 使用来自美国和欧洲不同机构的 9 个数据集,将基于 CNN 的商业系统 (Transpara 1.4.0) 与 101 名放射科医生进行了比较。 AI 系统的 AUC 为 0.840,而放射科医生的平均 AUC 为 0.814。因此,AI 优于放射科医生的平均水平,但其表现不如最好的放射科医生。

Wu 等人 [16] 设计了一个四视图深度学习。使用 4 个视图预测癌症的 AUC 为 0.895,高于放射科医生的平均 AUC 0.778。 虽然 Wu 等人的工作和我们的工作都使用多视图对癌症进行分类,但存在根本差异,我们将在第 IV-C4 节中解释。

2.2 公共乳房X光检查数据集

DDSM [17] 是最大的公共乳房 X 线照片数据集,包含 2,620 次检查,包含正常、良性和恶性病例以及经过验证的病理信息。 CBIS-DDSM [18] 是 DDSM 的更新和精选版本,经过组织以使其更易于使用。它包含 3,103 张乳房 X 线照片。表 1 总结了此数据集中的乳房 X 线照片数量。

InBreast 公开数据集仅包含 115 个病例,共 410 张图像 [19],规模太小,无法用于深度学习。

最近发布的公开数据集 CSAW-M [20] 未将病变分为正常/良性/恶性类别,因此无法用于我们的研究。其他近期公开数据集(如 KAU-BCMD [21] 或 VinDr-Mammo [22])缺乏经过验证的病理信息,在撰写本文时尚未完全可用。 

2.3 比较 CAD 性能

当将 CBIS-DDSM 数据集随机划分为 5 个子集,并使用 4 个子集训练我们的双视图分类器并在剩余的集合上进行测试时,获得的 5 个 AUC 从 0.90 到 0.99 不等(4 个具有 TTA(数据增强) 的模型,见表 5)。因此,如果在随机划分中很幸运,双视图分类器将达到惊人的 0.99 AUC,如果我们运气不好,它只会达到 0.90。这两个值都不能反映我们系统的真实性能。因此,使用随机训练/测试划分获得的结果不可靠。

使用 CBIS-DDSM 的官方训练/测试划分,获得的 AUC 非常小。Shen 等人 [4] 使用随机训练/测试划分获得

相关文章:

6.7.31 使用端到端训练的基于 EfficientNet 的卷积网络在双视图乳房 X 线摄影中进行乳腺癌诊断

最好的技术之一进行了两次迁移学习:第一种是使用在自然图像上训练的模型来创建“块分类器”,对子图像进行分类;第二种是使用块分类器扫描整个乳房 X 光检查并创建“单视图全图像分类器”。建议进行第三次迁移学习,以获得一个“双视图分类器”,以使用两个乳房 X 光检查视图…...

访问方法(反射)

文章目录 前言一、访问成员方法的方法二、Method类 1.常用方法2.实操展示总结 前言 为了实现在某类中随时可以调用其他类的方法,java.lang.reflect包中提供了Method方法类来实现该效果。每一个Method对象代表着一个方法,利用Methoc对象可以操纵相应的方法…...

探索Excel的隐藏功能:如何求和以zzz开头的列

哈喽,大家好,我是木头左! 步骤一:定位"zzz"开头的列 需要找到所有以"zzz"开头的列。在Excel中,你可以通过以下几种方法来实现: 手动查找:滚动查看列标题,找到…...

git:切换到指定的commit

背景 今天合并人家代码的时候,报冲突了,然后解决完冲突以后,发现有个冲突干错了,但是都已经commit了,所以我就想那就回到这次merge之前的我的分支的commit 解决过程 取消合并 我先查了能否直接取消合并&#xff0c…...

js之事件监听以及相关案例

这里写目录标题 一级目录二级目录三级目录 Web APIs02一、事件监听1.定义2.调用语法3.事件监听三要素4.事件监听版本 二、事件类型随机点名之事件监听版本案例要求大致思路先获取dom对象理解程序运行 完整代码 一级目录 二级目录 三级目录 Web APIs02 一、事件监听 1.定义…...

pip 安装出现 ERROR: Command errored out with exit status 1: 问题解决

使用pip 安装第三方库,前面在升级pip(使用python.exe -m pip install --upgrade pip)也出现如下错误: ERROR: Command errored out with exit status 1: command: d:\python_3_7_6\python.exe C:\Users\xxxXXXXoooOOOO\AppData…...

图的遍历介绍

概念 特点 无论是进行哪种遍历,均需要通过设置辅助数组标记顶点是否被访问来避免重复访问!!!! 类型 深度优先遍历 可以实现一次遍历访问一个连通图中的所有顶点,只要连通就能继续向下访问。 因此&#x…...

实验二、网络属性设置《计算机网络》

精神状态 be like:边写边崩溃,越写越得劲儿。 目录 一、实验目的: 二、实验内容 三、实验步骤: 四、实验小结 一、实验目的: 掌握 IP 地址、子网掩码等网络属性的设置。 二、实验内容 预备知识: 1、…...

【Python数据魔术】:揭秘类型奥秘,赋能代码创造

文章目录 🚀一.运算符🌈1. 算术运算符🌈2. 身份运算符🌈3. 成员运算符⭐4. 增量运算符⭐5. 比较运算符⭐6. 逻辑运算符 🚀二.可变与不可变🚀三.字符串转义🚀四.编码与解码💥1. 基础使…...

Android Glide loading Bitmap from RESOURCE_DISK_CACHE slow,cost time≈2 seconds+

Android Glide loading Bitmap from RESOURCE_DISK_CACHE slow,cost time≈2 seconds 加载一张宽高约100px多些的小图,是一张相当小的正常图片,loading Bitmap from RESOURCE_DISK_CACHE竟然耗时达到惊人的3秒左右!(打开Glide调试…...

微调技术:人工智能领域的神奇钥匙

在人工智能的浪潮中,深度学习技术凭借其强大的数据处理和学习能力,已成为推动科技进步的重要引擎。然而,深度学习模型的训练往往需要大量的数据和计算资源,这在某些特定场景下成为了限制其发展的瓶颈。为了解决这个问题&#xff0…...

MyBatis 参数上的处理的细节内容

1. MyBatis 参数上的处理的细节内容 文章目录 1. MyBatis 参数上的处理的细节内容2. MyBatis 参数上的处理3. 准备工作4. 单个(一个)参数4.1 单个(一个)简单类型作为参数4.2 单个(一个) Map集合 作为参数4.3 单个(一个) 实体类POJO作为参数 5. 多个参数5.1 Param注解(命名参数)…...

水帘降温水温

不同环境下的水帘啊,使用水温是不一样的,夏天使用水疗的水有两种,一个是常温的循环水,20~26左右,另外一个呢,就是深井水,重点是啥呢?就是无论我们用哪一种,能够把温度降到…...

kafka如何保证消息不丢失

Kafka发送消息是异步发送的,所以我们不知道消息是否发送成功,所以会可能造成消息丢失。而且Kafka架构是由生产者-服务器端-消费者三种组成部分构成的。要保证消息不丢失,那么主要有三种解决方法。 生产者(producer)端处理 生产者默认发送消息…...

流媒体学习之路(WebRTC)——音频NackTracker优化思路(8)

流媒体学习之路(WebRTC)——音频NackTracker优化思路(8) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力,提供每个环节关键参数调节接口并实…...

Java基础面试重点-2

21. JVM是如何处理异常(大概流程)? 如果发生异常,方法会创建一个异常对象(包括:异常名称、异常描述以及异常发生时应用程序的状态),并转交给JVM。创建异常对象,并转交给…...

【活动文章】通用大模型VS垂直大模型,你更青睐哪一方

垂直大模型和通用大模型各有其特定的应用场景和优势。垂直大模型专注于特定领域,提供深度的专业知识和技能,而通用大模型则具备广泛的适用性和强大的泛化能力。以下是一些垂直大模型和通用大模型的例子: 垂直大模型 BERT-Financial&#xf…...

记录一个Qt调用插件的问题

问题背景 使用Qt主程序插件的方式开发,即主程序做成一个框,定义好插件接口,然后主程序上通过插件接口与插件进行交互。调试过程中遇到了两个问题,在这里记录一下。 问题1(信号槽定义) 插件与主程序之间&am…...

9.1 Go 接口的定义

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

易于上手的requests

Python中的requests库主要用于发送HTTP请求并获取响应结果。在现代网络编程中,HTTP请求是构建客户端与服务器之间通信的基础。Python作为一种高级编程语言,其丰富的库支持使得它在网络数据处理领域尤为突出。其中,requests库以其简洁、易用的…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...