engiAI

  • Requisitos
Windows 10/11 x64. Análise de CPU e GPU – versões RTX 50+.

⬇ engiAI.rar (900 MB)

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

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

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

SICK IDS Camera Manager - link 2

Registro

Fazer uma inscrição no engiAI

EngiAI (engiAI Ethernet System) – um programa de visão computacional para desktop, utilizado para inspeção e rejeição de produtos em linhas de produção. Desenvolvido em C# (.NET 9, WinForms), compilado em um único arquivo executável AOT (Ahead-of-Time) para Windows x64.

⬇ engiAI Descrição.pdf (75 KB)
  • O que faz
Captura de vídeo: câmeras industriais Hikrobot (SDK), USB/DirectShow, IDS uEye, bem como câmeras Android através do OpenCV. Múltiplas câmeras simultaneamente.

Inspeção por IA: As redes neurais YOLO (ONNX Runtime / GPU-CUDA ou CPU) identificam objetos e defeitos em tempo real.

Zonas ROI (Áreas de Interesse): Áreas de controle personalizáveis, com classes e regras, zonas nomeadas, catálogo.

Rejeitador: Com base na análise da IA, gera um sinal para a saída discreta (desativação do defeito), com configuração de pinagem e verificação com um testador.

Gatilhos: Captura de quadro com base em sinal externo (entradas discretas, encoders).

Treinamento de modelos: conjuntos de dados, dados sintéticos (rotações/espelhamento/brilho), treinamento do YOLO11 diretamente a partir do programa.

Armazenamento: banco de dados SQLite local (rejectors.db) – modelos, zonas, log de eventos, estado das câmeras.

  • Licenciamento
Versão única: modo (teste / licença / proibido)

Sem licença – modo de teste por 20 minutos; com licença – funcionamento sem restrições.

Vinculação ao hardware, controle de todas as instâncias em execução.

engiAI Ethernet System
ZONA-PAR — inspeção visual de placas de circuito e montagens

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.

A essência da inspeção reside na abordagem de múltiplas zonas, o sistema ZONA-PAR. Na placa, são identificadas zonas – cada componente que precisa ser verificado. Um modelo específico é responsável por cada zona, definindo um par de classes "normal/anomalia" e tomando decisões apenas dentro desse par. No exemplo do guia, existem duas zonas: o capacitor C30 e o diodo retificador BR1; em uma placa real, podem existir centenas, mas o método é o mesmo.
Dados sintéticos – deslocamento automático do componente a partir da base. O programa pega a peça juntamente com a área da placa ao redor (linhas, trilhas, cor da base), reduz a área até o tamanho da peça e a desloca ou a gira. A criação de um exemplo defeituoso é feita em dois cliques, sem a necessidade de uma única placa defeituosa.
Manual do usuário: como conectar a câmera, definir as áreas, fixar a região de alinhamento, capturar imagens normais e anormais, treinar o modelo, iniciar a inspeção e conectá-la ao sistema de rejeição: através de alertas sonoros, saídas discretas das câmeras SICK e HIKROBOT e envio TCP para o robô ou PLC.
Passo 1Câmera
Passo 2Grade de zonas
Passo 3Normais e anomalias
Passo 4Treinamento
Passo 5Inspeção
Passo 6Saídas e TCP
Todas as capturas de tela foram feitas com o programa em funcionamento: placa vtlift, câmera USB 3264×2448, modelo model_4 para duas zonas de 256×256 (capacitor C30 e ponte BR1), treinada em tons de cinza. O programa funciona com câmeras HIKROBOT (GigE e USB3), SICK picoCam (uEye), câmeras USB/web e câmeras IP via RTSP. Edição 3 – setembro de 2026.

Conteúdo

  1. 1. Por que o engiAI e o método ZONA-PAR?
  2. 1.1. Quais são as vantagens do método em comparação com a classificação da imagem inteira?
  3. 1.2. Velocidade: O IA analisa apenas as informações relevantes.
  4. 1.3. Qual precisão esperar: calculando com a nossa câmera
  5. 1.4. Início rápido: as configurações foram definidas, as áreas e o modelo podem ser configurados em poucos cliques.
  6. 2. Interface do programa em um minuto
  7. 3. Câmeras: conexão e configuração
  8. 3.1. Quais câmeras são suportadas
  9. 3.2. Janela da Câmera: adicionar, reconectar, remover
  10. 3.3. Aba "Câmera" para HIKROBOT e SICK
  11. 3.4. Aba "Câmera" para webcam/câmera USB
  12. 3.5. Configurações da câmera salvas (conjuntos)
  13. 3.6. Rede GigE e reconexão
  14. 4. Modelo ZONA-PAR: do conjunto de dados à modelo treinada
  15. 4.1. Como funciona o método: um modelo, uma classe para cada zona.
  16. 4.2. Criar um modelo
  17. 4.3. Identificar as áreas de pagamento
  18. 4.4. Registrar a referência: área de alinhamento
  19. 4.5. Imagens por zonas: normal e seus dados sintéticos
  20. 4.6. Dados sintéticos: defeito corrigido com dois toques: o elemento se desloca junto com a base.
  21. 4.7. Anomalias de zona: janela de configurações
  22. 4.8. Referência com zonas: Placas de solda e editor de zona
  23. 4.9. Treinamento do modelo
  24. 5. Inspeção
  25. 5.1. Definir o modelo e verificar as áreas.
  26. 5.2. Limiar de reconhecimento da área
  27. 5.3. Esteira de transporte: pagamento em qualquer posição
  28. 5.4. Qual sinal analisar?
  29. 5.5. Zonas amarelas: desativar a zona clicando
  30. 5.6. O que é visível na tela e no console
  31. 6. Gatilhos: sensor externo na entrada da câmera
  32. 7. Saídas: rejeitador, saídas discretas das câmeras e TCP
  33. 7.1. Guia: Saídas: Contatos e verificação com multímetro
  34. 7.2. Janela de Saída: regra para a zona
  35. 7.3. Envio de pacote TCP para o robô ou CLP
  36. 7.4. Saída discreta da câmera
  37. 7.5. Alerta sonoro: um som específico para cada área
  38. 7.6. Registro de ativações e banco de dados
  39. 8. Outros modos e tarefas
  40. 9. Configurações, console, requisitos e licença
  41. 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 modelo
para todas as áreas de pagamento, em vez de centenas de modelos individuais.
2 áreas
No exemplo fornecido: o capacitor C30 e o circuito BR1. Em uma placa, pode haver centenas deles.
≈5 px
deslocamento do elemento para o qual a fronteira "normal / defeito" está definida.
2 cliques
De imagens reais a imagens normais e sintéticas para treinamento

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.

