Pular para o conteúdo principal
Voltar aos casos de estudo Cliente confidencial

Inspeção de parafusos com visão artificial

Visão por computador para inspecionar parafusos M2. Cliente confidencial, em produção em linhas de montagem; demo com dataset público.

Computer Vision Visão artificial Python PyTorch Controlo de qualidade Indústria
93,2%
Acerto OK/NOK em teste
1.536
Fotos reais de teste
13–22 ms
Por foto, em CPU
Cliente confidencial - Visão geral do projeto

Projeto de visão por computador desenvolvido pela Soamee para um cliente industrial, hoje em produção em linhas de montagem com maquinaria real. Um acordo de confidencialidade impede-nos de nomear o cliente.

Em produção e demo pública

O que vê nesta página é uma réplica: foi treinada e avaliada com um dataset público. Os ecrãs, imagens e métricas abaixo vêm daí. O sistema do cliente funciona em produção em linhas de montagem e, pelo acordo de confidencialidade, não podemos mostrar nada dele.

Uma configuração possível inclui alimentador vibratório, transportador, câmaras de cabeça e perfil e rejeição pneumática controlada por PLC. É um exemplo de maquinaria compatível, não a identificação dos equipamentos do cliente.

As imagens são do M2 Screw Defect Detection Dataset, publicado por R. P. Prastio e R. W. Indrawan (Universidade Airlangga) com licença CC BY 4.0: 5.536 fotografias de parafusos M2 tiradas numa estação de inspeção ótica.

O desafio

Numa linha de parafusos, a inspeção costuma fazer-se por amostragem: retiram-se algumas peças por lote e verificam-se à mão ou com calibre. Um parafuso M2 tem dois milímetros de diâmetro, e um defeito na rosca ou na cabeça mal se vê sem lupa.

O dataset fotografa cada parafuso duas vezes: a cabeça vista de cima, sobre fundo preto, e a rosca de perfil, em contraluz. Cada fotografia está marcada como OK ou NG (defeituosa). Nas NG veem-se rebarbas, filetes esmagados, cabeças deformadas ou mal estampadas e manchas no metal.

Como o resolvemos

Recorte automático

Na fotografia original, o parafuso ocupa muito pouco do enquadramento. Se a imagem inteira for reduzida para a dar a uma rede neuronal, o defeito desaparece. Por isso, o primeiro passo localiza o parafuso (a cabeça brilhante sobre o fundo preto, ou a silhueta escura contra a luz) e recorta um quadrado à sua volta.

Um classificador por zona

Treinámos duas redes ResNet-18, uma para a cabeça e outra para a rosca, a partir dos pesos públicos do ImageNet. Cada uma aprende com 1.700 fotografias e usa outras 300 para escolher a melhor versão durante o treino. As fotografias de teste dos autores (536 de cabeça e 1.000 de rosca) não se tocam até ao fim.

Onde olhou o modelo

Uma rede que diz “NG” sem explicar porquê é difícil de defender perante um responsável de qualidade. Para cada peça rejeitada calculamos um mapa Grad-CAM, que assinala a zona da imagem que mais pesou na decisão. O dashboard marca-a com uma caixa. Não é um contorno medido do defeito: é uma pista para o operador saber onde olhar.

Galeria de inspeções do dashboard de parafusos

Arquitetura

Arquitetura do sistema de inspeção de parafusos

O modelo exporta um JSON por lote que alimenta um dashboard estático: fotografias inspecionadas, peças rejeitadas por zona, decisões do modelo face à etiqueta real e a galeria de inspeções, erros incluídos.

Resultados da avaliação pública

Avaliação sobre as 1.536 fotografias de teste dos autores:

ZonaAcertoDeteta NGPrecisão NGBons rejeitadosFotos
Cabeça95,9%95,7%96,4%3,9%536
Rosca91,8%85,6%97,7%2,0%1.000

No conjunto acerta em 93,2% das fotografias e demora entre 13 e 22 ms por fotografia num portátil, sem GPU.

