Saltar al contenido principal
Volver a casos de estudio Cliente confidencial

Inspección de tornillos con visión artificial

Visión por computador para inspeccionar tornillos M2. Cliente confidencial, en producción en líneas de montaje; demo con dataset público.

Computer Vision Visión artificial Python PyTorch Control de calidad Industria
93,2%
Acierto OK/NOK en test
1.536
Fotos reales de test
13–22 ms
Por foto, en CPU
Cliente confidencial - Vista general del proyecto

Proyecto de visión por computador desarrollado por Soamee para un cliente industrial, hoy en producción en líneas de montaje con maquinaria real. Un acuerdo de confidencialidad nos impide nombrar al cliente.

En producción y demo pública

Lo que ves en esta página es una réplica: la hemos entrenado y evaluado con un dataset público. Las pantallas, imágenes y métricas de abajo salen de ahí. El sistema del cliente funciona en producción en líneas de montaje y, por el acuerdo de confidencialidad, no podemos mostrar nada de él.

Una configuración posible es un alimentador vibratorio de tornillos, un transportador, cámaras de cabeza y perfil y un expulsor neumático gobernado por PLC. Es un ejemplo de maquinaria compatible, no la identificación de los equipos del cliente.

Las imágenes son del M2 Screw Defect Detection Dataset, publicado por R. P. Prastio y R. W. Indrawan (Universidad Airlangga) con licencia CC BY 4.0: 5.536 fotos de tornillos M2 tomadas en una estación de inspección óptica.

El reto

En una línea de tornillería la inspección suele hacerse por muestreo: se sacan unas cuantas piezas por lote y se revisan a mano o con galga. Un tornillo M2 mide dos milímetros de diámetro, y un defecto en la rosca o en la cabeza no se ve a simple vista sin lupa.

El dataset fotografía cada tornillo dos veces: la cabeza desde arriba, sobre fondo negro, y la rosca de perfil, a contraluz. Cada foto viene marcada como OK o NG (defectuosa). En las NG se ven rebabas, filetes aplastados, cabezas deformadas o mal estampadas y manchas en el metal.

Cómo lo hemos resuelto

Recorte automático

En la foto original el tornillo ocupa muy poco del encuadre. Si se reduce la imagen entera para dársela a una red neuronal, el defecto desaparece. Por eso el primer paso localiza el tornillo (la cabeza brillante sobre el fondo negro, o la silueta oscura sobre la luz) y recorta un cuadrado a su alrededor.

Un clasificador por zona

Entrenamos dos redes ResNet-18, una para la cabeza y otra para la rosca, partiendo de los pesos públicos de ImageNet. Cada una aprende con 1.700 fotos y usa otras 300 para elegir la mejor versión durante el entrenamiento. Las fotos de test de los autores (536 de cabeza y 1.000 de rosca) no se tocan hasta el final.

Dónde ha mirado el modelo

Una red que dice “NG” sin explicar por qué es difícil de defender ante un responsable de calidad. Para cada pieza rechazada calculamos un mapa Grad-CAM, que señala la zona de la imagen que más ha pesado en la decisión. El dashboard la marca con una caja. No es un contorno medido del defecto: es una pista para que el operario sepa dónde mirar.

Galería de inspecciones del dashboard de tornillería

Arquitectura

Arquitectura del sistema de inspección de tornillos

El modelo exporta un JSON por lote que alimenta un dashboard estático: fotos inspeccionadas, piezas rechazadas por zona, decisiones del modelo frente a la etiqueta real y la galería de inspecciones, errores incluidos.

Resultados de la evaluación pública

Evaluación sobre las 1.536 fotos de test de los autores:

ZonaAciertoDetecta NGPrecisión NGBuenos rechazadosFotos
Cabeza95,9%95,7%96,4%3,9%536
Rosca91,8%85,6%97,7%2,0%1.000

En conjunto acierta el 93,2% de las fotos y tarda entre 13 y 22 ms por foto en un portátil, sin GPU.

La cabeza funciona bien: de 279 tornillos defectuosos se escapan 12, y de 257 buenos rechaza 10. La rosca es más difícil. Rechaza muy pocos tornillos buenos (10 de 500), pero deja pasar 72 de 500 defectuosos. En una línea real ese es el número que habría que bajar, aunque sea a costa de rechazar algún tornillo bueno de más: bajar el umbral de decisión, añadir una segunda vista de la rosca o mejorar la iluminación del perfil.

La galería de inspecciones enseña también estos errores, con la etiqueta real al lado del veredicto del modelo.

Lo que se construye encima

El modelo es la pieza central, pero en una fábrica se usa a través de pantallas. Estas tres funcionan con los resultados del lote de test.

Puesto de operario: veredicto, zona del defecto y confirmación del rechazo

Puesto de operario. El veredicto se lee a dos metros, con la zona en la que se fijó el modelo y su confianza. El operario confirma el rechazo con una tecla o manda la pieza a revisión si cree que está bien. Calidad recibe un aviso cuando la tasa de defectuosos que pasan como buenos supera lo aceptable, como el 14,4% de la rosca en este lote.

Revisión y reentrenamiento: cola de piezas dudosas y rendimiento del modelo

Revisión y reentrenamiento. Las piezas con confianza baja y los errores del modelo forman una cola que revisa calidad: en este lote son 104 fotos, 82 de rosca y 22 de cabeza. Con ellas se entrena una versión nueva, que solo sustituye a la de la línea si mejora en el mismo test.

Calidad por zona: acierto, decisiones del modelo y errores del lote

Calidad por zona. Acierto y rechazos de cabeza y rosca, el desglose de decisiones del modelo y los errores concretos para revisarlos. La siguiente fase es conectar el rechazo con el PLC de la línea y llevar los NOK al MES y al ERP. Esa integración con PLC ya la tenemos funcionando en producción en un proyecto que no podemos publicar por confidencialidad.

Antes de llevarlo a otro entorno

  • Fotos de la línea del cliente: con su cámara, su iluminación y sus defectos. Un modelo entrenado con las fotos de otra estación no se puede instalar tal cual.
  • Umbral decidido con calidad: cuánto cuesta un defectuoso que llega al cliente frente a un bueno que se descarta. Con eso se elige el punto de corte.
  • Integración con la línea: disparo de la cámara sincronizado con el transportador y una señal al PLC para apartar la pieza rechazada.

Lo planteamos siempre con una fase de viabilidad en planta: unas semanas fotografiando piezas reales antes de comprometer cifras de detección.

Stack técnico

PiezaTecnología
RecortePython, OpenCV
ClasificaciónPyTorch, ResNet-18 ajustada (cabeza y rosca)
ExplicaciónGrad-CAM
EvaluaciónFotos de test de los autores, sin uso en el entrenamiento
DashboardHTML estático, Chart.js

Fotos: M2 Screw Defect Detection Dataset, R. P. Prastio y R. W. Indrawan, Universidad Airlangga (2026), doi:10.17632/2y6mcsyrpy.2, CC BY 4.0. Recortadas para el entrenamiento y la galería.

Metodología

Cómo trabajamos

Cada proyecto sigue nuestro proceso artesanal, adaptado a las necesidades específicas del cliente.

01

Discovery & Requisitos

Inmersión en negocio, usuarios y objetivos. Workshops de ideación, research de mercado y alcance MVP.

02

Diseño & Arquitectura

Wireframes, prototipos interactivos y arquitectura técnica. Validación con cliente antes de escribir código.

03

Desarrollo & Testing

Sprints de 2 semanas con demos. CI/CD, code review y testing continuo. Feedback en cada iteración.

04

Entrega & Evolución

Deploy a producción, monitorización y soporte. Métricas post-lanzamiento y roadmap de mejoras.

Listo para construir algo increíble?

Hablemos de cómo podemos ayudar a tu empresa a alcanzar resultados como estos.

Visión artificial para control de tornillería

Cuéntanos tu reto. Te proponemos solución.

Sin compromiso. Te respondemos en menos de 24 h y en 48 h tienes una propuesta con alcance, plazos y presupuesto. Sin letra pequeña.

Agenda call gratuita →