engiAI
- Requisitos
- O que faz
- Licenciamento
A interface do engiAI está disponível em português: os nomes de botões e campos neste manual são apresentados como aparecem no programa.
Conteúdo
- 1. Por que o engiAI e o método ZONA-PAR?
- 1.1. Quais são as vantagens do método em comparação com a classificação da imagem inteira?
- 1.2. Velocidade: O IA analisa apenas as informações relevantes.
- 1.3. Qual precisão esperar: calculando com a nossa câmera
- 1.4. Início rápido: as configurações foram definidas, as áreas e o modelo podem ser configurados em poucos cliques.
- 2. Interface do programa em um minuto
- 3. Câmeras: conexão e configuração
- 3.1. Quais câmeras são suportadas
- 3.2. Janela da Câmera: adicionar, reconectar, remover
- 3.3. Aba "Câmera" para HIKROBOT e SICK
- 3.4. Aba "Câmera" para webcam/câmera USB
- 3.5. Configurações da câmera salvas (conjuntos)
- 3.6. Rede GigE e reconexão
- 4. Modelo ZONA-PAR: do conjunto de dados à modelo treinada
- 4.1. Como funciona o método: um modelo, uma classe para cada zona.
- 4.2. Criar um modelo
- 4.3. Identificar as áreas de pagamento
- 4.4. Registrar a referência: área de alinhamento
- 4.5. Imagens por zonas: normal e seus dados sintéticos
- 4.6. Dados sintéticos: defeito corrigido com dois toques: o elemento se desloca junto com a base.
- 4.7. Anomalias de zona: janela de configurações
- 4.8. Referência com zonas: Placas de solda e editor de zona
- 4.9. Treinamento do modelo
- 5. Inspeção
- 5.1. Definir o modelo e verificar as áreas.
- 5.2. Limiar de reconhecimento da área
- 5.3. Esteira de transporte: pagamento em qualquer posição
- 5.4. Qual sinal analisar?
- 5.5. Zonas amarelas: desativar a zona clicando
- 5.6. O que é visível na tela e no console
- 6. Gatilhos: sensor externo na entrada da câmera
- 7. Saídas: rejeitador, saídas discretas das câmeras e TCP
- 7.1. Guia: Saídas: Contatos e verificação com multímetro
- 7.2. Janela de Saída: regra para a zona
- 7.3. Envio de pacote TCP para o robô ou CLP
- 7.4. Saída discreta da câmera
- 7.5. Alerta sonoro: um som específico para cada área
- 7.6. Registro de ativações e banco de dados
- 8. Outros modos e tarefas
- 9. Configurações, console, requisitos e licença
- 10. Uma lista de verificação concisa e identificação de problemas
Como utilizar o manual. A seção 1 explica o propósito do método e os resultados esperados. As seções 3 a 5 detalham o processo, desde a programação inicial até a inspeção funcional. Siga as instruções em ordem. As seções 6 e 7 abordam a conexão de sensores, saídas e TCP. As seções 8 a 10 descrevem as outras funcionalidades, configurações e listas de verificação.
1. Por que o engiAI e o método ZONA-PAR?
engiAI Ethernet System – um software de inspeção visual para linhas de produção. Ele captura uma imagem de uma câmera industrial ou comum, a divide em zonas, verifica cada zona utilizando uma rede neural treinada e transforma o resultado em uma ação: um sinal para a saída discreta da câmera, uma transmissão TCP para um robô ou PLC, ou um registro em um log. O método ZONA-PAR foi desenvolvido para produtos onde cada componente tem sua posição "correta": placas de circuito, montagens, conjuntos de peças em um alojamento, embalagens com disposição específica.
1.1. O que o método oferece em comparação com a classificação de uma imagem completa
A abordagem comum é usar um único modelo com duas classes ("normal / anomalia") para toda a imagem ou para todas as áreas simultaneamente. No entanto, isso não funciona no hardware: a ausência de um componente sob a ponte BR1 na área 2 indica um defeito, enquanto a mesma ausência em outra área da placa é considerada normal. Um único modelo não consegue representar essa variação. A outra extremidade seria ter um modelo separado para cada componente, o que exigiria dezenas de treinamentos e dezenas de arquivos na memória.
ZONA-PAR resolve isso da seguinte forma: existe um único modelo, mas há tantas classes quantas forem as zonas. Uma "Zona" é um retângulo que envolve um único componente. Uma "Classe" é uma pasta com imagens em que a rede aprende. Cada zona tem um par: "zone_001" (zona normal 1, por exemplo, o capacitor C30) e "zone_001_anomaly" (zona defeituosa 1); "zone_002" e "zone_002_anomaly" representam a ponte BR1. Ao verificar a zona 1, o programa analisa apenas o seu par, e as respostas para a zona 2 não são consideradas. As classes de anomalias são opcionais: a anomalia altera a aparência da zona, e a confiança na zona "normal" diminui automaticamente; no entanto, com dados sintéticos (seção 4.6), elas são criadas com um único clique e aumentam significativamente a confiabilidade.

1.2. Velocidade: A IA analisa apenas as áreas relevantes
A rede neural nunca recebe uma imagem completa. Para cada área, apenas o retângulo correspondente é extraído, e o número da área é selecionado para duas classes. As áreas de uma imagem são consideradas em paralelo (até quatro fluxos), e o resultado de todas as áreas é exibido em um único pacote, em vez de uma área por vez.
- A velocidade de análise é definida por tempo. O controle deslizante "Análises por segundo (APS)" na aba "Câmera" indica exatamente N análises por segundo, e não "a cada N quadros". O limite máximo é a frequência da câmera e o tempo de processamento.
- GPU padrão. A inferência é realizada através do ONNX Runtime com CUDA; caso não haja uma placa de vídeo NVIDIA, o programa automaticamente muda para o processador e informa isso no status (GPU (CUDA) ou CPU).
- Buffers sem lixo. A memória alocada para os trechos de vídeo é utilizada apenas uma vez por fluxo e reutilizada; o tempo de análise não varia de quadro para quadro.
- Configuração para a tarefa. Para a ZONA-PAR, o programa define automaticamente o tamanho da entrada como 128 px e a rede YOLO11 do tamanho "s": a extração da área quase não é escalada, e a rede tem capacidade suficiente para centenas de pares de classes.
- A linha de montagem automatizada economiza tempo. A peça é adicionada à fila de produção com menos frequência do que durante a busca manual; a peça é encontrada e posicionada uma única vez, e somente então é cortada.
- A exibição não interfere na análise. A imagem é redesenhada no máximo 25 vezes por segundo, utilizando apenas o novo quadro da câmera. A imagem é reduzida ao tamanho da tile antes de ser exibida na tela, e o log é escrito em um arquivo pelo processo em segundo plano. A interface permanece responsiva, mesmo com imagens de 8 megapixels e centenas de áreas.
Na barra de status, acima do vídeo, são exibidas as informações reais: fps (quadros por segundo) e os milissegundos do último processo, além de Eff, que indica quantos processos foram efetivamente realizados por segundo.
1.3. Qual precisão esperar: analisando com a minha câmera
O programa não promete "0,5 mm" independentemente da câmera e da lente. A sensibilidade ao deslocamento é determinada pelo número de pixels que correspondem a um milímetro do objeto, e pelo limite que o modelo foi treinado para reconhecer. Isso é calculado em duas linhas:
Deslocamento mínimo perceptível ≈ 5 px ÷ (px/mm)
O número 5 px representa o limite inferior do deslocamento sintético nas configurações recomendadas de anomalias (com uma variação normal de 0–2 px). As configurações padrão são calculadas para 11 px/mm: nesse caso, 0,5 mm correspondem a 5–6 px, que é o objetivo estabelecido durante o desenvolvimento. Insira seus próprios valores:
| Câmera (largura do quadro) | Campo de visão de 100 mm | 200 mm | 300 mm | 400 mm |
|---|---|---|---|---|
| 3264 px (8 MP via USB, como nas imagens) | 0,03 mm/px → deslocamento ≈ 0,15 mm | 0,06 → ≈ 0,3 mm | 0,09 → ≈ 0,45 mm | 0,12 → ≈ 0,6 mm |
| 2448 px (HIKROBOT 5 MP) | 0,04 → ≈ 0,2 mm | 0,08 → ≈ 0,4 mm | 0,12 → ≈ 0,6 mm | 0,16 → ≈ 0,8 mm |
| 1920 px (SICK picoCam, HIKROBOT 2 MP) | 0,05 → ≈ 0,25 mm | 0,10 → ≈ 0,5 mm | 0,16 → ≈ 0,8 mm | 0,21 → ≈ 1,0 mm |
1.4. Início rápido: as configurações já estão definidas, as áreas e o modelo podem ser ajustados em poucos cliques.
Este método foi projetado para que um técnico sem experiência em aprendizado de máquina consiga obter um modelo funcional em uma única troca. Tudo o que pode ser pré-configurado já está configurado e armazenado na base de dados do programa:
- Definir áreas por minuto. No editor ROI, arraste a caixa ao redor do elemento e especifique o tamanho da área (por exemplo, 256 px). Se houver vários elementos dispostos em uma grade, arraste a caixa por toda a placa – o programa calculará automaticamente as linhas e colunas da grade.
- Dados sintéticos padrão e de defeito pré-configurados. Os botões "Padrão", "Deslocamento de elementos" e "Cor e tonalidade" alternam entre os perfis pré-definidos. O número de arquivos, o número de fotos da câmera e o tempo estimado são exibidos antes de clicar em "Capturar".
- Os parâmetros de treinamento são definidos automaticamente. Após a primeira imagem, o programa ajusta as configurações para: tamanho da imagem 128, tamanho do modelo "s", 50 épocas, lote de 64, e durante o treinamento, desativa as técnicas de aumento de dados que entram em conflito com as classes de anomalias.
- A câmera é configurada por meio de um botão. A função "Configuração automática para IA (por quadro)" ajusta a velocidade do obturador, o brilho, a gama e o balanço de branco; para câmeras USB, existem as opções "Configuração automática para formatos" e "Definir parâmetros".
- Conjuntos de configurações da câmera. As configurações selecionadas são salvas sob um nome específico e podem ser selecionadas a partir de uma lista. A câmera as reconhece e as armazena em sua memória.
- Um único arquivo ONNX como resultado. O modelo treinado é exportado automaticamente e imediatamente encaminhado para inspeção, sem etapas adicionais.
Passo completo: conectar a câmera → criar o modelo → marcar as áreas → fixar a região de alinhamento → "Imagem por áreas" em várias placas funcionando → "Anomalias nas áreas" → TREINAR O MODELO DE IA → aba "Inspeção". O restante é conectar sons, saídas e TCP às áreas. O que é necessário para começar: um computador com Windows 10/11 (para inspeção rápida - placa de vídeo NVIDIA), a câmera, uma placa funcionando e uma conexão com a internet para instalar o ambiente de treinamento. As placas defeituosas não são necessárias.
2. Interface do programa em um minuto
A janela principal é dividida em duas partes. À esquerda, vídeo ao vivo das câmeras e uma barra de status acima. À direita, uma barra com abas, onde estão localizadas todas as configurações. É possível arrastar a linha entre as partes; o programa memoriza o tamanho, a posição de todas as janelas e o layout na sua base de dados.

