ComponentVision - Sistema de Visão Computacional para Inspeção de Montagem de PCs
Sistema de inspeção por visão computacional para linhas de montagem de computadores usando 8 modelos YOLOv8 treinados, validação de layout espacial ATX e app web em Streamlit, desenvolvido para a UC de Inteligência Artificial.
Automatizando o controlo de qualidade industrial com Visão Computacional.
A montagem de computadores desktop em ambiente industrial exige processos de inspeção rigorosos para garantir que todos os componentes essenciais estão presentes e corretamente instalados antes da expedição. O ComponentVision simula um sistema de inspeção industrial real ao analisar imagens do interior do computador, detetar componentes chave e validar o seu posicionamento espacial.
Desenvolvido para a unidade curricular de Inteligência Artificial do Politécnico do Porto, o projeto treinou e comparou 8 modelos YOLOv8 (nano, small, medium) em ambientes cloud (Roboflow) e local multi-GPU (Kaggle 2x Tesla T4), atingindo 93.4% de mAP@0.5 no modelo de topo. Inclui um motor de validação espacial geométrica (core/spatial.py) e uma app web completa em Streamlit.

App de inspeção em Streamlit mostrando deteção em tempo real, barra de cobertura e checklist espacial
O Problema & Desafios Chave
A inspeção manual em linhas de produção de elevado volume é morosa e suscetível a erro humano. O ComponentVision resolve este problema ao automatizar a verificação de presença para 4 classes críticas: Motherboard, GPU, RAM e CPU Cooler (inferindo a presença da CPU).
A mera deteção de presença é insuficiente: os componentes podem estar mal posicionados ou ocultos. O sistema introduz uma camada de validação espacial geométrica (core/spatial.py) que projeta coordenadas âncora do padrão ATX para identificar componentes em falta (caixa vermelha) ou desalinhados (caixa âmbar).
- Construção de dataset equilibrado com 238 imagens originais (926 anotações) a partir de fotos de 3 PCs reais e do PCPartPicker
- Treino e comparação de 8 variantes YOLOv8 entre Roboflow (A, B, C) e Kaggle com 2x GPU NVIDIA Tesla T4 (D, E, F, G, H)
- Superar a elevada variabilidade visual intra-classe e oclusão de módulos RAM por cablagem interna
- Implementar projeção de coordenadas espaciais 2D (core/spatial.py) a partir de caixas âncora
- Desenvolver uma app em Streamlit com feed de câmara em direto, comparação lado a lado de modelos e exportação de certificados JSON
Arquitetura & Decisões Técnicas
Pipeline de visão computacional end-to-end combinando treino multi-GPU em PyTorch, augmentation em Roboflow/Kaggle, validação geométrica espacial e interface web em Streamlit.
- Benchmark exaustivo de 8 modelos isola o impacto do tamanho da arquitetura (nano vs small vs medium) e a homogeneidade dos dados
- Módulo espacial dedicado (core/spatial.py) desacoplado do modelo de deteção para validação geométrica de montagem ATX
- Latência de inferência local em CPU inferior a 3ms permite execução na periferia (edge) sem dependência da nuvem
- Portal web em Streamlit permite aos operadores realizar comparações de modelos lado a lado e exportar relatórios certificados
Stack Tecnológica & Infraestrutura
Diagramas e Interfaces do Projeto

App de inspeção em Streamlit mostrando deteção em tempo real, barra de cobertura e checklist espacial

Comparação de AP@0.5 entre os 8 modelos YOLOv8 para Motherboard, GPU, RAM e CPU Cooler

Interface de comparação lado a lado de dois modelos no Streamlit

Motor de validação espacial (core/spatial.py) projetando componentes em falta com caixas tracejadas a vermelho

Exemplo de deteção bem sucedida de múltiplos componentes com elevada confiança

Análise de modos de falha: oclusão de RAM por cablagem interna e CPU Cooler de formato atípico

Curvas de treino e validação do Modelo A (YOLOv8n, 307 épocas, 93.4% mAP@0.5)