Exemplo de imagem real: duas áreas – o diodo BR1 no canto superior direito e o capacitor C30 na parte inferior esquerda, ambas verdes e com a etiqueta "normal". As linhas azuis indicam as fronteiras da área de alinhamento, e os pontos azuis são pontos de referência que permitem identificar a placa na imagem.
Exemplo de imagem real: duas áreas – o diodo BR1 no canto superior direito e o capacitor C30 na parte inferior esquerda, ambas verdes e com a etiqueta "normal". As linhas azuis indicam as fronteiras da área de alinhamento, e os pontos azuis são pontos de referência que permitem identificar a placa na imagem.
Decisão dentro do parAo verificar a zona 17, apenas duas saídas da rede são consideradas: "normal da zona 17" e "anomalia da zona 17". As restantes centenas de classes não entram na decisão, portanto, zonas vizinhas semelhantes não afetam o resultado.
Uma zona com baixa cobertura não será considerada "normal". Se uma área de cobertura de dois setores tiver menos de 10% da cobertura da rede, essa área será considerada "não reconhecida": isso indica uma cobertura diferente ou uma rede deslocada. Essa área é considerada um defeito, e não uma "zona normal com alta probabilidade".
O defeito é proporcional à áreaO tamanho e a posição dos defeitos sintéticos são definidos em relação ao tamanho da área. Um deslocamento de um elemento de 0,5 milímetros em um quadro de 8 megapixels não é perceptível, enquanto dentro da área de 128x128 pixels, representa 5-6 pixels, o que é uma diferença significativa.
Resolução completa A área de 108–137 pixels é transmitida para a rede 128×128 com pouca ou nenhuma alteração de tamanho. Para exibir a imagem completa, seria necessário comprimi-la para 128 pixels, o que resultaria em uma perda significativa de detalhes.
Limite de referência "normal / defeito" Os dados sintéticos "normal" apresentam uma variação de 0–2 px, enquanto os dados sintéticos "defeito" indicam um deslocamento de 5 px. A rede aprende a identificar precisamente essa fronteira, e não apenas variações aleatórias na iluminação.
Resultado direcionadoCada zona possui um endereço fixo (modelo, tabela, célula) e um nome. É possível atribuir uma regra específica a qualquer zona: um alerta sonoro, uma mensagem TCP com o número da zona ou uma saída discreta da câmera.
Inspeção em qualquer posição O operador marca na imagem a área de alinhamento – a parte da placa com os componentes. A partir desses pontos de referência, cada imagem é alinhada com a referência, e as áreas de inspeção são verificadas na nova placa, mesmo que ela tenha sido posicionada de forma deslocada ou rotacionada, incluindo em 180° (seção 4.4).
defeito proveniente da própria placa Um defeito sintético não é uma mancha desenhada, mas sim um componente deslocado ou rotacionado, juntamente com uma parte da base. O modelo aprende a relação "componente ↔ placa", e não a cor da mancha. É feito em duas etapas (seção 4.6).
As anomalias são relatadas gradualmente As classes de defeito são adicionadas apenas nos locais onde o defeito realmente ocorre: junções de solda, componentes ausentes, desalinhamento, arranhões. O modelo é retreinado, mas a rede permanece inalterada.

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:

px/mm = largura do quadro em pixels dividido pela largura do campo de visão em milímetros
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 mm200 mm300 mm400 mm
3264 px (8 MP via USB, como nas imagens)0,03 mm/px → deslocamento ≈ 0,15 mm0,06 → ≈ 0,3 mm0,09 → ≈ 0,45 mm0,12 → ≈ 0,6 mm
2448 px (HIKROBOT 5 MP)0,04 → ≈ 0,2 mm0,08 → ≈ 0,4 mm0,12 → ≈ 0,6 mm0,16 → ≈ 0,8 mm
1920 px (SICK picoCam, HIKROBOT 2 MP)0,05 → ≈ 0,25 mm0,10 → ≈ 0,5 mm0,16 → ≈ 0,8 mm0,21 → ≈ 1,0 mm
Importante. Esta é uma avaliação da margem para o deslocamento de um elemento em uma imagem com um contraste acentuado e iluminação estável. Para verificar o limite real, use o botão "ZONA-PAR: zona ↔ modelo" e o limiar de reconhecimento (seção 5.2): cada zona tem suas próprias áreas de corte, e, portanto, seu próprio nível de precisão. Quanto menor o campo de visão e maior o número de pixels da câmera, menor será o defeito que o modelo conseguirá identificar.

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.

Janela principal: à esquerda, a imagem ao vivo do circuito com duas zonas (ambas verdes - "normal"), à direita, a aba "Inspeção" com o modelo model_4\best.onnx. A linha de produção está ativa, com o indicador "normal · 112 pontos".
Janela principal: à esquerda, a imagem ao vivo do circuito com duas zonas (ambas verdes - "normal"), à direita, a aba "Inspeção" com o modelo model_4\best.onnx. A linha de produção está ativa, com o indicador "normal · 112 pontos".

Botões acima do vídeo

BotãoO que abre
ESCONDER VÍDEORemove a imagem da tela. A análise continua, apenas o desenho é economizado.
SAÍDASJanela 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ÂMERASJanela "Configurações das câmeras conectadas": adicionar, reconectar, remover câmeras e visualizar todos os parâmetros lidos do hardware (seção 3.2).
SENSORESConectar um sensor externo à entrada discreta da câmera, com o esquema e a pinagem (seção 6).
MODELOS GERAISConjuntos 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 ROIDesenhar uma grade de zonas sobre o vídeo.

Pestañas à direita

PestañaAtribuição
CameraParâ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".
OUTPUTRejeitador: 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 ModelCriaçã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.
InspectPá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.
SettingsIdioma da interface (14 idiomas), compra de licença, salvamento e carregamento de configurações, gravação de vídeo.
ConsoleRegistro 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

TipoComo conectarO 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 RTSPA 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

