@libs-scripts-mep/inv-img-tool
v3.0.1
Published
Ferramenta de visão computacional com implementações dedicadas à validação de displays em testes automatizados de linha de produção.
Downloads
25
Readme
InvImgTool
Ferramenta de visão computacional com implementações dedicadas à validação de displays em testes automatizados de linha de produção.
- InvImgTool
- Instalando
- Desinstalando
- Setup de Ambiente
- Overview do Sistema
- Modos de Teste
Instalando
Abra o terminal, e na pasta do script, execute:
npm i @libs-scripts-mep/inv-img-tool
Desinstalando
Abra o terminal, e na pasta do script, execute:
npm uninstall @libs-scripts-mep/inv-img-tool
Setup de Ambiente
⚠️ Pré-Requisitos:
- Python >=
v3.9.9
download - OpenCV Python
4.6.0.66
, no terminal digite o comando:pip install opencv-python==4.6.0.66
- VScode
- Qualquer WebCam. Recomendação: Logitech 930e
VSCode
Para utilizar o VS Code na execução de arquivos python você deve inicialmente abrir um arquivo python, e selecionar seu interpretador no canto inferior direito:
Execução e Debug
É recomendado utilizar o arquivo launch.json contido na pasta .vscode na pasta raíz do seu workspace.
Dessa forma, quando a for executado o arquivo python desejado, serão passados automaticamente os argumentos configurados conforme .json.
Confira no trecho de código a seguir um exemplo de configuração:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Arquivo Atual",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false,
"args": [
"--conf= {}",
"--ref=${workspaceFolder}\\reference",
//
//modos:
"--modo=CompPadraoCorArea",
//ou:
// "--modo=CompPadraoGrafico",
//
//Debug:
"--debugMode=True"
//ou:
// "--debugMode=False"
]
}
]
}
Após as devidas configurações, para executar um arquivo propriamente dito, pressione a tecla F5
.
.gitignore
É uma boa prática não subir para o repositório arquivos temporários ou de setup de ambiente. Por esse motivo foi criado o .gitignore com o seguinte filtro:
//.gitignore
__pycache__/
.vscode/
reference/
validated/
Overview do Sistema
Mapa de Argumentos
| Arg | Descrição | | ----------------------- | -------------------------------------------------------------------------------------------------------------------- | | ref | Caminho onde serão salvas as imagens de referência | | conf | Objeto de configuração serializado | | modo | Modo que será utilizado para gerar as imagens de referência | | confName | Nome do arquivo de configuração | | debugMode | Habilita o modo de depuração | | imgRef | Imagem referencia de iluminação gerada no RefGenerator.py, será utilizada apenas para encontrar o match com a stream | | timeOut | Timeout total | | paramEditCam | Parametro de filtro da camera que será alterado durante a execução | | stepValue | Intervalo em que será incrementado ou decrementado o valor do parametro escolhido da camera | | methodTemplate | Metodo que será utilizado para realizar o matchTemplate. Ex: TM_CCOEFF_NORMED | | targetMediaLighting | Valor alvo de iluminação | | toleranciaMediaLighting | Tolerancia para o valor de targetMediaLighting |
Relação Argumentos Por Script
| Arquivos | Arg |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| RefGenerator.py | ref=
mode=
|
| TesteDisplay.py | ref=
conf=
debugMode=
|
| JsonSerializer.py | ref=
confName=
|
| AjusteFiltrosCamera.py | conf=
imgRef=
timeOut=
debugMode=
stepValue=
paramEditCam=
methodTemplate=
targetMediaLighting=
toleranciaMediaLighting=
|
⚠️ Argumentos não mencionados devem ser comentados no launch.json
Geração de Referências
O script RefGenerator.py é responsável por gerar as imagens de referência e arquivos .json de configuração.
JsonSerializer.py [Debug Bônus]
Ferramenta utlizada para serializar o objeto gerado pelo script RefGenerator.py.
Configure seu .json de forma que aponte para um arquivo de configuração existente:
{
"configurations": [
{
"args": [
"--ref=${workspaceFolder}\\reference",
"--confName=MOD_CPCA_1.json",
]
}
]
}
A execução do script resultará em:
Copie o Output, e cole em seu launch.json no valor do argumento --conf=
Execução de um Modo de Teste
Modos de Teste
CompPadraoCorArea
O que faz?
Este arquivo python é um dos modos criados para validação de cor em um determinado local em uma imagem.
Gerando Referências
Dentro do arquivo RefGenerator.py no VS Code pressione F5
para executar o arquivo, logo ao iniciar o programa duas janelas serão abertas para visualização:
Janela de Trackbar
Nesta janela você deve fazer as configurações dos filtros de acordo com o que se aplica melhor para sua validação:
Imagem da Câmera
Nesta outra janela podemos visualizar a imagem da câmera em tempo real:
Padrão Gerado
Depois de realizado as configurações dos filtros na janela de trackbar, você deve clicar em 4 pontos na janela de imagem da câmera na sequência a seguir:
Esta janela nos retorna um recorte dos 4 pontos selecionados anteriormente, e é a imagem que será salva como referência.
Indicando Região de Interesse
Através da janela de trackbar é possível movimentar e aumentar o seletor de região.
Na janela do padrão gerado podemos observar o ponto aonde estamos verificando a cor, também podemos verificar o nível de BGR do local pelo terminal do VS Code.
Salvando Referência
Depois de gerado o padrão, pressione a tecla s
do seu teclado para salvar a imagem de referencia.
Para sair do software pressione ESC
, q
ou feche a janela de Ajustes clicando no X
.
CompPadraoGrafico
O que faz?
Este arquivo python é um dos modos criados para validação de segmentos de display.
Gerando Referências
Dentro do arquivo RefGenerator.py no VS Code pressione F5
para executar o arquivo, logo ao iniciar o programa três janelas serão abertas para visualização:
Janela de Trackbar
Nesta janela você deve fazer as configurações dos filtros de acordo com o que se aplica melhor para sua validação:
Imagem da Câmera
Nesta outra janela podemos visualizar a imagem da câmera em tempo real:
Imagem da Câmera Binarizada
Nesta outra janela podemos visualizar a imagem da câmera em tempo real binarizada:
Padrão Gerado
Depois de realizado as configurações dos filtros na janela de trackbar, você deve clicar em 4 pontos na janela de imagem da câmera na sequência a seguir:
Esta janela nos retorna um recorte dos 4 pontos selecionados anteriormente, e é a imagem que será salva como referência.
⚠️ Sempre verifique sua imagem binarizada, pois será utilizada para validar o display. Certifique-se que todos os segmentos que deseja validar estejam aparecendo:
Salvando Referência
Depois de gerado o padrão, pressione a tecla s
do seu teclado para salvar a imagem de referencia.
Para sair do software pressione ESC
, q
ou feche janela de Ajustes clicando no X
.
AjusteFiltrosCamera
O que faz?
Este arquivo python é um script auxiliar para resolver o problema de situações em que não temos um controle da iluminação ambiente.
Como funciona?
Através de uma imagem de referencia gerada durante a execução do RefGenerator, o script calcula o valor de iluminação utilizando um sistema de cores chamado HSV, que possui um dos parametros o nível de iluminação de uma imagem, desta forma conseguimos ir modificando parametros da stream para conseguir novamente a iluminação ambiente em que foi gerado os padrões originalmente. Após o script encontrar o nível de iluminação esperado ele nos retorna todos os novos valores de filtros da camera.
Gerando Referências
Durante a execução do arquivo CompPadraoGrafico.py selecione os pontos de interesse que deseja realizar a referencia de iluminação e pressione a tecla i
para salvar a referencia como RefLighting.png, após realizar a referencia de iluminação um novo parametros será adicionado ao seu .json de configuração, o parametro 'LightingRefImage'.
Executando o Arquivo
Para execução desse arquivo python apenas será necessário passar todos os valores corretamente conforme descrito no Relação Argumentos Por Script que o script será executado normalmente.