engiAI

  • Requisitos
Windows 10/11 x64. Análisis de CPU y GPU – versiones RTX 50+.

⬇ engiAI.rar (900 MB)

⬇ engiAI-ZONA-PARA-ES.pdf (5.4 MB)

⬇ engiAI-doc-new-ES.pdf (12 MB)

SICK IDS Camera Manager ⬇ ids-software-suite-win-4.96.1.zip (184 MB)

SICK IDS Camera Manager - link 2

Registro

Solicitar acceso a engiAI

EngiAI (engiAI Ethernet System) — una aplicación de visión artificial para escritorio, diseñada para la inspección y el control de calidad de productos en una línea de producción. Está escrita en C# (.NET 9, WinForms) y se compila en un único archivo ejecutable AOT (sin necesidad de runtime) compatible con Windows x64.

⬇ engiAI Descripción.pdf (74 KB)
  • ¿Qué hace?
Captura desde cámaras: Cámaras industriales Hikrobot (SDK), USB/DirectShow, IDS uEye, así como cámaras Android a través de OpenCV. Múltiples cámaras simultáneamente.

Inspección con IA: Las redes neuronales YOLO (ONNX Runtime / GPU-CUDA o CPU) detectan objetos y defectos en tiempo real.

Zonas de ROI (Áreas de Interés): Áreas de control personalizables con clases y reglas, zonas nombradas, catálogo.

Dispositivo de rechazo: según el resultado de la inteligencia artificial, genera una señal para un contacto de salida (para indicar un fallo), con la configuración de los pines y la verificación mediante un comprobador.

Disparadores: Captura de fotograma mediante señal externa (entradas discretas, encoders).

Entrenamiento de modelos: conjuntos de datos, datos sintéticos (rotaciones/espejo/brillo), entrenamiento de YOLO11 directamente desde el programa.

Almacenamiento: base de datos SQLite local (rejectors.db) – modelos, zonas, registro de eventos, estado de las cámaras.

  • Licencia
Versión única: modo (prueba / licencia / prohibido)

Sin licencia – modo de prueba de 20 minutos; con licencia – funcionamiento sin restricciones.

Vinculación al hardware, control de todas las instancias en ejecución.

engiAI Ethernet System
ZONA-PAR — inspección visual de placas de circuito y ensamblajes

La interfaz de engiAI está disponible en español: los nombres de botones y campos de este manual se indican tal como aparecen en el programa.

El objetivo de la inspección es la identificación de las diferentes zonas: ZONA-PAR. La placa identifica las zonas, que corresponden a cada componente que debe ser inspeccionado. Cada modelo tiene un par de categorías ("normal / anomalía") para cada zona y solo analiza dentro de ese par. En el ejemplo de la guía, hay dos zonas: el condensador C30 y el puente BR1; en una placa real, podrían haber cientos, y el método es el mismo.
Datos sintéticos: desplazamiento automático del elemento desde la base. El programa toma la pieza junto con la sección de la placa que la rodea (líneas, trazos, color de la base), reduce el área hasta el tamaño de la pieza y la desplaza o la gira. La creación de una pieza defectuosa para el entrenamiento se realiza en dos clics, sin necesidad de una placa defectuosa.
Manual del usuario: cómo conectar la cámara, delimitar las zonas, fijar la región de alineación, capturar la norma y las anomalías, entrenar el modelo, iniciar la inspección y conectarla con el sistema de rechazo: mediante alertas sonoras, salidas discretas de las cámaras SICK y HIKROBOT, y transmisiones TCP al robot o al PLC.
Paso 1Cámara
Paso 2Red de zonas
Paso 3Normalidad y anomalías
Paso 4Formación
Paso 5Inspección
Paso 6Salidas y TCP
Todas las capturas de pantalla fueron realizadas con el programa en funcionamiento: la placa vtlift, la cámara USB 3264×2448, modelo model_4 para dos zonas de 256×256 (el condensador C30 y el puente BR1), entrenada en escala de grises. El programa funciona con cámaras HIKROBOT (GigE y USB3), SICK picoCam (uEye), cámaras USB/web y cámaras IP mediante RTSP. Edición 3 – septiembre de 2026.

Contenido

  1. 1. ¿Por qué engiAI y el método ZONA-PAR?
  2. 1.1. ¿Qué ventajas ofrece este método en comparación con la clasificación de toda la imagen?
  3. 1.2. Velocidad: El sistema de IA solo analiza las partes relevantes.
  4. 1.3. ¿Qué nivel de precisión esperar: calculando según nuestra cámara
  5. 1.4. Inicio rápido: la configuración está lista, las zonas y el modelo se configuran en unos pocos clics.
  6. 2. Interfaz de la aplicación en un minuto.
  7. 3. Cámaras: conexión e instalación
  8. 3.1. ¿Qué cámaras son compatibles?
  9. 3.2. Ventana de la cámara: agregar, reconfigurar o eliminar
  10. 3.3. Pestaña "Cámara" para HIKROBOT y SICK
  11. 3.4. Pestaña "Cámara" para cámaras USB/webcámaras
  12. 3.5. Configuración guardada de la cámara (conjuntos de ajustes)
  13. 3.6. Red GigE y reconexión
  14. 4. Modelo ZONA-PAR: del conjunto de datos a un modelo entrenado
  15. 4.1. ¿Cómo funciona este método: un modelo, una clase para cada zona?
  16. 4.2. Desarrollar un modelo
  17. 4.3. Identificar las áreas de pago
  18. 4.4. Registrar la referencia: zona de alineación
  19. 4.5. Imágenes por zonas: normal y sus datos sintéticos
  20. 4.6. Datos sintéticos: fallo en dos pulsaciones: el elemento se desplaza junto con la base.
  21. 4.7. Anomalías en la zona: ventana de configuración
  22. 4.8. Referencia con zonas: Placas de soldadura y editor de zona
  23. 4.9. Entrenamiento del modelo
  24. 5. Inspección
  25. 5.1. Asignar el modelo y verificar las zonas.
  26. 5.2. Umbral de reconocimiento de la zona
  27. 5.3. Sistema de transporte flexible: adaptable a cualquier posición
  28. 5.4. ¿Qué señal analizar?
  29. 5.5. Zonas amarillas: desactivar la zona haciendo clic.
  30. 5.6. ¿Qué se puede ver en la pantalla y en la consola?
  31. 6. Disparadores: sensor externo en la entrada de la cámara.
  32. 7. Salidas: salidas de rechazo, salidas discretas de las cámaras y TCP
  33. 7.1. Guía: Salidas: contactos y comprobación con un multímetro
  34. 7.2. Ventana de salida: regla para la zona
  35. 7.3. Envío de paquetes TCP al robot o al PLC.
  36. 7.4. Salida discreta de la cámara
  37. 7.5. Alarma sonora: sonido personalizado para cada zona.
  38. 7.6. Registro de activaciones y base de datos
  39. 8. Otros modos y tareas
  40. 9. Configuración, consola, requisitos y licencia
  41. 10. Lista de verificación rápida y diagnóstico de fallas

Cómo utilizar el manual. La sección 1 explica el propósito del método y los resultados esperados. Las secciones 3-5 describen el proceso, desde un programa vacío hasta una inspección funcional, y deben seguirse en orden. Las secciones 6-7 se refieren a la conexión de sensores, salidas y TCP. Las secciones 8-10 cubren las demás funciones, configuraciones y listas de verificación.

1. ¿Por qué engiAI y el método ZONA-PAR?

engiAI Ethernet System – un programa de inspección visual para líneas de producción. Utiliza una imagen capturada por una cámara industrial o estándar, la divide en zonas, verifica cada zona mediante una red neuronal entrenada y convierte el resultado en una acción: una señal en la salida discreta de la cámara, un envío TCP a un robot o PLC, o una grabación en un registro. El método ZONA-PAR está diseñado para productos en los que cada elemento está en su lugar correcto: placas de circuito impreso, ensamblajes, conjuntos de piezas en un contenedor, embalajes con disposición específica.

1 modelo
para todas las zonas de la placa, en lugar de cien modelos individuales.
2 zonas
En el ejemplo de la placa de circuito: el condensador C30 y el puente BR1. En una placa, puede haber cientos de ellos.
≈5 px
Desplazamiento del elemento al que corresponde el límite "normal / original".
2 pulsaciones
De la imagen completa a defectos normales y sintéticos para el entrenamiento

1.1. ¿Qué ventajas ofrece este método en comparación con la clasificación de la imagen completa?

El enfoque habitual consiste en un único modelo con dos clases ("normal" / "anomalía") aplicadas a toda la imagen o a todas las zonas a la vez. Sin embargo, esto no funciona en el hardware: la ausencia de espacio debajo del puente BR1 en la zona 2 indica un fallo, mientras que la misma ausencia en otra parte de la placa es normal. Un único modelo no puede representar ambas situaciones. La otra alternativa es un modelo diferente para cada componente, lo que implicaría decenas de entrenamientos y decenas de archivos en la memoria.

ZONA-PAR lo resuelve de la siguiente manera: hay un solo modelo, pero hay tantas clases como zonas. Una "Zona" es un rectángulo que rodea un componente. Una "Clase" es una carpeta con imágenes en las que aprende la red. Cada zona tiene su propia pareja: "zone_001" (zona normal 1, por ejemplo, el condensador C30) y "zone_001_anomaly" (zona defectuosa 1); "zone_002" y "zone_002_anomaly" corresponden al puente BR1. Al verificar la zona 1, el programa solo analiza su pareja; las respuestas para la zona 2 no son relevantes. Las clases de anomalías son opcionales: la anomalía cambia la apariencia de la zona, y la confianza en la "zona normal" disminuye automáticamente; pero con datos sintéticos (sección 4.6), se crean con un solo clic y mejoran significativamente la fiabilidad.

Ejemplo de imagen completa: dos zonas — el puente BR1 en la parte superior derecha y el condensador C30 en la parte inferior izquierda, ambas de color verde y con la etiqueta "normal". Las líneas azules marcan los límites de la región de alineación, y los puntos azules son los puntos de referencia que se utilizan para identificar la placa en la imagen.
Ejemplo de imagen completa: dos zonas — el puente BR1 en la parte superior derecha y el condensador C30 en la parte inferior izquierda, ambas de color verde y con la etiqueta "normal". Las líneas azules marcan los límites de la región de alineación, y los puntos azules son los puntos de referencia que se utilizan para identificar la placa en la imagen.
Resolución dentro de una parejaAl verificar la zona 17, se consideran solo dos salidas de la red: "normal de la zona 17" y "anomalía de la zona 17". Las otras cientos de clases no participan en la resolución, por lo que zonas similares adyacentes no afectan el resultado.
Una señal de otra red no se reconocerá como una señal normal.Si dos zonas de una red tienen una tasa de cobertura inferior al 10%, la zona se considera "no reconocida": esto implica que se trata de una señal de otra red o de una cobertura irregular. En este caso, la zona se considera una anomalía, y no una señal "normal con alta probabilidad".
El defecto es proporcional a la zona. El tamaño y la posición de los defectos sintéticos se especifican en relación con el tamaño de la zona. Un desplazamiento de un elemento de 0,5 milímetros en un fotograma de 8 megapíxeles no es perceptible, mientras que dentro de una zona de 128x128 píxeles, representa un cambio de 5-6 píxeles, lo que es una diferencia notable.
Resolución completa La imagen de la zona de 108–137 px se transmite a la red 128×128 con una mínima pérdida de calidad. Para mostrar la imagen completa, sería necesario comprimirla a 128 px, lo que implicaría una pérdida de detalles de decenas de veces.
Línea de referencia "normal / defectuoso" Los datos sintéticos "normales" generan una variación de 0-2 píxeles, mientras que los datos sintéticos "defectuosos" muestran un desplazamiento de 5 píxeles. La red aprende específicamente esta línea de referencia, y no las variaciones aleatorias de la iluminación.
Resultado específicoCada zona tiene una dirección (modelo, tabla, celda) y un nombre definidos. Se puede aplicar una regla específica a cualquier zona: una alerta de sonido, un envío TCP con el número de la zona o una salida discreta de la cámara.
Inspección en cualquier posición El operador marca en la imagen la zona de alineación, que corresponde a la parte de la placa con los componentes. A partir de estos puntos de referencia, cada imagen se alinea con la referencia, y las zonas de inspección se encuentran en la nueva placa, incluso si esta ha sido colocada de forma desplazada o girada, incluyendo un giro de 180 grados (sección 4.4).
Defecto en la propia placa Un defecto sintético no es una mancha dibujada, sino un elemento desplazado o inclinado junto con una parte de la base. El modelo aprende la relación "elemento ↔ placa", y no el color de la mancha. Se realiza en dos pasos (sección 4.6).
Las anomalías se informan gradualmente Se añaden las clases de defecto solo en los lugares donde realmente se encuentran: soldaduras defectuosas, elementos faltantes, desplazamiento, rayaduras. El modelo se reentrena, pero la red permanece igual.

1.2. Velocidad: La IA solo analiza las áreas relevantes

La red neuronal nunca recibe la imagen completa. Para cada zona, solo se extrae su rectángulo, y se seleccionan dos clases para identificarla. Las zonas de una imagen se consideran de forma paralela (hasta cuatro hilos), y el resultado de todas las zonas se muestra en la pantalla de forma simultánea, en lugar de una zona a la vez.

  • La velocidad de análisis se define por el tiempo. El control deslizante "Análisis por segundo (APS)" en la pestaña de la cámara indica exactamente N análisis por segundo, y no "cada N-ésima imagen". El límite máximo está determinado por la frecuencia de la cámara y el tiempo de procesamiento.
  • GPU por defecto. El proceso de inferencia se realiza a través de ONNX Runtime con CUDA; si no hay tarjeta gráfica NVIDIA, el programa cambia automáticamente al procesador y lo indica en el estado (GPU (CUDA) o CPU).
  • Buffers sin residuos. La memoria se utiliza una sola vez para cada fragmento y se reutiliza; el tiempo de análisis es constante, sin variaciones entre los fotogramas.
  • Configuración para la tarea específica. Para ZONA-PAR, el programa establece automáticamente el tamaño de entrada en 128 px y utiliza la red YOLO11 de tamaño "s": la extracción de la zona no se escala significativamente, y la red tiene suficiente capacidad para cientos de pares de clases.
  • La línea de producción automatizada ahorra personal. El operador pasa a la siguiente tarea sin tener que esperar al proceso de búsqueda de la placa; la placa se busca y se alinea una sola vez, y solo después se cortan las zonas.
  • La visualización no interfiere con el análisis. La imagen se redibuja no más de 25 veces por segundo y solo a partir del nuevo fotograma de la cámara. La imagen se reduce al tamaño de la ficha hasta que se muestra en la pantalla, y el registro se guarda en un archivo por un proceso en segundo plano. La interfaz sigue siendo receptiva, incluso con fotogramas de 8 megapíxeles y cientos de zonas.