Botões acima do vídeo
| Botão | O que abre |
|---|---|
| ESCONDER VÍDEO | Remove a imagem da tela. A análise continua, apenas o desenho é economizado. |
| SAÍDAS | Janela de informações: contatos dos sensores discretos das câmeras HIKROBOT e SICK, verificação com um testador, conexão de carga (seção 7.1). |
| CÂMERAS | Janela "Configurações das câmeras conectadas": adicionar, reconectar, remover câmeras e visualizar todos os parâmetros lidos do hardware (seção 3.2). |
| SENSORES | Conectar um sensor externo à entrada discreta da câmera, com o esquema e a pinagem (seção 6). |
| MODELOS GERAIS | Conjuntos nomeados "câmera → modelo", atribuídos a toda a estação de trabalho com uma única seleção (seção 8). |
| Layout (colunas) | Número de peças de câmera a serem exibidas em linha; "■" - modo individual (câmera em destaque), "Automático" - com base no número de câmeras, "⛶" - câmeras para toda a tela (sair com Esc). |
| Exibir zonas ROI | Desenhar uma grade de zonas sobre o vídeo. |
Pestañas à direita
| Pestaña | Atribuição |
|---|---|
| Camera | Parâmetros da câmera selecionada: velocidade, ampliação, cor, resolução, configuração automática para IA, conjuntos de configurações salvas, velocidade de análise. Os limiares de IA não estão mais aqui, apenas na aba "Inspeção". |
| OUTPUT | Rejeitador: regras nas zonas - envio TCP para o robô/PLC, saídas discretas da câmera e alertas sonoros, log de eventos, banco de dados. |
| AI Model | Criação do modelo: pasta, classes, grade de zonas, captura por zonas, anomalias de zonas, referência da placa, configurações e início do treinamento. |
| Inspect | Página de trabalho: qual modelo está em inspeção, áreas de inspeção e limiar, esteira em funcionamento, qual sinal usar para capturar a imagem, slots para inspeção multi-modelo. |
| Settings | Idioma da interface (14 idiomas), compra de licença, salvamento e carregamento de configurações, gravação de vídeo. |
| Console | Registro de eventos: conexão das câmeras, progresso do treinamento, ativação do sistema de rejeição, alertas. A tela exibe as últimas 800-1000 linhas, e todas as informações são gravadas nos arquivos logs\engiai-*.log. |
Linha de status
Ao lado dos botões, é exibido o estado da câmera ativa: LIVE (Android): 3264×2448 [Câmera USB HD] – tipo, resolução e nome; IA: ESPERANDO ou IA: GPU (CUDA) – em que a modelo está e quanto tempo levou a última análise; Rede: total de … ativa … Mbit/s – carga na rede proveniente das câmeras GigE (verde até 40% da largura de banda, laranja até 70%, vermelho a partir daí). A faixa Exp Load mostra qual parte do intervalo de quadro é ocupada pela exposição: se estiver no limite direito, a câmera não conseguirá manter a taxa de quadros desejada.
Cada câmera possui um painel individual que exibe o nome, o status "AO VIVO | IA: ATIVADA" e um botão de reconexão. Um clique com o botão direito do mouse no quadro abre o menu de zonas, enquanto um clique com o botão direito e arrastar permite panorâmica no quadro ampliado.
3. Câmeras: conexão e configuração
3.1. Quais câmeras são suportadas
| Tipo | Como conectar | O que pode ser configurado a partir do programa |
|---|---|---|
| HIKROBOT MV-CS (GigE, USB3) | SDK MVS nativo. Abre-se estritamente com o número de série, a ordem de listagem não é importante. | Taxa de transferência de 6 μs, ganho em dB, FPS (quadros por segundo), resolução (AOI), nível de preto de 0…4095, todos os nós GenICam (modos automáticos, gama, nitidez, balanço de branco R/G/B, deslocamento digital, inversão, pacotes GigE). Os parâmetros são escritos na seção UserSet1 da própria câmera. Entrada discreta Line 0, saída Line 1, GPIO Line 2. |
| SICK picoCam (IDS uEye, GigE) | Driver uEye. A câmera deve ser visível no IDS Camera Manager com o status "configurado corretamente". O número de série é verificado com a câmera, pois o DeviceID do uEye muda a cada execução. | Ganho, amplificação (0…100), FPS, resolução, nível de preto (0…255), frequência do pixel, amplificação, amplificadores de canal R/G/B, gama, disposição de Bayer. Os parâmetros são gravados na memória da câmera. Entrada do gatilho no fototransistor, saída do flash (150 mA). |
| Câmera USB / webcâmera (na lista: Android) | DirectShow através do OpenCV, diferem pelo moniker, portanto, duas câmeras idênticas não se confundem. | Suporta até 8K, FPS, e todas as configurações do driver: brilho, contraste, saturação, tom, nitidez, gama, ampliação, tempo de exposição (automático), foco (automático), balanço de branco (automático), compensação de luz, etc. Não possui entradas e saídas discretas, apenas TCP. |
| Câmera IP RTSP | A URL do tipo `rtsp://admin:senha@192.168.1.64:554/`, é adicionada manualmente. | O tempo de exposição, a ampliação, a resolução e o FPS são definidos na interface web da própria câmera. No software, há zonas, modelo e TCP. |
Não há restrições no número de câmeras: as câmeras podem ser organizadas em uma grade com qualquer número; em testes reais, foram utilizadas oito e nove câmeras simultaneamente. Cada câmera possui seus próprios modelos, zonas, limite e taxa de análise.
3.2. Janela CÂMERAS: adicionar, reconectar, remover
As opções abaixo afetam a câmera selecionada: Câmera ativada (caso contrário, ela é desconectada do dispositivo e desaparece da tela), Mostrar vídeo/zonas (apenas a exibição, a análise sempre está ativa), IA ativada para a câmera selecionada. O botão Reconectar realiza uma desconexão e reconexão completa, reiniciando o fluxo de IA e recarregando os modelos.
A parte direita da janela exibe todos os parâmetros da câmera, lidos do hardware durante a conexão, agrupados e com unidades de medida: "Quais parâmetros exibir", Releitura da câmera, Copiar para a área de transferência. Isso é apenas para visualização: é possível alterar os parâmetros na aba "Câmera".
3.3. Aba CÂMERA para HIKROBOT e SICK
Este recurso interage com a câmera, que possui uma moldura azul destacada. O programa não grava nada na câmera ao ser conectado: a câmera é a fonte da verdade, enquanto os controles são ajustados para corresponder aos seus valores. É possível salvar as configurações apenas manualmente, usando o botão "Salvar parâmetros".
Bloco "Hikrobot: parâmetros da câmera (GenICam)"
Apenas as informações capturadas pela câmera são exibidas. Linhas: Exposição automática (Desligado / Uma vez / Contínua), Ampliação automática, Gama e modo de gama, Nitidez, Tom, Saturação, Equilíbrio automático de branco, Equilíbrio de branco por canal, Deslocamento digital, Nível de preto ativado, Limite de FPS ativado, Inversão horizontal e vertical, GigE: tamanho do pacote, GigE: atraso entre pacotes, GigE: limite de largura de banda, Imagem de teste. O botão "Recarregar parâmetros da câmera" modifica a tabela.
Bloco "COR DA IMAGEM"
Layout de Bayer (Auto / BGGR / RGGB / GRBG / GBRG), Saturação 0…200 %, Gama 0,30…3,00, Contraste 50…200 %, botão de reset. O processamento de software é aplicado a todos os consumidores de quadro: exibição, gravação, inferência e imagens para treinamento, portanto, a imagem durante o treinamento e a inspeção são idênticas. Para a HIKROBOT, o layout é obtido a partir do formato de pixel da câmera, para sensores SICK coloridos, é obtido do sensor e refinado a partir do primeiro quadro.
| Parâmetro | O que faz | Impacto |
|---|---|---|
| Análises por segundo (IA) | Limite máximo da velocidade de inspeção, 1…200 | menor carga na placa de vídeo; não depende da conexão da câmera |
| Limite de IA | não é definido na aba "Câmera" | o limite de reconhecimento da área — apenas na aba "Inspeção" (seção 5.2), um para cada câmera |
| Exposure | tempo de exposição | menor efeito de "desfoque" em objetos em movimento; um valor zero não é permitido |
| Gain / Gain boost | amplificação do sinal da matriz | aumenta o brilho, mas adiciona ruído |
| Pixel clock (SICK) | frequência do sensor | altera os intervalos de FPS e tempo de exposição, que são lidos novamente |
| FPS | frequência de quadros em modo livre | não é usado no modo de gatilho |
| Largura / Altura | Tamanho do quadro (AOI) | Um quadro menor significa maior frequência e menor tráfego. |
3.4. Aba "Câmera" para câmeras USB/webcam
Para câmeras USB, a aba exibe o bloco "Câmera USB: resolução, FPS e propriedades". As propriedades do driver que a câmera não fornece não são exibidas; as bordas dos campos são definidas pelo programa, pois o DirectShow não fornece informações sobre o intervalo.
3.5. Configurações da câmera salvas (conjuntos)
O bloco "Configurações da câmera salvas" é exibido para USB, SICK e HIKROBOT. Ao ajustar os parâmetros para o produto, salve-os com um nome: para outro placa ou outra iluminação, basta selecionar um conjunto da lista.
- Salvar como… — lê os valores atuais da câmera e solicita o nome do conjunto. Se o nome já estiver em uso, sugere substituí-lo.
- Seleção do conjunto na lista escreve automaticamente os parâmetros na câmera e os salva: para USB, na base de dados; para SICK e HIKROBOT, em um arquivo de parâmetros e na memória da câmera (UserSet1 / EEPROM). Em seguida, a interface lê os valores do hardware e mostra quantos parâmetros foram aceitos e quantos foram alterados.
- Re-salvar sobrescreve o conjunto selecionado com os valores atuais, Renomear e Excluir afetam apenas o registro no banco de dados, os parâmetros da câmera não são alterados.
O que está incluído no conjunto: para USB, incluem resolução, FPS, propriedades do driver e modos automáticos; para SICK, incluem amplificação, tempo de exposição, FPS, nível de preto, clock de pixel, ampliação, equilíbrio de branco R/G/B, gama de cores e cor programável; para HIKROBOT, incluem amplificação, tempo de exposição, FPS, nível de preto e todos os nós GenICam. O tamanho do quadro das câmeras industriais não está incluído no conjunto: a alteração do tamanho do quadro reinicia a gravação. Os conjuntos são comuns para todos os tipos de câmeras, portanto, um conjunto é colocado em cada um dos stands com câmeras idênticas.
3.6. Rede GigE e reconexão
- O tamanho do pacote GigE da HIKROBOT é definido automaticamente como o ideal ao abrir; manualmente, pode ser ajustado no bloco GenICam. Quadros Jumbo de 8164–9000 reduzem a carga, e com quadros interrompidos, defina 1500 e aumente a latência entre os pacotes.
- A linha `Net` calcula a carga proveniente de cada câmera com base em seus próprios dados (tamanho da carga útil × frequência) e a compara com o tráfego de rede real. Uma discrepância significativa indica perda de pacotes ou tráfego indesejado. Os adaptadores virtuais e os filtros NDIS (GigEVision, uEye, Npcap) foram excluídos do cálculo.
- Se a câmera estiver visível, mas o fluxo de vídeo não estiver funcionando, clique em "Reconectar" (na janela da CÂMERA ou no bloco). Geralmente, a causa é a capacidade da rede ou da porta USB.
- A câmera picoCam perde as configurações ao fechar o descritor; se não houver um arquivo de parâmetros na própria câmera, o programa aplica o arquivo e sugere clicar em "Salvar parâmetros" para salvá-los na câmera.
4. Modelo ZONA-PAR: da grade para o modelo treinado
4.1. Como funciona o método: um modelo, uma classe para cada zona
O modelo ZONA-PAR é uma rede de classificação YOLO11 padrão, com o mesmo número de classes que as zonas, além de classes opcionais para anomalias. Uma classe corresponde a uma pasta dentro de `train` e `val`. O programa cria todas as pastas automaticamente; não é necessário criar nada manualmente. A estrutura de uma pasta de modelo, conforme mostrado no exemplo após o treinamento, é a seguinte:



