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

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:
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 mm | 200 mm | 300 mm | 400 mm |
|---|---|---|---|---|
| 3264 px (USB 8 MP, como en las imágenes) | 0,03 mm/px → desplazamiento ≈ 0,15 mm | 0,06 → ≈ 0,3 mm | 0,09 → ≈ 0,45 mm | 0,12 → ≈ 0,6 mm |
| 2448 px (cámara HIKROBOT de 5 MP) | 0,04 → ≈ 0,2 mm | 0,08 → ≈ 0,4 mm | 0,12 → ≈ 0,6 mm | 0,16 → ≈ 0,8 mm |
| 1920 px (cámara picoCam, HIKROBOT de 2 MP) | 0,05 → ≈ 0,25 mm | 0,10 → ≈ 0,5 mm | 0,16 → ≈ 0,8 mm | 0,21 → ≈ 1,0 mm |
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.

Botones sobre el vídeo
| Botón | Qué abre |
|---|---|
| OCULTAR VÍDEO | Elimina la imagen de la pantalla. El análisis continúa, solo se ahorra el dibujo. |
| SALIDAS | Ventana 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ÁMARAS | Ventana "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). |
| SENSORES | Conexión de un sensor externo a la entrada discreta de la cámara, con diagrama y esquema de cableado (sección 6). |
| MODELOS GENERALES | Conjuntos 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 ROI | Dibujar la cuadrícula de zonas sobre el vídeo. |
Pestañas a la derecha
| Pestaña | Asignación |
|---|---|
| Camera | Pará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". |
| OUTPUT | rechazador: 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 Model | Creació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. |
| Inspect | Pestañ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. |
| Settings | Idioma de la interfaz (14 idiomas), compra de licencia, guardado y carga de configuraciones, grabación de vídeo. |
| Console | Registro 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
| Tipo | Cómo se conecta | Qué 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 RTSP | La 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
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".
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".
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...200 | menor carga en la tarjeta gráfica; no depende de la conexión de la cámara |
| Umbral de IA | no 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 |
| Exposure | tiempo de exposición | en resumen, menor movimiento de los objetos; el cero no es válido |
| Gain / Gain boost | amplificación de la señal de la matriz | aumenta el brillo, pero añade ruido |
| Pixel clock (SICK) | frecuencia del sensor | modifica los rangos de FPS y exposición, y se relee |
| FPS | frecuencia de fotogramas en modo libre | no se utiliza en modo de disparo |
| Ancho / Altura | Tamaño del cuadro (AOI) | Cuadro más pequeño = mayor frecuencia y menor tráfico |
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.
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:



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.
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:
4.2. Crear el modelo
4.3. Marcar las zonas en la placa

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.


| Modelo de combinación | Cuá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ígido | La 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. |
| Perspectiva | La 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".
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.

| Configuración | Qué hace y qué se recomienda por defecto |
|---|---|
| Variantes sintéticas para cada zona | Cuá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ámara | Activado, 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 grises | La 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ónde | La 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ónde | Por 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 / aumento | Por 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 / Gama | Valor 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) / Desenfocado | Grano 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. |


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:
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




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.


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 figuras | Qué define: |
|---|---|
| Tamaño: de … a, % de la zona / px | Tamañ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. |
| Relleno | Completo / contorno / mixto (el contorno también es grueso). |
| Grosor de la línea, px | Línea / rayón y cruz. 0 = automático (grueso). Para etiquetar piezas, no debe ser inferior a 3 px. |
| Ubicación del defecto | En 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 ranuras | Cinco 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.