En la barra de estado, junto al vídeo, se muestran los valores reales: fps (fotogramas por segundo) y los milisegundos del último análisis, así como Eff, que indica cuántos análisis se han realizado efectivamente en un segundo.

1.3. ¿Qué precisión esperar: evaluando con nuestra cámara

El programa no promete una desviación de "0,5 mm" independientemente de la cámara y el objetivo. La sensibilidad a la desviación se determina por el número de píxeles que corresponden a un milímetro del objeto, y por el límite con el que está entrenada la modelo. Esto se calcula en dos líneas:

px/mm = ancho del fotograma en píxeles dividido por el ancho del campo de visión en milímetros
El desplazamiento mínimo perceptible es de aproximadamente 5 píxeles dividido por (píxeles/milímetro)

El número 5 px representa el límite inferior del desplazamiento sintético en la configuración recomendada de anomalías (con una desviación normal de 0–2 px). La configuración predeterminada está calculada para 11 px/mm: con esta escala, 0,5 mm equivalen a 5–6 px, que es el objetivo acordado durante el desarrollo. Introduzca sus propios valores:

Cámara (ancho del encuadre)Campo de visión: 100 mm200 mm300 mm400 mm
3264 px (USB 8 MP, como en las imágenes)0,03 mm/px → desplazamiento ≈ 0,15 mm0,06 → ≈ 0,3 mm0,09 → ≈ 0,45 mm0,12 → ≈ 0,6 mm
2448 px (cámara HIKROBOT de 5 MP)0,04 → ≈ 0,2 mm0,08 → ≈ 0,4 mm0,12 → ≈ 0,6 mm0,16 → ≈ 0,8 mm
1920 px (cámara picoCam, HIKROBOT de 2 MP)0,05 → ≈ 0,25 mm0,10 → ≈ 0,5 mm0,16 → ≈ 0,8 mm0,21 → ≈ 1,0 mm
Importante. Se trata de una evaluación desde abajo para detectar el desplazamiento de un elemento en una imagen con un cambio brusco de iluminación y una iluminación constante. Para verificar los límites reales, utilice el botón "ZONA-PAR: zona ↔ modelo" y el umbral de reconocimiento (sección 5.2): cada zona tiene sus propios límites, lo que significa que la precisión varía según la zona. Cuanto menor sea el campo de visión y mayor el número de píxeles de la cámara, menor será el error que el modelo podrá detectar.

1.4. Inicio rápido: la configuración está lista, las zonas y el modelo se configuran en unos pocos clics.

Este método está diseñado para que un técnico sin experiencia en aprendizaje automático pueda obtener un modelo funcional en una sola jornada. Todo lo que se pueda seleccionar con antelación ya está disponible y se almacena en la base de datos del programa:

  • Definir zonas por minuto. En el editor ROI, dibuje un marco alrededor del elemento y especifique el tamaño de la zona (por ejemplo, 256 px). Si hay muchos elementos y están alineados, dibuje el marco a lo largo de toda la hoja; el programa calculará automáticamente las filas y columnas de la cuadrícula.
  • Datos sintéticos predeterminados y de error, configurados. Los botones "Predeterminado", "Desplazamiento de elementos" y "Color y tono" permiten seleccionar perfiles predefinidos. El número de archivos, los fotogramas de la cámara y el tiempo estimado se muestran antes de pulsar el botón "Capturar".
  • Los parámetros de entrenamiento se configuran automáticamente. Después de la primera imagen, el programa establece los siguientes parámetros: tamaño de la imagen: 128, tamaño del modelo: "s", número de épocas: 50, tamaño del lote: 64. Durante el entrenamiento, se desactivan las técnicas de aumento de datos que entran en conflicto con las clases de anomalías.
  • La cámara se ajusta mediante un botón. La función "Ajuste automático para IA (por cuadro)" selecciona la velocidad de obturación, el rango dinámico, la gama de colores y el balance de blancos; para las cámaras USB, existen las opciones "Ajuste automático según el formato" y "Guardar parámetros".
  • Conjuntos de ajustes de la cámara. Los parámetros seleccionados se guardan bajo un nombre específico y se pueden seleccionar desde una lista. La cámara los acepta inmediatamente y los guarda en su memoria.
  • Un único archivo ONNX como resultado. El modelo entrenado se exporta automáticamente y se asigna inmediatamente para su inspección, sin necesidad de pasos adicionales.

Pasos completos: conectar la cámara → crear el modelo → marcar las zonas → fijar la región de alineación → "Captura por zonas" en varias placas funcionales → "Anomalías de zonas" → ENTRENAR MODELO DE IA → pestaña "Inspeccionar". A continuación, se deben asignar sonido, salidas y TCP a las zonas. Lo necesario para comenzar: una computadora con Windows 10/11 (para una inspección rápida, una tarjeta gráfica NVIDIA), la cámara, una placa funcional y una conexión a Internet para instalar el entorno de aprendizaje. No se necesitan placas defectuosas.

2. Interfaz de la aplicación en un minuto.

La ventana principal está dividida en dos partes. A la izquierda, se muestra una transmisión en vivo desde las cámaras, junto con una barra de estado. A la derecha, se encuentra una barra con pestañas, donde se encuentra todo el control. Se puede arrastrar el borde entre las dos partes; el programa recuerda las dimensiones, la posición de todas las ventanas y la disposición en su base de datos.

Ventana principal: a la izquierda, vista en vivo de la placa con dos zonas (ambas verdes, "normal"); a la derecha, pestaña "Inspeccionar" con el modelo model_4\best.onnx. El flujo de datos está activo, y el indicador muestra "normal · 112 puntos".
Ventana principal: a la izquierda, vista en vivo de la placa con dos zonas (ambas verdes, "normal"); a la derecha, pestaña "Inspeccionar" con el modelo model_4\best.onnx. El flujo de datos está activo, y el indicador muestra "normal · 112 puntos".

Botones sobre el vídeo

BotónQué abre
OCULTAR VÍDEOElimina la imagen de la pantalla. El análisis continúa, solo se ahorra el dibujo.
SALIDASVentana de ayuda: contactos de las salidas discretas de las cámaras HIKROBOT y SICK, comprobación con un probador, conexión de la carga (sección 7.1).
CÁMARASVentana "Configuración de las cámaras conectadas": añadir, reconectar, eliminar cámaras y visualizar todos los parámetros leídos del hardware (sección 3.2).
SENSORESConexión de un sensor externo a la entrada discreta de la cámara, con diagrama y esquema de cableado (sección 6).
MODELOS GENERALESConjuntos predefinidos "cámara → modelo", asignados a todo el sistema mediante una única selección (sección 8).
Disposición (columnas)Número de tiles de cámara a mostrar en fila; "■" - modo individual (cámara en gran formato), "Automático" - según la cámara seleccionada, "⛶" - cámaras para todo el monitor (salida de Esc).
Mostrar zonas ROIDibujar la cuadrícula de zonas sobre el vídeo.

Pestañas a la derecha

PestañaAsignación
CameraParámetros de la cámara seleccionada: velocidad de obturación, ganancia, color, resolución, configuración automática para IA, conjuntos de configuraciones guardadas, velocidad de análisis. Ya no hay umbrales de IA aquí, solo en la pestaña "Inspeccionar".
OUTPUTrechazador: reglas en las zonas - envío TCP al robot/PLC, salidas discretas de la cámara y alertas de sonido, registro de eventos, base de datos.
AI ModelCreación del modelo: carpeta, clases, cuadrícula de zonas, captura por zonas, anomalías de zonas, placa de referencia, configuración y inicio del entrenamiento.
InspectPestaña de trabajo: qué modelo realiza la inspección, áreas a inspeccionar y umbral, línea de producción en funcionamiento, señal para capturar el fotograma, ranuras para inspección de múltiples modelos.
SettingsIdioma de la interfaz (14 idiomas), compra de licencia, guardado y carga de configuraciones, grabación de vídeo.
ConsoleRegistro de eventos: conexión de cámaras, curso de formación, activación del sistema de rechazo, alertas. La pantalla muestra las últimas 800-1000 líneas, y toda la información se guarda en los archivos logs\engiai-*.log.

Barra de estado

A la derecha de los botones se muestra el estado de la cámara activa: LIVE (Android): 3264×2448 [Cámara USB HD] – tipo, resolución y nombre; AI: ESPERANDO o AI: GPU (CUDA) – en qué se basa el modelo y cuántos milisegundos tardó el último análisis; Red: total … activa … Mbits/s – carga de la red de las cámaras GigE (verde hasta el 40% de la conexión, naranja hasta el 70%, rojo a partir de ahí). La barra Carga muestra qué porcentaje del intervalo de fotogramas ocupa la exposición: si está al máximo a la derecha, la cámara no podrá mantener la frecuencia indicada.

Cada cámara tiene una ventana individual que muestra su nombre, estado "EN VIVO | IA: ACTIVADA" y un botón para restablecer la conexión. Un clic derecho en el cuadro de la cámara abre el menú de la zona, mientras que un clic derecho con arrastre permite realizar un paneo en el cuadro ampliado.

3. Cámaras: conexión y configuración

3.1. Cámaras compatibles

TipoCómo se conectaQué se configura desde el programa
HIKROBOT MV-CS
(GigE, USB3)
SDK MVS nativo. Se abre estrictamente con el número de serie, el orden de enumeración no es importante.Parámetros de extracción de 6 μm, ganancia en dB, FPS (fotogramas por segundo), resolución (AOI), nivel de negro (0…4095), todos los nodos de GenICam (modos automáticos, gama, nitidez, balance de blancos R/G/B, desplazamiento digital, inversión, paquetes GigE). Los parámetros se escriben en la sección UserSet1 de la cámara. Entrada discreta Line 0, salida Line 1, GPIO Line 2.
SICK picoCam
(IDS uEye, GigE)
Driver uEye. La cámara debe ser visible en IDS Camera Manager con el estado "configurada correctamente". El número de serie se verifica con la cámara, ya que el DeviceID de uEye cambia cada vez que se inicia.Ganancia, amplificación (0…100), FPS, resolución, nivel de negro (0…255), frecuencia de reloj de los píxeles, amplificación, amplificadores de hardware para los canales R/G/B, gama de hardware, disposición de Bayer. Los parámetros se almacenan en la memoria de la cámara. Entrada del disparador en el optoacoplador, salida de Flash (150 mA).
Cámara web USB
(en la lista: Android)
DirectShow a través de OpenCV, que se diferencian por el moniker, por lo que dos cámaras idénticas no se confunden.Resolución hasta 8K, FPS, todas las propiedades del controlador: brillo, contraste, saturación, tono, nitidez, gama, amplificación, tiempo de exposición (automático), enfoque (automático), balance de blancos (automático), compensación de deslumbramiento, etc. No hay entradas y salidas discretas; solo se admite TCP.
Cámara IP RTSPLa URL del tipo rtsp://admin:contraseña@192.168.1.64:554/… se añade manualmente.El tiempo de exposición, la amplificación, la resolución y el FPS se configuran en la interfaz web de la propia cámara. En el programa se indican las zonas, el modelo y TCP.

No hay un límite en el número de cámaras: las cámaras se organizan en una cuadrícula con cualquier número; en pruebas reales se utilizaron ocho y nueve cámaras simultáneamente. Cada cámara tiene sus propios modelos, sus propias zonas, su propio umbral y su propio ritmo de análisis.

3.2. Ventana de CÁMARAS: añadir, reconectar, eliminar

1
Haga clic en CÁMARAS sobre el video. Se abrirá una ventana de "CONFIGURACIÓN DE CÁMARAS CONECTADAS" en pantalla completa (para cerrarla, presione la tecla Esc).
2
Haga clic en + Añadir cámaras. El programa consultará la red y el USB y mostrará todos los dispositivos encontrados en una única lista: Hikrobot … SN: … IP: …, SICK … SN: … DeviceID: …, Android …. Las cámaras SICK tardan hasta 4 segundos en ser detectadas, ya que el dispositivo GigE no aparece inmediatamente en el controlador. Una cámara SICK que esté en uso o que tenga una dirección incorrecta se marcará con el símbolo ⚠ junto con la razón.
3
Seleccione las cámaras deseadas y haga clic en "Añadir". Para añadir una cámara IP, utilice el botón "+". Para añadir una cámara RTSP, utilice el enlace "...". Mientras las cámaras se conectan, se muestra una pantalla de espera con el botón "Omitir cámara".
4
La cámara aparecerá en la lista con la siguiente línea: Nombre | Tipo | Número de serie | EN VIVO o FUERA DE RED | IA: ACTIVADA | Pantalla: ACTIVADA, y su vídeo se mostrará en la parte izquierda de la ventana principal.

Las opciones que aparecen debajo de la lista afectan a la cámara seleccionada: Cámara activada (de lo contrario, se desconecta del dispositivo y desaparece de la pantalla), Mostrar vídeo/zonas (solo se muestra la imagen, el análisis siempre está activo), IA activada para la cámara seleccionada. El botón Reconectar realiza una desconexión y reconexión completa, reiniciando el flujo de IA y recargando los modelos.

La parte derecha de la ventana muestra todos los parámetros de la cámara, obtenidos del hardware al conectarla, con sus unidades y categorías: "Mostrar parámetros de", Releer desde la cámara, Copiar al búfer. Esto es solo para visualizar: para modificar los parámetros, se utiliza la pestaña "Cámara".

Importante. La cámara HIKROBOT, que utiliza la interfaz GigE, mantiene una conexión exclusiva. Después de que el programa se cierre inesperadamente, permanece ocupada hasta que se pierda la señal; el programa espera hasta 25 segundos (10 intentos) y muestra el mensaje "la cámara está ocupada por otro proceso". En el caso de SICK, si la dirección IP es incorrecta, el programa intenta corregirla automáticamente, siempre y cuando no esté dentro de la subred del adaptador.

3.3. Pestaña "Cámara" para HIKROBOT y SICK