Os arquivos real_…jpg são capturas reais da câmera (criadas tanto no "train" quanto no "val"), syn_…jpg são dados sintéticos, edit_…jpg são capturas do editor da área. No exemplo, após a captura de várias placas: zone_001 — 502 arquivos no "train" e 111 no "val", zone_001_anomaly — 680 e 144, zone_002 — 813 e 181, zone_002_anomaly — 340 e 60.
O programa reconhece o modelo como "plano" automaticamente, com base na presença das classes de tipo `zone_NNN`. O número da classe é o número abrangente da zona na grade (1…N). Desta forma, a principal regra do método é:
4.2. Criar o modelo
4.3. Marcar as zonas na placa

Zonas vermelhas: excluir a zona de dados sintéticos com um clique
Na aba "Modelo de IA", clique com o botão esquerdo na área já criada diretamente no vídeo: a área ficará vermelha e não participará da captura por áreas nem na detecção de anomalias. Um clique adicional a restaura. Os contadores de arquivos nas janelas de dados sintéticos são recalculados imediatamente, e a mensagem "desligado N" acima do quadro indica quantas áreas estão desativadas. A lista de áreas vermelhas é armazenada por câmera e modelo; na aba "Inspeção", a mesma área permanece normal (com suas áreas amarelas, conforme a seção 5.5).
4.4. Fixar a referência: região de alinhamento
As áreas de inspeção são definidas com base na posição de uma placa. Para permitir que outra placa seja posicionada na linha, com um deslocamento e rotação, o programa armazena uma referência: um quadro de referência e uma região de alinhamento – uma área da placa com detalhes que são usados para localizar a peça em cada novo quadro. Ao encontrar a região, o programa transfere as áreas de inspeção para a nova placa. É assim que funciona a captura de imagens, o processamento de dados sintéticos e a inspeção.


