关注公众号,发现CV技术之美

以下文章来源于中国图象图形学报 ,作者倪冰冰, 杨健程等

上海交通大学等

MedMNIST v2医学图像数据集已经发布,相较 MedMNIST v1,MedMNIST v2 新增了 2 个 2D 生物图像数据,以及 6 个 3D 生物医学图像数据。

在基于深度学习的人工智能和计算机视觉技术的快速发展下,医学影像分析领域得到了长足的发展,以至于深度学习成为医学图像分析领域中最核心的研究方式之一。医学影像分析中的数据模态、数据集规模和任务类型存在十分显著的差异性。尽管目前医学影像计算机视觉已经获得了长足发展,但仍存在许多研究问题尚未得到充分的解决,例如:

  1. 开展实际医学人工智能相关的研究时往往会面临数据孤岛问题,尽管医学数据十分丰富,但由于数据隐私等问题,研究者能访问到的数据十分稀缺。

  2. 医学影像算法任务中,调整深度学习模型需要大量的工作投入,如网络架构选择、优化策略、预处理和数据增强等,事实上很多设计可以通过自动机器学习来解决。

  3. 医学图像领域根据特定目的发展出了许多图像模态,不同模态泛化能力对于模型十分重要,但评估模型的泛化能力往往需要大量的数据集。

  4. 由于医学图像相对复杂的特性,使得预处理、建模流水线等会扮演极其重要的角色,甚至超过机器学习的部分(如 nnUNet)。尽管模型端到端的性能非常重要,但研究者也需要标准化的、只需要关注机器学习部分的数据以加速研究过程。

为了解决上述问题,来自上海交通大学等机构的研究者发布了 MedMNIST (v2) 数据集,本数据库的构建工作由上海交通大学倪冰冰教授团队牵头完成,杨健程博士为第一作者。本文将从组成、性能指标、使用方法等方面对 MedMNIST 数据集进行简要的介绍。

  • 论文地址:https://arxiv.org/pdf/2110.14795.pdf

  • 数据和代码链接:https://medmnist.com

图一 MedMNIST v2 数据集概览  

对不同领域的数据驱动方法进行基准测试已有一些研究工作。Visual Domain Decathlon 在 10 个现有的自然图像数据集上开发了一个评估基准,以评估模型在不同领域上的泛化能力。在医学成像领域,Medical Segmentation Decathlon 引入了 10 个 3D 医学图像分割数据集来评估端到端分割性能。当然,理解当前最新的 MSD 端到端的性能是尤其重要的。然而,端到端系统中每个部分的贡献可能特别难以分析。正如在 MSD 取胜解决方案中所报告的那样,超参数调优、预处理 / 后处理、模型集成策略和训练 / 测试时增强可能比机器学习部分(如模型架构、学习方案)更为重要。因此,该研究发布了 MedMNIST 数据集,一个大规模的类 MNIST 的医学图像数据集。经过标准化和轻量化,MedMNIST 多样的数据设计可以为丰富的研究提供支持。相较 MedMNIST v1,MedMNIST 新增了 2 个 2D 生物图像数据,以及 6 个 3D 生物医学图像数据。MedMNIST v2 与其他「decathlon」数据集的比较如表一所示。

表一 MedMNIST v2 与其他 「decathlon」数据集比较

数据简介

MedMNIST v2 是一个大规模的 2D 和 3D 医学图像分类数据集,包含 12 个 2D 数据集和 6 个 3D 数据集,其中 2D 数据集有 708069 张图片,3D 数据集有 10214 张图片。

MedMNIST v2 具有以下几个特点:

  • 标准性:数据集具有相同的大小 28*28(2D)或 28*28*28(3D),并提供了标准的训练集、验证集和测试集的划分;

  • 多样性:数据集包含多种模态(X 光片、视网膜 OCT、超声、CT 等)、 多种任务(多分类、二分类、多标签、有序回归), 数据集规模从百量级到十万量级不等;

  • 轻量性:数据集尺寸小,28*28(2D)或 28*28*28(3D);

  • 教育性:生物医学图像分析需要计算机视觉、 机器学习、 生物医学图像、 临床等多种背景知识, 所有数据均采用 CC(Creative Commons) 许可, 便于用于教育目的。