1
Clique em "CÂMERAS" acima do vídeo. Uma janela "CONFIGURAÇÕES DAS CÂMERAS CONECTADAS" aparecerá na tela inteira (para fechar, use a tecla Esc).
2
Clique em + Adicionar Câmeras. O programa irá consultar a rede e a porta USB e mostrar todos os dispositivos encontrados em uma única lista: Hikrobot … SN: … IP:, SICK … SN: … DeviceID:, Android …. As câmeras SICK são consultadas em até 4 segundos, pois o dispositivo GigE não aparece imediatamente no driver. Uma câmera SICK ocupada ou com endereço incorreto é marcada com o símbolo ⚠ e a razão.
3
Selecione as câmeras desejadas e clique em "Adicionar". Para adicionar uma câmera IP, use o botão "+". Para adicionar uma câmera RTSP, utilize o link... Enquanto as câmeras são conectadas, uma tela de apresentação é exibida, com um botão para "Pular câmera".
4
A câmera aparecerá na lista com a linha `Nome | Tipo | Número de série | ONLINE ou OFFLINE | IA: ON | Display: ON, e o seu vídeo estará na parte esquerda da janela principal.

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

Importante. A câmera HIKROBOT, que utiliza a tecnologia GigE, possui uma conexão exclusiva. Após o encerramento inesperado do programa, ela permanece ocupada até que o sinal de "heartbeat" expire; o programa aguarda até 25 segundos (10 tentativas) e informa que "a câmera está sendo utilizada por outro processo". No caso da SICK, se o endereço IP estiver incorreto, o programa tentará corrigi-lo automaticamente, desde que não esteja dentro da sub-rede do adaptador.

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

1
Na parte inferior, defina a Largura (W) e a Altura (H) do quadro (ou selecione uma das opções predefinidas da lista, que contém apenas as dimensões suportadas por esta câmara) e clique em APLICAR RESOLUÇÃO. Normalmente, utiliza-se a resolução total da câmara. A dimensão é arredondada para baixo, seguindo o passo de resolução da câmara.
2
Clique em "Configuração automática para IA (por quadro)". O programa ajusta a abertura (prioridade) e o aumento (máximo de 40) para que o 99,5º percentil de brilho esteja entre 220 e 248, sem causar reflexos, e, em seguida, define a gama para 1,50, a saturação para 115% e o contraste para 105%, além de realizar o ajuste automático do branco. Ao marcar a caixa "automático", é ativado o modo contínuo: a verificação e o ajuste ocorrem a cada 3 segundos, caso a luz tenha mudado.
3
Se necessário, ajuste manualmente: Exposição (controle em microssegundos, legenda em ms, até 1 segundo), Ganho, FPS, Nível de preto. Para SICK, adicionalmente: Relógio de pixels (define o limite de FPS e o tempo de exposição mínimo), Aumento de ganho, Faixa de cores, WB Vermelho / Verde / Azul.
4
Clique em "Salvar configurações": o arquivo será salvo como camera_params\<SN>.ini e as configurações serão gravadas na memória da câmera – UserSet1 para dispositivos HIKROBOT (com as configurações padrão), e na memória EEPROM para dispositivos SICK. O resultado será exibido no próprio botão ("✔ Salvo"). Para dispositivos HIKROBOT, existe a opção de "Salvar automaticamente na câmera (UserSet1) após 5 segundos de alteração".

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âmetroO que fazImpacto
Análises por segundo (IA)Limite máximo da velocidade de inspeção, 1…200menor carga na placa de vídeo; não depende da conexão da câmera
Limite de IAnã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
Exposuretempo de exposiçãomenor efeito de "desfoque" em objetos em movimento; um valor zero não é permitido
Gain / Gain boostamplificação do sinal da matrizaumenta o brilho, mas adiciona ruído
Pixel clock (SICK)frequência do sensoraltera os intervalos de FPS e tempo de exposição, que são lidos novamente
FPSfrequência de quadros em modo livrenão é usado no modo de gatilho
Largura / AlturaTamanho do quadro (AOI)Um quadro menor significa maior frequência e menor tráfego.
Importante. Tire fotos para o treinamento nas mesmas condições em que a linha de produção funcionará: o mesmo iluminação, a mesma velocidade, a mesma posição da câmera. Após alterar as configurações, o programa exibe uma mensagem na console, informando que o modelo precisa ser retreinado com as novas imagens.

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.

1
Permitir e Aplicar. O botão Verificar percorre os tamanhos padrão, desde VGA até 8K, e mantém apenas aqueles que foram aceitos pela câmera na lista. A linha "Formato da câmera" mostra o tamanho e a taxa de quadros (FPS) reais.
2
Deixe a exposição automática, o foco automático e a função de balanço de branco se ajustarem, e então pressione "Fixar parâmetros (desativar a automática, salvar como está)": a função automática é desativada, e o programa ajusta manualmente o tempo de exposição para o mesmo nível de brilho (o driver, quando a função automática está ativada, fornece o último tempo de exposição manual, em vez de um ajuste personalizado), e os valores e o formato são armazenados em um banco de dados e aplicados sempre que a câmera for reconectada.
3
Conjunto Com IA: Seleção automática para moldes (20–60 segundos, ajuste de exposição e contraste com imagens originais, critério: nitidez das bordas sem reflexos), Moldes, sem cor, Moldes, suaves, Retornar, Padrões.
4
Os valores inseridos nos campos são automaticamente gravados na câmera, sem a necessidade de pressionar a tecla "Enter", e são imediatamente registrados no banco de dados. O botão "Recarregar propriedades da câmera" indica que a câmera realmente recebeu os dados.
Dica. Para a inteligência artificial, é melhor remover a saturação da cor, não através das configurações da câmera, mas utilizando a opção geral "Treinar em tons de cinza (configuração geral do modelo)" na aba "Câmera" (na aba "Modelo de IA", ela também é chamada de "Treinar em cinza"): assim, tanto as imagens usadas para treinamento quanto as imagens de inspeção serão em tons de cinza, enquanto a câmera continuará a fornecer informações de cor para o operador. O modelo do exemplo foi treinado em tons de cinza.

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:

Pasta model_4: treino e validação – imagens, data.json – áreas, live_template – referência da placa, board.json – limiar, best.onnx – rede treinada.
Pasta model_4: treino e validação – imagens, data.json – áreas, live_template – referência da placa, board.json – limiar, best.onnx – rede treinada.
model_4\ train\ Imagens para fins de treinamento zone_001\ Zonas normais 1 (C30): real_... da câmera, syn_... dados sintéticos zone_001_anomaly\ Defeito na zona 1: syn_…_combo1_d, _rotate1 … zone_002\ Zonas normais 2 (BR1) zone_002_anomaly\ Defeito na zona 2 val\ Amostra de teste: as mesmas quatro pastas, que serão preenchidas automaticamente data.json Zonas: tabelas, coordenadas, tamanho, cor, ativado/desativado; classes; slots live_template.png / .txt referência da placa: quadro, região de alinhamento, áreas vermelhas (excluídas) live_template_zones.png referência com áreas desenhadas e números indicados board.json limiar de reconhecimento da área ({ "threshold": 0.50 }) train_gray.txt Característica "escala de cinza" best.onnx Um modelo treinado é aquele que é designado para realizar uma inspeção runs\ diag\ *.cache serviços: progresso do treinamento, imagens para análise, cache de treinamento
train: duas pastas para cada zona – normal e anomalia.
train: duas pastas para cada zona – normal e anomalia.
val: a mesma estrutura, o programa a preenche automaticamente durante a captura.
val: a mesma estrutura, o programa a preenche automaticamente durante a captura.

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.

Um único local de armazenamento. Toda a definição do modelo – áreas de inspeção, região de alinhamento, classes e slots – está localizada apenas na pasta do modelo: data.json e live_template.txt. Não há mais áreas definidas no banco de dados, portanto, as áreas exibidas no editor ROI nas abas "Modelo de IA" e "Inspeção" são as mesmas, e a pasta do modelo pode ser copiada para outro computador sem perda de dados. Os modelos antigos são transferidos automaticamente para o arquivo na primeira abertura.

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

Importante. As zonas fazem parte do modelo. Após a criação das aulas, não é possível modificá-las (adicionar, remover ou reorganizar as tabelas): os números das zonas não corresponderão mais às aulas, e essas zonas receberão a etiqueta NO_ZONE_CLASS. Se for necessário alterar as zonas, crie um novo modelo.

4.2. Criar o modelo

1
Clique na aba "Modelo de IA" e clique em "Criar um novo modelo de IA".
2
Especifique a pasta pai e o nome do modelo (o programa oferece a opção de model_N). A lista de classes padrão contém normal e anomaly; para ZONA-PAR, elas não são necessárias – as classes de zona serão criadas automaticamente na primeira captura de dados por zona. Você pode removê-las ou deixá-las vazias: antes do treinamento, o programa oferecerá a opção de remover as classes vazias.
3
Clique em "Criar modelo". Novas pastas "train" e "val" serão criadas no disco. O modelo estará disponível para edição (não será carregado automaticamente). Se o modelo já existir, utilize a opção "Selecionar pasta do modelo" em vez disso.

4.3. Marcar as zonas na placa

1
Coloque a placa corretamente na câmera, de forma que ela fique alinhada com a linha. Clique em ROI → Adicionar à classe (modelo de treinamento).
2
No diálogo "Preservar ROI na classe", selecione qualquer classe (a escolha não é importante para a marcação) ou insira um novo nome e clique em "OK + abrir ROI". Posteriormente, todas as classes de áreas de interesse (ROI) serão exibidas aqui, agrupadas por padrão zone_###: um clique em um grupo o seleciona, e um segundo clique desmarca a seleção; o botão "Remover grupo" remove todo o grupo, juntamente com as imagens.
3
Uma janela "Selecionar ROI" será aberta. Arraste o cursor para criar um retângulo ao redor do componente. Um campo "Tamanho da área, px" aparecerá: insira o tamanho (que será arredondado para múltiplos de 32, por exemplo, 256) e pressione Enter – o retângulo se tornará um quadrado perfeito com a indicação do tamanho. Repita o processo para cada componente que você precisar verificar. No exemplo, existem duas áreas: uma ao redor do C30 e outra ao redor do BR1.
4
Se houver muitas informações e elas estiverem alinhadas, é mais fácil usar a grade: arraste a moldura por toda a placa e insira o tamanho da área – a ferramenta fornecerá o número de linhas e colunas resultantes. Ou, no bloco Grade de áreas, defina o número de linhas, colunas, largura e altura das células e clique em Criar grade. A grade pode ser arrastada com o mouse para o produto com precisão.
5
A barra lateral exibe cada zona, com o seu tamanho e a opção "ativada"; uma zona desativada não apresenta uma classe, e uma tabela completamente oculta não participa da inspeção. Os botões Todas as zonas ✓ / ✗, Cor, Excluir, Excluir TODAS as zonas. Feche a janela com a tecla Enter – as zonas serão salvas em data.json e aparecerão na tela em amarelo.
Resultado da marcação na aba AI Model: duas zonas amarelas na imagem em tempo real – BR1 no canto superior direito e C30 no canto inferior esquerdo. À direita, os botões do modelo ZONA-PAR, a opção "Fixar as zonas ao produto com marcadores" e as configurações de treinamento.
Resultado da marcação na aba AI Model: duas zonas amarelas na imagem em tempo real – BR1 no canto superior direito e C30 no canto inferior esquerdo. À direita, os botões do modelo ZONA-PAR, a opção "Fixar as zonas ao produto com marcadores" e as configurações de treinamento.
Dica. A componente deve ocupar uma parte significativa da área, e deve haver espaço suficiente para a placa: trilhas, legendas e espaços. É essa "base" que é então utilizada para gerar dados sintéticos (seção 4.6). Para placas com componentes de 0603-1206, com 11 px/mm, um tamanho de 128 px funciona bem; para capacitores, resistores e conectores, um tamanho de 192-256 px, como no exemplo. O tamanho da entrada de imagem (Image Size) deve então ser aproximadamente igual ao tamanho da área.

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.

Dois retângulos diferentes. As áreas de inspeção são aquelas que a placa verifica (em verde). Área de alinhamento é o marcador que serve para localizar a placa (com um contorno laranja). Os pontos de referência nunca devem ser colocados dentro das áreas de inspeção: se a placa fosse procurada diretamente no capacitor, um capacitor deslocado "arrastaria" consigo a área de inspeção, e o defeito deixaria de ser visível. Portanto, na área de alinhamento, utilize a impressão serigráfica, furos, trilhas e microchips próximos, mas evite o uso da mesa e da esteira.
1
Na aba "Modelo de IA", marque a caixa Definir áreas para o produto com base nos marcadores e defina o período de busca, ms (o padrão é 100). Coloque a placa sob a câmera e clique em Definir referência.
2
Uma janela com o título "Região de alinhamento: onde procurar a placa" será aberta, exibindo uma imagem ao vivo e áreas de inspeção em verde. Arraste a caixa com o botão esquerdo para a área da placa com detalhes. À direita, você verá "Pontos de referência: N · Alinhamento: rígido / perspectiva": deve haver centenas de pontos. Se houver poucos, expanda a caixa. Uma nova caixa substituirá a antiga, e o botão direito a removerá.
3
Clique em ✔ Procurar áreas na área selecionada. O segundo botão ✔ Procurar áreas nas áreas de inspeção seleciona a área com base nas áreas definidas — apenas quando não houver nada próximo. Se a opção Perguntar sobre a área de alinhamento sempre estiver desativada, a próxima fixação repetirá a área anterior sem a janela.
4
O programa exibe "referência registrada. Zona N, pontos K", e salva live_template.png e live_template.txt (quadro, área, zonas vermelhas). A caixa de seleção Mostrar zonas de captura no quadro marca as zonas encontradas no vídeo, enquanto os pontos de referência, utilizados para o alinhamento, são exibidos em azul – através deles, é possível ver por que o programa está "agarrado".
Área de alinhamento: moldura laranja – área da placa com detalhes (3000 pontos de referência), verde – áreas de inspeção C30 e BR1, que não estão incluídas na moldura.
Área de alinhamento: moldura laranja – área da placa com detalhes (3000 pontos de referência), verde – áreas de inspeção C30 e BR1, que não estão incluídas na moldura.
Imagem após a fixação: as áreas são encontradas nos seus detalhes e marcadas como "normal", as linhas azuis – limites da área de alinhamento, os pontos azuis – pontos de referência correspondentes nos detalhes da placa (que não entram nas áreas).
Imagem após a fixação: as áreas são encontradas nos seus detalhes e marcadas como "normal", as linhas azuis – limites da área de alinhamento, os pontos azuis – pontos de referência correspondentes nos detalhes da placa (que não entram nas áreas).
Modelo de alinhamentoQuando 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.
RigidezA câmera olha diretamente de cima, a placa está plana. A opção mais estável, se a área de alinhamento for pequena.
PerspectivaA 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".

Importante. Anteriormente, as áreas onde ocorriam os problemas eram identificadas em poucas áreas na imagem, devido ao facto de a detecção ser feita diretamente nas áreas. No entanto, com a nova referência, o número de áreas detectadas na placa aumentou de 46 a 51 para 106 a 112, de um total de 134, tendo em conta a região de alinhamento.

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.

"ZONA-PAR: Imagens por zona": número de opções, imagens por tempo, participação em val, deslocamento/rotação/escala da zona em relação à imagem completa, seleção de "onde", iluminação e ruído, contador final de arquivos. A janela é ajustada com o mouse.
"ZONA-PAR: Imagens por zona": número de opções, imagens por tempo, participação em val, deslocamento/rotação/escala da zona em relação à imagem completa, seleção de "onde", iluminação e ruído, contador final de arquivos. A janela é ajustada com o mouse.
ConfiguraçãoO que faz e quais são as configurações padrão
Opções sintéticas para cada áreaQuantos 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âmeraAtivado, 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 cinzaFlag 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 ondeA 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 ondePor 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 / aumentoPor 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 / GamaValor 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) / DesfoqueGrã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.
1
Clique em "ZONA-PAR: Imagens por zona". A linha na parte inferior do diálogo já preenche: "Para a opção: 1 arquivo. Para a zona: 21 no trem, ≈5 no val. Total de ≈ 52 arquivos por imagem. Fotos da câmera: 20, ≈16" (para duas zonas).
2
Selecione o perfil: Padrão (deslocamento de 0–2 px, brilho ±5, contraste 95–105 %), Deslocamento de elementos (deslocamento de 0–1 px, brilho -10…10) ou Cor e tonalidade (deslocamento de 0–2 px, brilho ±2, contraste e gama desativados, para que a tonalidade permaneça como um indicador).
3
Clique em "Remover". A geração ocorre em segundo plano, com uma janela de progresso que exibe "Zona 1/2 · 26 arquivos · Quadro 4/20" e um botão de cancelamento. Ao final: "Concluído: 2 zonas → classes zone_001…zone_002, arquivos: 52". O programa define imediatamente as configurações de aprendizado pagas: Tamanho da imagem 128, Tamanho do modelo s, Épocas 50, Lote 64 (seção 4.9).
4
Repita a imagem em várias placas diferentes e válidas usando o mesmo botão. Para um modelo confiável, é necessário ter no mínimo 80 arquivos por classe, e o mais importante, vários exemplos reais (5-10 placas), e não apenas uma imagem com centenas de variações.
trainzone_001 – C30 padrão em um contexto de condução: real_... com câmera e syn_... _n1...n20 com sufixos de deslocamento (shiftd, shiftl, shiftr, shiftu). A legenda está sempre na posição correta em relação à base.
trainzone_001 – C30 padrão em um contexto de condução: real_... com câmera e syn_... _n1...n20 com sufixos de deslocamento (shiftd, shiftl, shiftr, shiftu). A legenda está sempre na posição correta em relação à base.
trainzone_002 — normal BR1: real_... com três camadas e opções de rotação (rotl, rotr) e deslocamento.
trainzone_002 — normal BR1: real_... com três camadas e opções de rotação (rotl, rotr) e deslocamento.

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:

1
ZONA-PAR: Imagens por zonasCapturar. As imagens normais de cada zona, com 20 opções de variação de captura (deslocamento da janela de 0–2 px, brilho, ruído), são classificadas nas classes zone_NNN.
2
ZONA-PAR: anomalias de zonasCriar. As configurações padrão já incluem ambos os tipos de deslocamento: deslocamento da zona de 5 a 12 px em todas as direções e rotação da área do elemento (70% da zona, círculo) de 15 a 180°. Os arquivos são movidos para as classes zone_NNN_anomaly.

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

ANTES: imagem de uma placa funcional. Ambas as áreas são verdes – "normal".
ANTES: imagem de uma placa funcional. Ambas as áreas são verdes – "normal".
DEPOIS: as mesmas áreas recebem dados sintéticos dos arquivos de anomalias – C30 deslocado para a direita e para baixo, BR1 inclinado. Ambas as áreas são vermelhas – "anomalia". A placa também aparecerá em um defeito real na linha.
DEPOIS: as mesmas áreas recebem dados sintéticos dos arquivos de anomalias – C30 deslocado para a direita e para baixo, BR1 inclinado. Ambas as áreas são vermelhas – "anomalia". A placa também aparecerá em um defeito real na linha.
Em grande, área 1 (C30): à esquerda, normal da câmera, à direita, dados sintéticos – o componente e a base deslocados para baixo e para a direita, a borda preenchida pelos vizinhos da imagem.
Em grande, área 1 (C30): à esquerda, normal da câmera, à direita, dados sintéticos – o componente e a base deslocados para baixo e para a direita, a borda preenchida pelos vizinhos da imagem.
Em grande, área 2 (BR1): à direita, a área do componente é girada em 180° – as áreas estão no lugar, a carcaça está voltada para o lado errado.
Em grande, área 2 (BR1): à direita, a área do componente é girada em 180° – as áreas estão no lugar, a carcaça está voltada para o lado errado.

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.

«train\zone_001_anomaly» – defeito C30. Em cada cópia de t000, t001… existem nove arquivos: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur – a área foi deslocada em 5–12 px em oito direções (d = para baixo, u = para cima, l = para a esquerda, r = para a direita), rotate1 – a área do capacitor foi rotacionada.
«train\zone_001_anomaly» – defeito C30. Em cada cópia de t000, t001… existem nove arquivos: combo1_d, _dl, _dr, _l, _r, _u, _ul, _ur – a área foi deslocada em 5–12 px em oito direções (d = para baixo, u = para cima, l = para a esquerda, r = para a direita), rotate1 – a área do capacitor foi rotacionada.
train\zone_002_anomaly — defeito BR1: O corpo do componente se deslocou das posições originais em todas as oito direções e está orientado em um ângulo aleatório. A textura da placa e das posições de contato são autênticas.
train\zone_002_anomaly — defeito BR1: O corpo do componente se deslocou das posições originais em todas as oito direções e está orientado em um ângulo aleatório. A textura da placa e das posições de contato são autênticas.
Como identificar os nomes dos arquivos. syn_<data>_t003_combo1_dr.jpg – cópia 3, arquivo geral, deslocamento para baixo e para a direita (d = baixo, r = direita, u = cima, l = esquerda); …_rotate1.jpg – rotação da área do elemento; …_scale1_dn/_up – ajuste para aumentar ou diminuir o tamanho; …_tl/_c/_br – localização da área (ângulo, centro). O nome indica sempre qual é o defeito específico no arquivo, e o excesso é removido através do botão "Remover dados sintéticos (treino + validação)" na janela de áreas.

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 figurasO que define:
Tamanho: de … a, % da área / pxTamanho 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.
PreenchimentoSólido / contorno / misto (o contorno também é "gordo").
Espessura da linha, pxLinha / arranhadura e cruz. 0 — automático (gordo). Para marcar componentes, não use menos de 3 px.
Onde está o defeitoNo 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 slotsCinco 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.

A janela "ZONA-PAR: anomalias de zona": cópia do defeito; grupo dobrável de figuras desenhadas com parâmetros, localização e paleta; deslocamento, rotação e escala da zona com a forma da área e escala ±%; subzonas; iluminação sobre o defeito; capturas de tempo e val.
A janela "ZONA-PAR: anomalias de zona": cópia do defeito; grupo dobrável de figuras desenhadas com parâmetros, localização e paleta; deslocamento, rotação e escala da zona com a forma da área e escala ±%; subzonas; iluminação sobre o defeito; capturas de tempo e val. A janela é estendida com o mouse.
ConfiguraçãoO que faz
Cópia do defeitoUm ú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 cortadaGrupo 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 · formaPrincipal 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, ° · formaA á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 / aumentoA á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çãoSe 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-áreasA á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 defeitoAtivado e igual a "normal": o defeito deve ser diferente em termos de geometria, e não de iluminação.
Imagens por tempo / em valCada cópia de uma nova imagem da câmera (800 ms), 20% em val, o primeiro arquivo da classe em val sempre.
1
Clique em "ZONA-PAR: anomalias de zonas". O resultado é predefinido: "Zonas: 2 · em cópias: 2 arquivos · por zona: 20 · total ≈ 40 (+ parte em val)". Com a opção "em todas as direções", o deslocamento dos arquivos para cópias resulta em nove, como nos diretórios acima.
2
Selecione o perfil: Padrão (deslocamento da zona de 5–12 px + rotação da área, das figuras e subzonas, com elementos dobrados e desativados), Deslocamento dos elementos (apenas deslocamento de 4–12 px, com a mesma aparência do normal) ou Cor e tinta (figuras, "elemento desaparecido", cores da paleta, sem deslocamento). A janela armazena as alterações imediatamente, a cada clique.
3
Clique em "Criar". As classes "zone_NNN_anomaly" aparecerão na árvore do modelo. Para adicionar defeitos reais da linha às mesmas classes, use a opção ROI → adicionar à classe.
Importante. O limite inferior do deslocamento sintético (5 px) está imediatamente acima do intervalo normal (0–2 px). Não aumente o intervalo normal para 5 px nem restrinja a anomalia para 2 px: a fronteira se tornará indistinta e o modelo oscilará em placas reais. Se precisar de uma sensibilidade diferente, altere ambos os limites de forma consistente e recalcule-os em milímetros (seção 1.3).

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âmetroO que significaComo escolher
Epochsquantas vezes o modelo irá analisar todo o conjunto50 para a placa padrão; 100-150, se houver muitas classes anormais
Batch Sizequantas imagens por passo64; se a memória de vídeo for insuficiente, diminua
Image Sizepara qual tamanho são redimensionadas as imagens, em múltiplos de 32tamanho aproximado da zona: 128 para a zona de 108-137 px; 192-256 para zonas de 256 px, como no exemplo
Model Sizen / s / m / l / xs — ótimo para centenas de pares de classes; n — falta de capacidade, m e acima — mais lento
Deviceem que treinar0 (GPU) com placa de vídeo NVIDIA; sem CUDA, o programa automaticamente irá usar o CPU
Workersnúmero de threads para preparação de dados12 (padrão para processador multi-core)
1
Antes de iniciar, o programa verifica o conjunto: sugere remover classes vazias, pastas desnecessárias no val, e preenche o val onde estiver vazio. Na primeira execução, é instalada o ambiente de treinamento (Python 3, pacotes ultralytics, onnx, onnxslim, onnxruntime) – é necessário acesso à internet e alguns minutos.
2
Para o modelo ZONA-PAR, o treinamento não utiliza erasing, flip, crop e randaugment: essas técnicas de aumento são incompatíveis com as classes de anomalias (uma zona invertida já é outra zona). A mensagem correspondente é exibida na console.
3
O botão fica vermelho PARE O MODELO DE IA, e o indicador à direita mostra a porcentagem por épocas. O progresso do treinamento pode ser visualizado no console. Para duas zonas e 100 épocas em uma placa de vídeo, isso leva cerca de 10-15 minutos.
4
Após a conclusão, o programa exporta best.onnx para a raiz da pasta do modelo e atribui imediatamente o arquivo para inspeção. O botão "Exportar para ONNX" repete a exportação sem a necessidade de re-treinamento.
Conselho. Após a adição de um defeito ou de novas planilhas, o treinamento adicional é realizado pelo mesmo botão: o conjunto de dados é complementado e o modelo de IA é treinado best.onnx Está sendo reescrito. Por favor, não toque na grade.

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.

Na aba "Inspeção", no contexto da operação: modelo model_4\best.onnx, linha "Classes de inspeção: PLACA - zona 2, classes de anomalias 2. A zona N é resolvida dentro do par zone_N / zone_N_anomaly, com um limite de 50 %,", com uma linha de produção ativa com um período de 2000 ms e um indicador "normal · 112 pontos", em
Na aba "Inspeção", na operação: modelo model_4\best.onnx, linha "Classes de inspeção: PLACA - zona 2, classes de anomalias 2. A zona N é resolvida dentro do par zone_N / zone_N_anomaly, com um limite de 50 %,", uma linha de produção ativa com um período de 2000 ms e um indicador "normal · 112 pontos", com uma fonte de velocidade e as caixas de seleção "GPU" e "Análise em tons". Na imagem, ambas as zonas são verdes - "normal".

5.1. Definir o modelo e verificar as zonas

1
Se o modelo não estiver selecionado, clique em "SELECIONAR MODELO .ONNX PARA INSPEÇÃO" e especifique best.onnx na pasta do modelo. A linha "Classes de inspeção" mostrará todas as classes; os nomes são extraídos diretamente do arquivo ONNX, garantindo que os números das saídas correspondam aos nomes.
2
Clique em ZONA-PAR: zonas ↔ modelo (verificar limite). A janela exibe: "Número de zonas na grade: 2 / Número de classes zone_NNN no modelo: 2, número de classes de anomalias: 2 / Cada zona da grade possui sua própria classe ✔". Os avisos "Zonas sem classe no modelo" ou "Classes sem zona na grade" indicam que a grade foi modificada após o treinamento.
3
DESATIVAR IA desativa temporariamente a análise nesta câmera, sem apagar as configurações (cada câmera possui sua própria configuração); REMOVER MODELO remove o modelo e os slots completamente.

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.

Dica. Defina um limite em um conjunto de 10 placas conhecidamente funcionando: aumente o valor até que todas as áreas permaneçam verdes, e então verifique em placas com defeitos conhecidos. O programa irá exibir a seguinte mensagem na linha de comando a cada 10 segundos: "[ÁREA-PAR] … normal N, anomalia M, limite 0,50; valores mais baixos: z17:0,31 …" – isso indica quais áreas estão mais próximas do limite.

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étodoComo ativarQuando aplicar
Por câmeraCaixa de seleção "Por câmera"Controle contínuo; velocidade limitada pelo controle deslizante "Análises por segundo" na aba "Câmera"
Por cronômetroCaixa de seleção "Por cronômetro" e intervalo, msControle periódico, por exemplo, uma vez por segundo
Por gatilhoSelecionar 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)
GPUCaixa de seleção "GPU"Ativada por padrão; alternar reinicia o modelo
Análise em tons de cinzaCaixa 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".

1
Clique com o botão esquerdo na área da placa da câmera: a área ficará amarela e será removida da análise. Um clique adicional a reativará.
2
Grupo de zonas: pressione e arraste a caixa sobre a placa. Todas as zonas que entram na caixa são desativadas; se já estiverem amarelas, a caixa as reativa. Também funciona ao aumentar o zoom.
3
A lista de zonas amarelas é armazenada no banco de dados por câmera e modelo, e persiste após a reinicialização do programa e a reconexão da câmera. A mensagem "\[Zonas] … zonas desativadas: N" é exibida na console.

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çãoComportamento 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".
DesativadoA 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.
Observação. Não é necessário desativar os "rejeitadores" nas áreas amarelas: quando estiverem ativados, eles simplesmente não produzem resultados, e após serem desativados, a área voltará a funcionar imediatamente.

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.

Janela de GATILHOS para HIKROBOT (6 pinos): sensor PNP, sinal no pino 2, pino comum 5, diagrama de pinagem.
Janela de GATILHOS para HIKROBOT (6 pinos): sensor PNP, sinal no pino 2, pino comum 5, diagrama de pinagem.
O mesmo para SICK picoCam (6 pinos): sinal no pino 4 (Trigger +), pino comum 3 (Trigger −).
O mesmo para SICK picoCam (6 pinos): sinal no pino 4 (Trigger +), pino comum 3 (Trigger −).
1
Clique em "ATIVADOR" acima do vídeo. Selecione "Tipo de sensor" (lista: sensor óptico BAOLSEN QAF-Q2P, 4 fios; qualquer sensor com saída PNP ou NPN pode ser conectado da mesma forma), "Conector da câmera" (HIKROBOT de 6 pinos ou SICK picoCam de 6 pinos), "Câmera (qual específica)" e "Tipo de saída do sensor": PNP - a saída comuta o "positivo" (caso comum), NPN - comuta o "negativo", requer um resistor de 1-4,7 kΩ em +24 V.
2
Monte o diagrama conforme a figura: alimentação do sensor e da câmera de um bloco de 24 V, fio de sinal do sensor na entrada da câmera, fio de retorno da entrada para 0 V. O fio branco do sensor é a segunda saída, que não é conectada.
3
Clique em "Criar conexão". A conexão é armazenada no banco de dados; conexões idênticas não são duplicadas. O botão "Remover conexão" remove a conexão selecionada.
4
Na aba "Inspeção", selecione a opção correspondente na lista "Gatilho" e o tipo: "Análise + na entrada" (quadro ao detectar 24V) ou "Análise - na entrada". O programa coloca a câmera no modo de gatilho: no HIKROBOT, TriggerMode = On, TriggerSource = Line0, enquanto no SICK, o sistema interrompe a captura, define o modo e reinicia. O círculo ao lado indica o nível de entrada.

Diagrama de pinagem

PinoHIKROBOT MV-CS, 6 pinSICK picoCam, 6 pin
1DC_PWR – Alimentação da câmera: 9–24 VGND – terra de alimentação da câmera
2OPTO_IN — Entrada da Linha 0 (+), Sinal de disparoVCC – alimentação da câmera (12–24 V)
3GPIO – Linha 2, entrada ou saídaDisparo — Entrada do sensor, optoacoplador (−)
4OPTO_OUT – Saída da Linha 1 (+)Entrada do trigger + — terminal de entrada do optoacoplador (+)
5OPTO_GND — um optoacoplador geral, com fio de retorno.Flash + – saída discreta (+)
6GND – terra de alimentação da câmeraFlash – – saída discreta (-)
Importante. Os terminais "pai" na câmera e "mãe" no cabo são espelhados. O único ponto de referência é a chave (uma abertura na carcaça); na SICK, ela está localizada entre os contatos 1 e 6, e, ao espelhar, vai para a direita. Consulte os contatos do lado que você está segurando. Um erro na conexão significa que a alimentação e a saída estão sobrecarregadas: elas estão próximas umas das outras. Confirme a pinagem da SICK através de um teste.
Dica. Utilize a entrada "+", em vez da saída: a variação do tempo do quadro na entrada foi de 4,2 ms, enquanto na saída foi de 40,7 ms. Verificação do sensor: o sinal entre o fio marrom e o fio azul deve ser sempre de 24 V, que é a alimentação; observe o sinal entre o fio preto e o fio azul, onde os dois sinais se sobrepõem. Se o sinal não mudar, coloque um resistor de 2–10 kΩ entre o fio preto e o fio marrom; 24↔0 V neste caso indica um transistor NPN.

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.

HIKROBOT – saída na Linha 1 (óptico) nos pinos 4 (+) e 5 (−), corrente máxima de 25 mA.
HIKROBOT – saída na Linha 1 (óptico) nos pinos 4 (+) e 5 (−), corrente máxima de 25 mA.
SICK picoCam – pino de flash (óptico) nos pinos 5 (+) e 6 (−), 150 mA contínuo.
SICK picoCam – pino de flash (óptico) nos pinos 5 (+) e 6 (−), 150 mA contínuo.
  • 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".

Janela OUTPUT: árvores de zonas à esquerda, lista de regras da zona, grupo "Regra" e aba TCP com configurações.
Janela OUTPUT: árvores de zonas à esquerda, lista de regras da zona, grupo "Regra" e aba TCP com configurações.
1
Selecione a zona na árvore (o título à direita mostrará o caminho Câmera USB HD → model_5 → 1 → Zona 1 (T1.C1)). Clique em + Novo TCP, + Novo discreto ou + Novo áudio.
2
No grupo "Regra", selecione "Classe de IA" que deve ser ativada (para ZONA-PAR, é "anomalia" ou "normal"; "*" - qualquer classe), marque a caixa "Ativado", e, se necessário, use a opção "Repetir até que a classe permaneça" com o intervalo de repetição e "Confirmação de mudança de classe, ms" (o valor padrão é 1500: a nova classe deve permanecer ativa por esse período contínuo para que a mudança seja reconhecida).
3
Preencha a seção TCP (seção 7.3), Saída da câmera (seção 7.4) ou Áudio (seção 7.5).
4
Verifique a sequência sem esperar por falhas: Verificar esta regra (envia um pacote ou dá um sinal de saída), Simular o funcionamento da zona (executa todas as regras da zona através de uma fila de combate com anti-ruído e log).
5
Clique em "Criar para 1 zona". Se várias zonas estiverem marcadas, o botão muda para "Criar para N zonas"; no nó do modelo, será "Salvar para toda a modelo", e no nó da classe, será "Salvar para a classe". Na parte inferior: "Ativar / Desativar / Excluir nas zonas selecionadas".

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.

CampoAtribuição
Tempo limite de conexão, ms1000 por padrão, 100...10000.
Tempo limite de envio da regra, msPausa mínima entre os envios automáticos da regra; 0 – sem pausa. Mesmo a troca de classe aguarda essa pausa.
ComandoA 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ópriosTexto genérico, usado no lugar de `{data}`.
DadosModelo 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çãoSignificadoSubstituiçãoSignificado
{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

Página "Saída da câmera": método, linha, nível, pulso, botões de verificação manual. As câmeras USB não possuem saídas discretas – apenas TCP está disponível.
Página "Saída da câmera": método, linha, nível, pulso, botões de verificação manual. As câmeras USB não possuem saídas discretas – apenas TCP está disponível.
CampoAtribuição
SaídaMé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.
LinhaPino Flash / GPIO1…6 (SICK); Linha1 (saída), Linha2 (bidirecional) (HIKROBOT); Linha0 – apenas entrada.
Níveltrue / 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.

Múltiplas zonas em um único pino. Se um pino estiver conectado a várias zonas, a saída é considerada como uma lógica "E": HIGH somente quando todas as zonas solicitam HIGH, mas se alguma zona solicitar LOW, a saída será LOW. Isso é representado na documentação por uma linha como "zonas na saída N, solicitam LOW k → HIGH/LOW". Assim, uma única saída é formada por centenas de zonas de uma placa.
Importante. No SICK, o pino "flash" é o mesmo para saída digital e para iluminação: se for conectado uma lâmpada de pulso, utilize o GPIO. As regras anti-ruído são: 500 ms por padrão (mínimo de 200), sem registros de eventos.

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.

1
Selecione a área na árvore e clique em "+ Novo Som". No grupo "Regra", especifique a classe (por exemplo, "anomalia") e marque a caixa "Ativado".
2
Na aba "Som", selecione um sinal na lista. Existem dez sinais pré-definidos: curto, duplo, triplo, tom baixo e tom alto, ascendente e descendente, alarme-sirene, bipe longo e sino. O botão "Reproduzir" permite ouvir o sinal selecionado.
3
Seu próprio som: clique em "Carregar o seu arquivo" e selecione WAV, MP3 ou WMA. O arquivo é copiado para a pasta "sons\custom" ao lado do programa (o pendrive pode ser removido) e aparece na lista com a etiqueta "próprio". O botão "Pasta de sons" abre esta pasta: os arquivos podem ser colocados diretamente lá.
4
Defina o Tempo de Pausa entre os Sons, ms entre 1000 e 10000. Durante este período, o som não será repetido após o sinal, mesmo que a classe da zona mude novamente: com 10000 ms, o operador ouvirá no máximo um sinal a cada 10 segundos.
5
Clique em "Criar para 1 zona" ou selecione as zonas com as caixas de seleção e crie a regra para todas de uma vez. Para cada zona, defina um som diferente: repita o processo com outro sinal para outra zona.
6
A caixa de seleção "Zonas amarelas (desativadas por clique) estão silenciosas" está ativada por padrão: as zonas desativadas ao clicar na aba "Inspeção" (seção 5.5) não emitem som e não permitem a transmissão TCP nem a saída da câmera em toda a modelagem.
FuncionamentoComo 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 simultaneamenteCada área emite seu próprio som; os sinais de diferentes áreas não se cancelam, apenas o sinal de uma área específica é repetido.
RegistroCada 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çãoVerificar 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.
Dica. Utilize um alarme ou sinal duplo nas áreas mais importantes (conectores, componentes de energia), e sinais curtos nas demais. Assim, um único sinal indicará se é necessário correr imediatamente para a linha. A configuração do sinal para toda a série de modelos é feita selecionando o nó ou a série no diagrama: um sinal para qualquer defeito.

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": onde os dados são armazenados, cópia e restauração do banco de dados em um único arquivo.
Página "Banco de Dados": onde os dados são armazenados, cópia e restauração do banco de dados em um único arquivo.

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.

Para a ZONA-PAR, geralmente não são necessários slots. Um modelo já cobre toda a placa: cada zona possui um par de classes, portanto, a necessidade de "combinar classes semelhantes", que antes motivava a criação de vários modelos, não se aplica aqui. Um modelo típico da ZONA-PAR ocupa uma placa, os slots estão vazios.

Quando a inspeção multi-modelo é aplicada:

SituaçãoComo configurar
Múltiplas tarefas em um único quadroO 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 fixaComprimidos, 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 imagemDuas 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çãoO 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

ComponenteRequisito
Sistema OperacionalWindows 10/11 x64.
Placa de vídeo para inspeçãoNVIDIA 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.
TreinamentoPython 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 SICKDriver IDS uEye; a câmera deve ser visível no IDS Camera Manager.
Câmeras HIKROBOTSDK 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

1
CÂMERAS → «+ Adicionar câmeras» → marcar suas câmeras → Adicionar.
2
Página Câmera: resolução → «Configuração automática para IA (por quadro)» (ou «Definir parâmetros» via USB) → «Salvar parâmetros» → «Salvar como…» conjunto de configurações. Opcionalmente, «Treinar em tons de cinza».
3
Modelo de IA → «Criar novo modelo de IA» → nome.
4
«ROI → adicionar à classe (modelo de treinamento)» → quadro ao redor de cada componente → tamanho da área (por exemplo, 256) → Enter. Para centenas de componentes idênticos, quadro em toda a placa e grade.
5
Caixa de seleção «Fixar zonas ao produto por marcadores» → «Fixar referência» → desenhar na imagem a área da placa com os componentes (não a área de inspeção) → «✔ Procurar zonas na área selecionada».
6
«ZONA-PAR: captura por zonas» → «Capturar». Repetir em 3-5 placas corretas. Desativar as zonas desnecessárias com um clique na imagem (vermelhas).
7
«ZONA-PAR: anomalias de zonas» → «Criar»: deslocamento e rotação do elemento juntamente com a base já estão incluídos. Se necessário, as placas de solda na "referência com zonas".
8
TREINAR MODELO DE INTELIGÊNCIA ARTIFICIAL (Tamanho da imagem: 128, s, 50 épocas) → aguardar 100% → best.onnx definido automaticamente.
9
Inspeção → «ZONA-PAR: zonas ↔ modelo» → verificar a correspondência → limiar. "Através da câmara" ou selecionar o gatilho. Para uma placa móvel, utilize "Esteira Viva".
10
SAÍDA → selecionar zonas → regra para a classe de anomalia (som, TCP ou saída da câmara) → «Simular o disparo da zona» → «Criar em N zonas».

Se algo não estiver correto:

SintomaO que verificar
A câmara não aparece na listaAlimentaçã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 erradasCâ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 vermelhaGigE: 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 perdidareferê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 placaa 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çasa 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_CLASSa 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 boaoutro 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 elementorecalcular 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 lentoDispositivo = 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 funcionaO 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á silenciosao 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 tocaA 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.