| Modelo de alinhamento | Quando escolher |
|---|---|
| Automático (recomendado) | A placa é alinhada rigidamente (deslocamento, rotação, escala); a perspectiva é conectada apenas se for significativamente melhor. A precisão em uma pequena área de alinhamento é de 1–2 px. |
| Rigidez | A câmera olha diretamente de cima, a placa está plana. A opção mais estável, se a área de alinhamento for pequena. |
| Perspectiva | A câmera está em um ângulo ou a placa está inclinada. É necessária uma área grande com pontos ao longo de toda a largura, caso contrário, a homografia "desalinhará". |
O botão "referência com zonas" abre a referência salva com a grade e os números das zonas (seção 4.8). A placa encontrada é verificada quanto à sua plausibilidade: a área deve estar entre 0,5 e 2 áreas de referência, deve ser um polígono convexo e os pontos de apoio devem ocupar pelo menos um quarto da área em cada eixo — caso contrário, o resultado é descartado e uma mensagem aparece na consol: "placa não encontrada".
4.5. Imagem por zonas: normal e seus dados sintéticos
Botão "ZONA-PAR: captura por zonas" realiza o seguinte: divide a imagem em zonas, cria uma seleção para cada zona dentro de sua respectiva categoria "zone_NNN" e adiciona dados sintéticos normais. Dados sintéticos normais referem-se a variações na captura, e não a um defeito: a placa foi colocada ligeiramente de forma diferente, a luz é ligeiramente diferente, o sensor está ruidoso.

| Configuração | O que faz e quais são as configurações padrão |
|---|---|
| Opções sintéticas para cada área | Quantos arquivos sintéticos criar para cada recorte. Recomendado: 20, 0 – apenas referência, máximo 500. |
| Capturas de tempo: cada opção a partir de um novo quadro da câmera | Ativado, período de 800–1200 ms (não menor que o tempo de exposição). Cada opção é obtida a partir de um quadro vivo real: ruído, vibração e cintilação da luz em vez de serem desenhados. |
| Cada opção também em val com probabilidade, % | 20 %. A referência sempre entra em val: em Ultralytics, cada classe deve estar em ambas as pastas. |
| Treinar em tons de cinza | Flag geral do modelo: a cor é removida de normal, anomalias e inspeção. Não é possível misturar arquivos coloridos e em tons de cinza em um único modelo, o programa avisará. |
| Deslocamento, px · para onde | A janela de deslocamento se move por todo o quadro em 0…2 px nas direções indicadas (← → ↑ ↓); a faixa faltante é retirada da área adjacente da placa, mantendo o corte uniforme. A opção "todas as direções" permite especificar a direção para cada arquivo, enquanto "uma direção aleatória" utiliza apenas um arquivo. |
| Rotação, ° · para onde | Por padrão, está desativado: não há rotação, apenas ajuste na região de alinhamento, e a ativação confunde a borda com o defeito. "Esquerda / Direita", "Todas as direções / Aleatório" – como no caso de deslocamento. |
| Escala, % · redução / aumento | Por padrão, está desativado. As duas caixas de seleção representam dois lados: redução (<100) e aumento (>100, a área da zona inclui os vizinhos da imagem). Cada lado marcado corresponde a um arquivo diferente. |
| Brilho / Contraste / Gama | Valor aleatório dentro do intervalo para cada opção: brilho 88…112, contraste 88…112 %, gama 98…102 % (na imagem); no perfil "Deslocamento de elementos", a luz é mais ampla para não se tornar um indicador. |
| Ruído (sigma) / Desfoque | Grão do sensor 3…8 níveis, leve desfoque 0,4…0,8 px. |
| Coluna "geral" | Com a marcação, o item é incluído no arquivo geral junto com os outros; sem ela, cria um arquivo separado "referência + apenas este item". Quanto mais itens individuais, mais arquivos para cada opção. |


4.6. Dados sintéticos: defeito em dois cliques: o componente se desloca junto com a base.
A observação na qual os dados sintéticos são baseados. O modelo é treinado de forma particularmente eficaz quando, em vez de apresentar uma mancha desenhada como defeito, é mostrado o próprio componente a ser inspecionado, juntamente com os componentes da placa ao seu redor: as linhas de serigrafia, os trilhos, a cor e a textura da placa. O programa reduz o tamanho da área da imagem até o tamanho do componente e, em seguida, desloca ou rotaciona essa área, preenchendo a borda com pixels adjacentes da imagem. Como resultado, o componente não está na sua posição correta em relação à placa: exatamente como um inspetor vê em um defeito real, com o ruído real do sensor, a iluminação real e a placa real.
Uma área considerada "normal" e uma área considerada "anormal" diferem apenas pela posição do elemento em relação à base. Tudo o mais é igual, portanto, a rede aprende a relação "elemento ↔ placa", e não a tonalidade da mancha ou à iluminação.
Dois cliques:
Não é necessário fazer mais configurações: não é preciso desenhar defeitos nem procurar placas defeituosas. Em seguida, TREINE O MODELO DE IA.
Antes e depois: o que o programa consegue




Pastas de anomalias, conforme a visualização do usuário
Compare com as pastas "normal" da seção 4.5: a diferença é apenas na posição do componente em relação à base.


Marcação de componentes: por que a "arranhadura" é "gorda" e como isso é configurado
As peças possuem marcações: letras e traços de 1-2 px na imagem. A marcação varia de lote para lote: diferente fonte, a inscrição no capacitor está inclinada, parte dos símbolos foi apagada. Se um defeito sintético, como um "risco", for desenhado com a mesma linha fina, a rede não conseguirá diferenciá-lo do traço de marcação e do ruído do sensor, e começará a descartar placas de outro lote.
Os dados sintéticos ZONA-PAR abordam isso de duas maneiras. Em primeiro lugar, o principal problema – o deslocamento do elemento – transfere a marcação junto com o corpo, de modo que a marca não se torna um indicador: ela aparece da mesma forma tanto em condições normais quanto em anomalias. Em segundo lugar, a linha/arranhão desenhado tem, por padrão, uma espessura (⅛ da zona, sem menos de 3 px) e é claramente diferente de uma marca. A espessura agora é definida explicitamente: o campo Espessura da linha, px (0 = automático) afeta a linha e o cruz.
As imperfeições desenhadas (retângulo, círculo, linha, "elemento ausente", mancha difusa e outras) são agrupadas em um grupo recolhível Imperfeições sintéticas sobre a área cortada. Por padrão, está recolhida e desativada: a principal imperfeição no circuito é o deslocamento. Ative-a para tarefas específicas: área molhada, gota extra, marcação apagada.
| Parâmetros de figuras | O que define: |
|---|---|
| Tamanho: de … a, % da área / px | Tamanho ou comprimento da figura. Em porcentagem, em relação ao menor lado da área (proporcional a qualquer área); em px, igual em todas as áreas, conveniente quando o tamanho do defeito real em pixels da imagem é conhecido. |
| Preenchimento | Sólido / contorno / misto (o contorno também é "gordo"). |
| Espessura da linha, px | Linha / arranhadura e cruz. 0 — automático (gordo). Para marcar componentes, não use menos de 3 px. |
| Onde está o defeito | No centro, à esquerda, à direita, em cima, em baixo – indique onde posicionar a figura (com uma pequena variação aleatória). A opção "todas as posições" gera um arquivo para cada posição marcada; a opção "uma posição aleatória" gera um único arquivo, com a posição escolhida aleatoriamente entre as posições marcadas. O contador de arquivos na parte inferior da janela leva isso em consideração imediatamente. |
| Cores das figuras: 5 slots | Cinco espaços em vez de uma lista de nomes. Uma caixa de seleção indica se o espaço está ativo. A cor é escolhida aleatoriamente entre as opções selecionadas (aproximadamente 12 cores por canal, para evitar que todas sejam da mesma tonalidade). Um botão de amostra permite escolher uma cor na paleta. Um conta-gotas permite selecionar uma cor diretamente do vídeo da câmera (a roda do mouse controla o zoom, o botão direito controla o movimento panorâmico) e capturar a cor de um detalhe ou componente real. Por padrão, dois espaços estão ativados: um escuro e um claro, enquanto os outros três estão desativados. |
| Coluna "geral" | A identificação do tipo de defeito é armazenada em um arquivo comum, juntamente com outros "comuns" (por exemplo, arranhões em elementos deslocados). Sem a marcação, o arquivo é "normal + apenas este defeito". O tipo com "todas as posições" é sempre um arquivo separado. |
4.7. Anomalias de zona: janela de configurações
O botão "ZONA-PAR: anomalias de zonas" cria classes "zone_NNN_anomaly" a partir de cortes de "normal". Todas as zonas são selecionadas, exceto as vermelhas (desativadas por um clique na imagem do modelo de IA, seção 4.3). As classes de anomalias não são necessárias em todas as zonas: adicione-as para as zonas onde a anomalia realmente ocorre, e o modelo verificará as restantes por reconhecimento.

