Inspecção de marcação

engiAI · botão TEXTO
Reconhecimento e verificação de marcações em cabos, tubos, fitas e embalagens.

A câmera está posicionada após a impressora ou o marcador a laser. O software engiAI lê o texto impresso diretamente do fluxo de vídeo: junta a mensagem, que passa pela área em partes, compara-a com um modelo ou lista de referência, salva cada marcação em um banco de dados e envia o resultado pela rede – para o navegador, em formato JSON e para um controlador via TCP.

1. Área de destaque no vídeo, onde aparece o texto
2. Exemplo de frase que deve ser impressa.
3. Análise A rede neural analisa cada quadro.
4. Conclusão "Reconhecido" ou "Não reconhecido" + base de dados
~10 quadros/segundo
Leitura da área na placa de vídeo (CUDA)
RU + EN
Cirílico, latim, números, símbolos
0 horas de treinamento
O modelo PaddleOCR está pronto para uso imediatamente
HTTP + TCP
Navegador, JSON, sinal do controlador

Como funciona na prática

engiAI — TEXTO: janela ao lado do vídeo
À esquerda: vídeo da câmera, a área destacada em azul. À direita: janela de TEXTO: recorte da área, caixas verdes ao redor das palavras reconhecidas e a linha "Área atual".

O botão "TEXTO" está na primeira linha da janela principal "engiAI", ao lado dos botões "SAIR", "CÂMERAS", "GATILHOS", "MODELOS GERAIS" e "CONTAR". Ele abre a janela "TEXTO - Reconhecimento de marcação". A janela pode ser mantida aberta sobre o vídeo: a área na imagem fica visível enquanto a janela estiver aberta ou o reconhecimento estiver ativado.

Na parte superior da janela, há três elementos comuns a todas as abas:

  • Reconhecimento de texto — é o interruptor principal. Enquanto a caixa de seleção não estiver marcada, o reconhecimento não funcionará e não afetará o desempenho do programa.
  • ▭ Definir área – clique e arraste a moldura sobre o vídeo com qualquer botão do mouse. Enquanto a janela estiver aberta, é possível arrastar a moldura também com o botão direito do mouse, sem precisar clicar. ✖ Remover área – remove a área definida.
  • Estado à direita: ESPERANDO, REGISTRO, PAUSA ou CONFORME SINAL DE ENTRADA. Abaixo, indica-se o que está sendo utilizado (GPU CUDA ou processador), o número de quadros por segundo lidos e o número de milissegundos gastos por quadro.
Dica. Amplie a área visível da marcação e estenda-a ao longo do movimento: quanto mais sinais estiverem na área, mais confiável será a colagem das imagens. A câmera deve estar posicionada após a aplicação da marcação, o texto deve ser nítido e sem borrões.

Aba "Marcação": resultado e comparação com o modelo

engiAI — TEXTO: frase de amostra
Aba "Marcação": frase de exemplo, visualização da área, o que está atualmente na área e o que está sendo registrado, abaixo: lista de marcações prontas. Linhas verdes: "Reconhecido", linhas vermelhas: "Não reconhecido", entre parênteses: porcentagem de correspondência com o modelo.

Esta é a aba de operação para o operador. Na parte superior, encontra-se o modo "Comparar tudo na área com o padrão":

engiAI — TEXTO: Marcação
O campo "Exemplo" contém a frase que deve ser impressa; "Limite de correspondência, %" indica a porcentagem a partir da qual a marcação é considerada correta. À direita, mostra-se o estado atual.
1
Marque a opção "Comparar tudo na área com o padrão" e insira a frase completa no campo "Padrão", por exemplo, "Энергокомплект UTCAB-PV1-F 6 4 ТУ BY 300528652.036-2014 EAC 2026 Беларусь". A capitalização, os espaços e as letras russas e latinas que se parecem (como T e t, U e y, E e e) não são importantes.
2
Defina o "Limite de correspondência, %". 100 significa correspondência exata; 65–80 permite uma margem para imprecisões na impressão e na leitura.
3
Ative a função de "Reconhecimento de texto". Se a frase for muito longa para caber inteiramente na área, o programa a irá capturar quadro a quadro, enquanto ela se move através da área.

