Jiancheng Yang, Rui Shi, Donglai Wei, Zequan Liu, Lin Zhao, Bilian KE, Hanspeter Pfister, Bingbing Ni
Options de taille multiple: 28 (MNIST), 64, 128 et 224
Nous présentons MedMnist , une collection de type MNIST à grande échelle d'images biomédicales standardisées, y compris 12 ensembles de données pour 2D et 6 ensembles de données pour 3D. Toutes les images sont prétraitées en 28x28 (2D) ou 28x28x28 (3D) avec les étiquettes de classification correspondantes, de sorte qu'aucune connaissance de fond n'est requise pour les utilisateurs. Couvrant les modalités de données primaires dans les images biomédicales, MedMNist est conçu pour effectuer une classification sur des images 2D et 3D légères avec diverses échelles de données (de 100 à 100 000) et diverses tâches (binaires / multi-classes, régression ordinale et multi-étiquettes). L'ensemble de données qui en résulte, composé d'environ 708 000 images 2D et d'images 3D 10k au total, pourrait soutenir de nombreux objectifs de recherche et éducatifs dans l'analyse d'images biomédicales, la vision par ordinateur et l'apprentissage automatique. Nous comptons plusieurs méthodes de référence sur MedMnist, y compris les réseaux neuronaux 2D / 3D et les outils d'auto-source / Automl commerciaux.
Avertissement : Le seul lien de distribution officiel pour l'ensemble de données MedMnist est Zenodo. Nous demandons aux utilisateurs de se référer à ce lien de données d'origine pour des données précises et à jour.
Mise à jour 2024-01-17 : Nous sommes ravis de libérer MedMnist + avec des tailles plus grandes: 64x64, 128x128 et 224x224 pour 2D et 64x64x64 pour 3D. En complément du medmnist de taille de 28 de taille précédent, la version de grande taille pourrait servir de référence standardisée pour les modèles de fondation médicale. Installez la dernière API pour l'essayer!
La mise à jour tierce 2024-05-13 : @ SDoerrich97 a publié une évaluation complète pour MedMnist + couvrant 10 modèles d'apprentissage en profondeur différents formés via 3 schémas de formation distincts dans les 12 ensembles de données 2D et les résolutions d'image disponibles (28x28, 64x64, 128x128 et 224x224), qui peuvent être intéressantes pour la communauté MEDMNIST. Vérifiez le problème ici.
Mise à jour tierce 2024-12-20 : @ FrancesCodisalvo05 a introduit MedMnist-C, une version corrompue des ensembles de données MedMnist, avec des corruptions d'image spécifiques à la modalité et des API d'augmentation, inspirées par la référence ImageNet-C. Ce travail vise à évaluer et à améliorer la robustesse du modèle. Vérifiez le problème ici.
Pour plus de détails, veuillez consulter notre article:
Medmnist V2: une référence légère à grande échelle pour la classification des images biomédicales 2D et 3D (Nature Scientific Data'23)
ou sa version de conférence:
Classification MedmNist Decathlon: une référence automatique légère pour l'analyse des images médicales (ISBI'21)
Veuillez noter que cet ensemble de données n'est pas destiné à une utilisation clinique.
medmnist/ :dataset.py : ensembles de données Pytorch et coade de données de MedMnist.evaluator.py : fonctions d'évaluation standardisées.info.py : Informations sur le jeu de données dict pour chaque sous-ensemble de MedmNist.examples/ :getting_started.ipynb : Pour explorer l'ensemble de données MedmNist avec Jupyter Notebook. Il est uniquement destiné à une exploration rapide, c'est-à-dire qu'il ne fournit pas de fonctionnalités de formation et d'évaluation complètes.getting_started_without_PyTorch.ipynb : Ce ordinateur portable fournit des extraits sur la façon d'utiliser les données medmnist (les fichiers .npz ) sans pytorch.setup.py : pour installer medmnist en tant que module.MedMNIST/experiments : scripts de formation et d'évaluation pour reproduire des expériences 2D et 3D dans notre article, y compris Pytorch, Auto-Sklearn, Autokeras et Google Automl Vision avec leurs poids;) Configurez les environnements requis et installez medmnist en tant que package Python standard à partir de PYPI:
pip install medmnist
Ou installer à partir de la source:
pip install --upgrade git+https://github.com/MedMNIST/MedMNIST.git
Vérifiez si vous avez installé la dernière version de code:
>>> import medmnist
>>> print(medmnist.__version__)
Le code ne nécessite que des environnements Python communs pour l'apprentissage automatique. Fondamentalement, il a été testé avec
Des versions plus élevées (ou inférieures) devraient également fonctionner (peut-être avec des modifications mineures).
Pour utiliser la version standard de 28 taille (de type MNIST) utilisant les fichiers téléchargés:
>>> from medmnist import PathMNIST
>>> train_dataset = PathMNIST(split="train")
Pour activer le téléchargement automatique en définissant download=True :
>>> from medmnist import NoduleMNIST3D
>>> val_dataset = NoduleMNIST3D(split="val", download=True)
Alternativement, vous pouvez accéder à MedmNist + avec des tailles d'image plus grandes en spécifiant le paramètre size :
>>> from medmnist import ChestMNIST
>>> test_dataset = ChestMNIST(split="test", download=True, size=224)
Super! Notre code est conçu pour fonctionner avec Pytorch.
Explorez l'ensemble de données MedMnist avec Jupyter Notebook ( getting_started.ipynb ) et entraînez des réseaux de neurones de base à Pytorch.
getting_started_without_PyTorch.ipynb , qui fournit des extraits sur la façon d'utiliser les données medmnist (les fichiers .npz ) sans pytorch.MedMNIST de torch.utils.data.Dataset aux collections.Sequence . Vérifiez dataset_without_pytorch.py pour plus de détails. Veuillez télécharger le ou les ensembles de données via Zenodo. Vous pouvez également utiliser notre code pour télécharger automatiquement en définissant download=True dans dataset.py .
L'ensemble de données MedMNist contient plusieurs sous-ensembles. Chaque sous-ensemble (par exemple, pathmnist.npz ) est composé de 6 clés: train_images , train_labels , val_images , val_labels , test_images et test_labels .
train_images / val_images / test_images : N × 28 × 28 pour les ensembles de données à l'échelle gris 2D, N × 28 × 28 × 3 pour les ensembles de données RVB 2D, N × 28 × 28 × 28 pour les ensembles de données 3D. N désigne le nombre d'échantillons.train_labels / val_labels / test_labels : N × L . N désigne le nombre d'échantillons. L désigne le nombre d'étiquettes de tâches; Pour la classification unique (binaire / multi-classe), L=1 et {0,1,2,3,..,C} désigne les étiquettes de catégorie ( C=1 pour binaire); Pour la classification multi-étiquettes L!=1 , par exemple, L=14 pour chestmnist.npz .De plus, nous fournissons un fichier CSV pour chaque sous-ensemble medmnist ici, qui mappe le "image_id" dans le sous-ensemble à l'image correspondante dans l'ensemble de données source. Pour chaque entrée, il détaille le "Split" et "Index" spécifiques dans le sous-ensemble MedMnist, ainsi que le nom d'image correspondant de l'ensemble de données source officiel.
Liste tous les ensembles de données disponibles:
python -m medmnist available
Télécharger les ensembles de données disponibles d'une taille spécifique ( size=None (28) par défaut):
python -m medmnist download --size=28
Pour télécharger toutes les tailles disponibles:
python -m medmnist download --size=all
Supprimer tous les NPZ téléchargés de Root:
python -m medmnist clean
Imprimez les détails de l'ensemble de données étant donné un indicateur de sous-ensemble:
python -m medmnist info --flag=xxxmnist
Enregistrez l'ensemble de données en tant que fichiers standard et CSV, qui pourraient être utilisés pour Automl Tools, par exemple, Google Automl Vision:
Pour les ensembles de données 2D:
python -m medmnist save --flag=xxxmnist --folder=tmp/ --postfix=png --download=True --size=28
Pour les ensembles de données 3D:
python -m medmnist save --flag=xxxmnist3d --folder=tmp/ --postfix=gif --download=True --size=28
Par défaut, download=False et size=None (28).
Parse et évaluer un fichier de résultats standard, reportez-vous à Evaluator.parse_and_evaluate pour plus de détails.
python -m medmnist evaluate --path=folder/{flag}{size_flag}_{split}@{run}.csv
Ici, size_flag est vide pour 28 images, et _size pour des images plus grandes, par exemple, "_64", par exemple,
python -m medmnist evaluate --path=bloodmnist_64_val_[AUC]0.486_[ACC][email protected]
ou
python -m medmnist evaluate --path=chestmnist_test_[AUC]0.500_[ACC][email protected]
L'ensemble de données MedMnist est sous licence dans le cadre de Creative Commons Attribution 4.0 International (CC by 4.0), à l'exception de Dermamnist sous Creative Commons Attribution-non-Commercial 4.0 International (CC BY-NC 4.0). Le code est sous la licence Apache-2.0.
Si vous trouvez ce projet utile dans vos recherches, veuillez citer les articles suivants:
Jiancheng Yang, Rui Shi, Donglai Wei, Zequan Liu, Lin Zhao, Bilian Ke, Hanspeter Pfister, Bingbing Ni. Yang, Jiancheng, et al. "MedMNIST v2-A large-scale lightweight benchmark for 2D and 3D biomedical image classification." Scientific Data, 2023.
Jiancheng Yang, Rui Shi, Bingbing Ni. "MedMNIST Classification Decathlon: A Lightweight AutoML Benchmark for Medical Image Analysis". IEEE 18th International Symposium on Biomedical Imaging (ISBI), 2021.
ou en utilisant le bibtex:
@article{medmnistv2,
title={MedMNIST v2-A large-scale lightweight benchmark for 2D and 3D biomedical image classification},
author={Yang, Jiancheng and Shi, Rui and Wei, Donglai and Liu, Zequan and Zhao, Lin and Ke, Bilian and Pfister, Hanspeter and Ni, Bingbing},
journal={Scientific Data},
volume={10},
number={1},
pages={41},
year={2023},
publisher={Nature Publishing Group UK London}
}
@inproceedings{medmnistv1,
title={MedMNIST Classification Decathlon: A Lightweight AutoML Benchmark for Medical Image Analysis},
author={Yang, Jiancheng and Shi, Rui and Ni, Bingbing},
booktitle={IEEE 18th International Symposium on Biomedical Imaging (ISBI)},
pages={191--195},
year={2021}
}
Veuillez également citer les documents de données source du (s) sous-ensemble (s) MedMnist Selon la description de la page du projet.
v3.0.2 : Bogue corrigé dans l'évaluateur ( size_flag ) et PYPI mis à jour.v3.0.1 : Mise à jour du message d'erreur de téléchargement pour le rendre plus instructif.v3.0.0 : MedmNist + avec des tailles plus grandes: 64x64, 128x128 et 224x224 pour 2D et 64x64x64 pour 3D.v2.2.4 : a supprimé un petit nombre d'échantillons vierges dans l'organamnist, l'organcmnist, l'organniste, l'organniste3d et le vesselmnist3d.v2.2.3 : licence Dermamnist à CC BY-NC 4.0v2.2.2 : Sequence python 3.11 de Collections.Abc pris en chargev2.2.1 : les informations PYPI sont mises à jourv2.2.0 : méthode montage prise en charge pour Scikit-Image> = 0,20.0v2.1.0 : erreur de données NoduleMNIST3D fixev2.0.0 : MEDMNIST V2 Libération (sur PYPI)v1.0.0 : MEDMNIST V1 Releasev0.2.0 : version bêta de Medmnist