| Configuração | O que faz |
|---|---|
| Cópia do defeito | Um único valor para todos os tipos: quantas cópias com parâmetros aleatórios devem ser criadas para cada tipo especificado (por padrão, 10). |
| ▸ Defeitos sintéticos na área cortada | Grupo padrão: retângulo, pequenos retângulos, círculo, elipse, triângulo, octógono, linha/risca, cruz, elemento ausente, mancha desfocada, patch de ruído, pedaço de outra área. Parâmetros das formas, posição e paleta – seção 4.6. |
| Deslocamento, px · direção · forma | Principal defeito da placa. A área (círculo ou quadrado) desloca-se em 5–12 px nas direções especificadas: ← → ↑ ↓ e duas diagonais ⤡ ⤢. escala vertical / horizontal, ±% – tamanho da área em relação à zona: 0 – toda a zona, -30 – área 30% menor (apenas o elemento é deslocado, a base permanece), +30 – área maior que a zona (inclui vizinhos da imagem). todas as direções – para cada lado, de acordo com o arquivo. |
| Rotação, ° · forma | A área (círculo ou quadrado, mesma escala ±%) gira para um ângulo aleatório dentro de uma faixa em ambas as direções. |
| Escala, % · redução / aumento | A área como defeito: redução de 60–85% ou aumento de 120–160%. Cada lado especificado é um arquivo separado. Normalmente, está desativado na placa. |
| "geral" para deslocamento e rotação | Se ambas as caixas estão marcadas, isso significa que uma única transformação é aplicada a um único arquivo: o deslocamento e a rotação são aplicados em conjunto (não sequencialmente, caso contrário, resultaria em um "mistura"), a escala da área e a forma são comuns e definidas no deslocamento. |
| ▸ Sub-áreas | A área é dividida em 2, 4 ou 9 partes, e dentro de cada uma, a área gira ou é deslocada; a opção "uma foto para cada sub-área" gera um arquivo para cada parte. É necessário para áreas grandes com vários elementos. |
| Iluminação e ruído sobre cada arquivo de defeito | Ativado e igual a "normal": o defeito deve ser diferente em termos de geometria, e não de iluminação. |
| Imagens por tempo / em val | Cada cópia de uma nova imagem da câmera (800 ms), 20% em val, o primeiro arquivo da classe em val sempre. |
4.8. Referência com zonas: parafusos e editor de zona
O botão "Referência com Zonas" abre a referência salva da placa com grade. Neste modo, os dados sintéticos são criados sem a necessidade de uma câmera: a roda controla o zoom, o botão direito ativa a panorâmica, o botão esquerdo seleciona as zonas (Ctrl para adicionar, arrastar com o mouse para definir a área, Ctrl+A para selecionar tudo), e um duplo clique abre o editor de zona.
- Peças de solda para as áreas selecionadas… – janela "Peças de solda: curto-circuito entre trilhas". O programa identifica automaticamente as trilhas na área (limiar de Ots, faixas claras com ≥ 2 px de largura), aplica uma gota de solda no espaço entre as trilhas, utilizando a cor das trilhas, com uma borda escura e um brilho. Configurações: entre trilhas verticais ou horizontais, peças na imagem 1…3, tamanho de 8…18% da área, imagens para a área (5), onde colocar – na anomalia ou na normal, iluminação da superfície, em "val" – nova imagem com iluminação diferente ou cópia exata.
- Editor de área: Ferramentas: Pincel, Pipeta, Cor de preenchimento, Copiar área, Colar, Estêncil, Área de componentes; paleta "solda / área", "placa", "sombra / máscara", branco, preto; campo "Copiar" e botão Criar imagem. Assim, é possível desenhar um defeito que ainda não existia no projeto: área preenchida, elemento extra, falta de identificação.
Os arquivos do editor recebem os nomes `edit_…` e são adicionados à zona ou à sua anomalia. Na aba "Inspeção", a mesma janela é aberta apenas para visualização.
4.9. Treinamento do modelo
Os parâmetros de treinamento no painel "Modelo de IA" são preenchidos automaticamente após a primeira captura de tela, com os seguintes valores: Tamanho da imagem: 128, Tamanho do modelo: s, Épocas: 50, Lote: 64. Esses valores são aplicáveis às áreas de 108–137 pixels. Para áreas de 256 pixels, como no exemplo, defina o "Tamanho da imagem" como 192 ou 256 – nesse caso, a área de recorte não será significativamente reduzida (na captura de tela da janela principal, os valores são Épocas: 100 e Tamanho da imagem: 192). Verifique os valores e clique em "TREINAR MODELO DE IA".
| Parâmetro | O que significa | Como escolher |
|---|---|---|
| Epochs | quantas vezes o modelo irá analisar todo o conjunto | 50 para a placa padrão; 100-150, se houver muitas classes anormais |
| Batch Size | quantas imagens por passo | 64; se a memória de vídeo for insuficiente, diminua |
| Image Size | para qual tamanho são redimensionadas as imagens, em múltiplos de 32 | tamanho aproximado da zona: 128 para a zona de 108-137 px; 192-256 para zonas de 256 px, como no exemplo |
| Model Size | n / s / m / l / x | s — ótimo para centenas de pares de classes; n — falta de capacidade, m e acima — mais lento |
| Device | em que treinar | 0 (GPU) com placa de vídeo NVIDIA; sem CUDA, o programa automaticamente irá usar o CPU |
| Workers | número de threads para preparação de dados | 12 (padrão para processador multi-core) |
5. Inspeção
Toda a configuração é feita na aba "Inspeção". Após o treinamento, o modelo já está configurado; o que resta é verificar as áreas, definir o limite, selecionar a fonte de velocidade e, se o pagamento for recebido em qualquer posição, ativar a linha de produção automática.

