Este repositório contém o código, dados e resultados do Trabalho de Conclusão de Curso (TCC) sobre detecção de câncer com abordagens de visão computacional (CNN e YOLO) e análise de dados tabulares.
Resumo geral:
- Objetivo: Desenvolver e comparar modelos para detecção/classificação de lesões mamárias usando imagens (ultrassom e mamografia) e análise tabular (WBCD).
- Abordagens: Redes neurais convolucionais (CNN) treinadas com validação cruzada, detecção/treinamento com YOLO (detecção de objetos) e classificadores tradicionais em dados tabulares (SVM, Regressão Logística, Random Forest).
Estrutura do repositório:
- cnn_busi/: Notebooks, gráficos e resultados para o dataset BUSI (ultrassom). Contém
cancer_detection.ipynbe resultados emcv_results/. - cnn_CBIS/: Experimentos com dataset CBIS (mamografia). Contém
cancer_detection.ipynbecv_results/. - yolo-BUSI/ e yolo_cbis/: Experimentos YOLO (treinamento por folds, uso de
yolo26n-cls.pte arquivos de configuração). Notebooks para preparação e treinamento dos folds. - dados tabulares/: Análises do dataset WBCD (
Treinamento_WBCD.ipynbewdbc.csv). Contém experimentos com SVM, Regressão Logística e Random Forest. - cv_results/: Resultados de validação cruzada, métricas agregadas e diagnósticos por fold.
Principais notebooks e o que fazem:
cnn_busi/cancer_detection.ipynb: Pipeline completo para carregar imagens (dataset/edataset_teste/), pré-processamento, definição de uma CNN simples (camadas Conv2D, BatchNormalization, MaxPooling, Dense + Dropout), treinamento com K-Fold (N=5), avaliação (precision/recall/f1/confusion matrix), salvamento de modelos e geração de relatórios emcv_results/.cnn_CBIS/cancer_detection.ipynb: Similar ao notebook BUSI, porém adaptado para problema binário (maligno/benigno) e métricas apropriadas. Usabinary_crossentropye métricas de precisão/recall.yolo-BUSI/YOLO_cancer_detection.ipynb: Preparação dos folds (cópia de imagens por fold), configuração e treino do modelo YOLO (usandoultralyticseyolo26n-cls.yaml/yolo26n-cls.pt), salvamento dos resultados em projetos separados.dados tabulares/Treinamento_WBCD.ipynb: Leitura dowdbc.csv, análise exploratória, pré-processamento (StandardScaler), pipelines comsklearne validação cruzada estratificada para comparar SVM, Regressão Logística e Random Forest.
Detalhes de implementação (resumo técnico):
- CNNs: Arquitetura leve com camadas Conv2D (16, 32, 16), BatchNormalization, MaxPooling, Flatten → Dense(256) + Dropout(0.5). Treino por até
EPOCHS = 40,BATCH_SIZE = 32,IMAGE_SIZE = (256,256), K-Fold comN_SPLITS = 5. - YOLO: Treinamento por folds com
StratifiedKFold,imgszconfigurável (ex.: 224),epochs = 40. Usa a APIultralytics.YOLOpara treinar e gerar métricas por treino. - Tabular: Pipelines
sklearncomStandardScaler,StratifiedKFoldecross_validatepara obter métricas robustas (accuracy, precision, recall, f1, ROC-AUC).
Como executar (recomendações):
- Pré-requisitos: Python 3.8+; pacotes:
tensorflow(versão compatível com sua GPU/OS ou CPU),torch,ultralytics,scikit-learn,opencv-python,pandas,numpy,matplotlib,seaborn. - Abrir os notebooks com Jupyter Notebook / JupyterLab e executar as células sequencialmente. Ajuste caminhos
DATA_DIR/TEST_DIRquando necessário.
- Em sistemas Windows, caso deseje utilizar GPU, verifique previamente a compatibilidade entre as versões do TensorFlow, CUDA e cuDNN.
- Caso nenhuma GPU compatível seja detectada, os scripts serão executados automaticamente em CPU.
Os datasets de imagens utilizados neste projeto não estão incluídos neste repositório devido ao seu tamanho e às restrições de distribuição.
Eles podem ser obtidos nos seguintes links:
-
BUSI (Breast Ultrasound Images Dataset)
https://www.kaggle.com/datasets/sabahesaraki/breast-ultrasound-images-dataset -
CBIS-DDSM (Curated Breast Imaging Subset of DDSM)
https://www.cancerimagingarchive.net/collection/cbis-ddsm/ -
Dataset tabular disponibilizado em formato csv no repositório, pode ser encontrado originalmente em: https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data.
Resultados e artefatos gerados:
- Resultados de validação e métricas em
cv_results/(JSONs comofold_evaluation_summary.json,precision_recall_f1_summary.json). - Checkpoints/experimentos YOLO em
yolo-BUSI/runs/ou em projetosTCC_Resultados_BUSIcriados durante o treino.