作为一个大规模的医学图像数据集,MedMNIST v2 对机器学习和计算机视觉的研究来说具有十分重要的意义,对于自动机器学习、多模态学习、多任务学习、迁移学习等许多研究都起到一定的作用。

表二  MedMNIST v2 数据集简介

设计原则

MedMNIST v2 数据集来源于精心挑选的源数据集,包含多种原始数据模态(如 X 光片、OCT、超声、电子显微镜等)、不同分类任务(二分类、多分类、有序回归、多标签)和不同的数据集规模(从 100 量级到 100,000 量级)。这些源数据集大部分来源于已经发表的公开研究中使用 CC 许可的数据集,也有伴随 MedMNIST v2 发布的私有数据。该研究展示了 MedMNIST v2 数据集全景图(图二)。由于很难将数据模态分类,研究者用图像分辨率来表示数据模态。多样的数据集设计能带来多样的任务难度,这正是作为一个医学图像分类基准应有的特性。

该研究提供了官方的训练集、验证集和测试集的划分,并将所有的数据都预处理成 MNIST 那样的形式,即 28*28(2D) 或 28*28*28(3D)。对多数数据集而言,该研究直接使用了源数据集的分类标签;但如果分类任务在小尺寸图像上难度较大,研究者对标签采取了合并或删除操作进行简化。

图二 MedMNIST v2 全景图

验证实验

该研究在验证集上采用早停法的 ResNet 为基线方法,对于 2D 数据集选取 ResNet18 和 ResNet50 分别在 28*28 和 224*224(从 28 分辨率进行插值放大)分辨率上进行测试;对于 3D 数据集,选取 2.5D、3D、ACS 卷积的 ResNet18 和 ResNet50 进行测试。同时,该研究还选取了三种自动机器学习模型 auto-sklearn、AutoKeras 和 Google AutoML Vision。

所有的实验均进行了三次,并对三次结果计算平均,结果如表三所示。该研究还分别将 2D 和 3D 的每种方法在各自的数据集上进行平均,得到每种方法在 2D 或 3D 数据集上的平均性能指标,结果如表四所示。

表三 MedMNIST v2性能指标

表四 MedMNIST v2 性能平均指标

快速上手

MedMNIST v2 数据集都具有 CC license,除了两个新发布的 3D 数据集外,其余数据集均来源于开源的公开数据,详见 MedMNIST 主页。MedMNIST v2 每个数据集也都和源数据集的 CC license 相同,可以下载和使用。该研究提供了 dataloader 和评估的脚本文件、实验的代码库以及训练的模型权重,相应的 Python 代码和 NumPy npz 格式的数据均可在项目主页上公开获取。该研究的 dataloader 文件通过 PyTorch 实现,对于不使用 PyTorch 的用户而言,也可以自行解析标准的 NumPy 序列化数据集(可以参考代码的字段说明)。

1.medmnist的安装

pip install --upgrade git+https://github.com/MedMNIST/MedMNIST.git

2.下载MedMNIST v2数据集

python -m medmnist download

3.MedMNIST v2数据集的调用(以PathMNIST为例)

调用medmnist加载数据集,并将数据集转变为PyTorch的dataloader格式

>>> from medmnist import PathMNIST
>>> train_dataset = PathMNIST(split='train', download=True)

4.查看数据集的数量、任务类型、标签意义等介绍

>>> print(train_dataset)
Dataset PathMNIST (pathmnist)Number of datapoints: 89996Root location: /home/three/.medmnistSplit: trainTask: multi-classNumber of channels: 3Meaning of labels: {'0': 'adipose', '1': 'background', '2': 'debris', '3': 'lymphocytes', '4': 'mucus', '5': 'smooth muscle', '6': 'normal colon mucosa', '7': 'cancer-associated stroma', '8': 'colorectal adenocarcinoma epithelium'}Number of samples: {'train': 89996, 'val': 10004, 'test': 7180}Description: The PathMNIST is based on a prior study for predicting survival from colorectal cancer histology slides, providing a dataset (NCT-CRC-HE-100K) of 100,000 non-overlapping image patches from hematoxylin & eosin stained histological images, and a test dataset (CRC-VAL-HE-7K) of 7,180 image patches from a different clinical center. The dataset is comprised of 9 types of tissues, resulting in a multi-class classification task. We resize the source images of 3×224×224 into 3×28×28, and split NCT-CRC-HE-100K into training and validation set with a ratio of 9:1. The CRC-VAL-HE-7K is treated as the test set.License: CC BY 4.0

5.只需一行代码,便可以以蒙太奇的形式可视化查看数据集

>>> train_dataset.montage(length=20)

图三  PathMNIST的20*20蒙太奇展示

潜在用途

MedMNIST 是一个预处理高度标准化的轻量级数据集合,适合多种机器学习、计算机视觉和生物医学图像分析的研究。然而基于同样的原因,MedMNIST 并不适合临床用途。针对临床用途的研究 / 产品可以直接使用 MedMNIST 的原始数据,这些原始数据本身都是开源在 CC 许可协议下的(具体可以参考论文里的相关说明)。以下列举了一些 MedMNIST 的潜在用途。

  1. 自动机器学习(AutoML):医学影像算法任务中,调整深度学习模型有很大一部分工作是需要研究者和工程师人为指定的,如网络架构选择、优化策略、预处理和数据增强等,而这一部分需要研究者投入大量的精力。因此自动机器学习显得尤为重要,MedMNIST 可以作为医学图像分类领域自动机器学习的基准,从而在一定程度上促进医学图像分析领域自动机器学习的发展。

  2. 不同模态的模型泛化:根据特定的任务,通过调整传感器和成像协议,许多医学图像模态被设计出来。好的模型设计应当具有较强的泛化性能,然而仅仅在少量数据集上进行验证并不能去评判一个特定的模型是否具有泛化能力。MedMNIST 的多样性可以公平地评估机器学习算法在不同设置下的泛化能力。同时,MedMNIST 包含多样的数据模态、任务和数据量的各个子集也可以用来分析不同任务之间的迁移关联。

  3. 3D 视觉:长期以来,3D 医学图像领域一直缺少易用的标准数据集。即便是像 LIDC、MSD 这样经过一定标准化的数据集,由于未提供官方数据划分、数据预处理等原因,最终系统的性能表现往往高度取决于预处理和模型管线,从而难以将模型本身加以比较。MedMNIST v2 中多样、标准、易用的 3D 数据集,将为该领域的研究提供一个测试基准。

  4. 安全隐私的机器学习:可信机器学习(trustworthy machine learning),尤其是机器学习的安全性和隐私性越来越受到关注。其中,医学领域由于自身对安全性和隐私性的高要求,一直是可信机器学习的重点研究对象。MedMNIST 的多数据集设计可以很自然的成为该领域研究的一个易用的基线实验数据。

  5. 入门医学 AI 交叉领域(对初学者):由于人体及生命现象的高度复杂性,现代医学(尤其是临床医学)一直是一门高度依赖经验的科学。如今伴随着深度学习等数据驱动方法的崛起,AI 已经越来越成为临床研究和基础研究的重要工具。很多专家认为,生物医学是 “AI+” 交叉学科最好的研究方向之一,大量的科学研究和产业转换也正在将这样的论断变为现实。然而,任何交叉学科都具有较高门槛,尤其是对于医学 AI 这样交汇了高度复杂的生物医学和快速发展的 AI 两门学科的方向。我们希望,MedMNIST 可以成为这样一个窗口,让更多初学者从这样一个标准化的沙盒开始,踏入生物医学图像分析甚至更多相关领域。

从 MedMNIST 开启 2D+3D 医学图像分析之旅吧!

>>> import medmnist

END

欢迎加入「医学影像交流群