| Configuración | ¿Qué hace? |
|---|---|
| Copia del defecto | Un ú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 recorte | Grupo 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 · forma | Principal 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, ° · forma | El área (círculo o cuadrado, la misma escala ±%) se rota a un ángulo aleatorio dentro de un rango en ambas direcciones. |
| Escala, % · reducción / aumento | La 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ón | Si 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. |
| ▸ Subzonas | La 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 defecto | Activado y igual a normal: el defecto debe diferenciarse por su geometría, no por la iluminación. |
| Imágenes por tiempo / en val | Cada copia del nuevo fotograma de la cámara (800 ms), 20 % en val, el primer archivo de la clase en val siempre. |
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 |
|---|---|---|
| Epochs | cuántas veces el modelo revisará todo el conjunto | 50 para la placa por defecto; 100-150 si hay muchas clases de anomalías |
| Batch Size | cuántas imágenes por paso | 64; 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 Size | n / s / m / l / x | s — ó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 |
| Workers | Número de hilos para la preparación de datos: | 12 (por defecto, para procesadores multinúcleo) |
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.

5.1. Asignar el modelo y verificar las zonas
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.
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étodo | Cómo activar | Cuándo aplicar |
|---|---|---|
| Según la cámara | Casilla "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 temporizador | Casilla "Según el temporizador" e intervalo (ms) | Control poco frecuente, por ejemplo, una vez por segundo |
| Según el disparador | Seleccionar 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) |
| GPU | Casilla "GPU" | Activada por defecto; cambiar la opción reinicia el modelo |
| Análisis en escala de grises | Casilla "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".
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):
| Casilla | Comportamiento 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". |
| Apagado | El 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. |
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.


Identificación de los orificios
| Pino | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR — Alimentación de la cámara: 9-24 V | GND — Tierra de alimentación de la cámara |
| 2 | OPTO_IN — Entrada de la Línea 0 (+), señal de activación | VCC — Alimentación de la cámara (12–24 V) |
| 3 | GPIO — Línea 2, entrada o salida | Disparo — Entrada del disparador, optoacoplador (−) |
| 4 | OPTO_OUT — Salida de la línea 1 (+) | Fuente de alimentación + — entrada del sensor de efecto Hall (+), optoacoplador (+) |
| 5 | OPTO_GND — Optoacoplador general, cable de retorno | Flash + — Salida discreta (+) |
| 6 | GND — Tierra de alimentación de la cámara | Flash − — Salida discreta (-) |
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.


- 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".

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).
| Campo | Asignación |
|---|---|
| Tiempo de espera de conexión, ms | 1000 por defecto, 100...10000. |
| Tiempo de espera de envío de la regla, ms | Pausa mínima entre los envíos automáticos de la regla; 0 = sin pausa. Incluso el cambio de clase espera esta pausa. |
| Comando | La 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 propios | Texto arbitrario, que se utiliza en lugar de `{data}`. |
| Datos | Plantilla 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ón | Valor | Sustitución | Valor |
|---|---|---|---|
| {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

| Campo | Asignación |
|---|---|
| Salida | Mé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ínea | Pin de flash / GPIO1…6 en SICK; Línea 1 (salida), Línea 2 (bidireccional) en HIKROBOT; Línea 0 – solo entrada. |
| Nivel | verdadero / 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.
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.
| Funcionamiento | Có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áneamente | Cada 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. |
| Registro | Cada 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ón | Verificar 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. |
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»: 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.
Cuándo se aplica la inspección multi-modelo:
| Situación | Cómo configurar |
|---|---|
| Tareas diferentes en un mismo fotograma | ZONA-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 fija | Tabletas, 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 imagen | Dos 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ón | El 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
| Componente | Requisito |
|---|---|
| Sistema operativo | Windows 10/11 x64. |
| Tarjeta gráfica para inspección | NVIDIA 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ón | Python 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 SICK | Controlador IDS uEye; la cámara debe ser visible en IDS Camera Manager. |
| Cámaras HIKROBOT | SDK 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:
Si algo no funciona:
| Síntoma | Qué verificar |
|---|---|
| La cámara no aparece en la lista | Alimentació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 incorrectos | Cá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 capturada | referencia 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_CLASS | La 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 elemento | recalcular 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 lento | Device = 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 reproduce | La 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.
