Inspección de marcación
La cámara está ubicada después de la impresora o del marcador láser. El software engiAI lee el texto impreso directamente desde el flujo de vídeo: ensambla la palabra, que pasa por la zona, comparándola con una plantilla o una lista de referencia, guarda cada palabra en una base de datos y envía el resultado a través de la red, ya sea a un navegador, en formato JSON o a un controlador mediante TCP.
Cómo se ve en la práctica
El botón "TEXTO" se encuentra en la primera fila de la ventana principal "engiAI", junto a los botones de SALIR, CÁMARAS, DISPARADORES, MODELOS GENERALES y CONteo. Abre la ventana "TEXTO - reconocimiento marcado". Se puede mantener la ventana abierta sobre el vídeo: la zona del encuadre es visible mientras la ventana está abierta o el reconocimiento está activado.
En la parte superior de la ventana hay tres elementos comunes a todas las pestañas:
- Reconocimiento de texto – es el interruptor principal. Mientras no esté activado, el reconocimiento no funciona y no consume recursos de la aplicación.
- ▭ Definir área – haga clic y arrastre el marco sobre el vídeo con cualquier botón del ratón. Mientras la ventana esté abierta, también se puede arrastrar el marco con el botón derecho del ratón sin necesidad de hacer clic. ✖ Eliminar área – elimina el área.
- Estado en el lado derecho: ESPERANDO, REGISTRADO, PAUSA o SEGÚN SEÑAL DE ENTRADA. Debajo, se indica (GPU CUDA o procesador), el número de fotogramas por segundo que se lee y el número de milisegundos que tarda en procesar cada fotograma.
Pestaña "marcado": resultado y comparación con el patrón
Esta es la pestaña principal para el operador. En la parte superior, se encuentra la opción "Comparar todo dentro de la zona con la muestra":
Cómo se analiza la frase en la línea de producción:
- La grabación comienza desde el principio de la frase. Si se ha iniciado la grabación en medio de una inscripción, la parte final se omite; el programa espera al siguiente inicio.
- Cada fotograma se coloca en su posición dentro del conjunto de datos, y cada letra recibe "puntos" de todos los fotogramas en los que es visible. El resultado es la opción que se lee con mayor frecuencia. Los errores aleatorios de un solo fotograma (una letra cortada por el borde, un reflejo) se corrigen con los fotogramas adyacentes: cuanto más fotogramas se utilizan, más "votos" hay y, por lo tanto, el resultado es más preciso.
- El resultado se muestra tan pronto como la frase completa ha pasado por toda la zona, o si no se detectan nuevos caracteres durante un período de tiempo especificado en la pestaña "Reconocimiento" (es decir, si la línea de procesamiento se detiene y la zona está vacía). Después de mostrar el resultado, el programa espera el inicio de la siguiente frase; las frases que siguen inmediatamente una a otra se registran individualmente.
- El programa determina automáticamente la dirección de movimiento o la obtiene de la configuración "De dónde proviene el texto".
Mientras la frase se procesa, a la derecha de la puerta se puede ver el porcentaje de coincidencia y el texto extraído: 40 de 64 caracteres, en la línea "Registrado". Después del resultado, se muestra 73% - RECONOCIDO o NO RECONOCIDO. El mismo resultado se muestra de forma destacada sobre el vídeo.
Sin la casilla "Comparar todo en la zona con la muestra", se realiza una concatenación secuencial: cualquier texto se escribe de principio a fin, siguiendo las reglas de la pestaña "Inicio y fin", y, si es necesario, se compara con la lista de referencia.
Debajo de la lista, se encuentran las opciones de control:
- Todas marcadas / Solo la última – ¿Cuántas mostrar aquí y cuáles enviar al navegador?
- Fecha, hora y marcas/Solo marcas – información que se debe enviar al navegador y guardar en formato JSON.
- ⚖ Comparar — comparar cada documento terminado con el documento de referencia marcado.
- 💾 Guardar como JSON, 📂 Cargar JSON (los archivos cargados se convierten en referencias), Borrar la lista — elimina las filas de la pantalla y del navegador, pero permanece en la base de datos.
La pestaña "Referencia" es una lista de frases correctas.
La pestaña "Referencia" es necesaria cuando en la línea hay varias frases diferentes (diferentes secciones, lotes, clientes), y se debe encontrar cada una en la lista.
- 📂 Cargar JSON – Lista extraída de un archivo: nuestro JSON, un array de cadenas, objetos con el campo "text" o simplemente texto por línea. Se eliminan las duplicaciones.
- ✓ Marcar todo, ☐ Desmarcar todo, casilla de verificación junto a cada fila – para comparar con qué referencia. ✖ Eliminar referencia – eliminar la lista.
- Similitud para coincidencia, % – 100 significa que el carácter coincide con el carácter (sin tener en cuenta espacios ni mayúsculas/minúsculas). Los valores inferiores permiten errores de escritura y lectura.
- Corregir según el estándar del … % — si el texto leído es similar al texto de referencia, se registra el texto del estándar (el texto original se conserva en el registro).
La pestaña "Inicio y fin" indica dónde termina una frase.
Estas reglas funcionan en modo de unión secuencial (sin patrón), donde el programa determina por sí mismo dónde comienza y termina el marcado:
- Inicio del texto – la grabación comienza cuando se lee este texto en la zona (por ejemplo, UTCAB). Si está vacío, se inicia desde cualquier texto. Si la marca se repite, la segunda aparición del texto de inicio marca el final. Incluir el texto de inicio en la marca – dejarlo como resultado.
- Pausa después del final, ms — no se debe registrar nada después de la marca final.
- Texto de finalización — se marca cuando se ha leído este texto (por ejemplo, BY o 2026).
- Tiempo de vacío, ms — Si no hay texto en esa zona, el marcador se detiene y se guarda.
- Duración máxima, con — para una escritura continua sin espacios: cada X segundos se considera un carácter separado. 0 indica que no hay límite.
Ejemplo: inicio "UTCAB", fin "BY" - se registrará "UTCAB … BY", a continuación, el programa espera el siguiente "UTCAB". Comparación sin tener en cuenta mayúsculas, las letras rusas y latinas similares se consideran iguales.
Pestaña "Reconocimiento": zona, giro, modelos
- Área en el fotograma, píxeles – Coordenadas X e Y, ancho y alto del área en el fotograma original: ajustar el marco con precisión, sin necesidad de usar el ratón.
- Rotar el texto en la zona — cómo rotar la zona para que el texto quede recto. El texto se desplaza de arriba hacia abajo ("90° en sentido antihorario") o de abajo hacia arriba ("90° en sentido horario"). Para rotar el vídeo en la pantalla, utilice la pestaña "Rotar vídeo".
- Aumentar el tamaño del texto – el texto se lee mejor si se aumenta el tamaño; la opción "Automático" lo ajusta automáticamente.
- Menor nivel de confianza, % – las líneas que se leen con menor confianza se descartan (reflejos, bordes de las letras).
- La longitud mínima permitida para los campos de texto — los resultados más cortos no se guardarán.
- Muestra: no hay nuevos símbolos, el sistema de lectura debe indicar el resultado - ¿Cuánto tiempo esperar si no se reciben nuevos símbolos en la muestra (la cinta transportadora se ha detenido, la zona está vacía, el texto no se puede leer)? Una vez que se haya obtenido el resultado, se inicia un nuevo análisis.
- De dónde proviene el texto — desde qué lado de la zona aparece el nuevo texto. "Auto" determina esto analizando los fotogramas, y la función de "pegar" es más fiable.
- Utilizar la tarjeta gráfica (GPU): En las tarjetas NVIDIA con tecnología CUDA, la velocidad de lectura es significativamente más rápida.
- Letras y Símbolos: ¿Qué puede aparecer en la etiqueta? Palabras en inglés y ruso, solo palabras en inglés o cualquier símbolo; números y espacios en blanco: siempre, los símbolos (punto, guión, rayas, números, etc.) se indican con una marca de verificación. El modelo selecciona el símbolo solo de los permitidos: los símbolos innecesarios no aparecen, y los símbolos similares se identifican con mayor precisión.
- Seleccionar palabras según el diccionario — la palabra detectada (de 3 letras o más, que no sea un número ni un código), similar a una palabra del diccionario en un porcentaje mínimo, se reemplaza por la correcta. El diccionario contiene palabras propias (una por línea) y, opcionalmente, palabras del diccionario de referencia.
En la pestaña inferior, encontrará la selección de modelos: «Búsqueda de líneas» (v3 – rápida, v5 server – más precisa, para tarjeta gráfica) y «Lectura de texto» (cirílico, latín y números; solo latín y números; latín de idiomas europeos; modelo server preciso; o dos modelos a la vez – ambos leen la línea, se elige la opción más fiable). El modelo faltante se descarga con el botón ⬇ Descargar. El botón ⚖ Comparar modelos en la zona actual aplica la última versión de la zona a todas las opciones, lo que permite ver inmediatamente qué modelo lee mejor su marcado específico y cuánto tiempo tarda en hacerlo.
Pestaña "Base de datos": todos los marcados se almacenan
Cada marca reconocida se guarda en la base de datos de la aplicación, junto con la fecha, la hora, la cámara, el texto y el resultado de la comparación, independientemente de lo que se muestra en la lista de la pantalla.
- 📤 Exportar la base de datos (JSON) – marcar todos los datos en un archivo para generar un informe o transferirlos a un sistema de gestión.
- 📥 Descargar la base (marcado → referencia) — Se extraen solo los textos marcados, que se convierten en referencias. De esta manera, se puede utilizar la versión verificada como modelo para las siguientes.
- 🗑 Limpiar la base de datos – eliminar todas las entradas.
La pestaña "Red": resultado en el navegador y en formato JSON.
Marca Enviar datos a través de la red — engiAI iniciará un servidor HTTP (puerto predeterminado: 8096). Cualquier ordenador o tableta en la red puede acceder a la página con el marcado, la comparación y la referencia en un navegador normal; no es necesario instalar nada. Los botones 📋 Copiar y 🌐 Abrir en el navegador obtienen la dirección de la lista.
| Dirección | Qué se envía |
|---|---|
| / | página: marca, comparación, referencia, JSON |
| /api/marks | marca: todas o la última, con fecha o sin ella (según lo seleccionado en la ventana) |
| /api/marks?show=last&format=text | la última marca en texto simple |
| /api/last | la última marca |
| /api/state | estado y texto en la zona actual |
| /api/refs | referencia; POST /api/refs — enviar referencia (JSON) |
| /api/export | toda la base de datos de marcas |
Al iniciar, el firewall de Windows podría solicitar permiso para acceder a engiAI, y es recomendable permitir el acceso a las redes necesarias.
La pestaña "Entrada": captura según la señal del controlador.
Cuando el objeto llega a la cámara según la señal (sensor, PLC, robot), marque Reconocer mediante la señal de entrada (TCP). engiAI abre el servidor TCP; cada señal genera una captura de la zona: el texto se reconoce, se compara y se guarda en la base de datos, de forma similar al modo continuo.
- Red – ¿en qué adaptador de red esperar la señal? (En cualquier red); se puede introducir la dirección IP manualmente. Puerto – por defecto 8097.
- Señal – ¿qué se considera como tal? Por defecto, 1: como texto ("1", "1\r\n") o como el byte 0x01.
- Responder al cliente con el texto reconocido — la respuesta incluye una cadena con marcado, y al compararla, se indica si es "OK" o "NG" mediante tabulación; "NO TEXT" — el texto no se encontró, "ERROR …" — no hay zona o cuadro.
- 📸 Captura instantánea (prueba) — es lo mismo que una señal, pero activada desde un botón. Se puede realizar una prueba sin un controlador utilizando un programa TCP-UDP (cliente): se introduce la dirección, el puerto, el valor "1" y se pulsa "Enviar".
La entrada y el reconocimiento continuo funcionan simultáneamente: si se marca "Reconocimiento de texto", el programa continúa supervisando la línea, y además realiza capturas adicionales para cada señal.
