Este repositório tem como objetivo comparar a generalização de modelos de visão treinados para classificação de lesões de pele em datasets distintos.
Serão utilizados modelos baseados em CNNs e ViTs. Os datasets a serem comparados são o PAD-UFES-20 e os datasets ISIC (2019 e 2020 combinados).
# Instalar ferramentas de compressão se necessário
sudo apt-get install unzip
# Ou no macOS
brew install unzipO uv é um gerenciador de pacotes Python ultra-rápido. Para instalar:
curl -LsSf https://astral.sh/uv/install.sh | sh# Criar ambiente virtual e instalar dependências
uv sync
# Ativar o ambiente virtual
source .venv/bin/activatemkdir -p data/isic2019
mkdir -p data/isic2020
mkdir -p data/pad_ufes_20Para facilitar o processo, criamos um script que baixa e extrai todos os datasets automaticamente:
# Executar o script de download automatizado
./download_datasets.shTempo estimado: 2-4 horas dependendo da velocidade da sua conexão.
Se preferir baixar manualmente ou tiver problemas com o script automatizado, siga as instruções detalhadas nas seções 4 e 5.
O ISIC 2019 Challenge foi focado na classificação de imagens dermoscópicas entre nove categorias diagnósticas diferentes.
cd data/isic2019
# Baixar as imagens de treinamento (~9.1GB)
curl -C - -L -O --retry 10 --retry-delay 2 --retry-max-time 0 \
https://isic-challenge-data.s3.amazonaws.com/2019/ISIC_2019_Training_Input.zip
# Baixar os metadados de treinamento
curl -O https://isic-challenge-data.s3.amazonaws.com/2019/ISIC_2019_Training_GroundTruth.csv
# Baixar as imagens de teste (~3.6GB)
curl -C - -L -O --retry 10 --retry-delay 2 --retry-max-time 0 \
https://isic-challenge-data.s3.amazonaws.com/2019/ISIC_2019_Test_Input.zip
# Baixar os metadados de teste
curl -O https://isic-challenge-data.s3.amazonaws.com/2019/ISIC_2019_Test_GroundTruth.csv# Extrair as imagens de treinamento
unzip ISIC_2019_Training_Input.zip
# Extrair as imagens de teste
unzip ISIC_2019_Test_Input.zip# Contar imagens de treinamento
ls ISIC_2019_Training_Input/*.jpg | wc -l
# Deve retornar: 25331
# Contar imagens de teste
ls ISIC_2019_Test_Input/*.jpg | wc -l
# Deve retornar: 8238O ISIC 2020 Challenge focou na classificação de lesões de pele com dados clínicos adicionais.
cd data/isic2020
# Baixar as imagens de treinamento (JPEG - ~23GB)
curl -C - -L -O --retry 10 --retry-delay 2 --retry-max-time 0 \
https://isic-challenge-data.s3.amazonaws.com/2020/ISIC_2020_Training_JPEG.zip
# Baixar os metadados de treinamento
curl -O https://isic-challenge-data.s3.amazonaws.com/2020/ISIC_2020_Training_GroundTruth_v2.csv
# Baixar as imagens de teste (JPEG - ~6.7GB)
curl -C - -L -O --retry 10 --retry-delay 2 --retry-max-time 0 \
https://isic-challenge-data.s3.amazonaws.com/2020/ISIC_2020_Test_JPEG.zip
# Baixar os metadados de teste
curl -O https://isic-challenge-data.s3.amazonaws.com/2020/ISIC_2020_Test_Metadata.csv# Extrair as imagens de treinamento
unzip ISIC_2020_Training_JPEG.zip
# Extrair as imagens de teste
unzip ISIC_2020_Test_JPEG.zip# Contar imagens de treinamento
ls ISIC_2020_Training_JPEG/*.jpg | wc -l
# Deve retornar: 33126
# Contar imagens de teste
ls ISIC_2020_Test_JPEG/*.jpg | wc -l
# Deve retornar: 10982# Extrair as imagens de treinamento
unzip ISIC_2020_Training_JPEG.zip
# Extrair as imagens de teste
unzip ISIC_2020_Test_JPEG.zip# Contar imagens de treinamento
ls ISIC_2020_Training_JPEG/*.jpg | wc -l
# Deve retornar: 33126
# Contar imagens de teste
ls ISIC_2020_Test_JPEG/*.jpg | wc -l
# Deve retornar: 10982O ISIC 2019 Challenge foi focado na classificação de imagens dermoscópicas entre nove categorias diagnósticas diferentes, conforme descrito no desafio oficial.
Características principais:
- Total de imagens de treinamento: 25,331
- Total de imagens de teste: 8,238
- Formato das imagens: JPEG
- Licença: CC-BY-NC (Creative Commons Attribution-NonCommercial)
- Métrica de avaliação: Normalized multi-class accuracy (balanced across categories)
Nove categorias diagnósticas:
- Melanoma - Melanoma maligno
- Melanocytic nevus - Nevo melanocítico (benigno)
- Basal cell carcinoma - Carcinoma basocelular
- Actinic keratosis - Ceratose actínica (pré-maligna)
- Benign keratosis - Ceratose benigna (solar lentigo/seborrheic keratosis/lichen planus-like keratosis)
- Dermatofibroma - Dermatofibroma (benigno)
- Vascular lesion - Lesão vascular
- Squamous cell carcinoma - Carcinoma espinocelular
- None of the others - Nenhuma das outras categorias
Estrutura dos metadados: O arquivo CSV contém colunas one-hot encoding para cada categoria diagnóstica, onde cada imagem tem valor 1.0 para sua categoria correta e 0.0 para as demais.
O ISIC 2020 Challenge focou na classificação de lesões de pele com dados clínicos adicionais e contexto clínico.
Características principais:
- Total de imagens de treinamento: 33,126
- Total de imagens de teste: 10,982
- Formato das imagens: JPEG
- Licença: CC-BY-NC (Creative Commons Attribution-NonCommercial)
Distribuição das doenças (Training Set):
Lesões Benignas (32,542 imagens):
- Unknown/Desconhecido: 27,124 imagens (83.4%)
- Nevus: 5,193 imagens (16.0%)
- Seborrheic Keratosis: 135 imagens (0.4%)
- Lentigo NOS: 44 imagens (0.1%)
- Lichenoid Keratosis: 37 imagens (0.1%)
- Solar Lentigo: 7 imagens (<0.1%)
- Cafe-au-lait Macule: 1 imagem (<0.1%)
Lesões Malignas (584 imagens):
- Melanoma: 584 imagens (1.8%)
- Atypical Melanocytic Proliferation: 1 imagem (<0.1%)
Características do dataset:
- Distribuição: 98.2% benignas, 1.8% malignas
- Maioria das imagens: Marcadas como "unknown" (diagnóstico não especificado)
- Lesão mais comum: Nevus (5,193 casos confirmados)
- Câncer principal: Melanoma (584 casos)
- Dados clínicos: Inclui sexo, idade aproximada, localização anatômica
Estrutura dos metadados: O arquivo CSV contém as seguintes colunas:
image_name: Nome da imagempatient_id: ID do pacientelesion_id: ID da lesãosex: Sexo do paciente (male/female)age_approx: Idade aproximadaanatom_site_general_challenge: Localização anatômicadiagnosis: Diagnóstico específicobenign_malignant: Classificação binária (benign/malignant)target: Label numérico (0=benign, 1=malignant)
Para o dataset ISIC 2019:
International Skin Imaging Collaboration. ISIC 2019 Challenge Dataset. International Skin Imaging Collaboration, 2019.
Para o dataset ISIC 2020:
International Skin Imaging Collaboration. SIIM-ISIC 2020 Challenge Dataset. International Skin Imaging Collaboration https://doi.org/10.34970/2020-ds01 (2020).
Para o dataset ISIC 2020 (citação completa):
Rotemberg, V., Kurtansky, N., Betz-Stablein, B., Caffery, L., Chousakos, E., Codella, N., Combalia, M., Dusza, S., Guitera, P., Gutman, D., Halpern, A., Helba, B., Kittler, H., Kose, K., Langer, S., Lioprys, K., Malvehy, J., Musthaq, S., Nanda, J., Reiter, O., Shih, G., Stratigos, A., Tschandl, P., Weber, J. & Soyer, P. A patient-centric dataset of images and metadata for identifying melanomas using clinical context. Sci Data 8, 34 (2021). https://doi.org/10.1038/s41597-021-00815-z
cd data/pad_ufes_20
# Baixar o dataset
curl -C - -L -O --retry 10 --retry-delay 2 --retry-max-time 0 \
https://prod-dcd-datasets-cache-zipfiles.s3.eu-west-1.amazonaws.com/zr7vgbcyr2-1.zip
# Extrair o arquivo baixado
unzip zr7vgbcyr2-1.zip
# Verificar a estrutura dos diretórios
ls -la# Contar total de imagens
find . -name "*.png" | wc -l
# Deve retornar: 2298
# Verificar metadados
ls *.csv
# Deve mostrar o arquivo de metadados- Total de amostras: 2,298
- Total de pacientes: 1,373
- Total de lesões: 1,641
- Formato das imagens: PNG
- Tipos de lesões: 6 classes
- Licença: CC BY 4.0 (Creative Commons Attribution 4.0)
- Basal Cell Carcinoma (BCC) - Carcinoma basocelular
- Squamous Cell Carcinoma (SCC) - Carcinoma espinocelular
- Melanoma (MEL) - Melanoma
- Actinic Keratosis (ACK) - Ceratose actínica
- Seborrheic Keratosis (SEK) - Ceratose seborreica
- Nevus (NEV) - Nevo
Nota: BCC, SCC e MEL são biópsia-comprovados. Os demais podem ter diagnóstico clínico por consenso de dermatologistas.
Cada amostra inclui até 22 características clínicas:
- Idade do paciente
- Localização da lesão
- Tipo de pele Fitzpatrick
- Diâmetro da lesão
- E outras características clínicas
Para usar este dataset, você deve citar:
Pacheco, Andre G. C., et al. "PAD-UFES-20: a skin lesion dataset composed of patient data and clinical images collected from smartphones." Mendeley Data, V1, 2020. https://doi.org/10.17632/zr7vgbcyr2.1
Artigo relacionado: https://doi.org/10.1016/j.compbiomed.2019.103545
Após o download de todos os datasets, sua estrutura deve ficar assim:
data/
├── isic2019/
│ ├── ISIC_2019_Training_Input/
│ ├── ISIC_2019_Test_Input/
│ ├── ISIC_2019_Training_GroundTruth.csv
│ └── ISIC_2019_Test_GroundTruth.csv
├── isic2020/
│ ├── ISIC_2020_Training_JPEG/
│ ├── ISIC_2020_Test_JPEG/
│ ├── ISIC_2020_Training_GroundTruth_v2.csv
│ └── ISIC_2020_Test_Metadata.csv
└── pad_ufes_20/
├── images/
├── metadata.csv
└── outros_arquivos/