A cabeça funciona bem: de 279 parafusos defeituosos escapam 12, e de 257 bons rejeita 10. A rosca é mais difícil. Rejeita muito poucos parafusos bons (10 em 500), mas deixa passar 72 de 500 defeituosos. Numa linha real, é esse o número a baixar, mesmo que à custa de rejeitar algum parafuso bom a mais: baixar o limiar de decisão, acrescentar uma segunda vista da rosca ou melhorar a iluminação do perfil.

A galeria de inspeções mostra também estes erros, com a etiqueta real ao lado do veredicto do modelo.

O que se constrói por cima

O modelo é a peça central, mas numa fábrica usa-se através de ecrãs. Estes três funcionam com os resultados do lote de teste.

Posto do operador: veredicto, zona do defeito e confirmação da rejeição

Posto do operador. O veredicto lê-se a dois metros, com a zona em que o modelo se fixou e a sua confiança. O operador confirma a rejeição com uma tecla ou envia a peça para revisão se achar que está boa. A qualidade recebe um aviso quando a taxa de defeituosos que passam como bons ultrapassa o aceitável, como os 14,4% da rosca neste lote.

Revisão e retreino: fila de peças duvidosas e desempenho do modelo

Revisão e retreino. As peças com confiança baixa e os erros do modelo formam uma fila que a qualidade revê: neste lote são 104 fotografias, 82 de rosca e 22 de cabeça. Com elas treina-se uma versão nova, que só substitui a da linha se melhorar no mesmo teste.

Qualidade por zona: acerto, decisões do modelo e erros do lote

Qualidade por zona. Acerto e rejeições de cabeça e rosca, a decomposição das decisões do modelo e os erros concretos para os rever. A fase seguinte é ligar a rejeição ao PLC da linha e levar os NOK ao MES e ao ERP. Essa integração com PLC já a temos a funcionar em produção num projeto que não podemos publicar por confidencialidade.

Antes de o levar para outro ambiente

  • Fotografias da linha do cliente: com a sua câmara, a sua iluminação e os seus defeitos. Um modelo treinado com fotografias de outra estação não se pode instalar tal como está.
  • Limiar decidido com a qualidade: quanto custa um defeituoso que chega ao cliente face a um bom que se descarta. Com isso escolhe-se o ponto de corte.
  • Integração com a linha: disparo da câmara sincronizado com o transportador e um sinal ao PLC para desviar a peça rejeitada.

Começamos sempre com uma fase de viabilidade na fábrica: algumas semanas a fotografar peças reais antes de nos comprometermos com números de deteção.

Stack técnico

ComponenteTecnologia
RecortePython, OpenCV
ClassificaçãoPyTorch, ResNet-18 ajustada (cabeça e rosca)
ExplicaçãoGrad-CAM
AvaliaçãoFotografias de teste dos autores, sem uso no treino
DashboardHTML estático, Chart.js

Fotografias: M2 Screw Defect Detection Dataset, R. P. Prastio e R. W. Indrawan, Universidade Airlangga (2026), doi:10.17632/2y6mcsyrpy.2, CC BY 4.0. Recortadas para o treino e a galeria.

Metodologia

Como trabalhamos

Cada projeto segue o nosso processo artesanal, adaptado as necessidades especificas de cada cliente.

01

Discovery & Requisitos

Imersao no negócio, utilizadores e objetivos. Workshops de ideação, pesquisa de mercado e definição do escopo MVP.

02

Design & Arquitetura

Wireframes, protótipos interativos e arquitetura técnica. Validação com cliente antes de escrever código.

03

Desenvolvimento & Testing

Sprints de 2 semanas com demos. CI/CD, code review e testing contínuo. Feedback em cada iteração.

04

Entrega & Evolução

Deploy em produção, monitorização e suporte. Métricas pos-lançamento e roadmap de melhorias contínuas.

Pronto para construir algo incrível?

Vamos falar sobre como podemos ajudar a sua empresa a alcançar resultados como estes.

Visão artificial no controlo de parafusos

Conte-nos seu desafio. Propomos uma solução.

Sem compromisso. Respondemos em menos de 24 horas e em 48 horas você recebe uma proposta com escopo, cronograma e orçamento. Sem letras miúdas.

Agende uma call gratuita →