El módulo funciona con la cámara, que está marcada con un marco azul. El programa no registra nada en la cámara al conectarse: la cámara es la fuente de la información, mientras que los controles se ajustan a sus valores. Solo se pueden guardar las configuraciones de forma consciente mediante el botón "Guardar parámetros".

1
En la parte inferior, introduzca la Ancho (W) y la Altura (H) del encuadre (o seleccione una opción predefinida de la lista, que solo contiene las dimensiones que admite esta cámara), y haga clic en APLICAR RESOLUCIÓN. Normalmente, se utiliza el encuadre completo de la cámara. La dimensión se redondea hacia abajo en incrementos de AOI de la cámara.
2
Haga clic en "Ajuste automático para IA (por fotograma)". El programa ajusta la velocidad de obturación (prioridad) y el aumento (máximo 40) para que el 99,5% de la intensidad de la luz se encuentre entre 220 y 248, evitando el sobreexposición. A continuación, establece la gama en 1,50, la saturación en 115% y el contraste en 105%, y realiza un ajuste automático del balance de blancos. Marcar la casilla "automático" activa el modo continuo: se verifica y ajusta cada 3 segundos, si la luz cambia.
3
Si es necesario, ajuste manualmente: Exposición (control deslizante en microsegundos, etiqueta en ms, hasta 1 s), Ganancia, FPS, Nivel de negro. Para SICK, además, Reloj de píxeles (define el límite de FPS y el tiempo de exposición mínimo), Aumento de ganancia, Rango de color, WB Rojo / Verde / Azul.
4
Haga clic en Guardar parámetros: el archivo camera_params\<SN>.ini y la configuración en la memoria de la cámara (UserSet1 de HIKROBOT, con la configuración predeterminada), así como la EEPROM de SICK. El resultado se muestra en el propio botón («✔ Guardado»). Para HIKROBOT, hay una casilla de verificación Guardar automáticamente en la cámara (UserSet1) después de 5 segundos de realizar un cambio.

Bloque "Hikrobot: parámetros de la cámara (GenICam)"

Se muestra únicamente lo que la cámara captura. Líneas: Exposición automática (Apagado / Una vez / Continua), Aumento automático, Rango y modo de rango, Nitidez, Tono, Saturación, Equilibrio de blancos automático, Equilibrio de blancos por canales, Desplazamiento digital, Nivel de negro activado, Limitación de FPS activada, Rotación horizontal y vertical, GigE: tamaño del paquete, GigE: retardo entre paquetes, GigE: límite de ancho de banda, Imagen de prueba. El botón "Recargar parámetros de la cámara" modifica la tabla.

Bloque "COLOR DE LA IMAGEN"

Configuración de Bayer (Auto / BGGR / RGGB / GRBG / GBRG), Saturación 0…200 %, Gamma 0,30…3,00, Contraste 50…200 %, botón de reinicio. El procesamiento de software se aplica a todos los fotogramas: visualización, grabación, inferencia y capturas para entrenamiento, por lo que la imagen es la misma tanto durante el entrenamiento como durante la inspección. Para HIKROBOT, la configuración se obtiene del formato de píxeles de la cámara, mientras que para los sensores SICK se obtiene del sensor y se ajusta a partir del primer fotograma.

Parámetro¿Qué hace?Efecto
Análisis por segundo (IA)Límite superior del ritmo de inspección, 1...200menor carga en la tarjeta gráfica; no depende de la conexión de la cámara
Umbral de IAno se establece en la pestaña "Cámara"el umbral de reconocimiento de la zona solo se establece en la pestaña "Inspeccionar" (sección 5.2), uno por cámara
Exposuretiempo de exposiciónen resumen, menor movimiento de los objetos; el cero no es válido
Gain / Gain boostamplificación de la señal de la matrizaumenta el brillo, pero añade ruido
Pixel clock (SICK)frecuencia del sensormodifica los rangos de FPS y exposición, y se relee
FPSfrecuencia de fotogramas en modo libreno se utiliza en modo de disparo
Ancho / AlturaTamaño del cuadro (AOI)Cuadro más pequeño = mayor frecuencia y menor tráfico
Es importante. Realice capturas para el entrenamiento en las mismas condiciones en las que funcionará la línea: la misma iluminación, la misma velocidad, la misma posición de la cámara. Después de cambiar la configuración, el programa recordará en la consola que es necesario reentrenar el modelo con las nuevas capturas.

3.4. Pestaña "Cámara" para cámaras USB/web

Para cámaras USB, la pestaña muestra el bloque "Cámara USB: resolución, FPS y propiedades". Las propiedades del controlador que la cámara no proporciona no se muestran; los márgenes del cuadro están definidos por el programa, ya que DirectShow no proporciona información sobre los rangos.

1
Aceptar y Aplicar. El botón Verificar muestra las dimensiones estándar, desde VGA hasta 8K, y solo muestra las dimensiones que la cámara ha aceptado. La línea "Formato de la cámara" muestra la dimensión real y el FPS.
2
Permita que la exposición automática, el enfoque automático y el balance de blancos automático se ajusten, y luego presione Fijar parámetros (desactivar automático, guardar como está): el modo automático se desactiva, el programa ajusta automáticamente la velocidad de obturación manual para lograr la misma luminosidad (cuando el modo automático está activado, el controlador muestra la última velocidad de obturación manual utilizada, no la ajustada), los valores y el formato se guardan en la base de datos y se aplican cada vez que se conecta esta cámara.
3
Serie Con IA: Selección automática según formas (20–60 segundos, ajuste de exposición y contraste a partir de imágenes reales, criterio: nitidez de los contornos sin efecto de sobreexposición), Formas, sin color, Formas, suaves, Restaurar, Tipos estándar.
4
Los valores introducidos en los campos se guardan inmediatamente en la cámara, sin necesidad de pulsar la tecla "Enter", y se escriben directamente en la base de datos. El botón "Recargar propiedades desde la cámara" indica que la cámara ha registrado correctamente los datos.
Consejo. Para la IA, es mejor eliminar el color no ajustando la saturación de la cámara, sino utilizando la opción general Entrenar en escala de grises (configuración general del modelo) en la pestaña "Cámara" (en la pestaña "Modelo de IA", también se llama "Entrenar en escala de grises"): de esta manera, tanto las imágenes utilizadas para el entrenamiento como las imágenes de inspección serán en escala de grises, mientras que la cámara seguirá proporcionando color al operador. El modelo del ejemplo se entrenó en escala de grises.

3.5. Configuraciones de cámara guardadas (conjuntos)

El bloque "Configuraciones de cámara guardadas" se muestra para USB, SICK y HIKROBOT. Al ajustar los parámetros según el producto, guárdelos con un nombre: para otra placa o otra iluminación, simplemente seleccione un conjunto de la lista.

  • Guardar como… — Lee los valores actuales de la cámara y solicita el nombre del conjunto. Si el nombre ya existe, ofrece la posibilidad de sobrescribirlo.
  • Seleccionar un conjunto en la lista guarda inmediatamente los parámetros en la cámara y los guarda: para USB, en la base de datos; para SICK y HIKROBOT, en un archivo de parámetros y en la memoria de la cámara (UserSet1 / EEPROM). A continuación, el panel lee los valores del hardware y muestra cuántos parámetros se han guardado y cuántos se han modificado.
  • Revertir sobrescribe la entrada seleccionada con los valores actuales, Renombrar y Eliminar solo afectan a la entrada en la base de datos; los parámetros de la cámara no se modifican.

El conjunto incluye: para USB, resolución, FPS, propiedades del controlador y modos automáticos; para SICK, ganancia, tiempo de exposición, FPS, nivel de negro, frecuencia de reloj de píxeles, aumento de ganancia, equilibrio de blancos R/G/B, gama de colores y color de software; para HIKROBOT, ganancia, tiempo de exposición, FPS, nivel de negro y todos los nodos de GenICam. El tamaño del cuadro de las cámaras industriales no está incluido en el conjunto: su cambio reinicia la grabación. Los conjuntos son comunes para todas las cámaras del mismo tipo, por lo que en una mesa con cámaras idénticas, se coloca un conjunto para cada una.

3.6. Red GigE y reconexión

  • El tamaño del paquete GigE de HIKROBOT se establece automáticamente de forma óptima al abrir; manualmente se puede ajustar en el bloque GenICam. Los cuadros Jumbo de 8164–9000 reducen la carga; si los cuadros se interrumpen, establezca 1500 y aumente la latencia entre paquetes.
  • La línea `Net` calcula la carga de cada cámara en función de sus propios datos (tamaño de la carga útil × frecuencia) y la compara con el tráfico de red real. Una discrepancia significativa indica la pérdida de fotogramas o tráfico no deseado. Los adaptadores virtuales y los filtros NDIS (GigEVision, uEye, Npcap) se excluyen de este cálculo.
  • Si la cámara es visible pero la transmisión no se inicia, haga clic en "Reconectar" (en la ventana de la CÁMARA o en el mosaico). Generalmente, la causa es la capacidad de ancho de banda de la red o del puerto USB.
  • La cámara picoCam pierde la configuración al cerrar el descriptor; si no hay ningún archivo de parámetros en la propia cámara, el programa aplica el archivo y solicita que se haga clic en "Guardar parámetros" para guardarlos en la cámara.

4. Modelo ZONA-PAR: de la cuadrícula a un modelo entrenado

4.1. Funcionamiento del método: un modelo, una clase por zona.

El modelo ZONA-PAR es una red de clasificación YOLO11 estándar, con un número de clases igual al número de zonas, más clases opcionales para detectar anomalías. Una clase corresponde a una carpeta dentro de las carpetas «train» y «val». El programa crea automáticamente todas las carpetas; no es necesario crearlas manualmente. Así es como se ve la carpeta del modelo en el ejemplo después del entrenamiento:

Carpeta model_4: imágenes de entrenamiento y validación, data.json: zonas, live_template: referencia de la placa, board.json: umbral, best.onnx: red entrenada.
Carpeta model_4: imágenes de entrenamiento y validación, data.json: zonas, live_template: referencia de la placa, board.json: umbral, best.onnx: red entrenada.
model_4\ train\ Imágenes para fines educativos zone_001\ Zonas normales 1 (C30): real_... desde la cámara, syn_... datos sintéticos zone_001_anomaly\ Defecto de la zona 1: syn_…_combo1_d, _rotate1 … zone_002\ Zonas normales 2 (BR1) zone_002_anomaly\ Defecto en la zona 2 val\ Conjunto de datos de prueba: las mismas cuatro carpetas, que se llenan automáticamente data.json Zonas: tablas, coordenadas, tamaño, color, activado/desactivado; clases; ranuras live_template.png / .txt referencia de la placa: fotograma, región de alineación, zonas rojas (excluidas) live_template_zones.png Referencia con zonas dibujadas y numeradas board.json Umbral de reconocimiento de la zona ({ "threshold": 0.50 }) train_gray.txt Característica: "Gama de grises" best.onnx El modelo entrenado es el que se asigna para la inspección runs\ diag\ *.cache Aquí hay algunas opciones de traducción, dependiendo del contexto: Opción 1 (General): * Datos de entrenamiento: progreso del aprendizaje, imágenes para análisis, caché de entrenamiento. Opción 2 (Más técnica): * Información del servicio: proceso de aprendizaje, imágenes para el análisis, caché de entrenamiento. Opción 3 (Enfatizando la función): * Información relacionada con el entrenamiento: progreso del aprendizaje, imágenes para el análisis, caché de entrenamiento. La mejor opción dependerá del contexto específico en el que se utiliza la frase
entrenamiento: dos carpetas por zona – normal y anómala.
entrenamiento: dos carpetas por zona – normal y anómala.
validación: la misma estructura, el programa la completa al tomar fotografías.
validación: la misma estructura, el programa la completa al tomar fotografías.

Los archivos real_…jpg son capturas reales de la cámara (se crean tanto en train como en val), syn_…jpg son datos sintéticos, edit_…jpg son capturas del editor de la zona. En el ejemplo, después de tomar varias placas: zone_001 — 502 archivos en train y 111 en val, zone_001_anomaly — 680 y 144, zone_002 — 813 y 181, zone_002_anomaly — 340 y 60.

Un único espacio de almacenamiento. Toda la información de la plantilla, incluyendo las zonas de inspección, la región de alineación, las clases y los espacios, se encuentra únicamente en la carpeta de la plantilla: data.json y live_template.txt. En la base de datos ya no existen las zonas, por lo que las pestañas "AI Model" e "Inspect" muestran las mismas zonas, y la carpeta de la plantilla se puede copiar en otra computadora sin perder ninguna información. Las plantillas antiguas se transfieren automáticamente al abrirse por primera vez.

El programa identifica el modelo como "pago" automáticamente, en función de la presencia de las clases de tipo zone_NNN. El número de clase es el número de zona en la red (1…N). Por lo tanto, la regla principal del método es:

Es importante. Las zonas son parte del modelo. Una vez que se han creado, no se pueden modificar (añadir, eliminar o reordenar tablas): los números de las zonas no coincidirán con las clases, y estas zonas recibirán la etiqueta NO_ZONE_CLASS. Si es necesario modificar las zonas, cree un nuevo modelo.

4.2. Crear el modelo

1
Haga clic en la pestaña "Modelo de IA" y luego en "Crear un nuevo modelo de IA".
2
Indique la carpeta padre y el nombre del modelo (el programa ofrece una opción model_N libre). La lista de clases predeterminada contiene normal y anomaly; para ZONA-PAR, no son necesarias, ya que las clases de zona se crearán automáticamente al realizar la primera captura por zonas. Puede eliminarlas o dejarlas vacías: antes del entrenamiento, el programa le sugerirá eliminar las clases vacías.
3
Haga clic en Crear modelo. Aparecerán las carpetas train y val en el disco. El modelo estará disponible para editar (no se cargará automáticamente para inspección). Si ya existe un modelo, utilice la opción Seleccionar carpeta de modelo.

4.3. Marcar las zonas en la placa