Como o programa analisa a frase na linha de produção:

  • A gravação começa no início da frase. Se a gravação foi iniciada no meio do texto, a parte final é ignorada – o programa aguarda o próximo início.
  • Cada quadro é posicionado corretamente no modelo, e cada letra recebe "votos" de todos os quadros em que é visível. O resultado é a variante que aparece com maior frequência. Erros aleatórios em um único quadro (como uma letra cortada na borda ou um reflexo) são corrigidos pelos quadros vizinhos – quanto mais quadros, mais "votos" e, portanto, um resultado mais preciso.
  • O resultado é exibido assim que a frase é processada por completo, ou se não há novos caracteres detectados por um período de tempo especificado na aba "Reconhecimento" (o sistema está inativo e a área está vazia). Após a exibição do resultado, o programa aguarda o início da próxima frase; as frases que seguem uma após a outra são registradas individualmente.
  • O programa determina automaticamente a direção do movimento ou utiliza a configuração "De onde vem o texto".

Enquanto a frase é processada, à direita da porta, é possível ver a porcentagem de correspondência e o texto reconhecido: 40 de 64 caracteres, na linha "Registrado". Após a análise, o resultado é exibido de forma destacada: 73% - RECONHECIDO ou NÃO RECONHECIDO. O mesmo resultado é exibido em destaque sobre o vídeo.

Sem a opção "Comparar tudo na área com o exemplo", o programa realiza a colagem sequencial: qualquer marcação é escrita do início ao fim, seguindo as regras da aba "Início e Fim", e, se necessário, é comparada com uma lista de referência.

Abaixo da lista, há opções de controle:

  • Todas as marcações / Apenas a última – especificar o número de marcações a serem exibidas e enviadas para o navegador.
  • Data, hora e marcação / Apenas a marcação – o que deve ser enviado para o navegador e armazenado em formato JSON.
  • ⚖ Comparar — comparar cada marcação pronta com as referências marcadas.
  • 💾 Salvar como JSON, 📂 Carregar JSON (os dados carregados servem como referência), Limpar a lista — remove as linhas da tela e do navegador, mas os dados permanecem no banco de dados.

A aba "Referência" contém a lista de marcações corretas.

engiAI — TEXTO: Referência
A aba "Referência": marcações carregadas, opções para "Comparar com esta" e o limite de similaridade, além de correção com base no modelo.

A opção "Referência" é útil quando na linha de produção existem várias marcações diferentes (seções, lotes, clientes), e é necessário encontrar cada uma na lista.

  • 📂 Carregar JSON – lista extraída de um arquivo: nosso JSON, um array de strings, objetos com o campo "text" ou simplesmente texto por linha, sem repetições.
  • ✓ Marcar tudo, ☐ Desmarcar tudo, marcar cada linha – para comparar com quais referências. ✖ Remover referência – remover a lista.
  • Similaridade para correspondência, % – 100 significa que os caracteres correspondem exatamente (sem considerar espaços ou diferenças de maiúsculas/minúsculas). Valores inferiores indicam que podem existir erros de digitação ou leitura.
  • Corrigir com base no padrão de … % — se a leitura corresponder à referência marcada, a marcação é registrada usando o texto do padrão (a leitura original permanece no registro).

A aba "Início e Fim" indica onde uma marcação termina.

engiAI — TEXTO: Início e fim
Aba "Início e Fim": texto de início e fim, pausa após o fim, tempo de silêncio e maior duração da gravação.

Estas regras funcionam no modo de colagem sequencial (sem modelo), onde o programa determina automaticamente onde começa e termina a marcação:

  • Início do texto – a gravação começa quando este texto é lido na área (por exemplo, UTCAB). Vazio – a partir de qualquer texto. Se a marcação for circular, a segunda ocorrência do texto de início completa a gravação. Incluir o texto de início na gravação – deixá-lo no resultado.
  • Pausa após o fim, ms — não é necessário registrar nada após a marcação final.
  • Fim do texto – esta marca indica o fim do texto, quando este é lido (por exemplo, BY ou 2026).
  • Tempo de vazio, ms – se não houver texto nessa área, a marcação é finalizada e salva.
  • Maior duração, com — para uma única linha sem espaços: cada período de tempo especificado representa uma marcação separada. 0 — sem limite.

Exemplo: início de "UTCAB", fim de "BY" - será registrado como "UTCAB … BY", em seguida, o programa aguarda o próximo "UTCAB". Comparação sem considerar maiúsculas/minúsculas, letras russas e latinas semelhantes são consideradas iguais.

Aba "Reconhecimento": área, ângulo, modelos

engiAI — TEXTO: Reconhecimento
Aba "Reconhecimento": coordenadas precisas da área, ângulo e escala, limiares, espera por novos símbolos, direção da fita, placa de vídeo, letras e símbolos permitidos, dicionário.
  • Área na imagem, pixels – Coordenadas X e Y, largura e altura da área na imagem original: ajustar a área com precisão, sem o uso do mouse.
  • Rotação do texto na área – como rotacionar a área para que o texto fique reto. O texto segue de cima para baixo – "90° no sentido anti-horário", de baixo para cima – "90° no sentido horário". É possível rotacionar o próprio vídeo na tela, na aba "Rotação de vídeo".
  • Aumentar o tamanho do texto — o texto fica mais legível se a área de visualização for aumentada; a função "Automático" ajusta automaticamente.
  • Menor grau de confiança, % – as linhas lidas com menor grau de confiança são descartadas (reflexos, bordas das letras).
  • O comprimento mínimo permitido para a marcação/símbolos — resultados com comprimentos menores não são aceitos.
  • Exemplo: nenhum novo sinal, MS - aguardar resultado - Quanto tempo esperar se nenhum novo sinal for recebido (a linha de produção parou, a área está vazia, o texto não é lido)? Após a obtenção do resultado, uma nova análise é iniciada.
  • De onde vem o texto – de qual lado da área aparece o novo texto. O "Auto" determina com base nos quadros, e a função de colagem é mais confiável.
  • Utilizar a placa de vídeo (GPU) — em placas NVIDIA com CUDA, a leitura de dados é significativamente mais rápida.
  • Letras e Símbolos: o que pode aparecer na marcação: palavras em inglês e russo, apenas palavras em inglês ou qualquer símbolo; números e espaços - sempre, os símbolos (ponto, hífen, barra invertida, nº, etc.) são marcados com um "check". O modelo seleciona o símbolo apenas dos permitidos - os símbolos desnecessários não aparecem, e os símbolos semelhantes são identificados com mais precisão.
  • Selecionar palavras com base em um dicionário – a palavra identificada (com no mínimo 3 letras, não numérica nem um código), que se assemelha a uma palavra do dicionário em pelo menos uma porcentagem definida, é substituída pela palavra correta. O dicionário contém palavras (uma por linha) e, opcionalmente, palavras de referência.

Na aba abaixo, você pode escolher os modelos: "Detecção de linhas" (v3 - rápida, v5 server - mais precisa, para placas de vídeo) e "Leitura de texto" (cirílico, latim e números; apenas latim e números; latim de idiomas europeus; modelo server preciso; ou dois modelos simultaneamente - ambos leem a linha, selecionando a opção mais confiável). O modelo ausente é baixado com o botão "⬇ Baixar". O botão "⚖ Comparar modelos na área atual" aplica a última versão da área a todos os modelos - você pode ver imediatamente qual modelo é o mais adequado para a sua marcação e quanto tempo leva para isso.

Não é necessário treinar o modelo. O reconhecimento é baseado no PaddleOCR e consegue ler latim, cirílico e números imediatamente após a instalação. A configuração envolve definir a área de reconhecimento, o ângulo e a lista de caracteres permitidos.

Aba "Banco de Dados": todas as marcações são armazenadas

engiAI — TEXTO: Banco de dados
Aba "Banco de Dados": número de marcações armazenadas, exportação para JSON, importação da exportação como referência e limpeza.

