Jiancheng Yang, Rui Shi, Donglai Wei, Zequan Liu, Lin Zhao, Bilian KE, Hanspeter Pfister, Bingbing Ni
Opções de tamanho múltiplo: 28 (tipo Mnist), 64, 128 e 224
Introduzimos o MedMnist , uma coleção de imagens biomédicas padronizadas em larga escala, incluindo 12 conjuntos de dados para conjuntos de dados 2D e 6 para 3D. Todas as imagens são pré-processadas em 28x28 (2d) ou 28x28x28 (3D) com os rótulos de classificação correspondentes, para que nenhum conhecimento de fundo seja necessário para os usuários. Cobrindo modalidades de dados primários em imagens biomédicas, o MedMNIST foi projetado para executar a classificação em imagens leves e 3D 2D com várias escalas de dados (de 100 a 100.000) e diversas tarefas (regressão ordinal binária/multi-classe, ordinal e multi-etiqueta). O conjunto de dados resultante, composto por aproximadamente 708 imagens 2D e imagens 3D de 10K no total, poderia suportar numerosos fins de pesquisa e educação na análise de imagem biomédica, visão computacional e aprendizado de máquina. Realizamos vários métodos de linha de base no MEDMNIST, incluindo redes neurais 2D / 3D e ferramentas de código aberto / Automl.
Isenção de responsabilidade : O único link de distribuição oficial para o conjunto de dados MedMnist é o Zenodo. Solicitamos que os usuários consultem este link de conjunto de dados original para obter dados precisos e atualizados.
ATUALIZAÇÃO 2024-01-17 : Estamos entusiasmados em liberar MedMnist+ com tamanhos maiores: 64x64, 128x128 e 224x224 para 2D e 64x64x64 para 3d. Como um complemento para o MedMnist de 28 de tamanho anterior, a versão de grande porte pode servir como uma referência padronizada para modelos de fundação médica. Instale a API mais recente para experimentá -la!
Atualização de terceiros 2024-05-13 : @sdoerrich97 lançou uma avaliação abrangente para o MedMnist+ cobrindo 10 modelos de aprendizado profundo diferentes treinados por meio de 3 esquemas de treinamento distintos em todos os 12 conjuntos de dados 2D e resoluções de imagem disponíveis (28x28, 64x64, 128x128 e 224x24), que pode ser interessante. Verifique o problema aqui.
Atualização de terceiros 2024-12-20 : @Francescodisalvo05 Introduziu o MedMnist-C, uma versão corrompida dos conjuntos de dados MedMNIST, com corrupções de imagem específicas da modalidade e APIs de aumento, inspiradas na referência Imagenet-C. Este trabalho tem como objetivo avaliar e melhorar a robustez do modelo. Verifique o problema aqui.
Para mais detalhes, consulte o nosso artigo:
Medmnist V2: Um benchmark leve em larga escala para classificação de imagem biomédica 2D e 3D (Nature Scientific Data'23)
ou sua versão da conferência:
Classificação MedMnist Decathlon: Um benchmark leve Automl para análise de imagem médica (ISBI'21)
Observe que este conjunto de dados não se destina ao uso clínico.
medmnist/ :dataset.py : conjuntos de dados Pytorch e Dataloaders do MedMnist.evaluator.py : funções de avaliação padronizadas.info.py : informações do dict de dados para cada subconjunto do MedMnist.examples/ :getting_started.ipynb : para explorar o conjunto de dados MedMnist com o Jupyter Notebook. Destina -se apenas a uma exploração rápida, ou seja, não fornece funcionalidades completas de treinamento e avaliação.getting_started_without_PyTorch.ipynb : Este notebook fornece trechos sobre como usar os dados do medmnist (os arquivos .npz ) sem pytorch.setup.py : para instalar medmnist como um módulo.MedMNIST/experiments : Scripts de treinamento e avaliação para reproduzir experimentos 2D e 3D em nosso artigo, incluindo Pytorch, Auto-Sklearn, Autokeras e Google Automl Vision, juntamente com seus pesos;) Configure os ambientes necessários e instale medmnist como um pacote Python padrão da Pypi:
pip install medmnist
Ou instale da fonte:
pip install --upgrade git+https://github.com/MedMNIST/MedMNIST.git
Verifique se você instalou a versão mais recente do código:
>>> import medmnist
>>> print(medmnist.__version__)
O código requer apenas ambientes Python comuns para o aprendizado de máquina. Basicamente, foi testado com
Versões mais altas (ou inferiores) também devem funcionar (talvez com pequenas modificações).
Para usar a versão padrão de 28 tamanho (tipo MNIST), utilizando os arquivos baixados:
>>> from medmnist import PathMNIST
>>> train_dataset = PathMNIST(split="train")
Para ativar o download automático, configurando download=True :
>>> from medmnist import NoduleMNIST3D
>>> val_dataset = NoduleMNIST3D(split="val", download=True)
Como alternativa, você pode acessar o MedMnist+ com tamanhos de imagem maiores especificando o parâmetro size :
>>> from medmnist import ChestMNIST
>>> test_dataset = ChestMNIST(split="test", download=True, size=224)
Ótimo! Nosso código foi projetado para funcionar com o Pytorch.
Explore o conjunto de dados MedMNIST com o Jupyter Notebook ( getting_started.ipynb ) e treine redes neurais básicas em Pytorch.
getting_started_without_PyTorch.ipynb , que fornece trechos sobre como usar os dados do medmnist (os arquivos .npz ) sem pytorch.MedMNIST do torch.utils.data.Dataset para collections.Sequence , você obterá um conjunto de dados padrão sem Pytorch. Verifique dataset_without_pytorch.py para obter mais detalhes. Faça o download do (s) conjunto (s) via Zenodo. Você também pode usar nosso código para baixar automaticamente, configurando download=True no dataset.py .
O conjunto de dados MedMnist contém vários subconjuntos. Cada subconjunto (por exemplo, pathmnist.npz ) é composto por 6 teclas: train_images , train_labels , val_images , val_labels , test_images e test_labels .
train_images / val_images / test_images : N × 28 × 28 para conjuntos de dados em escala de cinza 2D, N × 28 × 28 × 3 para conjuntos de dados 2D RGB, N × 28 × 28 × 28 para conjuntos de dados 3D. N indica o número de amostras.train_labels / val_labels / test_labels : N × L N indica o número de amostras. L indica o número de rótulos de tarefas; para classificação única (binária/multi-classe), L=1 e {0,1,2,3,..,C} denota os rótulos da categoria ( C=1 para binário); Para classificação de vários rótulos L!=1 , por exemplo, L=14 para chestmnist.npz .Além disso, fornecemos um arquivo CSV para cada subconjunto Medmnist aqui, que mapeia o "image_id" no subconjunto para a imagem correspondente no conjunto de dados de origem. Para cada entrada, detalha o "índice dividido" e "índice" específico no subconjunto MedMNIST, juntamente com o nome da imagem correspondente do conjunto de dados de origem oficial.
Liste todos os conjuntos de dados disponíveis:
python -m medmnist available
Baixe os conjuntos de dados disponíveis de um tamanho específico ( size=None (28) por padrão):
python -m medmnist download --size=28
Para baixar todos os tamanhos disponíveis:
python -m medmnist download --size=all
Exclua todos os npz baixados da raiz:
python -m medmnist clean
Imprima os detalhes do conjunto de dados, dado um sinalizador de subconjunto:
python -m medmnist info --flag=xxxmnist
Salve o conjunto de dados como arquivos de figura padrão e CSV, que podem ser usados para ferramentas automáticas, por exemplo, Google Automl Vision:
Para conjuntos de dados 2D:
python -m medmnist save --flag=xxxmnist --folder=tmp/ --postfix=png --download=True --size=28
Para conjuntos de dados 3D:
python -m medmnist save --flag=xxxmnist3d --folder=tmp/ --postfix=gif --download=True --size=28
Por padrão, download=False e size=None (28).
Analise e avalie um arquivo de resultado padrão, consulte o Evaluator.parse_and_evaluate para obter detalhes.
python -m medmnist evaluate --path=folder/{flag}{size_flag}_{split}@{run}.csv
Aqui, size_flag está em branco para 28 imagens e _size para imagens maiores, por exemplo, "_64", por exemplo,, por exemplo,
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]
O conjunto de dados MedMNIST é licenciado sob o Creative Commons Attribution 4.0 International (CC por 4.0), exceto Dermamnist sob Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0). O código está sob licença Apache-2.0.
Se você achar este projeto útil em sua pesquisa, cite os seguintes trabalhos:
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 usando o 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}
}
Cite também documentos de dados de origem dos subconjuntos (s) MedMNIST, conforme a descrição na página do projeto.
v3.0.2 : Bug corrigido no avaliador ( size_flag ) e pypi atualizados.v3.0.1 : Atualizado a mensagem de erro de download para torná -la mais instrutiva.v3.0.0 : MedMnist+ com tamanhos maiores: 64x64, 128x128 e 224x224 para 2d e 64x64x64 para 3d.v2.2.4 : removeu um pequeno número de amostras em branco em organamnista, organcmnista, organsmnista, organmnist3d e vasselmnist3d.v2.2.3 : Licença dermamnist para CC BY-NC 4.0v2.2.2 : Python 3.11 Sequence de coleta.abc suportadav2.2.1 : Informações Pypi atualizadasv2.2.0 : Método montage suportado para imagem Scikit> = 0,20.0v2.1.0 : NoduleMNIST3D Erro de dados corrigidov2.0.0 : Release Medmnist V2 (no Pypi)v1.0.0 : Release Medmnist V1v0.2.0 : Release beta do medmnist