Skip to content

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Classificação Hierárquica em Cascata para Diagnóstico de Lesões Cutâneas

Python TensorFlow ResNet50 Status

Repositório oficial contendo os códigos e experimentos do meu Trabalho de Conclusão de Curso (TCC).

Este projeto propõe uma arquitetura de Deep Learning em cascata para mitigar o viés de classes majoritárias no diagnóstico de câncer de pele, com foco especial na subpopulação de pacientes idosos (>= 60 anos), que sofrem com as assinaturas visuais complexas da senescência cutânea.


Arquitetura Proposta

Modelos multiclasse diretos frequentemente negligenciam o Melanoma devido ao desbalanceamento massivo de dados (excesso de Nevus). Para resolver isso, este projeto dividiu o problema em dois níveis utilizando ResNet50 via Transfer Learning:

  1. Filtro Binário (Triagem): Separa as imagens em Benignas ou Malignas/Risco. Retém a maior parte dos ruídos diagnósticos.
  2. Filtro Especialista Oncológico: Recebe apenas os casos suspeitos e classifica entre as classes de alto risco (Melanoma, Carcinoma Basocelular, Carcinoma Espinocelular, etc.).

Datasets Utilizados

Os experimentos foram conduzidos de forma estritamente independente em dois dos maiores repositórios dermatoscópicos mundiais. Devido ao limite de tamanho do GitHub, as matrizes de imagens originais devem ser baixadas em suas fontes oficiais:

Nota: Os arquivos .csv com os metadados demográficos estão disponíveis na pasta /metadata deste repositório.

Estrutura do Repositório

Optou-se por separar os experimentos em Jupyter Notebooks individuais e agrupá-los por base de dados para garantir total reprodutibilidade acadêmica de cada fase do estudo.

📦 TCC-Cascata-Melanoma
 ┣ 📂 metadata/                # Arquivos CSV (GroundTruth e Metadados originais)
 ┣ 📂 notebooks/               # Scripts de treinamento e avaliação
 ┃ ┣ 📂 HAM10000/              # Experimentos com a base HAM10000
 ┃ ┃ ┣ 📜 01_Baseline_HAM10000.ipynb
 ┃ ┃ ┣ 📜 02_Filtro_Binario_HAM10000.ipynb
 ┃ ┃ ┗ 📜 03_Filtro_Especialista_HAM10000.ipynb
 ┃ ┗ 📂 ISIC/                  # Experimentos com a base ISIC 2019
 ┃   ┣ 📜 01_Baseline_ISIC.ipynb
 ┃   ┣ 📜 02_Filtro_Binario_ISIC.ipynb
 ┃   ┗ 📜 03_Filtro_Especialista_ISIC.ipynb
 ┗ 📜 README.md                # Documentação do projeto

Modelos Pré-treinados (Pesos)

Para facilitar a reprodutibilidade e permitir o uso imediato do sistema em cascata sem a necessidade de retreinar as redes do zero, os pesos finais dos modelos (.keras) foram disponibilizados publicamente na seção Releases deste repositório.

  • Clique aqui para acessar a página de Releases e baixar os modelos originais

Exemplo de carregamento rápido:

from tensorflow.keras.models import load_model
modelo = load_model('caminho_do_download/ResNet50_Filtro_Binario_ISIC.keras')

Principais Resultados

A abordagem em cascata demonstrou ser uma ferramenta altamente confiável de Suporte ao Diagnóstico (CAD), especialmente na faixa demográfica de maior risco. Ao isolar a classe majoritária, o sistema reduziu drasticamente os falsos negativos para o câncer mais letal da pele.

Sensibilidade específica para detecção de Melanoma (Pacientes Idosos >= 60 anos):

  • ISIC 2019: Salto de 62,0% (Baseline) para 93,5% (Filtro Especialista)
  • HAM10000: Salto de 44,9% (Baseline) para 98,8% (Filtro Especialista)

Como Executar

  1. Clone o repositório: git clone https://github.com/PedroWerlang/TCC.git
  2. Baixe as imagens originais nos links oficiais citados acima e organize-as no formato de diretórios exigido pelo ImageDataGenerator do Keras (/Train, /Val, /Test).
  3. Altere os caminhos das variáveis base_dir e caminho_salvamento nos notebooks de acordo com o seu ambiente (Google Drive ou Local).
  4. Execute as células sequencialmente.

Desenvolvido por Pedro Valentim Mozzaquatro Werlang para o Trabalho de Conclusão de Curso (2026) do curso Ciência da Computação do Instituto da Computação.

About

Desenvolvimento de um modelo para classificação de câncer de pele e análisar os resultados para pacientes idosos.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages