IA y machine learning
Una estación de inspección da demasiadas falsas alarmas, o determinados defectos se escapan una y otra vez. Enseguida aparece la palabra clave machine learning. Pero si el esfuerzo merece la pena no lo decide el algoritmo, sino los datos, el proceso y unos objetivos claros.
Dónde destaca el machine learning
Los métodos que aprenden muestran su fuerza cuando los defectos son difíciles de expresar en reglas: arañazos en superficies texturizadas, decoloraciones, defectos en productos naturales o textiles, soldaduras con muchas variantes admisibles. También ayudan cuando las propias piezas buenas tienen un aspecto muy distinto entre sí.
El machine learning tiene menos sentido donde hay que medir con exactitud. Los métodos clásicos determinan dimensiones, distancias y posiciones con más precisión y de forma más comprensible.
Tres requisitos para que aporte valor
- Datos: suficientes imágenes que cubran la dispersión real: lotes, turnos, suciedad, iluminación que envejece. Además, imágenes de defectos en número suficiente y bien etiquetadas.
- Captación de imagen estable: el machine learning no sustituye ni a una cámara adecuada ni a una buena iluminación. Cuanto más uniforme sea la toma, menos datos necesita el modelo.
- Objetivo claro: ¿cuántas fugas (defectos no detectados) y cuántos falsos rechazos (piezas buenas descartadas por error) son aceptables? Sin estos valores no se puede validar un modelo con sentido.
Cuando faltan imágenes de defectos: detección de anomalías
En muchas producciones los defectos son poco frecuentes. Hay miles de piezas buenas, pero apenas piezas defectuosas. Aquí ayudan los métodos de detección de anomalías: solo aprenden cómo es una pieza buena y señalan todo lo que se desvía. El conjunto de datos público MVTec AD se recopiló precisamente para este tipo de tareas de inspección industrial. Contiene, por categoría, imágenes de entrenamiento sin defectos e imágenes de prueba con distintos tipos de defecto. Para empezar, la detección de anomalías suele ser más realista que un clasificador que tiene que conocer cada tipo de defecto.
¿Merece la pena? Una valoración rápida
| Pregunta | A favor del machine learning | En contra |
|---|---|---|
| Tipo de defecto | variado, difícil de describir | claramente descriptible, medible |
| Disponibilidad de datos | muchas imágenes, defectos documentados | apenas imágenes, sin etiquetar |
| Variantes | muchos productos similares, mismo principio de inspección | piezas siempre nuevas y muy distintas |
| Inspección actual | manual, agotadora, poco homogénea | la inspección por reglas funciona de forma estable |
| Obligación de justificar | inspección interna, muestreos posibles | cada decisión debe justificarse |
Evaluar con honestidad en lugar de dejarse impresionar
Una tasa de aciertos por sí sola dice poco. Lo decisivo es qué defectos pasa por alto el modelo y con qué frecuencia descarta piezas buenas. Mida ambos valores por separado, y hágalo con imágenes de prueba que el modelo no haya visto nunca durante el entrenamiento:
# Cada veredicto: (realidad, modelo), valores "iO" (correcta) o "niO" (defectuosa)
def pruefkennzahlen(urteile):
schlechte = [modell for wahr, modell in urteile if wahr == "niO"]
gute = [modell for wahr, modell in urteile if wahr == "iO"]
schlupf = schlechte.count("iO") / max(len(schlechte), 1)
pseudoausschuss = gute.count("niO") / max(len(gute), 1)
return schlupf, pseudoausschuss
urteile = [("iO", "iO"), ("niO", "niO"), ("niO", "iO"), ("iO", "iO")]
schlupf, pseudo = pruefkennzahlen(urteile)
print(f"Schlupf: {schlupf:.1%}, Pseudoausschuss: {pseudo:.1%}")
Un modelo con pocos falsos rechazos que deja pasar defectos críticos no vale nada para el aseguramiento de la calidad. A la inversa, demasiados falsos rechazos disparan los costes y hacen que el sistema pierda la aceptación en la línea.
De la práctica
En un proyecto para un fabricante de cámaras no solo analizamos qué redes neuronales resuelven un problema de detección, sino también cuánto dura el entrenamiento en función de la calidad deseada. Esta visión de coste y beneficio forma parte de toda decisión. En el proyecto de investigación HIRAC, un sistema de asistencia con IA para sillas de ruedas, utilizamos deep learning allí donde interactúan el procesamiento de imágenes, la respuesta de los sensores y la manipulación de objetos, es decir, allí donde las reglas fijas llegan a su límite. Y en la mejora de imágenes para un fabricante de sensores, probamos primero los algoritmos en MATLAB antes de que pasen al producto en C#. Primero probar, después construir: esto vale igual para el machine learning.
Errores típicos
- Empezar por el modelo en lugar de por los datos y los criterios de aceptación.
- Imágenes de entrenamiento y de prueba del mismo lote o del mismo día: el resultado parece mejor de lo que es en la línea.
- Informar solo de la tasa de aciertos global sin separar fugas y falsos rechazos.
- No tener un plan para volver a entrenar cuando cambian el material, el proveedor o la iluminación.
- No implicar a los inspectores: quien conoce los defectos debería ayudar a etiquetar las imágenes.
- Poner en marcha un modelo sin nivel de respaldo, por ejemplo sin revisión manual de los casos dudosos.
Cómo le ayudamos
- Estudio de viabilidad de procesamiento de imágenes: evaluamos con sus imágenes si el machine learning, los métodos clásicos o una combinación son rentables, con las fugas y los falsos rechazos como indicadores.
- Implementación: estrategia de datos, entrenamiento, validación e integración en su software de inspección en C#, C++ o Python.
- Su proyecto: Solicite su proyecto o concierte una primera conversación
- Caso de estudio: HIRAC: sistema de asistencia con IA para sillas de ruedas
De nuestros proyectos: análisis de redes neuronales para un fabricante de cámaras, proyecto de investigación HIRAC (financiado por el programa ZIM, con la Universidad de Ciencias Aplicadas de Offenburg), mejora de imágenes para un fabricante de sensores. Para saber más: MVTec AD: conjunto de datos para la detección de anomalías industriales.