1
Coloque la placa correctamente en la cámara, de manera que quede alineada con la línea. Luego, haga clic en ROI → añadir a la clase (modelo de entrenamiento).
2
En el diálogo "Crear un ROI de clase", seleccione cualquier clase (esto no es relevante para la etiquetación) o introduzca un nuevo nombre y haga clic en "Aceptar + Abrir ROI". Más adelante, todas las clases de zonas se mostrarán, agrupadas según el patrón zone_###: hacer clic en el grupo lo selecciona, hacer clic de nuevo lo deselecciona; el botón "Eliminar grupo" elimina todo el grupo junto con las imágenes.
3
Se abrirá la ventana "Seleccionar ROI" (Área de Interés). Arrastre el cursor para dibujar un rectángulo alrededor del elemento. Aparecerá el campo "Tamaño de la zona, px": introduzca el tamaño (que se ajustará a un múltiplo de 32, por ejemplo, 256) y pulse Enter: el rectángulo se convertirá en un cuadrado perfecto con la etiqueta del tamaño. Repita el proceso para cada elemento que deba verificar. En el ejemplo, hay dos zonas: una alrededor de C30 y otra alrededor de BR1.
4
Si hay muchas piezas y están dispuestas de forma uniforme, es más conveniente utilizar la función de "rejilla": simplemente dibuje la estructura a lo largo de la placa y especifique el tamaño de la zona; la herramienta le indicará cuántas filas y columnas se han creado. Alternativamente, puede definir en el bloque "Rejilla de zonas" el número de filas, columnas, ancho y altura de las celdas, y luego hacer clic en "Crear rejilla". La rejilla se puede arrastrar con el ratón para que se ajuste perfectamente al objeto.
5
La barra de la derecha muestra cada zona, con su tamaño y la casilla "activada"; una zona desactivada no genera ninguna clasificación, y una tabla completamente oculta no participa en la inspección. Los botones Todas las zonas ✓ / ✗, Color, Eliminar, Eliminar TODAS las zonas. Cierre la ventana con la tecla Enter: las zonas se guardarán en data.json y aparecerán en el vídeo en color amarillo.
Resultado de la delimitación en la pestaña "Modelo de IA": dos zonas amarillas en la imagen en vivo – BR1 arriba a la derecha y C30 abajo a la izquierda. A la derecha, los botones del modelo ZONA-PAR, la casilla "Asociar zonas al producto mediante marcadores" y la configuración de entrenamiento.
Resultado de la delimitación en la pestaña "Modelo de IA": dos zonas amarillas en la imagen en vivo – BR1 arriba a la derecha y C30 abajo a la izquierda. A la derecha, los botones del modelo ZONA-PAR, la casilla "Asociar zonas al producto mediante marcadores" y la configuración de entrenamiento.
Consejo. La pieza debe ocupar una parte considerable del área, y debe quedar un espacio para la placa: pistas, etiquetas, áreas. Es precisamente este "cimiento" el que se utiliza posteriormente para los datos sintéticos (sección 4.6). Para placas con componentes de 0603-1206 a 11 px/mm, una medida de 128 px funciona bien; para condensadores, interruptores y conectores, una medida de 192-256 px, como en el ejemplo. Después, el tamaño de la entrada de la imagen se establece aproximadamente igual al tamaño del área.

Zonas rojas: eliminar la zona de los datos sintéticos con un solo clic

En la pestaña "Modelo de IA", haga clic con el botón izquierdo sobre la zona ya creada directamente en el vídeo: la zona se volverá roja y no participará en la selección por zonas ni en la detección de anomalías. Un segundo clic la restablecerá. Los contadores de archivos en las ventanas de datos sintéticos se actualizan inmediatamente, y la etiqueta "apagado N" en el fotograma indica cuántas zonas están desactivadas. La lista de zonas rojas se guarda por cámara y modelo; en la pestaña "Inspeccionar", la misma zona permanecerá normal (en este caso, las zonas amarillas se encuentran en la sección 5.5).

4.4. Asignar referencia: región de alineación

Las zonas de inspección se definen en función de la posición de la placa. Para permitir el ajuste y la rotación de otra placa en la línea de producción, el programa guarda una referencia: un fotograma de referencia y una región de alineación: una sección de la placa que contiene detalles que se utilizan para localizar la placa en cada nuevo fotograma. Una vez que se encuentra la región, el programa transfiere las zonas de inspección a la nueva placa. Así es como funciona el proceso de captura de imágenes, la generación de datos sintéticos y la inspección.

Dos rectángulos diferentes. Las zonas de inspección son las que verifica el modelo (con bordes verdes). Región de alineación es el marcador que se utiliza para localizar el componente (con un marco naranja). Los puntos de referencia nunca deben colocarse dentro de las zonas de inspección: si se buscara el componente directamente en el condensador, un condensador desplazado "arrastraría" consigo tanto la zona como el defecto, haciéndolo invisible. Por lo tanto, en la región de alineación, utilice la serigrafía, los orificios, las pistas y los circuitos integrados cercanos, pero no utilice la mesa y la cinta transportadora.
1
En la pestaña "Modelo de IA", marque la casilla "Asignar zonas al producto según los marcadores" y especifique el "período de búsqueda, ms" (por defecto, 100). Coloque la placa debajo de la cámara y haga clic en "Asignar referencia".
2
Se abrirá la ventana "Región de alineación: ¿qué buscar en la placa", con una vista en vivo y zonas de inspección en verde. Arrastre el marco con el botón izquierdo sobre la sección de la placa con los detalles. A la derecha, verá inmediatamente "Puntos de referencia: N · Alineación: rígida / perspectiva": debe haber cientos de puntos, y si "el área es pequeña, amplíe el marco". La nueva marco reemplaza a la antigua, y el botón derecho la elimina.
3
Haga clic en ✔ Buscar zonas según el área seleccionada. El segundo botón ✔ Buscar zonas según las zonas de inspección selecciona automáticamente las zonas con un campo, solo cuando no hay nada más cerca. Si la casilla de verificación Preguntar la región de alineación cada vez está desmarcada, la siguiente fijación repetirá el área anterior sin la ventana.
4
El programa muestra "referencia registrada. Zona N, puntos de anclaje 1, puntos K" y guarda live_template.png y live_template.txt (fotograma, área, zonas rojas). La casilla de verificación Mostrar zonas de captura en el fotograma dibuja las zonas encontradas en el vídeo, y los puntos de referencia, según los cuales se realizó la medición, se muestran con puntos azules: a través de ellos se puede ver a qué se aferra el programa.
Área de alineación: marco naranja – área de la placa con detalles (3000 puntos de referencia), zonas verdes – zonas de inspección C30 y BR1, que no están dentro del marco.
Área de alineación: marco naranja – área de la placa con detalles (3000 puntos de referencia), zonas verdes – zonas de inspección C30 y BR1, que no están dentro del marco.
Imagen resultante después de la fijación: las zonas se encuentran en sus detalles y están etiquetadas como "normal", las líneas azules – límites del área de alineación, los puntos azules – puntos de referencia coincidentes en los detalles de la placa (que no entran en las zonas).
Imagen resultante después de la fijación: las zonas se encuentran en sus detalles y están etiquetadas como "normal", las líneas azules – límites del área de alineación, los puntos azules – puntos de referencia coincidentes en los detalles de la placa (que no entran en las zonas).
Modelo de combinaciónCuándo elegir
Automático (recomendado)La placa se alinea de forma rígida (desplazamiento, rotación, escala); la perspectiva solo se conecta si es significativamente mejor. Precisión en un pequeño área de alineación: 1-2 px.
RígidoLa cámara mira directamente desde arriba, la placa está plana. La opción más estable, si el área de alineación es pequeña.
PerspectivaLa cámara está inclinada o la placa está inclinada. Se necesita un área grande con puntos a lo largo de toda la anchura, de lo contrario, la homografía se distorsiona.

El botón "referencia con zonas" abre la referencia guardada con la cuadrícula y los números de zonas (sección 4.8). La placa encontrada se verifica para comprobar si cumple con los requisitos: un área entre 0,5 y 2 áreas de referencia, un polígono convexo y los puntos de apoyo deben ocupar al menos un cuarto del área en cada eje; de lo contrario, el resultado se descarta y se muestra un mensaje en la consola: "placa no encontrada".

Importante. Anteriormente, las áreas de "desplazamiento" se identificaban en pocas áreas por fotograma, debido a que la búsqueda de la placa se realizaba por áreas. Ahora, al volver a registrar las áreas de referencia, utilizando la región de alineación según los detalles de la placa, el número de áreas encontradas ha aumentado de 46-51 a 106-112 de un total de 134.

4.5. Captura por zonas: normal y sus datos sintéticos

El botón "ZONA-PAR: imagen por zonas" realiza lo siguiente: divide la imagen en zonas, crea un recorte de cada zona en su propia clase "zone_NNN" y añade datos sintéticos normales. Los datos sintéticos normales son el resultado de una toma imperfecta, y no un defecto: la placa se colocó ligeramente incorrectamente, la luz es ligeramente diferente, y el sensor produce ruido.

Ventana "ZONA-PAR: captura por zonas": número de opciones, capturas por tiempo, porcentaje en val, desplazamiento/rotación/escala de la zona en relación con la imagen completa, selección de "dónde", iluminación y ruido, y contador final de archivos. La ventana se extiende con el ratón.
Ventana "ZONA-PAR: captura por zonas": número de opciones, capturas por tiempo, porcentaje en val, desplazamiento/rotación/escala de la zona en relación con la imagen completa, selección de "dónde", iluminación y ruido, y contador final de archivos. La ventana se extiende con el ratón.
ConfiguraciónQué hace y qué se recomienda por defecto
Variantes sintéticas para cada zonaCuántos archivos sintéticos crear por cada recorte. Se recomienda 20, 0 (solo referencia), máximo 500.
Capturas de tiempo: cada variante desde un nuevo fotograma de la cámaraActivado, período de 800–1200 ms (no menor que el tiempo de exposición). Cada variante se toma de un nuevo fotograma real: ruido del sensor, vibración y parpadeo de la luz en lugar de imágenes dibujadas.
Cada variante también en val con una probabilidad del %,20 %. La referencia siempre está en val: en Ultralytics, cada clase debe estar en ambas carpetas.
Entrenar en escala de grisesLa opción general del modelo: se elimina el color de normal, anomalías e inspección. No se pueden mezclar archivos de color y en escala de grises en un mismo modelo, el programa lo advertirá.
Desplazamiento, px · hacia dóndeLa ventana se desplaza en toda la imagen en 0…2 px en las direcciones indicadas (← → ↑ ↓); la sección faltante se toma de la zona adyacente de la placa, y el corte permanece uniforme. La casilla todas las direcciones indica, para cada dirección, la información correspondiente en el archivo; una dirección aleatoria indica un solo archivo.
Rotación, ° · hacia dóndePor defecto, está desactivado: no hay rotación, y la opción de "alineación" solo define el área, mientras que la opción de "desenfocar" difumina el límite con el defecto. Las opciones "izquierda/derecha" y "todas las direcciones/una aleatoria" funcionan de forma similar a la opción de desplazamiento.
Escala, % · reducción / aumentoPor defecto, está desactivado. Dos casillas indican dos opciones: reducción (<100) y aumento (>100, la zona de recorte incluye los píxeles de los fotogramas adyacentes). Cada casilla marcada corresponde a un archivo diferente.
Brillo / Contraste / GamaValor aleatorio dentro del rango para cada opción: brillo de 88…112, contraste de 88…112 %, gama de 98…102 % (en la imagen); en el perfil "Desplazamiento de elementos", el brillo es más amplio para evitar que se convierta en un indicador.
Ruido (sigma) / DesenfocadoGrano del sensor de 3…8 niveles, ligero desenfoque de 0,4…0,8 px.
Columna "general"Con la casilla marcada, se incluye en el archivo general junto con los demás; sin ella, se crea un archivo separado "referencia + solo este elemento". Cuantos más elementos haya, más archivos habrá por opción.
1
Haga clic en "ZONA-PAR: imagen por zonas". La línea en la parte inferior del diálogo indica previamente: "Para la opción: 1 archivo. Para la zona: 21 en el tren, ≈5 en val. En total, ≈ 52 archivos. Fotografías de la cámara: 20, ≈16" (para dos zonas).
2
Seleccione el perfil: Predeterminado (desplazamiento de 0-2 px, brillo ±5, contraste 95-105 %), Desplazamiento de elementos (desplazamiento de 0-1 px, brillo -10...10) o Color y tono (desplazamiento de 0-2 px, brillo ±2, contraste y gama desactivados para que el tono siga siendo un indicador).
3
Haga clic en Cancelar. La generación se realiza en segundo plano, mostrando una ventana de progreso que indica "zonas 1/2 · archivos 26 · cuadro 4/20" y un botón de cancelación. Al finalizar, se muestra el mensaje: "Completado: 2 zonas → clases zone_001…zone_002, archivos: 52". El programa automáticamente configura los parámetros de entrenamiento para la placa: Tamaño de la imagen 128, Tamaño del modelo s, Épocas 50, Lote 64 (sección 4.9).
4
Repita la imagen en varias placas diferentes y funcionales utilizando el mismo botón. Para un modelo fiable, se necesitan al menos 80 archivos por clase, y lo más importante, varios ejemplos reales (5-10 placas), en lugar de una sola imagen con cientos de variaciones.
trainzone_001: Una variable normal C30 en el conductor: real_... con cámara y syn_... _n1...n20 con sufijos de desplazamiento (shiftd, shiftl, shiftr, shiftu). La etiqueta siempre se encuentra en su posición relativa a la base.
trainzone_001: Una variable normal C30 en el conductor: real_... con cámara y syn_... _n1...n20 con sufijos de desplazamiento (shiftd, shiftl, shiftr, shiftu). La etiqueta siempre se encuentra en su posición relativa a la base.
trainzone_002 — normal BR1: real_... con tres capas y variantes que incluyen rotación (rotl, rotr) y desplazamiento.
trainzone_002 — normal BR1: real_... con tres capas y variantes que incluyen rotación (rotl, rotr) y desplazamiento.

4.6. Datos sintéticos: defecto tras dos pulsaciones: el elemento se desplaza junto con la base.

La observación sobre la cual se basa la generación de datos sintéticos. El modelo aprende especialmente bien cuando se le muestra, en lugar de una simple mancha, el elemento inspeccionado junto con los componentes de la placa que lo rodean: líneas de serigrafía, pistas, color y textura de la base. El programa reduce el área de la imagen al tamaño del elemento y luego desplaza o rota esta área, rellenando el borde con píxeles de la imagen. Como resultado, el elemento no está en su posición correcta en relación con la base: exactamente como lo ve el controlador en una situación real, con el ruido real del sensor, la luz real y la placa real.

Una zona "normal" y una zona "anómala" se diferencian únicamente por la posición del elemento con respecto a la base. Todo lo demás es igual, por lo que la red aprende la relación "elemento ↔ placa", y no la tonalidad de la mancha o la iluminación.

Dos pulsaciones:

1
ZONA-PAR: imagen por zonasCapturar. Las imágenes recortadas de cada zona, con 20 opciones de captura (desplazamiento de la ventana de 0-2 px, brillo, ruido), se clasifican en las clases zone_NNN.
2
ZONA-PAR: anomalías de zonasCrear. La configuración predeterminada ya incluye ambos tipos de desplazamiento: desplazamiento de la zona de 5 a 12 px en todas las direcciones y rotación del área del elemento (70% de la zona, círculo) de 15 a 180°. Los archivos se guardan en las clases zone_NNN_anomaly.

No es necesario realizar ninguna otra configuración: ni dibujar diagramas defectuosos, ni buscar placas defectuosas. A continuación, ENTRENAR EL MODELO DE IA.

Antes y después: lo que logra el programa

ANTES: imagen en directo de una placa funcional. Ambas zonas son verdes, indicando "normal".
ANTES: imagen en directo de una placa funcional. Ambas zonas son verdes, indicando "normal".
DESPUÉS: se introducen los datos sintéticos de las carpetas de anomalías (C30 desplazado a la derecha y hacia abajo, BR1 inclinado). Ambas zonas son rojas, indicando "anomalía". De esta manera, la placa también se verá con un defecto real en la línea.
DESPUÉS: se introducen los datos sintéticos de las carpetas de anomalías (C30 desplazado a la derecha y hacia abajo, BR1 inclinado). Ambas zonas son rojas, indicando "anomalía". De esta manera, la placa también se verá con un defecto real en la línea.
Grande, zona 1 (C30): a la izquierda, normal según la cámara; a la derecha, datos sintéticos: el componente junto con la base se desplazan hacia abajo y a la derecha, el borde está relleno por los elementos de la imagen.
Grande, zona 1 (C30): a la izquierda, normal según la cámara; a la derecha, datos sintéticos: el componente junto con la base se desplazan hacia abajo y a la derecha, el borde está relleno por los elementos de la imagen.
Grande, zona 2 (BR1): a la derecha, la zona del componente está inclinada 180 grados; las plataformas están en su lugar, la carcasa mira en la dirección equivocada.
Grande, zona 2 (BR1): a la derecha, la zona del componente está inclinada 180 grados; las plataformas están en su lugar, la carcasa mira en la dirección equivocada.

Carpetas de anomalías, tal como las ve el usuario.

Compare con las carpetas "normales" del apartado 4.5: la única diferencia es la posición de la pieza en relación con la base.

«train\zone_001_anomaly» — defecto C30. En cada copia de t000, t001… hay nueve archivos: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur — la zona ha sido desplazada en 5-12 px en ocho direcciones (d = abajo, u = arriba, l = izquierda, r = derecha), rotate1 — la zona del condensador ha sido rotada.
«train\zone_001_anomaly» — defecto C30. En cada copia de t000, t001… hay nueve archivos: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur — la zona ha sido desplazada en 5-12 px en ocho direcciones (d = abajo, u = arriba, l = izquierda, r = derecha), rotate1 — la zona del condensador ha sido rotada.
«train\zone_002_anomaly — fallo en el BR1: el cuerpo se ha desplazado a cada una de las ocho caras y está orientado en un ángulo aleatorio. La textura de la placa y las plataformas son auténticas.
«train\zone_002_anomaly — fallo en el BR1: el cuerpo se ha desplazado a cada una de las ocho caras y está orientado en un ángulo aleatorio. La textura de la placa y las plataformas son auténticas.
Cómo leer los nombres de los archivos. syn_<fecha>_t003_combo1_dr.jpg — copia 3, archivo general, desplazamiento hacia abajo y a la derecha (d = abajo, r = derecha, u = arriba, l = izquierda); …_rotate1.jpg — rotación de la zona del elemento; …_scale1_dn/_up — escala hacia arriba o hacia abajo; …_tl/_c/_br — ubicación de la zona (esquina, centro). Gracias al nombre, siempre se puede identificar qué defecto específico hay en el archivo, y el exceso se elimina mediante el botón "Eliminar datos sintéticos de la clase (entrenamiento + validación)" en la ventana de zonas.

Etiquetado de piezas: ¿por qué la línea es gruesa y cómo se configura?

En las piezas, hay una marca: letras y trazos de 1-2 px en la imagen. Esta marca varía de lote a lote: diferente fuente, la etiqueta en el condensador está inclinada, y parte de los símbolos están borrados. Si se dibuja una "arañazo" sintético con una línea del mismo grosor, la red no podrá diferenciarla del trazo de la marca y del ruido del sensor, y comenzará a rechazar las placas con piezas de otro lote.

Los datos sintéticos de ZONA-PAR cubren esto desde dos perspectivas. Primero, el defecto principal, que es el desplazamiento del elemento, traslada la marca junto con el cuerpo, por lo que la inscripción no se convierte en un indicador: se ve igual tanto en condiciones normales como en situaciones anómalas. Segundo, la línea dibujada o el rasguño, por defecto, son gruesos (ocupan ⅛ del área, con un grosor mínimo de 3 píxeles) y, por lo tanto, no se parecen a la línea de la marca. Ahora, el grosor se especifica explícitamente: el campo "Grosor de la línea, píxeles" (0 = automático) afecta tanto a la línea como a la cruz.

Los defectos dibujados (rectángulo, círculo, línea, "elemento ausente", mancha difusa y otros) se agrupan en un conjunto plegable Defectos sintéticos sobre la plantilla. Por defecto, está plegado y desactivado: el defecto principal en la placa es el desplazamiento. Actívalo para tareas específicas: área inundada, gota extra, etiqueta borrada.

Parámetros de las figurasQué define:
Tamaño: de … a, % de la zona / pxTamaño o longitud de la figura. En porcentaje, en relación con el lado más pequeño de la zona (proporcional a cualquier zona); en px, igual en todas las zonas, lo que es útil cuando se conoce el tamaño real del defecto en píxeles de la imagen.
RellenoCompleto / contorno / mixto (el contorno también es grueso).
Grosor de la línea, pxLínea / rayón y cruz. 0 = automático (grueso). Para etiquetar piezas, no debe ser inferior a 3 px.
Ubicación del defectoEn el centro, a la izquierda, a la derecha, arriba, abajo: indica dónde colocar la figura (con una ligera dispersión aleatoria). La opción "todas las posiciones" genera un archivo para cada posición marcada; la opción "una posición aleatoria" genera un solo archivo, con la posición elegida al azar entre las posiciones marcadas. El contador de archivos en la parte inferior de la ventana tiene en cuenta estas opciones de inmediato.
Colores de las figuras: 5 ranurasCinco espacios en lugar de una lista de nombres. Una casilla de verificación indica si el espacio está activo. El color se elige aleatoriamente entre los espacios seleccionados (aproximadamente 12 colores por canal, para evitar que sean todos del mismo tono). Un botón de muestra permite seleccionar un color de la paleta. Un gotero permite seleccionar un color de la imagen de la cámara (la rueda sirve para hacer zoom, el botón derecho para panorámica) y tomar el color de un detalle o componente real. Por defecto, dos espacios están activados: uno oscuro y uno claro, mientras que los tres restantes están desactivados.
Columna "general"La forma de defecto marcada se guarda en un archivo común junto con otras "comunes" (por ejemplo, una rayada sobre un elemento desplazado). Sin marcar, se crea un archivo separado "normal + solo este defecto". La opción "todas las posiciones" siempre crea un archivo separado.

4.7. Anomalías de zona: ventana de configuración

El botón "ZONA-PAR: anomalías de zonas" crea clases "zone_NNN_anomaly" a partir de imágenes normales. Se seleccionan todas las zonas, excepto las rojas (desactivadas mediante un clic en la imagen del modelo de IA, sección 4.3). Las clases de anomalías no son necesarias en todas las zonas: añádelas a las zonas donde realmente se producen defectos, y el modelo verificará las demás zonas mediante el reconocimiento.

La ventana "ZONA-PAR: anomalías de zona": copia del defecto en la parte superior; grupo plegable de figuras dibujadas con parámetros, ubicación y paleta; desplazamiento, rotación y escala de la zona con la forma de la zona y escala ±%; subzonas; iluminación sobre el defecto; capturas de pantalla por tiempo y val.
La ventana "ZONA-PAR: anomalías de zona": copia del defecto en la parte superior; grupo plegable de figuras dibujadas con parámetros, ubicación y paleta; desplazamiento, rotación y escala de la zona con la forma de la zona y escala ±%; subzonas; iluminación sobre el defecto; capturas de pantalla por tiempo y val. La ventana se expande con el ratón.
Configuración¿Qué hace?
Copia del defectoUn único valor para todos los tipos: ¿cuántas copias con parámetros aleatorios se deben crear para cada tipo marcado (por defecto, 10)?
▸ Defectos sintéticos sobre el recorteGrupo predeterminado: rectángulo, rectángulos pequeños, círculo, elipse, triángulo, octágono, línea/rasgo, cruz, elemento ausente, mancha difusa, parche de ruido, fragmento de otra zona. Los parámetros de las figuras, la posición y la paleta se encuentran en la sección 4.6.
Desplazamiento, px · hacia dónde · formaPrincipal fallo de la placa. El área (círculo o cuadrado) se desplaza entre 5 y 12 px en las direcciones indicadas: ← → ↑ ↓ y las dos diagonales ⤡ ⤢. Escala vertical / horizontal, ±% – tamaño del área en relación con la zona: 0 – toda la zona, -30 – área 30 % más pequeña (solo se desplaza el elemento, la base permanece), +30 – área más grande que la zona (incluye elementos adyacentes de la imagen). Todas las direcciones – para cada lado, según el archivo.
Rotación, ° · formaEl área (círculo o cuadrado, la misma escala ±%) se rota a un ángulo aleatorio dentro de un rango en ambas direcciones.
Escala, % · reducción / aumentoLa zona como defecto: reducción del 60-85% o aumento del 120-160%. Cada lado marcado es un archivo diferente. Normalmente está desactivado en la placa.
"general" para el desplazamiento y la rotaciónSi ambas casillas están marcadas, significa que se trata de un único elemento en un mismo archivo: el desplazamiento y la rotación se aplican mediante una única transformación (no de forma secuencial, lo que resultaría en un resultado confuso), y la escala y la forma son comunes y se definen en relación con el desplazamiento.
▸ SubzonasLa zona se divide en 2, 4 o 9 partes, y dentro de cada una, el área se rota o desplaza; la casilla "una foto para cada subzona" genera un archivo por parte. Esto es necesario para zonas grandes con varios elementos.
Iluminación y ruido sobre cada archivo de defectoActivado y igual a normal: el defecto debe diferenciarse por su geometría, no por la iluminación.
Imágenes por tiempo / en valCada copia del nuevo fotograma de la cámara (800 ms), 20 % en val, el primer archivo de la clase en val siempre.
1
Haga clic en ZONA-PAR: anomalías de zonas. El resultado se calcula de antemano: "Zona: 2 · en copia: 2 archivos · en zona: 20 · total ≈ 40 (+ parte en val)". Con "todas las direcciones", el desplazamiento de los archivos en copia es de nueve, como en las carpetas anteriores.
2
Seleccione el perfil: Predeterminado (desplazamiento de la zona de 5–12 px + rotación de la zona, las figuras y las subzonas están comprimidas y desactivadas), Desplazamiento de los elementos (solo desplazamiento de 4–12 px, con el mismo brillo que en la configuración normal) o Color y tono (las figuras, "elemento eliminado", colores de la paleta, sin desplazamiento). La ventana guarda inmediatamente cualquier cambio, con cada pulsación.
3
Haga clic en "Crear". Las clases "zone_NNN_anomaly" aparecerán en el árbol de la modelo. Para añadir defectos reales de la línea a las mismas clases, utilice la opción ROI → añadir a la clase.
Importante. El límite inferior del desplazamiento sintético (5 px) se encuentra justo encima del rango normal (0–2 px). No aumente el rango normal hasta 5 px ni restrinja la anomalía a 2 px: el límite se desvanecerá y el modelo oscilará sobre las placas reales. Si necesita una sensibilidad diferente, modifique ambos límites de forma coherente y convierta ambos a milímetros (sección 1.3).

4.8. Referencia con zonas: placas de soldadura y editor de zona

El botón "referencia con zonas" abre la imagen de referencia guardada con la cuadrícula. Aquí, los datos sintéticos se crean sin utilizar la cámara: la rueda permite hacer zoom, el botón derecho permite hacer panorámicas, el botón izquierdo permite seleccionar zonas (Ctrl para añadir, la herramienta de "extender" con un cuadro, Ctrl+A para seleccionar todo), y un doble clic abre el editor de zonas.

  • Tornillos de soldadura para las zonas seleccionadas… – ventana "Tornillos de soldadura: conexión entre pistas". El programa identifica automáticamente las pistas dentro de la zona (límites de Ots, bandas claras de ≥ 2 px), coloca una gota de soldadura en el espacio entre las pistas, utilizando el color de las pistas, con un borde oscuro y un reflejo. Ajustes: entre pistas verticales o horizontales, tornillos en las imágenes 1…3, tamaño del 8…18 % de la zona, imágenes para la zona (5), donde colocar – en la anomalía o en la normal, iluminación de la superficie, en "val" – una nueva imagen con otra iluminación o una copia exacta.
  • Editor de zona: Herramientas: Pincel, Pipeta, Mancha de color, Copiar zona, Insertar, Estampado, Zona de componentes; paleta "soldadura / área", "placa", "sombra / máscara", blanco, negro; campo "Copiar" y botón Crear imagen. Así se dibuja un defecto que aún no existía en el dibujo: área inundada, elemento adicional, falta de marcado.

Los archivos del editor reciben los nombres `edit_…` y se clasifican en una zona o en una anomalía de esta. En la pestaña "Inspeccionar", la misma ventana se abre únicamente para su visualización.

4.9. Entrenamiento del modelo

El grupo de parámetros "Configuración de entrenamiento" en la pestaña "Modelo de IA" se completa automáticamente después de la primera captura de pantalla por zonas: Tamaño de la imagen 128, Tamaño del modelo s, Épocas 50, Lote 64. Estos son los valores para las zonas de 108–137 píxeles. Para las zonas de 256 píxeles, como en el ejemplo, establezca el "Tamaño de la imagen" en 192 o 256; de esta manera, el recorte se comprimirá muy poco (en la captura de pantalla de la ventana principal, se muestran 100 épocas y un "Tamaño de la imagen" de 192). Verifique los valores y haga clic en "ENTRENAR MODELO DE IA".