Cada marcação reconhecida é armazenada no banco de dados do programa, juntamente com a data, hora, câmera, texto e resultado da comparação, independentemente do que é exibido na lista na tela.

  • 📤 Exportar a base de dados (JSON) – gravar todas as informações em um arquivo para gerar um relatório ou para transferência para um sistema de contabilidade.
  • 📥 Baixar a base (marcação → referência) — A base a ser baixada contém apenas os textos marcados, que se tornam referências. Assim, a mudança verificada pode ser utilizada como modelo para as seguintes.
  • 🗑 Limpar a base de dados – remover todos os registros.

A aba "Rede" – resultado no navegador e em JSON

engiAI — TEXTO: Rede
A aba "Rede": servidor HTTP integrado, endereços para conexão através de todos os adaptadores de rede do PC e lista de endereços de API.

Marque a opção "Enviar dados pela rede" para que o engiAI inicie um servidor HTTP (a porta padrão é 8096). Qualquer computador ou tablet na rede poderá acessar uma página com marcações, comparações e referências usando um navegador comum; não é necessário instalar nada. Os botões 📋 Copiar e 🌐 Abrir no navegador permitem copiar ou abrir o endereço listado.

EndereçoO que é transmitido
/Página: marcação, comparação, referência, JSON
/api/marksmarcação – todas ou a última, com data ou sem (conforme selecionado na janela)
/api/marks?show=last&format=texta última marcação em texto simples
/api/lasta última marcação
/api/stateestado e texto na área atual
/api/refsreferência; POST /api/refs — enviar referência (JSON)
/api/exporttoda a base de marcações

Na primeira execução, o firewall do Windows pode solicitar permissão para o engiAI — conceda acesso às redes necessárias.

A aba "Entrada" – captura pelo sinal do controlador

engiAI — TEXTO: Entrada
Aba "Entrada": Servidor TCP para receber sinais de um PLC ou sensor – rede, porta, valor do sinal, resposta ao cliente e verificação "Captura atual".

Quando o produto chega à câmera, acionado por um sinal (sensor, PLC, robô), marque a opção “Reconhecer por sinal de entrada (TCP)”. O engiAI abre o servidor TCP; cada sinal resulta em uma captura da área: o texto é reconhecido, comparado e armazenado no banco de dados, da mesma forma que em modo contínuo.

  • Rede – em qual adaptador de rede esperar o sinal («Todas as redes» – em qualquer um); é possível inserir o endereço IP manualmente. Porta – por padrão 8097.
  • Sinal – o que considerar como um comando. Por padrão, 1: texto ("1", "1\r\n") ou byte 0x01.
  • Responder ao cliente com o texto reconhecido – a resposta inclui uma string com marcação, que é comparada com "OK" ou "NG" através de tabulação; OK ou NG – indica que a comparação foi bem-sucedida ou falhou, respectivamente; NO TEXT – indica que o texto não foi encontrado; ERROR … – indica que não há área ou quadro disponível.
  • 📸 Foto atual (teste) – o mesmo que um sinal, mas enviado através de um botão. É possível realizar o teste sem um controlador usando um programa TCP-UDP (cliente): insira o endereço, a porta, o valor "1" e clique em "Enviar".

A entrada e o reconhecimento contínuo funcionam simultaneamente: se a opção "Reconhecimento de texto" estiver marcada, o programa continua monitorando a linha de produção, e para cada sinal, também faz uma captura.

Configuração rápida em 5 minutos.

1
Clique em "TEXTO", depois em "Marcar área" e arraste a caixa ao longo do texto na vídeo.
2
Na aba "Reconhecimento", selecione a opção de rotação para que o texto na pré-visualização fique reto, e o zoom ×2–×4 para fontes pequenas e a direção do movimento da linha de produção.
3
Na aba "Marcação", selecione a opção "Comparar tudo na área com o exemplo", insira a frase e o limite.
4
Ative a função de "Reconhecimento de texto". Cada frase que for lida aparecerá em uma lista, com uma linha verde ("Reconhecido") ou vermelha ("Não reconhecido").
5
Se necessário, ative as opções "Rede" para o navegador e JSON, e "Entrada" para o sinal do controlador.