Procesamiento de imágenes
Un fabricante quiere inspeccionar piezas con una cámara. Hoy, la primera pregunta suele ser: ¿necesitamos IA para esto? A veces, sí. Pero con frecuencia los métodos clásicos resuelven la tarea de forma más rápida, más económica y más comprensible, y la elección equivocada cuesta meses, en un sentido o en otro.
Dos herramientas, dos formas de pensar
El procesamiento de imágenes clásico trabaja con reglas que define un desarrollador: filtros, umbrales, bordes, contornos y geometría. Bibliotecas como OpenCV o Halcon aportan para ello componentes probados. Cada paso es medible y explicable.
El machine learning y, en especial, el deep learning aprenden las reglas a partir de imágenes de ejemplo. Una red neuronal encuentra las características por sí misma, incluso aquellas que apenas se pueden expresar con palabras. Para ello necesita datos, capacidad de cálculo y una validación cuidadosa.
La decisión en cinco preguntas
- ¿Se puede describir el defecto? Si puede decir en una frase cómo se reconoce un defecto («falta el taladro», «borde demasiado corto»), eso habla a favor de los métodos clásicos.
- ¿Cuánto varían las piezas y el entorno? Los objetos naturales, las superficies cambiantes y la iluminación inestable hablan a favor de los métodos que aprenden.
- ¿Hay suficientes imágenes de ejemplo? Sobre todo de defectos. Los defectos poco frecuentes son difíciles de aprender.
- ¿De cuánta capacidad de cálculo se dispone? Un PC industrial con tarjeta gráfica no es lo mismo que un sistema embebido en la cámara.
- ¿Tiene que justificar las decisiones? En entornos regulados, como la tecnología médica y de laboratorio, cuenta la trazabilidad.
Ayuda para decidir de un vistazo
| Criterio | Procesamiento de imágenes clásico | IA / deep learning |
|---|---|---|
| Medición de dimensiones, posiciones, ángulos | muy adecuado, con precisión subpíxel posible | casi siempre solo como complemento |
| Defecto claramente descriptible | primera opción | posible, a menudo sobredimensionado |
| Superficies variables, objetos naturales | laborioso, muchas reglas especiales | punto fuerte de los métodos que aprenden |
| Necesidad de datos | pocas piezas de muestra | muchas imágenes bien etiquetadas |
| Necesidad de cálculo | baja a media | media a alta, a menudo con GPU o acelerador de IA |
| Trazabilidad | cada paso es explicable | limitada, requiere una validación específica |
| Cambios en el producto | ajustar parámetros | en algunos casos, volver a entrenar |
Un enfoque clásico en pocas líneas
Este ejemplo con Python y OpenCV muestra el poco código que suele necesitar una inspección basada en reglas. Separa las piezas del fondo mediante un umbral automático y devuelve su posición y tamaño:
import cv2
bild = cv2.imread("teil.png", cv2.IMREAD_GRAYSCALE)
bild = cv2.GaussianBlur(bild, (5, 5), 0)
_, maske = cv2.threshold(bild, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
konturen, _ = cv2.findContours(maske, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for kontur in konturen:
flaeche = cv2.contourArea(kontur)
if flaeche < 500:
continue # ignorar las manchas pequeñas como ruido
x, y, breite, hoehe = cv2.boundingRect(kontur)
print(f"Teil bei ({x}, {y}): {breite} x {hoehe} Pixel, Fläche {flaeche:.0f}")
Con una iluminación uniforme y un fondo con buen contraste, algo así suele bastar para una inspección robusta de presencia o de tamaño. Frente a superficies muy variables, en cambio, sirve de poco.
El término medio: combinar
En la práctica, la respuesta suele ser «ambos». Los pasos clásicos localizan y miden la pieza, y una red pequeña evalúa solo la superficie difícil. O al revés: una red encuentra los objetos y después la geometría inspecciona con exactitud. Así, la parte de IA sigue siendo pequeña, rápida y fácil de verificar.
Un ejemplo de nuestros proyectos: para un fabricante de cámaras termográficas había que encontrar rostros en la imagen, en un sistema embebido con una capacidad de cálculo muy limitada. Analizamos distintos algoritmos y redes neuronales en cuanto a velocidad y calidad de detección. Al final, métodos propios y ligeros funcionaban en tiempo real en el hardware y distinguían de forma fiable los rostros de lámparas y otras fuentes de calor. Una IA de cálculo intensivo no era una opción. También en el análisis de nubes de puntos 3D para un fabricante de sensores reconocimos formas como cilindros, cuboides y esferas con métodos geométricos como RANSAC, sin red neuronal.
Errores típicos
- Elegir IA porque suena moderno, aunque bastarían un umbral y una inspección de contornos.
- Refinar una y otra vez las reglas clásicas hasta que nadie tiene ya una visión de conjunto, en lugar de cambiar a tiempo a un método que aprende.
- Descuidar la iluminación y la óptica. Ningún algoritmo salva una mala imagen.
- Recopilar muy pocas imágenes de defectos y probar el modelo solo con piezas buenas.
- Fijar el hardware de destino al final. Entonces el método a menudo ya no cabe en el equipo.
- Empezar sin criterios de aceptación medibles: ¿qué tasa de detección, qué tiempo de ciclo y cuántas falsas alarmas son aceptables?
Cómo le ayudamos
- Estudio de viabilidad de procesamiento de imágenes: comprobamos con sus piezas de muestra si los métodos clásicos, la IA o una combinación resuelven mejor la tarea, con un resultado fiable antes de que usted invierta.
- Implementación: procesamiento de imágenes con OpenCV, Halcon, PCL o redes neuronales en C#, C++ o Python, hasta la integración en su equipo o su instalación.
- Su proyecto: Solicite su proyecto o concierte una primera conversación
- Caso de estudio: Cámaras termográficas: encontrar rostros con un hardware limitado
De nuestros proyectos en sensórica y tecnología de laboratorio y de medición: detección de rostros en cámaras termográficas con hardware embebido, reconocimiento de objetos en nubes de puntos 3D con OpenCV, PCL y Halcon.