Parámetro¿Qué significa?Cómo elegir
Epochscuántas veces el modelo revisará todo el conjunto50 para la placa por defecto; 100-150 si hay muchas clases de anomalías
Batch Sizecuántas imágenes por paso64; si falta memoria de vídeo, reduzca
Image Size¿A qué tamaño se reducen los recortes, múltiplos de 32?aproximadamente el tamaño de la zona: 128 para la zona de 108-137 px; 192-256 para zonas de 256 px, como en el ejemplo
Model Sizen / s / m / l / xs — óptimo para cientos de pares de clases; n — falta de capacidad, m y superior — más lento
Device¿En qué entrenar?0 (GPU) con tarjeta gráfica NVIDIA; sin CUDA, el programa cambiará automáticamente a la CPU
WorkersNúmero de hilos para la preparación de datos:12 (por defecto, para procesadores multinúcleo)
1
Antes de iniciar, el programa verifica: ofrece eliminar clases vacías, carpetas innecesarias en val, y rellena val donde esté vacío. Al primer inicio, se instala el entorno de entrenamiento (Python 3, paquetes ultralytics, onnx, onnxslim, onnxruntime) — se necesita conexión a internet y unos minutos.
2
Para el modelo ZONA-PAR, el entrenamiento no requiere erasing, flip, crop y randaugment: estas operaciones de aumento son incompatibles con las clases de anomalías (una zona invertida ya no es la misma zona). Se muestra la línea correspondiente en la consola.
3
El botón se vuelve rojo cuando se selecciona "DETENER MODELO DE IA", y el anillo a la derecha muestra el porcentaje por épocas. El progreso del entrenamiento se puede ver en la consola. Para dos zonas y 100 épocas en una tarjeta gráfica, esto tarda aproximadamente entre 10 y 15 minutos.
4
Una vez finalizada la ejecución, el programa exporta best.onnx a la raíz de la carpeta del modelo y lo asigna inmediatamente para su inspección. El botón "Exportar a ONNX" repite la exportación sin necesidad de volver a entrenar.
Consejo. Para realizar un entrenamiento adicional después de añadir un "defecto" o nuevas plataformas, se utiliza el mismo botón: el conjunto de datos se complementa, se entrena el modelo de IA y best.onnx se sobrescribe. No modifique la estructura de la red durante este proceso.

5. Inspección

Todo el trabajo se realiza en la pestaña "Inspect". El modelo ya está configurado después del entrenamiento; lo que queda es verificar las zonas, establecer el umbral, seleccionar la fuente de velocidad y, si la placa funciona en cualquier posición, activar el modo de funcionamiento continuo.

En la pestaña "Inspeccionar": modelo model_4\best.onnx, línea "Clases de inspección: PLACA - zona 2, anomalías 2. La zona N se resuelve dentro del par zone_N / zone_N_anomaly, umbral del 50 %", cinta de producción en funcionamiento con un período de 2000 ms y un indicador "normal · 112 puntos", en
En la pestaña "Inspeccionar": modelo model_4\best.onnx, línea "Clases de inspección: PLACA - zona 2, anomalías 2. La zona N se resuelve dentro del par zone_N / zone_N_anomaly, umbral del 50 %", flujo de trabajo en vivo con un período de 2000 ms y indicador "normal · 112 puntos", en la parte inferior, fuente de velocidad y casillas "GPU", "Análisis en escala de grises". En la imagen, ambas zonas son verdes - "normal".

5.1. Asignar el modelo y verificar las zonas

1
Si el modelo no está asignado, haga clic en SELECCIONAR MODELO .ONNX PARA INSPECCIÓN y especifique best.onnx la carpeta que contiene el modelo. La línea "Clases de inspección" mostrará todas las clases; los nombres se toman directamente del archivo ONNX, por lo que los números de salida coincidirán garantizadamente con los nombres.
2
Haga clic en ZONA-PAR: zonas ↔ modelo (verificar umbral). La ventana muestra: "Número de zonas en la cuadrícula: 2 / Número de clases zone_NNN en el modelo: 2, número de clases de anomalías: 2 / Cada zona de la cuadrícula tiene su propia clase ✔". Las advertencias "Zonas sin clase en el modelo" o "Clases sin zona en la cuadrícula" indican que la cuadrícula se modificó después del entrenamiento.
3
DESACTIVAR LA IA desactiva temporalmente el análisis en esta cámara, sin borrar la configuración (cada cámara tiene su propia configuración); ELIMINAR EL MODELO elimina el modelo y las ranuras por completo.

5.2. Umbral de reconocimiento de la zona

Para cada zona, la red asigna probabilidades a todas las clases, pero la decisión se toma únicamente dentro de cada par. La probabilidad "normal" se calcula como q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly)) y se multiplica por un factor de "confianza" que indica qué tan segura está la red de que el par pertenece a la salida de la red (una confianza del 10% o superior se considera "completa"). La puntuación final, que varía del 0% al 100%, se compara con un umbral: si es superior, se considera "normal"; si es inferior, se considera una "anomalía".

El umbral predeterminado es del 50 %, se almacena en board.json junto con el modelo y se aplica inmediatamente, sin necesidad de reiniciar. Si el valor es inferior al 50 %, el umbral se desplaza hacia el normal de forma más pronunciada: 25 % → corte de 6 %, 10 % → 0,4 %, 1 % → casi todo verde; 99 % solo permite pasar las zonas más seguras. Esta escala es necesaria para que el operador pueda distinguir entre un 5 % y un 99 %, en lugar de ver solo zonas completamente rojas.

Consejo. Establezca un umbral en un conjunto de 10 placas que se sabe que funcionan correctamente: aumente el umbral hasta que todas las zonas muestren color verde, y luego verifique en las placas que tengan un defecto conocido. El programa escribirá en la consola una línea cada 10 segundos: "[ZONA-PAR] … normal N, anomalía M, umbral 0.50; valores más bajos: z17:0.31 …" – esto permite ver qué zonas están más cerca del umbral.

5.3. Flujo de trabajo en tiempo real: la placa en cualquier posición

«Galochka Cinta de inspección: detección de componentes en cualquier posición» incluye la búsqueda de componentes según la zona de alineación antes de cada análisis: la imagen se alinea con la referencia, las zonas se recortan a partir de la imagen combinada, y en el vídeo se dibujan los límites de la zona de alineación y las zonas (verdes = normal, rojas = anomalía). El campo Periodo, ms especifica la frecuencia con la que se busca el componente (por defecto 1000, en la imagen 2000). El indicador junto indica: verde "normal · N puntos", rojo "ANOMALÍA · N puntos", naranja "componente no encontrado" o "no hay referencia - marque". La decisión se basa en un solo análisis, sin acumulación.

La referencia y la región de alineación se fijan con el mismo botón Fijar referencia que se utiliza durante la captura (sección 4.4). La opción referencia con zonas permite visualizarla. En el vídeo, se muestran los límites de la región de alineación y los puntos de referencia azules que se utilizaron para la alineación. Las zonas que se extienden más allá de los bordes del encuadre después de la alineación se omiten y se marcan con la etiqueta OMITIR.

5.4. ¿Por qué señal analizar?

La fuente de la velocidad siempre es la misma: al incluir una nueva, el programa elimina la anterior.

MétodoCómo activarCuándo aplicar
Según la cámaraCasilla "Según la cámara"Control continuo; la velocidad está limitada por el deslizador "Análisis por segundo" en la pestaña "Cámara"
Según el temporizadorCasilla "Según el temporizador" e intervalo (ms)Control poco frecuente, por ejemplo, una vez por segundo
Según el disparadorSeleccionar la conexión en la lista "Disparador" y el frente "análisis con + en la entrada" o "con -"Cámara con sensor en la entrada: la imagen se captura en el momento en que llega el producto - el método más preciso (sección 6)
GPUCasilla "GPU"Activada por defecto; cambiar la opción reinicia el modelo
Análisis en escala de grisesCasilla "Análisis en escala de grises"Se activa automáticamente para modelos entrenados en escala de grises; las áreas se convierten en escala de grises antes de la inferencia

5.5. Zonas amarillas: desactivar con un clic

En algunas zonas, es necesario desactivar temporalmente el control: el elemento no está presente en esta versión, la zona está bloqueada por un dispositivo, se está realizando una depuración. Para ello, no es necesario modificar la cuadrícula o el modelo; las zonas se desactivan directamente en la pantalla, solo en la pestaña "Inspeccionar".

1
Haga clic con el botón izquierdo en la zona de la cámara: la zona se volverá amarilla y saldrá del análisis. Un segundo clic la volverá a activar.
2
Grupo de zonas: mantenga pulsada la tecla izquierda y arrastre el marco por la placa. Todas las zonas que entren en el marco se desactivan; si ya estaban amarillas, el marco las vuelve a activar. También funciona al ampliar con la rueda.
3
La lista de zonas amarillas se guarda en la base de datos por cámara y modelo, y persiste después de reiniciar el programa y reconectar la cámara. En la consola se muestra la línea "[Zonas] … desactivado zonas: N".

Lo que hacen las zonas amarillas se define mediante la casilla de verificación general "Zonas amarillas (desactivadas al hacer clic) permanecen en silencio" en la pestaña "Sonido" (activada por defecto):

CasillaComportamiento de las zonas amarillas
Activado (por defecto)La zona no se analiza en absoluto: la imagen no se envía a la red, la etiqueta es "OFF", no hay sonido, ni envío TCP, ni salida de la cámara. En un entorno en vivo, una zona amarilla no afecta al resultado "normal / anomalía".
ApagadoEl marco amarillo solo sirve como una nota: la zona se analiza y funciona de forma normal. Es útil para marcar zonas que necesitan ser revisadas, sin interrumpir el control.
Consejo. No es necesario eliminar las reglas de rechazo en las zonas amarillas: cuando están activadas, simplemente no generan resultados, y al desactivarlas, la zona volverá a funcionar inmediatamente.

5.6. ¿Qué se puede ver en la pantalla y en la consola?

  • El resultado se muestra dentro de la zona; el borde se define por el color de la tabla de zonas, y cuando se activa un disparador, se muestra en rojo. Cuando hay más de 50 zonas, la zona normal se muestra solo con un borde verde, mientras que las zonas anómalas y las zonas con incertidumbre muestran etiquetas: cientos de etiquetas en cada fotograma dificultaban la lectura de la imagen y sobrecargaban el proceso de dibujo. Las zonas amarillas se desactivan con un clic (sección 5.5).
  • La sección "Análisis por disparador" en la parte inferior de la pestaña muestra cada activación en una línea: [hh:mm:ss.mmm] Cámara de entrada + DISPARADOR 4 ms | IA 12 ms #57 y el resultado para cada zona. Estas líneas no se guardan en la base de datos.
  • Hacer clic derecho en una zona del vídeo: "Detectar la clase en esta zona → etiquetar esto como «...»" cambia el nombre de la respuesta del modelo para esa zona (sin modificar el modelo en sí, pero sí el rechazador y el registro verán el nuevo nombre); también, "Hacer rechazador para esta zona" y el contador de reglas.
  • Casilla de verificación Guardar las imágenes de la inspección y la carpeta: los fotogramas con las áreas dibujadas se guardan en archivos inspect_….jpgCada cámara tiene su propia configuración.
  • Cada 10 minutos, se crea una subcarpeta llamada "diag" donde se guarda un fotograma del flujo de trabajo y una lista de texto de las zonas, y se almacenan las últimas 20 imágenes, para analizar casos problemáticos sin necesidad de expandir la carpeta.

6. Disparadores: sensor externo en la entrada de la cámara.

Modo principal para la línea de producción: la cámara captura un fotograma mediante una señal eléctrica del sensor en su entrada discreta. Este es el momento de captura más preciso: el producto siempre se encuentra en la misma posición en el fotograma, y el análisis se realiza una sola vez para cada producto. La ventana "DISPOSITIVOS DE ACTIVACIÓN" recopila la conexión "sensor → cámara" y dibuja un diagrama de conexión para el conector seleccionado.

Módulo TRI-GGER para HIKROBOT (6 pines): sensor PNP, señal al pin 2, pin de tierra en el pin 5, diagrama de pines.
Módulo TRI-GGER para HIKROBOT (6 pines): sensor PNP, señal al pin 2, pin de tierra en el pin 5, diagrama de pines.
Lo mismo aplica para la SICK picoCam (6 pines): la señal en el pin 4 (Trigger +) y el pin 3 (Trigger −) son comunes.
Lo mismo aplica para la SICK picoCam (6 pines): la señal en el pin 4 (Trigger +) y el pin 3 (Trigger −) son comunes.
1
Haga clic en DISPOSITIVOS DE ACTIVACIÓN sobre el vídeo. Seleccione Dispositivo de activación (en la lista, sensor óptico BAOLSEN QAF-Q2P, 4 cables; cualquier sensor con salida PNP o NPN se conecta de la misma manera), Conector de la cámara (HIKROBOT de 6 pines o SICK picoCam de 6 pines), Cámara (qué cámara) y Tipo de salida del sensor: PNP — la señal conmuta el "positivo" (caso normal), NPN — conmuta el "negativo", se necesita una resistencia de 1-4,7 kΩ en +24 V.
2
Reúna el esquema según el dibujo: alimentación del sensor y de la cámara desde una fuente de 24 V, cable de señal del sensor al puerto de entrada de la cámara, cable de entrada al puerto de 0 V. El cable blanco del sensor es la segunda salida, y no se conecta a nada.
3
Haga clic en "Crear conexión". La conexión se guarda en la base; las conexiones duplicadas no se crean. El botón "Eliminar conexión" elimina la seleccionada.
4
En la pestaña «Inspeccionar», seleccione la conexión correspondiente en la lista «Desencadenador» y el frente: «análisis de + en la entrada» (fotograma al detectar 24 V) o «análisis de - en la entrada». El programa pone la cámara en modo de desencadenador: en HIKROBOT, TriggerMode = On, TriggerSource = Line0, mientras que en SICK, detiene la captura, establece el modo y reinicia. El círculo junto indica el nivel de entrada.

Identificación de los orificios

PinoHIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR — Alimentación de la cámara: 9-24 VGND — Tierra de alimentación de la cámara
2OPTO_IN — Entrada de la Línea 0 (+), señal de activaciónVCC — Alimentación de la cámara (12–24 V)
3GPIO — Línea 2, entrada o salidaDisparo — Entrada del disparador, optoacoplador (−)
4OPTO_OUT — Salida de la línea 1 (+)Fuente de alimentación + — entrada del sensor de efecto Hall (+), optoacoplador (+)
5OPTO_GND — Optoacoplador general, cable de retornoFlash + — Salida discreta (+)
6GND — Tierra de alimentación de la cámaraFlash − — Salida discreta (-)
Importante. Los conectores "papá" en la cámara y "mamá" en el cable son simétricos. El único punto de referencia es la palanca (una abertura en el conector); en SICK, está entre los contactos 1 y 6, y al invertir el cable, se dirige hacia la derecha. Identifique los contactos desde el lado que está en su mano. Un error en la conexión significa que la alimentación y la salida están cortocircuitadas. Para confirmar la conexión, pruebe con un multímetro.
Consejo. Utilice la conexión "+", en lugar de la conexión "-", para obtener una mejor precisión: en un montaje real, la variación del tiempo de disparo en la conexión "+" fue de 4,2 ms, mientras que en la conexión "-" fue de 40,7 ms. Verificación del sensor: el cable marrón y el cable azul siempre deben indicar 24 V, que es la alimentación; el señal debe estar entre el cable marrón y el azul, bloqueando la luz. Si no cambia, coloque una resistencia de 2-10 kΩ entre el cable marrón y el cable azul; 24↔0 V en este caso indica NPN.

7. Salidas: rejector, salidas discretas de la cámara y TCP

El dispositivo rechazador convierte el resultado de la inspección en una acción. La regla se crea en una zona específica (o en todas las zonas del modelo, de la clase o de las zonas marcadas) y se activa cuando el modelo detecta la clase especificada en esa zona. Las acciones son tres: enviar un paquete TCP al robot o al PLC, cambiar el estado de salida digital de la cámara y emitir una alerta sonora al operador. Cada activación se registra en el registro.

7.1. Guía de SALIDAS: contactos y comprobación con multímetro

El botón "SALIR" que aparece junto al vídeo abre una ventana de ayuda que no realiza ninguna configuración: muestra qué contactos corresponden a la salida, cómo comprobarla con un multímetro sin alimentación y cómo conectar la carga.

HIKROBOT — Salida Línea 1 (fototransistor) en los pines 4 (+) y 5 (−), corriente máxima de 25 mA.
HIKROBOT — Salida Línea 1 (fototransistor) en los pines 4 (+) y 5 (−), corriente máxima de 25 mA.
SICK picoCam — Pin de flash (fototransistor) en los pines 5 (+) y 6 (−), 150 mA de forma continua.
SICK picoCam — Pin de flash (fototransistor) en los pines 5 (+) y 6 (−), 150 mA de forma continua.
  • Salida — "contacto seco" del fototransistor: no proporciona su propio voltaje, solo cierra el circuito. Se requiere una fuente de alimentación externa.
  • Comprobación con multímetro en modo Ω: Salida APAGADA — cortocircuito (OL), ENCENDIDA — cientos de ohmios. El zumbador permanece en silencio en ambos casos, consulte los números. Si nada cambia, invierta los electrodos, el fototransistor es polarizado.
  • Carga: +24 В → lámpara → pin "+", pin "-" → GND. Para HIKROBOT, el límite es de 25 mA: la señal ya supera los 27 mA, por lo que es necesario reducir la alimentación o utilizar un relé intermedio. Para SICK, la corriente es mayor, la lámpara de 20-30 mA se conecta directamente.

7.2. Ventana OUTPUT: regla para la zona

El botón "SALIDA" en el panel derecho (o haciendo clic derecho en el área y seleccionando "Crear rechazo para esta área") abre la ventana "SALIDA: paquetes TCP y salidas discretas de las cámaras". A la izquierda, se muestra un árbol de navegación "Cámaras → modelos de IA → clases → áreas", con casillas de verificación para cada área. A la derecha, se encuentran las pestañas "Reglas de la zona", "Registro de activaciones" y "Base de datos".

Ventana OUTPUT: árbol de zonas a la izquierda, lista de reglas de la zona, grupo "Regla" y pestaña TCP con configuraciones.
Ventana OUTPUT: árbol de zonas a la izquierda, lista de reglas de la zona, grupo "Regla" y pestaña TCP con configuraciones.
1
Seleccione una zona en el árbol (el título de la derecha mostrará la ruta Cámara USB HD → model_5 → 1 → Zona 1 (T1.C1)). Haga clic en + Nuevo TCP, + Nuevo discreto o + Nuevo sonido.
2
En la sección "Regla", seleccione "Clase de IA" en la que se activa (para ZONA-PAR, es "anomalía" o "normal; * - cualquier clase), marque la casilla "Activado", y, si es necesario, utilice "Repetir hasta que la clase se mantenga" con un intervalo de repeticiones y "Confirmación de cambio de clase, ms" (por defecto, 1500: la nueva clase debe mantenerse durante ese tiempo para que el cambio sea reconocido).
3
Complete la pestaña TCP (sección 7.3), Salida de la cámara (sección 7.4) o Sonido (sección 7.5).
4
Verifique la secuencia sin esperar a que ocurra un error: Verificar esta regla (envía un paquete o genera una señal de salida), Simular el funcionamiento de la zona (procesa todas las reglas de la zona a través de una cola de eventos con protección contra falsos positivos y registro).
5
Haga clic en "Crear en 1 zona". Si se han marcado varias zonas, el botón cambia a "Crear en N zonas"; en el nodo del modelo, se indica "Guardar en toda la modelo", y en el nodo de la clase, se indica "Guardar en la clase". En la parte inferior: "Activar / Desactivar / Eliminar en las seleccionadas".

Una zona puede contener varias reglas TCP (diferentes receptores), pero no más de una regla de salida discreta por clase y no más de un sonido por clase. La regla se almacena en la base de datos y se ejecuta a través del flujo de inferencia: las reglas se mantienen en la memoria, una búsqueda por dirección de la zona en cada fotograma, y los sockets y el SDK de la cámara se gestionan en un flujo separado, para que el análisis no dependa de la red.

7.3. Paquete TCP para el robot o PLC

El programa funciona como un cliente TCP: se conecta a la dirección IP y al puerto del receptor, mantiene la conexión abierta y la reutiliza. En caso de interrupción, realiza un único intento de reconexión y reintento. La cadena de texto se envía en formato UTF-8 y termina con un carácter de retorno de carro (CR) y un carácter de salto de línea (LF).

CampoAsignación
Tiempo de espera de conexión, ms1000 por defecto, 100...10000.
Tiempo de espera de envío de la regla, msPausa mínima entre los envíos automáticos de la regla; 0 = sin pausa. Incluso el cambio de clase espera esta pausa.
ComandoLa palabra se interpreta tal cual: "up" – paquete "up". Se necesita un ángulo de clasificación – añadir una sustitución: "J6 {class}" → "J6 235". Vacío – se utiliza el patrón "Datos".
Datos propiosTexto arbitrario, que se utiliza en lugar de `{data}`.
DatosPlantilla de envío. Vacío = "número y nombre de la zona" ({zoneId} {zone}). Al hacer clic en el campo, se añade; al volver a hacer clic, se elimina; "Todos los campos" crea una plantilla estructurada.
SustituciónValorSustituciónValor
{zoneId}Número de zona (1, 2, 3...){camera}Nombre de la cámara
{zone}Nombre de la zona (se puede editar en la base de datos){model}Nombre del modelo de IA
{class}Clase que detectó el modelo{time}Hora:MM:SS.ms
{conf}Confianza, % (punto como separador){date}Fecha: AAAA-MM-DD
{data}Texto de "Datos propios"

Ejemplo de plantilla estructurada: `zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. Los números siempre deben estar en un formato invariable para evitar problemas al analizar los datos con PLCs.

  • Verificar la conexión simplemente abre el socket y muestra si la conexión ha sido establecida o si no hay respuesta después de N ms.
  • Enviar prueba realmente envía la cadena; el resultado se muestra junto al botón, no dentro de una ventana.
  • Envío de paquetes. Sin la casilla "repetir", la regla envía un solo paquete al cambiar de clase y lo repite hasta que el receptor responda con la línea ok <paquete>. Con la casilla marcada, la repetición se realiza de forma periódica, mientras la clase esté activa.
  • "La última acción tiene prioridad": si el modelo ha podido generar varios resultados mientras el operador está ocupado, se aplicará la última. La cola está limitada a 512 tareas.

7.4. Salida discreta de la cámara

Pestaña "Salida de la cámara": método de salida, línea, nivel, pulso, botones de verificación manual. Las cámaras USB no tienen salidas discretas; solo está disponible TCP.
Pestaña "Salida de la cámara": método de salida, línea, nivel, pulso, botones de verificación manual. Las cámaras USB no tienen salidas discretas; solo está disponible TCP.
CampoAsignación
SalidaMétodo: automático (en SICK: pin de flash (nivel constante) o GPIO; en HIKROBOT: UserOutputValue o LineInverter (el pulso está apagado)). Los nodos MV-CS020/016-10GC de UserOutput no tienen salida; el programa seleccionará automáticamente LineInverter.
LíneaPin de flash / GPIO1…6 en SICK; Línea 1 (salida), Línea 2 (bidireccional) en HIKROBOT; Línea 0 – solo entrada.
Nivelverdadero / falso / apagado. "apagado" – indica que hay una regla, pero la salida no se activa.
Pulso, ms (0 – mantener)0 – el nivel se mantiene hasta que cambia de clase; de lo contrario, se envía un pulso de 10…5000 ms con retorno.

Los botones "Activar salida", "Desactivar salida", "Impulso se prueban con un multímetro o una lámpara; "Funciones de la cámara recopila información sobre todas las posibilidades y genera un informe. Las pruebas manuales se registran en el mismo registro.

Múltiples zonas en una misma salida. Si en un pin están conectadas varias zonas, la salida interpreta una lógica "Y": HIGH solo cuando todas las zonas solicitan HIGH, pero si al menos una zona solicita LOW, la salida es LOW. Esto se representa en el registro como "zonas en la salida N, solicitan LOW k → HIGH/LOW". Así, una salida que indica "componente válido" se construye a partir de cientos de zonas en la placa.
Importante. En el dispositivo SICK, el pin "flash" tiene la misma función tanto para la salida digital como para la iluminación: si está conectado a una lámpara de pulsos, utilice GPIO. Las reglas de anti-ruido son: 500 ms por defecto (mínimo 200), y no se registran eventos sin actividad.

7.5. Alarma sonora: sonido personalizado para cada zona.

El tercer tipo de regla es el sonido generado por el ordenador con el programa. El operador no necesita mirar la pantalla: mediante una señal, escucha que una zona ha entrado en un estado de error, y diferentes sonidos en diferentes zonas indican exactamente dónde se encuentra el problema. El sonido está disponible para cualquier cámara, incluyendo USB y RTSP, que no tengan salidas discretas.

1
Seleccione una zona en el árbol y haga clic en "+ Nuevo sonido". En el grupo "Regla", especifique la categoría (por ejemplo, "anomalía") y marque la casilla "Activado".
2
En la pestaña "Sonido", seleccione el sonido deseado de la lista. Hay diez sonidos disponibles: un tono corto, un tono doble, un tono triple, un tono grave y uno agudo, un tono ascendente y descendente, una señal de alarma, un pitido largo y un timbre. El botón "Reproducir" reproduce el sonido seleccionado.
3
Su propio sonido: haga clic en «Cargar mi archivo…» y seleccione WAV, MP3 o WMA. El archivo se copia en la carpeta sounds\custom junto al programa (se puede quitar la unidad USB) y aparece en la lista con la etiqueta «propio». El botón Carpeta de sonidos abre esta carpeta: los archivos se pueden guardar directamente allí.
4
Establezca el valor de Pausa entre sonidos, en milisegundos entre 1000 y 10000. Durante este período, después de la señal, el sonido no se repite, incluso si la clase de la zona cambia nuevamente: con 10000 ms, el operador escuchará como máximo una señal cada 10 segundos.
5
Haga clic en "Crear para 1 zona" o marque las zonas con casillas y cree la regla para todas de una vez. Asigne un sonido diferente a cada zona: repita el proceso con otra señal para otra zona.
6
La casilla de verificación "Zonas amarillas (desactivadas al hacer clic) están silenciadas" está activada por defecto: las zonas que se desactivan al hacer clic en la pestaña "Inspeccionar" (sección 5.5) no emiten sonido ni permiten la transmisión TCP ni la salida de la cámara en todo el modelo.
FuncionamientoCómo funciona
Sin la casilla "repetir"El sonido se activa una vez que se confirma el cambio de estado de la zona (después de "Confirmar cambio de estado"). Mientras el estado se mantiene, no hay sonido.
Con la casilla "repetir mientras el estado se mantiene"La señal se repite a través del "Intervalo de repetición", pero no más de la pausa entre los sonidos, mientras la zona permanece en el estado indicado.
Múltiples zonas en estado de error simultáneamenteCada zona emite su propio sonido; los sonidos de diferentes zonas no se anulan entre sí, solo se anula la repetición de una zona específica.
RegistroCada vez que se activa, se registra en el "Registro de activaciones" con la línea "Sonido: ..."; si el archivo no se encuentra o el dispositivo de sonido falla, se muestra una línea de error y el programa continúa funcionando.
VerificaciónVerificar esta regla reproduce el sonido inmediatamente; Simular el funcionamiento de la zona reproduce el sonido junto con el protocolo TCP y las salidas a través de la cola de combate.
Consejo. Utilice una sirena o un triple señal para las zonas más importantes (conectores, componentes de potencia), y señales cortas para el resto. De esta manera, un único sonido indicará si es necesario acercarse inmediatamente a la línea. La configuración de sonido para todo el modelo se crea seleccionando el nodo o la clase del modelo en el árbol: una señal para cada fallo.

7.6. Registro de activaciones y base de datos

La pestaña "Registro de eventos" muestra las últimas 300 entradas en las líneas "HH:MM:SS.mmm ✔/✖ Cámara · Modelo · Clase · Zona → Acción [mensaje]", y se actualiza en tiempo real. Botones "Actualizar" y "Borrar registro".

Pestaña "Base de datos": dónde se almacenan los datos, copia y restauración de la base de datos mediante un único archivo.
Pestaña "Base de datos": dónde se almacenan los datos, copia y restauración de la base de datos mediante un único archivo.

Pestaña «Base de datos»: el programa guarda todo en un archivo SQLite rejectors.db junto al ejecutable, no hay un servicio separado, el puerto no está escuchando, no es necesario instalar nada. Tablas: settings (configuración), cameras (perfiles de cámaras), camera_models (modelos en las cámaras), zones (nombres y geometría de las zonas), rejectors (reglas), reject_log (registro), camera_param_files (copias de los parámetros de las cámaras), camera_presets (conjuntos de configuración de las cámaras). «Guardar una copia de la base…» crea una copia completa de la base utilizando el comando VACUUM INTO directamente en la base de datos activa; «Cargar la base desde la copia…» restaura la base, conservando previamente la actual. Se puede visualizar la base en DBeaver sin cerrar el programa; no se recomienda escribir en ella desde fuera.

8. Otros modos y tareas

Modelos estándar: normal / anomalía y cualquier clase

El mismo editor ROI también funciona para la clasificación estándar: comprimidos, tapas, etiquetas, piezas en el compartimento. Las clases se definen en el diálogo "Nueva modelo de IA" (por defecto, normal y anomalía, con nombres en minúsculas), las zonas se aplican a los productos, el botón "Tomar foto" con un número de círculos de 1...50, la serie "Crear fotos" a través de la cámara (fotograma/imagen) o del codificador. La sección "Datos sintéticos para IA": rotaciones precisas de 90°/180°, rotación completa de 360° con paso y rango, espejo, "clases por grados" (cada ángulo en su propia clase - rechazador enviará el ángulo por TCP), rangos de brillo y contraste. El entrenamiento se realiza con las augmentaciones completas de Ultralytics. El umbral de confianza para estos modelos se establece en la misma sección que para ZONA-PAR, en la pestaña "Inspeccionar".

Inspección multi-modelo (ranuras 1-20)

En una sola cámara se pueden tener hasta 20 modelos: Añadir ONNX a la ranura, luego ROI → Añadir clase a la modelo seleccionada — cada modelo en la ranura tiene su propia delimitación de zonas, y los resultados de todos los modelos se muestran en un solo fotograma.

En el caso de ZONA-PAR, normalmente no se necesitan ranuras. Un modelo ya cubre todo el chip: cada zona tiene su propia combinación de clases, por lo que la necesidad de "fusionar clases similares", que antes requería la creación de varios modelos, ya no es necesaria. Un ejemplo típico es un solo chip ZONA-PAR en el chip, con las ranuras vacías.

Cuándo se aplica la inspección multi-modelo:

SituaciónCómo configurar
Tareas diferentes en un mismo fotogramaZONA-PAR verifica la disposición y la presencia de elementos, mientras que el modelo estándar en la segunda ranura realiza la identificación, la etiqueta, el color del conector o la dirección de la llave. Las zonas del segundo modelo se establecen por separado a través de "ROI → Añadir clase al modelo seleccionado".
Producto sin rejilla fijaTabletas, tapas y componentes en el contenedor: varios tipos de productos en modelos estándar. Los tipos similares se organizan en diferentes ranuras para evitar la confusión.
Dos placas diferentes en una sola imagenDos modelos ZONA-PAR en diferentes ranuras, cada uno con su propia referencia y rejilla. La línea de producción funciona con la referencia del modelo principal.
Período de transiciónEl modelo antiguo y entrenado permanece en la ranura hasta que el nuevo ZONA-PAR recopila datos; ambos son visibles en una sola imagen, y las reglas del rechazador se transfieren según sea necesario.

Los umbrales, la velocidad de análisis, las zonas amarillas y las reglas de exclusión se aplican a todos los modelos de cámara. El botón "ELIMINAR MODELO" elimina y vacía los slots, por lo que solicita confirmación; "Eliminar seleccionado" elimina un modelo específico de un slot, pero sus archivos y zonas permanecen en la base de datos.

Modelos estándar

El botón "MODELOS GENERALES" guarda un conjunto de "cámara → modelo" con el nombre: "Crear a partir de los modelos actuales", "Aplicar a todas las cámaras", "Actualizar desde los actuales", "Renombrar", "Eliminar el conjunto". Pasar de un conjunto de ocho cámaras a otro producto es una única selección. Eliminar el conjunto solo elimina la agrupación: carpetas, ONNX, zonas y reglas permanecen. Las zonas pertenecen a la pareja "cámara + modelo": un modelo en ocho cámaras genera ocho marcas independientes.

Encoder y rechazador en la línea de producción

Para líneas con codificador en puerto COM (115200, ESP32): conectar CONECTAR CODIFICADOR, conexión automática, posición, paso de captura y corrección, Establecer cero + CAPTURA. La captura para entrenamiento y análisis puede realizarse "mediante el codificador" — los fotogramas son uniformes a lo largo del recorrido del producto. El antiguo dispositivo de rechazo, con retraso y anti-spam, envía la instrucción REJECT al controlador del codificador.

Grabación de vídeo y fotografías

Pestaña de configuración: INICIAR GRABACIÓN DE VIDEO desde la cámara activa, guardando el archivo como record_fecha_hora.avi (formato MJPG, fotogramas por segundo reales de la cámara). Las imágenes para el entrenamiento son real_….jpg, mientras que las imágenes de inspección son inspect_….jpg y contienen áreas dibujadas.

9. Configuración, consola y requisitos de licencia

Settings

  • GUARDAR EN ARCHIVO / CARGAR DES DE ARCHIVO — todas las configuraciones (cámara, modelos, reglas) en formato JSON, lo que facilita la reinstalación o la transferencia a una segunda computadora. La fuente de verdad es la base de datos, y el archivo JSON es una copia de seguridad en caso de que no esté disponible. Cada cambio de configuración se guarda automáticamente.
  • REINICIAR A LA CONFIGURACIÓN PREVIO — es irreversible: elimina la configuración y la disposición de las ventanas.
  • Idioma de la interfaz: 14 idiomas; la ventana principal se cambia inmediatamente, y las demás ventanas se abren al siguiente acceso.
  • Posición, tamaño y monitor de todas las ventanas, posiciones de los separadores: están almacenados en la base de datos; cuando el monitor está desactivado, la ventana vuelve a su área visible.

Console

Las casillas "Cámaras" y "Activador" están desmarcadas por defecto y muestran los mensajes correspondientes (en el modo de activación, los mensajes de la cámara se muestran en "Activador"); todos los datos, incluyendo los que pasan por filtros, se escriben en los archivos logs\engiai-*.log. La consola está diseñada para funcionar durante semanas sin intervención: en la pantalla se muestran 800 líneas, y al eliminar 1000 líneas antiguas, se eliminan 200; las nuevas líneas se recopilan en grupos de 4 cuatro veces por segundo, y no una por una; la función de desplazamiento hacia abajo está activada hasta que usted la desactive manualmente; la consola no tiene sonido. Los cambios de zona se registran a un máximo de 10 líneas por segundo (el resto se acumula en un contador), el archivo de registro ocupa 20 MB, y los archivos con más de 14 días se eliminan al iniciar; la base de datos almacena las últimas 20.000 entradas de registro. Los errores no procesados se encuentran en crash.log, y las causas de la finalización forzada se encuentran en runtime.log junto al archivo exe. Si algo no funciona correctamente, consulte aquí primero.

Requisitos

ComponenteRequisito
Sistema operativoWindows 10/11 x64.
Tarjeta gráfica para inspecciónNVIDIA con controlador CUDA; las bibliotecas CUDA 13 y cuDNN 9 se incluyen con el programa. Sin tarjeta gráfica, la inspección se realiza automáticamente en el procesador.
FormaciónPython 3 (con la opción "Añadir python.exe a PATH" durante la instalación) y los paquetes ultralytics, onnx, onnxslim, onnxruntime: el programa los instala automáticamente durante el primer entrenamiento, se requiere conexión a internet. La GPU para el entrenamiento se determina según PyTorch; sin CUDA, el entrenamiento se realiza en la CPU, pero el resultado es el mismo.
Cámaras SICKControlador IDS uEye; la cámara debe ser visible en IDS Camera Manager.
Cámaras HIKROBOTSDK MVS (la biblioteca se incluye con el programa); para GigE, se requiere una tarjeta de red con soporte para paquetes jumbo.

Licencia y modo de prueba

Al iniciarse, el programa se conecta al servidor de licencias engi.live; solo se envían los hashes de los identificadores del hardware y la versión, sin números de serie ni nombres de usuario. Si el servidor no está disponible, pero la licencia está almacenada en caché, el programa funciona utilizando la información almacenada en caché (para conexiones sin internet). Sin una licencia válida, se activa un período de prueba de 20 minutos: un contador que muestra "PRUEBA MM:SS" aparece en el encabezado de la ventana y en la barra de estado. El botón COMPRAR en la pestaña de Configuración abre la página de compra. Cuando se dispone de una licencia válida, el contador no se muestra.

10. Lista de verificación corta y búsqueda de fallos

Lista de verificación para placas:

1
CÁMARAS → «+ Añadir cámaras» → marcar sus cámaras → Añadir.
2
Pestaña Cámara: resolución → «Ajuste automático para IA (por cuadro)» (o «Establecer parámetros» en USB) → «Guardar parámetros» → «Guardar como…» conjunto de ajustes. Opcionalmente, «Entrenar en escala de grises».
3
Modelo de IA → «Crear nuevo modelo de IA» → nombre.
4
«ROI → añadir a la clase (modelo de entrenamiento)» → marco alrededor de cada componente → tamaño de la zona (por ejemplo, 256) → Enter. Para cientos de componentes idénticos, marco en toda la placa y cuadrícula.
5
Casilla «Establecer zonas en el producto según marcadores» → «Establecer referencia» → dibujar en el cuadro la sección de la placa con los componentes (no la zona de inspección) → «✔ Buscar zonas en la zona seleccionada».
6
«ZONA-PAR: captura por zonas» → «Capturar». Repetir en 3-5 placas correctas. Desactivar las zonas innecesarias previamente haciendo clic en el cuadro (rojo).
7
«ZONA-PAR: anomalías de zonas» → «Crear»: desplazamiento y rotación del elemento junto con la base ya están incluidos. Si es necesario, se pueden añadir los sujetadores en la sección "referencia con zonas".
8
ENTRENAR MODELO DE INTELIGENCIA ARTIFICIAL (Tamaño de imagen: 128, s, 50 épocas) → Esperar al 100% → best.onnx se asigna automáticamente.
9
Inspeccionar → «ZONA-PAR: zonas ↔ modelo» → verificar la correspondencia → umbral. "A través de la cámara" o seleccionar el disparador. Para una placa móvil, utilizar "Cinta transportadora".
10
SALIDA → seleccionar zonas → regla para la clase de anomalía (sonido, TCP o salida de la cámara) → "Simular la activación de la zona" → "Crear en N zonas".

Si algo no funciona:

SíntomaQué verificar
La cámara no aparece en la listaAlimentación y cable; para SICK: IDS Camera Manager e IP de la subred del adaptador; para HIKROBOT: esperar hasta 25 segundos después de la desconexión de emergencia y "Reconectar".
Imagen oscura, gris o con colores incorrectosCámara → "Ajuste automático para IA"; para SICK de color: disposición de Bayer y balance de blancos; para USB: "Estándar", luego "Confirmar parámetros".
Los fotogramas se cortan, la red es roja.GigE: tamaño del paquete 1500 o jumbo en la tarjeta de red, latencia entre paquetes; menor FPS o menos cuadros; tarjeta de red dedicada a la cámara.
"Placa no encontrada" / imagen no capturadareferencia no detectada o capturada con otra luz; pocas referencias de apoyo – ampliar la región de alineación y con detalles; la zona está ocupada por una mesa o cinta transportadora; aumentar el período de búsqueda.
Las zonas se desplazan a otra placa.La placa se busca por las propias zonas de inspección: redefinir la referencia con la región de alineación por los detalles de la placa alrededor (sección 4.4); modelo de ajuste "Automático".
Hay placas defectuosas de otra serie de piezas.La etiqueta en las carcasas es diferente: añadir imágenes normales de esta serie; no crear arañazos sintéticos más delgados de 3 px (sección 4.6); verificar que la anomalía es un desplazamiento, y no un cambio de color.
Áreas marcadas con NO_ZONE_CLASSLa cuadrícula cambia después del entrenamiento; devolver la cuadrícula o crear un nuevo modelo y volver a capturar.
Todas las zonas son rojas en la placa correcta.otra opción o posición sin sistema de transporte en vivo; el umbral es demasiado alto; las imágenes se tomaron con otra iluminación; archivos de color y en escala de grises mezclados
El modelo no detecta el desplazamiento del elementorecalcular px/mm (sección 1.3): con una pequeña escala, el desplazamiento es menor a 5 px; reducir el campo de visión o utilizar una cámara con mayor resolución; no ampliar el desplazamiento normal
El entrenamiento es lento o muy lentoDevice = cpu, si no hay tarjeta gráfica NVIDIA; reducir el tamaño del lote; revisar la consola; verificar que Python esté en la variable PATH
La inspección no funciona¿Se ha seleccionado best.onnx; ¿está activado el temporizador (a través de la cámara / temporizador / disparador); ¿no se ha marcado la opción "NO USAR IA"; ¿está marcada la casilla "IA activada" en la cámara?
La regla de rechazo está inactiva¿se ha pulsado "Crear en N zonas"; ¿está marcada la casilla "Activado"; ¿la clase de la regla coincide con la respuesta del modelo (anomalía / normal); para desactivar, el nivel no es "off"; las cámaras USB no tienen salidas, solo TCP
El sonido no se reproduceLa regla ha sido creada e implementada; el archivo se encuentra en la carpeta "sounds" (o "sounds\custom"); ¿hay una pausa entre los sonidos? El sonido solo se reproduce una vez al cambiar de clase; volumen de Windows y dispositivo de salida.
El paquete TCP se envía una sola vez.El sistema espera la respuesta "ok <paquete>" del receptor; marque la casilla "repetir mientras el programa esté activo" o configure la respuesta en el PLC.

engiAI Ethernet System. Los nombres de los botones y los campos están indicados de la misma manera que aparecen en el programa en su idioma (capturas de pantalla: de la interfaz rusa). Las capturas de pantalla se han realizado en el modelo "model_4" (dos zonas de 256x256: condensador C30 y puente BR1), cámara USB 3264x2448, el modelo ha sido entrenado en escala de grises. Edición 3, septiembre de 2026: ejemplo con dos zonas, creación de carpetas del modelo, región de alineación, datos sintéticos "elemento con base" con imágenes "antes / después", paleta y grosor de línea, zonas rojas, consola.