5.1. Definir o modelo e verificar as zonas
5.2. Limiar de reconhecimento da zona
Para cada zona, a rede atribui probabilidades a todas as classes, mas a decisão é tomada apenas dentro de cada par. A probabilidade "normal" q = p(zone_N) / (p(zone_N) + p(zone_N_anomaly)) é multiplicada por um fator de "confiança" – que indica o quão confiante a rede está de que o par pertence a uma determinada saída (confiança total quando a probabilidade é de 10% ou mais). A pontuação final, que varia de 0 a 100%, é comparada com um limite: se for superior, é classificado como normal; se for inferior, é classificado como anomalia.
O limite padrão é de 50%, armazenado em `board.json` junto com o modelo, e é aplicado imediatamente, sem necessidade de reinicialização. Valores abaixo de 50% tornam a escala mais suave: 25% → corte de 6%, 10% → 0,4%, 1% → quase tudo em verde; 99% apenas identifica áreas seguras. Essa escala é necessária para que o operador possa distinguir entre 5% e 99%, em vez de ter apenas áreas vermelhas.
5.3. Pipeline dinâmico: a placa em qualquer posição
Galho Esteira de detecção de componentes eletrónicos: detecção em qualquer posição inclui a procura de componentes eletrónicos com base na sua localização, antes de cada análise: a imagem é alinhada com uma referência, as zonas são cortadas a partir da imagem alinhada, e as zonas (em verde - normal, em vermelho - anomalia) são desenhadas num vídeo. O campo Período, ms define a frequência da procura (por defeito, 1000, em 2000). O indicador ao lado indica: "NORMAL · N pontos", "ANOMALIA · N pontos", "COMPONENTE NÃO ENCONTRADO" ou "NENHUMA REFERÊNCIA - confirme". A decisão é tomada com base numa única análise, sem acumulação.
A referência e a região de alinhamento são fixadas pelo mesmo botão "Fixar referência", como durante a captura de imagem (seção 4.4). A opção "Referência com zonas" permite visualizar a referência. No vídeo, são desenhadas as bordas da região de alinhamento e os pontos de referência azuis, que indicam como a placa foi posicionada. As áreas que ultrapassam as bordas do quadro após o alinhamento são ignoradas e marcadas com "SKIP".
5.4. Qual sinal usar para análise
A fonte do sinal é sempre a mesma: ao incluir um novo, o programa remove o anterior.
| Método | Como ativar | Quando aplicar |
|---|---|---|
| Por câmera | Caixa de seleção "Por câmera" | Controle contínuo; velocidade limitada pelo controle deslizante "Análises por segundo" na aba "Câmera" |
| Por cronômetro | Caixa de seleção "Por cronômetro" e intervalo, ms | Controle periódico, por exemplo, uma vez por segundo |
| Por gatilho | Selecionar a conexão na lista "Gatilho" e o sinal "+ na entrada" ou "-". | Câmera com sensor na entrada: o quadro é capturado no momento da chegada do produto - o método mais preciso (seção 6) |
| GPU | Caixa de seleção "GPU" | Ativada por padrão; alternar reinicia o modelo |
| Análise em tons de cinza | Caixa de seleção "Análise em tons de cinza" | Ativa automaticamente para modelos treinados em tons de cinza; as áreas são convertidas em tons de cinza antes da inferência |
5.5. Zonas amarelas: Desativar com um clique
Na linha, em algumas áreas, pode ser necessário desativar temporariamente o controle: o elemento não está presente nesta versão, a área está bloqueada por um dispositivo, está em fase de correção. Para isso, não é necessário modificar a grade ou o modelo; as áreas são desativadas diretamente na tela, apenas na aba "Inspeção".
O que as zonas amarelas fazem é determinado pela caixa de seleção Zonas amarelas (desativadas por clique) ficam silenciosas na aba "Áudio" (habilitada por padrão):
| Caixa de seleção | Comportamento das zonas amarelas |
|---|---|
| Ativado (por padrão) | A zona não é analisada: a área não é enviada à rede, a etiqueta "OFF" é exibida, não há som, nem envio TCP, nem saída da câmera. Em um ambiente de produção, uma zona amarela não afeta o resultado "normal / anomalia". |
| Desativado | A moldura amarela permanece apenas como uma anotação: a área está sendo analisada e funciona normalmente. É conveniente para marcar áreas para verificação, sem desativar o controle. |
5.6. O que é visível na tela e no console
- O resultado foi registrado na área correspondente; a moldura é colorida de acordo com a cor da área, e quando um gatilho é acionado, torna-se vermelha. Quando há mais de 50 áreas, a área normal é exibida apenas com uma moldura verde, enquanto as áreas anormais e incertas recebem uma moldura: a presença de centenas de áreas com legendas em cada quadro dificultava a leitura da imagem e sobrecarregava o processo de desenho. As áreas amarelas são desativadas ao clicar (seção 5.5).
- A seção "Análise por gatilho" na parte inferior da aba exibe cada evento em uma linha: [hh:mm:ss.mmm] Câmera de entrada + GATILHO 4 ms | IA 12 ms #57 e o resultado para cada zona. Essas linhas não são gravadas no banco de dados.
- Clique com o botão direito na área do vídeo: "Classificação na área → definir como '…'" renomeia a resposta do modelo para essa área (não corrige o modelo, mas o rejeitador e o log verão o novo nome); também, "Definir rejeitador para essa área" e o contador de regras.
- Caixa de seleção "Salvar imagens da inspeção" e pasta: os quadros com as áreas desenhadas são salvos como arquivos inspect_….jpg. A configuração específica varia para cada câmera.
- A cada 10 minutos, uma nova pasta, diag, é criada para a modelagem, contendo um quadro do fluxo de produção e uma lista de texto das áreas, além dos últimos 20 registros – para análise de casos controversos sem necessidade de expansão da pasta.
6. Gatilhos: sensor externo na entrada da câmera
Modo principal para a esteira: a câmera captura o quadro através de um sinal elétrico do sensor em sua entrada discreta. Este é o momento mais preciso da captura: o produto está sempre na mesma posição no quadro, e a análise é realizada apenas uma vez para o produto. A janela "DISPOSITIVOS DE ACIONAMENTO" coleta a comunicação "sensor → câmera" e desenha o esquema de conexão para o conector selecionado.


Diagrama de pinagem
| Pino | HIKROBOT MV-CS, 6 pin | SICK picoCam, 6 pin |
|---|---|---|
| 1 | DC_PWR – Alimentação da câmera: 9–24 V | GND – terra de alimentação da câmera |
| 2 | OPTO_IN — Entrada da Linha 0 (+), Sinal de disparo | VCC – alimentação da câmera (12–24 V) |
| 3 | GPIO – Linha 2, entrada ou saída | Disparo — Entrada do sensor, optoacoplador (−) |
| 4 | OPTO_OUT – Saída da Linha 1 (+) | Entrada do trigger + — terminal de entrada do optoacoplador (+) |
| 5 | OPTO_GND — um optoacoplador geral, com fio de retorno. | Flash + – saída discreta (+) |
| 6 | GND – terra de alimentação da câmera | Flash – – saída discreta (-) |
7. Saídas: rejeitador, saídas discretas da câmera e TCP
O atuador transforma o resultado da inspeção em uma ação. A regra é criada em uma área específica (ou em todas as áreas do modelo, da classe ou das áreas marcadas) e é ativada quando o modelo detecta a classe especificada nessa área. As ações são três: envio de um pacote TCP para o robô ou o PLC, alternar a saída digital da câmera e emitir um alerta sonoro para o operador. Cada ativação é registrada em um log.
7.1. Guia de SAÍDAS: contatos e verificação com multímetro
O botão "SAIR" ao lado do vídeo abre uma janela de ajuda que não configura nada: ela mostra em quais terminais está o contacto, como testá-lo com um multímetro sem alimentação e como conectar a carga.


- Saída – "contato seco" do optoacoplador: não fornece sua própria tensão, apenas fecha o circuito. É necessário um fonte de alimentação externo.
- Verificação com multímetro no modo Ω: saída DESLIGADA – circuito aberto (OL), LIGADA – centenas de Ohms. O buzzer fica silencioso em ambos os casos, consulte os valores. Se nada mudar, inverta os eletrodos, o optoacoplador é polarizado.
- Carga: +24 V → lâmpada → pino "+", pino "-" → GND. Para HIKROBOT, o limite é de 25 mA – se a corrente ultrapassar, reduza a alimentação ou utilize um relé intermediário. Para SICK, a corrente pode ser maior, a lâmpada de 20-30 mA pode ser conectada diretamente.
7.2. Janela OUTPUT: regra para a zona
O botão "OUTPUT" na barra lateral (ou clicar com o botão direito na área e selecionar "Criar filtro para esta área") abre a janela "OUTPUT - Envio TCP e Saídas Digitais das Câmeras". À esquerda, há uma árvore "Câmeras → Modelos de IA → Classes → Áreas" com as áreas marcadas; à direita, há as abas "Regras da Área", "Log de Ativação" e "Banco de Dados".