MedMNIST:18个数据集开启2D+3D医学影像之旅,可免费下载相关推荐

  1. brats数据集以及其他的医学影像数据集

    脑肿瘤分割(BraTS)挑战集中于评估在多参数磁共振成像(mpMRI)扫描中分割脑肿瘤的最新方法.自成立以来,它的主要作用有两个方面:a)公开可用的数据集和b)公共基准.BraTS利用多机构术前mpM ...

  2. AI招聘平台TaTiO获百万美元融资;Google数据科学系列课;批量图片转文字工具;无人驾驶4D雷达数据集;3D医学影像检测库 | ShowMeAI资讯日报

  3. C#开发PACS医学影像三维重建(一):使用VTK重建3D影像

    VTK简介: VTK是一个开源的免费软件系统,主要用于三维计算机图形学.图像处理和可视化.Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建的. 因为使用C#语言开发,而VTK是C++ ...

  4. 跨平台2D/3D游戏开发框架libGDX发布1.2.0更新

    摘要:基于OpenGL (ES)的跨平台2D/3D游戏开发框架libGDX不仅开源免费,而且具有极为强大的兼容性和高效性,近日,libGDX发布全新1.2.0版本,除修复Bug之外,还新增了OpenG ...

  5. C#开发PACS医学影像三维重建(十三):基于人体CT值从皮肤渐变到骨骼的梯度透明思路

    当我们将CT切片重建为三维体之后,通常会消除一些不必要的外部组织来观察内部病灶, 一般思路是根据人体常见CT值范围来使得部分组织透明来达到效果, 但这是非黑即白的,即,要么显示皮肤,要么显示神经,要么 ...

  6. 从数据集到2D和3D方法,一文概览目标检测领域进展

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:深度学习这件小事 目标检测一直是计算机视觉领域中一大难题 ...

  7. 收藏 | 3D目标检测综述:从数据集到2D和3D方法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习> ...

  8. 3D目标检测综述:从数据集到2D和3D方法

    本文经机器之心(almosthuman2014)授权转载,禁止二次转载. 作者:Yilin Wang, Jiayi Ye 机器之心编译 编辑:Panda 目标检测一直是计算机视觉领域中一大难题.近日, ...

  9. 2D分割算法应用于医学影像3D图像

    一.医学影像领域深度学习概念 1.模态:一种信息的来源或传播形式称为模态,比如嗅觉.听觉.雷达.红外等采集到的数据都不同模态.同时模态也有广泛定义,比如不同语言.不同情况所采集的数据等也称为不同模态. ...

最新文章

  1. java学习(118):vector类
  2. MFCButton Memory leak(内存泄露问题)
  3. eAccelerator性能测试
  4. python颜色校正
  5. 控制理论与控制工程算计算机相关专业吗,控制理论与控制工程专业介绍
  6. 【趣闻】清华大学大一的英文原版线性代数教材里居然出现了Python
  7. McAfee软件下载与安装
  8. h5和mysql做图书系统_HTML5的WebGL3D档案馆图书可视化管理系统的实现
  9. error: comparison between distinct pointer types ‘char*’ and ‘unsigned char*’ lacks a cast 解决方法
  10. 指数分布的期望和方差
  11. 使用scrapy爬取拉钩网招聘信息
  12. 软件开发工具下载地址
  13. 文献管理与信息分析2023春课程随堂测验答案
  14. 深度学习 week1 采访部分补充
  15. 电子商务网站一般架构有哪些
  16. cobol .cpy文件_Visual COBOL R3:“使传统的COBOL能够部署在JVM或.NET上”。
  17. android 官方bootloader,安卓系统bootloader模式是什么?如何进入bootloader模式
  18. Python第三方库之MedPy
  19. Rman配置DataGuard using Backup-based duplication with a target connection with filesystem
  20. btrace安装,配置,使用,常见异常,解除安全限制

热门文章

  1. 算术基本定理“质数分解唯一性的证明”:古典方法与现代方法
  2. Minimum Mean Squared Error (MMSE)最小均方误差
  3. 外参矩阵(旋转矩阵+平移向量)以及外方位元素的关系
  4. 服务连接不上nacos集群_Rust 微服务实践: 连接 rust , nacos , spring cloud
  5. toj 4319 盒子游戏
  6. linux系统能装什么显卡,Linux系统下安装显卡驱动
  7. 逐行读文件_用python比较两个文件的内容是否相同
  8. 多系统服务器数据备份软件,护卫神好备份系统
  9. java web 生命周期_JavaWeb的生命周期
  10. java 读取raw文件_Android 读取assets和raw文件内容实例代码