Este projeto tem como objetivo desenvolver, testar e otimizar um modelo de aprendizado de máquina para pré-classificação de risco de câncer de pele usando imagens dermatoscópicas da base de dados ISIC Archive.
- Visão Geral
- Base de Dados
- Fluxo de Trabalho
- Estrutura do Projeto
- Requisitos
- Instalação
- Aquisição e Exploração dos Dados
- Preparação dos Dados
- Teste e Seleção de Modelos
- Otimização e Ajustes Finos
- Avaliação
- Como Contribuir
- Licença
- Contato
O objetivo deste repositório é criar um pipeline completo de pré-classificação de risco de câncer de pele, desde a aquisição e exploração dos dados até a otimização do modelo. O foco principal é o uso de técnicas de visão computacional e aprendizado profundo para auxiliar na triagem de lesões cutâneas.
Este projeto utiliza a base de dados disponível em:
- ISIC Archive: https://www.isic-archive.com/
A base contém imagens dermatoscópicas rotuladas com diferentes tipos de lesões, incluindo melanoma e nevos benignos.
- Aquisição e Exploração dos Dados: download, inspeção e análise exploratória das imagens e metadados.
- Preparação dos Dados: pré-processamento, balanceamento, aumento de dados (data augmentation).
- Teste e Seleção de Modelos: definição de arquiteturas candidatas (por exemplo, CNNs, transfer learning), experimentação e comparação de desempenho.
- Otimização e Ajustes Finos: ajuste de hiperparâmetros, fine-tuning de modelos pré-treinados, validação cruzada e análise de métricas.
├── data/ # Dados brutos e processados
├── notebooks/ # Jupyter notebooks de exploração e experimentos
├── src/ # Código-fonte do pipeline
│ ├── data/ # Scripts de aquisição e pré-processamento
│ ├── models/ # Definições de modelos e treinamento
│ └── utils/ # Funções auxiliares
├── models/ # Modelos treinados e checkpoints
├── reports/ # Relatórios, gráficos e resultados
├── requirements.txt # Dependências do Python
└── README.md # Documentação deste repositório
- Python 3.13
- uv (gerenciador de pacotes e ambientes) – instale seguindo https://docs.astral.sh/uv/
- Bibliotecas de Python (definidas em
requirements.txt):- numpy, pandas, scikit-learn
- matplotlib, seaborn
- tensorflow ou pytorch
- albumentations (opcional para data augmentation)
- opencv-python
- Clone o repositório:
git clone https://github.com/seu-usuario/seu-repo-cancer-pele.git cd seu-repo-cancer-pele - Instale o uv (caso ainda não tenha):
curl -LsSf https://astral.sh/uv/install.sh | sh - Instale o Python 3.13 via uv:
uv python install 3.13
- Crie e ative o ambiente virtual:
uv venv source .venv/bin/activate # Linux/macOS
- Instale as dependências do projeto com uv:
uv pip sync requirements.txt
- Autentique-se no ISIC Archive e obtenha as credenciais de acesso.
- Utilize o script em
src/data/download_isic.pypara baixar imagens e metadados. - Execute o notebook
notebooks/exploracao_dados.ipynbpara visualizar distribuições de classes e exemplos de imagens.
- Conversão de formatos de imagem e normalização.
- Balanceamento de classes (undersampling/oversampling).
- Aumento de dados (rotations, flips, ajustes de brilho/contraste).
- Divisão em conjuntos de treino, validação e teste.
Scripts: src/data/preprocess.py
- Definição de arquiteturas (CNN do zero ou transfer learning, ex.: ResNet, EfficientNet).
- Treinamento inicial para comparação de acurácia, sensibilidade e especificidade.
Notebooks: notebooks/teste_modelos.ipynb
- Grid Search ou Random Search para hiperparâmetros.
- Fine-tuning de modelos pré-treinados com camadas adicionais.
- Validação cruzada e análise de curvas de aprendizagem.
Notebooks: notebooks/otimizacao_hiperparametros.ipynb
- Métricas: AUC-ROC, precisão, recall e F1-score.
- Matriz de confusão e gráficos de curvas ROC.
- Relatório de resultados em
reports/.
- Fork este repositório.
- Crie uma branch:
git checkout -b minha-nova-feature. - Faça commits das suas alterações:
git commit -m 'Adiciona feature X'. - Envie para o branch original:
git push origin minha-nova-feature. - Abra um Pull Request.
Este projeto está licenciado sob a MIT License.
-
Autor: Giovanni Giampauli
-
E-mail: giovanni.acg@gmail.com
-
Repositório: https://github.com/DermAlert/dermalert-ml