Uma zona pode conter várias regras TCP (diferentes receptores), no máximo uma regra de saída discreta por classe e no máximo um som por classe. A regra é armazenada no banco de dados e é executada a partir do fluxo de inferência: as regras são mantidas na memória, uma pesquisa por endereço da zona em cada quadro, e os sockets e o SDK da câmera são manipulados por um fluxo de gerenciamento separado, para que a análise não dependa da rede.
7.3. Pacote TCP para o robô ou PLC
O programa funciona como um cliente TCP: conecta-se ao endereço IP e à porta do receptor, mantém a conexão aberta e a reutiliza. Em caso de interrupção, tenta reconectar e repetir a operação uma vez. A string é enviada em formato UTF-8, com um caractere CR+LF no final.
| Campo | Atribuição |
|---|---|
| Tempo limite de conexão, ms | 1000 por padrão, 100...10000. |
| Tempo limite de envio da regra, ms | Pausa mínima entre os envios automáticos da regra; 0 – sem pausa. Mesmo a troca de classe aguarda essa pausa. |
| Comando | A palavra é traduzida literalmente: "up" – pacote "up". É necessário um ângulo de classe – adicione uma substituição: "J6 {class}" → "J6 235". Vazio – utiliza-se o modelo "Dados". |
| Dados próprios | Texto genérico, usado no lugar de `{data}`. |
| Dados | Modelo de pacote. Vazio = "número e nome da área" ({zoneId} {zone}). Clicar em "Adicionar" adiciona o campo, clicar novamente o remove; "Todos os campos" define um modelo estruturado. |
| Substituição | Significado | Substituição | Significado |
|---|---|---|---|
| {zoneId} | Número da zona (1, 2, 3...) | {camera} | Nome da câmara |
| {zone} | Nome da zona (editável na base de dados) | {model} | Nome do modelo de IA |
| {class} | Classe que a modelo identificou | {time} | Hora:Minuto:Segundo.Milissegundo |
| {conf} | Confiança, % (ponto como separador) | {date} | Data (AAAA-MM-DD) |
| {data} | Texto proveniente de "Dados próprios" |
Exemplo de um modelo estruturado: `zoneId={zoneId};zone={zone};class={class};conf={conf};camera={camera};model={model};time={time};date={date};data={data}. Os números devem sempre estar no mesmo formato para evitar problemas na leitura por um PLC.
- Verificar a conexão apenas abre o socket e informa se a conexão foi estabelecida ("conexão estabelecida") ou se não houve resposta em N ms.
- Enviar teste realmente envia a string; o resultado é exibido ao lado do botão, e não dentro da janela.
- Envio automático. Sem a opção "repetir", a regra envia apenas um pacote quando a classe é alterada e o repete até que o destinatário responda com a linha ok <pacote>. Com a opção "repetir", o envio é repetido em intervalos, enquanto a classe permanecer ativa.
- "A última ação prevalece": se a modelo conseguiu gerar vários resultados enquanto o operador estava ocupado, a última ação será executada. A fila é limitada a 512 tarefas.
7.4. Saída discreta da câmera

| Campo | Atribuição |
|---|---|
| Saída | Método: automático (SICK – pino Flash (nível constante) ou GPIO; HIKROBOT – UserOutputValue ou LineInverter (estrobofos desligado)). Os modelos MV-CS020/016-10GC do nó UserOutput não possuem – o programa selecionará automaticamente o LineInverter. |
| Linha | Pino Flash / GPIO1…6 (SICK); Linha1 (saída), Linha2 (bidirecional) (HIKROBOT); Linha0 – apenas entrada. |
| Nível | true / false / off. "off" – regra ativa, mas a saída não é afetada. |
| Pulso, ms (0 – manter) | 0 – o nível é mantido até a mudança de classe; caso contrário, um pulso de 10…5000 ms com retorno. |
Os botões "Ativar saída", "Desativar saída", "Impulso são testados com um multímetro ou uma lâmpada; "Funcionalidades da câmera interroga todos os métodos e gera um relatório. Os testes manuais são escritos no mesmo registo.
7.5. Alerta sonoro: som personalizado para cada zona
O terceiro tipo de regra – o som no computador com o software. O operador não precisa olhar para a tela: com o sinal, ele ouve que a área entrou em falha, e diferentes sons em diferentes áreas indicam exatamente onde. O som está disponível para qualquer câmera, incluindo USB e RTSP, que não possuem saídas discretas.
| Funcionamento | Como funciona |
|---|---|
| Sem a opção "repetir" | O som é emitido uma vez após a confirmação da mudança de classe da área (após "Confirmação da mudança de classe"). Enquanto a classe permanecer ativa, não há som. |
| Com a opção "repetir, enquanto a classe permanecer ativa" | O sinal é repetido através do "Intervalo de repetição", mas não mais frequentemente do que o intervalo entre os sons, enquanto a área permanecer na classe especificada. |
| Múltiplas áreas em falha simultaneamente | Cada área emite seu próprio som; os sinais de diferentes áreas não se cancelam, apenas o sinal de uma área específica é repetido. |
| Registro | Cada ocorrência é registrada no "Registro de Ativações" na linha "Som: …"; se o arquivo não for encontrado ou o dispositivo de áudio falhar, a linha de erro é exibida e o programa continua a funcionar. |
| Verificação | Verificar esta regra reproduz o som imediatamente; Simular o acionamento da zona reproduz o som junto com o TCP e as saídas através da fila de combate. |
7.6. Registro de Ativações e Banco de Dados
A aba "Registro de Operações" exibe as últimas 300 entradas em linhas como "HH:MM:SS.mmm ✔/✖ Câmera · Modelo · Classe · Área → Ação [mensagem]", e é atualizada em tempo real. Botões "Atualizar" e "Limpar o Registro".

Página Banco de dados: o programa armazena tudo em um arquivo SQLite rejectors.db ao lado do executável – não há um serviço separado, a porta não está em uso e não é necessário instalar nada. Tabelas: settings (configurações), cameras (perfis de câmeras), camera_models (modelos nas câmeras), zones (nomes e geometria das zonas), rejectors (regras), reject_log (log), camera_param_files (cópias dos parâmetros das câmeras), camera_presets (conjuntos de configurações das câmeras). Salvar uma cópia do banco de dados… cria uma cópia completa usando o comando VACUUM INTO diretamente no banco de dados em execução; Carregar o banco de dados a partir da cópia… restaura, salvando primeiro a versão atual. É possível visualizar o banco de dados no DBeaver, sem fechar o programa; não é recomendado escrever nele de fora.
8. Outros Modos e Tarefas
Modelos padrão: normal / anomalia e qualquer classe
O mesmo editor ROI também funciona para classificação padrão: comprimidos, tampas, etiquetas, peças no alojamento. As classes são definidas no diálogo "Novo modelo de IA" (por padrão, normal e anomalia, com nomes em letras maiúsculas), as zonas são aplicadas aos produtos, o botão "Tirar foto" com o número de círculos de 1…50, a série "Criar fotos" através da câmera (quadro/frame) ou do codificador. Painel "Dados sintéticos para IA": rotações precisas de 90°/180°, rotação completa de 360° com passo e intervalo, espelho, "classes por graus" (cada ângulo em sua própria classe - o rejeitador enviará o ângulo via TCP), intervalos de brilho e contraste. Treinamento com as ampliações completas da Ultralytics. O limiar de confiança para esses modelos é definido na mesma seção que para o ZONA-PAR, na aba "Inspeção".
Inspeção multi-modelo (slots 1–20)
Em uma única câmera, é possível armazenar até 20 modelos: Adicionar o formato ONNX em um slot, seguido por ROI → Adicionar a classe ao modelo selecionado – cada modelo no slot possui suas próprias marcações de áreas, e os resultados de todos os modelos são exibidos em um único quadro.
Quando a inspeção multi-modelo é aplicada:
| Situação | Como configurar |
|---|---|
| Múltiplas tarefas em um único quadro | O ZONA-PAR verifica o layout e a presença de elementos, enquanto o modelo padrão no segundo slot marca, etiqueta, cor do conector ou direção da chave. As zonas do segundo modelo são definidas separadamente através de "ROI → Adicionar classe ao modelo selecionado". |
| Produto sem grade fixa | Comprimidos, tampas e peças na bandeja: vários tipos de produtos em modelos padrão. Tipos semelhantes são organizados em diferentes compartimentos para evitar a confusão. |
| Duas placas diferentes em uma única imagem | Duas modelos ZONA-PAR em diferentes compartimentos, cada uma com sua própria referência e grade. A linha de produção ativa utiliza a referência do modelo principal. |
| Período de transição | O modelo antigo e treinado permanece no compartimento enquanto o novo ZONA-PAR coleta dados; ambos são visíveis em uma única imagem, e as regras do rejeitador são transferidas conforme necessário. |
Os limites, a velocidade de análise, as zonas amarelas e as regras do rejeitador se aplicam a todos os modelos de câmera. O botão "REMOVER MODELO" limpa e esvazia os slots, portanto, solicita confirmação; "Remover selecionado" remove um modelo específico do slot, mas os seus arquivos e zonas permanecem no banco de dados.
Modelos padrão
O botão "MODELOS GERAIS" mantém um conjunto de "câmera → modelo" com o nome: "Criar a partir dos modelos atuais", "Aplicar a todas as câmeras", "Atualizar a partir dos atuais", "Renomear", "Remover o conjunto". A mudança do stand de oito câmeras para outro produto é uma única seleção. A remoção do conjunto remove apenas o agrupamento: pastas, ONNX, zonas e regras permanecem. As zonas pertencem ao par "câmera + modelo": um modelo em oito câmeras resulta em oito marcações independentes.
Encoder e rejeitador na linha de produção
Para linhas com codificador na porta COM (115200, ESP32): conectar CONECTAR CODIFICADOR, conexão automática, posição, passo da captura e correção, Definir zero + CAPTURAR. A captura para treinamento e análise pode ser feita "usando o codificador" – os quadros são uniformes ao longo do caminho do produto. O antigo rejeitador, com atraso e anti-spam, envia o comando REJECT para o controlador do codificador.
Gravação de vídeo e capturas
Guia "Configurações": INICIAR GRAVAÇÃO DE VÍDEO da câmera ativa para o arquivo record_data_hora.avi (MJPG, taxa de quadros real da câmera). Imagens para treinamento — real_….jpg, imagens para inspeção — inspect_….jpg com áreas demarcadas.
9. Configurações, console e requisitos
Settings
- SALVAR NO ARQUIVO / CARREGAR DO ARQUIVO – todas as configurações (câmera, modelos, regras) em formato JSON, ideal para antes de reinstalar ou para transferir para outro computador. A fonte de verdade é a base de dados, e o JSON serve como uma proteção caso ela fique indisponível. Todas as alterações nas configurações são salvas automaticamente.
- REMOVER PARA AS CONFIGURAÇÕES Padrão — é uma ação irreversível: remove a configuração e o layout das janelas.
- Idioma da interface: 14 idiomas; a janela principal é ativada imediatamente, enquanto as outras janelas são ativadas na próxima abertura.
- Posição, tamanho e monitor de todas as janelas, posições dos separadores - armazenados na base; quando o monitor está desativado, a janela retorna à área visível.
Console
As caixas de seleção "Câmeras" e "Gatilho" estão desativadas por padrão e exibem as mensagens correspondentes (no modo de gatilho, as mensagens da câmera vão para a seção "Gatilho"); todos os dados são gravados nos arquivos logs\engiai-*.log, antes de serem filtrados. A consol é projetada para funcionar por semanas sem intervenção: a tela exibe 800 linhas, e 200 linhas antigas são removidas quando 1000 são exibidas; novas linhas são coletadas em grupos de 4 vezes por segundo, e não uma por vez; a rolagem automática para baixo está ativada até que você role para cima; a consol não emite som. As alterações de zona são registradas com no máximo 10 linhas por segundo (o restante é agrupado em um contador), o arquivo de log tem 20 MB, arquivos com mais de 14 dias são removidos ao iniciar, o log de eventos armazena as últimas 20.000 entradas. Erros não processados estão em crash.log, as causas para o encerramento forçado estão em runtime.log ao lado do arquivo exe. Se algo não estiver funcionando corretamente, consulte esta seção primeiro.
Requisitos
| Componente | Requisito |
|---|---|
| Sistema Operacional | Windows 10/11 x64. |
| Placa de vídeo para inspeção | NVIDIA com driver CUDA; as bibliotecas CUDA 13 e cuDNN 9 são fornecidas com o software. A inspeção é realizada automaticamente na CPU, sem a necessidade de uma placa de vídeo. |
| Treinamento | Python 3 (com a opção "Adicionar python.exe ao PATH" durante a instalação) e os pacotes ultralytics, onnx, onnxslim, onnxruntime – o programa os instala automaticamente na primeira execução, requer conexão com a internet. A GPU para o treinamento é determinada pelo PyTorch; sem CUDA, o treinamento é feito na CPU, mas o resultado é o mesmo. |
| Câmeras SICK | Driver IDS uEye; a câmera deve ser visível no IDS Camera Manager. |
| Câmeras HIKROBOT | SDK MVS (a biblioteca é fornecida com o software); para GigE, é necessária uma placa de rede com suporte a pacotes jumbo. |
Licença e modo de teste
Ao iniciar, o programa se conecta ao servidor de licenças engi.live; são enviados apenas os hashes dos identificadores de hardware e da versão, sem números de série ou nomes de usuário. Se o servidor não estiver disponível, mas a licença estiver armazenada em cache, o programa funciona com base no cache (para conexões sem internet). Sem uma licença, um período de teste de 20 minutos é ativado: um contador "TEST MM:SS" aparece no cabeçalho da janela e na barra de status. O botão "COMPRAR" na aba "Configurações" abre a página de compra. Quando uma licença válida está ativa, o contador não é exibido.
10. Lista de verificação curta e identificação de problemas
Lista de verificação para placa
Se algo não estiver correto:
| Sintoma | O que verificar |
|---|---|
| A câmara não aparece na lista | Alimentação e cabo; para SICK - IDS Camera Manager e IP da sub-rede do adaptador; para HIKROBOT, após o encerramento de emergência, aguardar até 25 segundos e "Reiniciar" |
| Imagem escura, cinzenta ou com cores erradas | Câmara → «Configuração automática para IA»; para câmara SICK colorida - disposição de Bayer e equilíbrio de branco; para USB - "Padrões", depois "Fixar parâmetros" |
| Quadros interrompidos, rede vermelha | GigE: tamanho do pacote 1500 ou jumbo na placa de rede, atraso entre pacotes; menor FPS ou menos quadros; placa de rede separada para a câmera |
| "Placa não encontrada" / imagem perdida | referência não detectada ou capturada sob outra iluminação; poucas referências – ampliar a região de alinhamento e com detalhes; a área foi atingida por uma mesa ou esteira; aumentar o período de busca |
| As zonas se deslocam para outra placa | a placa foi procurada pelas próprias zonas de inspeção: redefinir a referência com a região de alinhamento pelos detalhes da placa ao redor (seção 4.4); modelo de alinhamento "Automático" |
| Placas defeituosas de outra série de peças | a marcação nos gabinetes é diferente: adicionar imagens normais desta série; não criar arranhões sintéticos mais finos que 3 px (seção 4.6); verificar se o defeito é um deslocamento, e não uma mudança de cor |
| Áreas marcadas com NO_ZONE_CLASS | a grade mudava após o treinamento; retornar a grade ou criar um novo modelo e refazer a captura |
| Todas as zonas são vermelhas na placa boa | outro pagamento ou outra posição sem sistema de transporte; a margem é muito alta; as imagens foram tiradas com outra iluminação; arquivos coloridos e em tons de cinza foram misturados |
| O modelo não detecta o deslocamento do elemento | recalcular px/mm (seção 1.3): com uma escala pequena, o deslocamento é menor que 5 px; reduzir o campo de visão ou usar uma câmera com maior resolução; não ampliar o deslocamento normal |
| O treinamento está lento ou muito lento | Dispositivo = cpu, se não houver placa de vídeo NVIDIA; reduzir o tamanho do lote; verificar o console; verificar se o Python está no PATH |
| A inspeção não funciona | O modo selecionado é best.onnx; a função de temporização está ativada (por meio da câmera / cronômetro / gatilho); a opção "NÃO USAR IA" não está marcada; a caixa de seleção "IA ativada" na câmera está marcada. |
| A regra "rejeitar" está silenciosa | o botão "Criar em N zonas" foi pressionado; a caixa "Ativado" está marcada; a classe da regra corresponde à resposta do modelo (anormal / normal); para sair, o nível não é "off"; as câmeras USB não têm saídas, apenas TCP |
| O som não toca | A regra foi criada e incluída; o arquivo está na pasta "sounds" (ou "sounds\custom"); há uma pausa entre os sons? O som só é reproduzido repetidamente quando a classe é alterada; volume do Windows e dispositivo de saída. |
| O pacote TCP é enviado uma única vez. | sem a opção "repetir", o sistema aguarda a resposta "ok <pacote>" do receptor; marque a opção "repetir enquanto o programa estiver em execução" ou configure a resposta no lado do PLC. |
engiAI Ethernet System. Os nomes dos botões e campos estão conforme aparecem no programa na sua língua (capturas de tela - do interface em russo). As capturas de tela foram feitas no modelo "model_4" (duas zonas de 256x256: capacitor C30 e bridge BR1), câmera USB 3264x2448, o modelo foi treinado em tons de cinza. Edição 3, setembro de 2026: exemplo com duas zonas, criação de pastas do modelo, região de alinhamento, dados sintéticos "elemento com base" com imagens "antes / depois", paleta e espessura da linha, zonas vermelhas, console.
