

Skin Analyser — AI Skin Lesion Triage
Classification pipeline for dermoscopic images from the public HAM10000 dataset: OpenCV preprocessing, lesion-level splits with no data leakage, 8 CNN architectures compared with transfer learning, and evaluation by F1, recall, AUC and confusion matrix. Best result on the lesion-level test set: ResNet50, with 73% recall and 0.85 AUC for melanoma. A triage project: it does not diagnose.
Key Features
Train, validation and test sets split by lesion (lesion_id) with class stratification: photos of the same lesion never land in different partitions.
8 architectures (MobileNetV2, EfficientNetB0, ResNet50, InceptionV3, DenseNet121, Xception, VGG19 and NASNetMobile) compared under an identical protocol, in a parameterized pipeline where only the configuration changes.
Runs and metrics persisted in Supabase, with a daily KPI dashboard — accuracy, sensitivity and specificity — built on PostgreSQL materialized views.
Technical Challenges
Designing validation so the numbers mean something: HAM10000 has several photos of the same lesion, so splits are lesion-level, and recall is prioritized for the class with the highest clinical risk.
Controlling overfitting with augmentation, dropout, L2 regularization, early stopping and learning-rate reduction on plateau, tracking the train/validation gap every epoch.
Other Projects
Explore other projects and solutions I have built.
Portfolio
Featured Projects
Modern, responsive personal portfolio with bilingual support (EN/PT), dark theme, smooth animations, and a secure contact form powered by EmailJS and reCAPTCHA v3.
Async REST API built with FastAPI that exposes four datasets from Brazil's Federal Transparency Portal (CGU) — corporate card spending, official travel, contracts and public bids — through versioned /v1/ endpoints. Every page fetched is normalized and stored in PostgreSQL, and stored records can be filtered by agency, period and value range.
Agent that sorts incoming email into 8 semantic categories with an LLM running locally (Ollama + llama3.1), orchestrated by self-hosted n8n on Docker Compose. Prompt, categories and thresholds live in versioned YAML, and no content is sent to third-party APIs.
Classification pipeline for dermoscopic images from the public HAM10000 dataset: OpenCV preprocessing, lesion-level splits with no data leakage, 8 CNN architectures compared with transfer learning, and evaluation by F1, recall, AUC and confusion matrix. Best result on the lesion-level test set: ResNet50, with 73% recall and 0.85 AUC for melanoma. A triage project: it does not diagnose.