Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

OpenCV – Python, detecção de luz vermelha no PLCnext


O Open CV é uma das bibliotecas de Visão Computacional mais usadas por aí. O CV aberto pode ser usado para reconhecimento de rosto, rastreamento de objetos, digitalização de códigos de barras e mais importante para este blog, detectando se uma luz está acesa ou apagada. Neste blog vou te ajudar a começar com Open CV e Python no PLCnext e apresentar uma pequena amostra de código sobre como pré-processar suas imagens para detecção de luz vermelha. Este blog é uma forma alternativa de usar o Open-CV em um controlador PLCnext explicado em posts anteriores do blog.

Pré-requisitos


Hoje estou usando o AXC F 2152 Controller mas é possível seguir o mesmo procedimento no AXC F 1152 e um procedimento bem similar no AXC F 3152 e RFC 4072s. O único pré-requisito para hoje é ter o Balena-Engine instalado no controlador que você está usando. Os passos para uma instalação bem sucedida do Balena-Engine podem ser encontrados na página PLCnext Github. É aconselhável usar um cartão SD de 8 GB. Usaremos uma conexão SSH e WinSCP para acessar o controlador. O uso dessas ferramentas está fora do escopo deste blogpost. Você encontrará um bom guia sobre como usá-los neste fórum ou com uma rápida pesquisa no Google.

Baixe a imagem OpenCV-Python


Inicie uma sessão SSH para o controlador e efetue login como usuário root novamente após a instalação do balena-engine.
Execute o seguinte comando e pegue uma xícara de café, levará um tempo até que a imagem seja baixada no controlador.

balena-engine pull pxcbe/opencv-python

Validar a instalação


Nesta etapa vamos validar a imagem e obter a versão Open-CV instalada na imagem. Execute o próximo comando.
Se tudo correr bem, o contêiner imprimirá a versão Open-CV e o contêiner será removido.
No momento da escrita, a versão instalada é:4.1.0
balena-engine run -it --rm \
       pxcbe/opencv-python \
       python -c "import cv2; print(cv2.__version__)"


Configure o diretório de trabalho


Abra o WinSCP e crie uma pasta opencv no diretório /opt/plcnext. Seu caminho deve ser /opt/plcnext/opencv.
Baixe o conteúdo deste repositório e copie e cole-o dentro do diretório que acabamos de criar.

Você pode alterar o .jpg com sua própria imagem e modificar o app.py para atender às suas necessidades.

Teste o script


Agora vamos testar o script que você baixou da página do GitHub e executar o container de forma interativa. Execute o próximo comando como root:

balena-engine run -it --rm -v /opt/plcnext/opencv/:/opencv_app pxcbe/opencv-python /bin/bash


Agora você está em uma sessão de shell dentro do contêiner, chame o diretório opencv_app com

cd opencv_app

E inicie o script com:

python app.py

Você deve ver alguma saída no shell e 3 novas imagens na pasta /opt/plcnext/opencv. Você pode ter que atualizar sua pasta winSCP primeiro para poder vê-los!

Então, o que fizemos?


Antes de começarmos a descobrir se nossa luz está acesa ou apagada, precisamos fazer alguns pré-processamentos na imagem inicial, neste caso “open_cv.jpg”. A primeira coisa que você vai fazer é redimensionar a imagem para preservar algum poder computacional. Isso é feito na linha 12 (do app.py) arquivo com o cv2.resize comando. A saída parece igual ao original, mas é apenas 50% da imagem inicial.

O próximo passo é a escala de cinza da imagem. Colocamos em tons de cinza a imagem com a função encontrada na linha 17, o resultado pode ser visto na imagem abaixo.

O último passo em nosso pipeline de prepossessing é definir o limite da imagem, cada pixel abaixo de um determinado valor será preto, tudo acima do mesmo valor será branco. Existem algumas maneiras diferentes de delimitar uma imagem, algumas darão um resultado muito melhor. Mas para hoje a linha 21 cv2.threshold será suficiente. O resultado você confere na imagem a seguir. Agora temos um tamanho de imagem pequeno com apenas pixels preto e branco. Um método simples para detectar se uma luz está acesa de uma câmera estacionária seria definir uma região de interesse (ROI) e procurar pixels brancos. No entanto, algoritmos mais complicados fornecerão um resultado melhor. Eu vinculei alguns outros blogs que tratam desse tópico em leituras adicionais.

Outras leituras

https://docs.opencv.org/master/d7/d4d/tutorial_py_thresholding.htmlhttps://docs.opencv.org/master/dd/d43/tutorial_py_video_display.html
https://medium.com/@kenan.r.alkiek/https-medium-com-kenan-r-alkiek-traffic-light-recognition-505d6ab913b1

Por favor, aceite cookies de marketing para assistir a este vídeo.

Por favor, aceite cookies de marketing para assistir a este vídeo.

Ainda está um pouco inseguro sobre contêineres?
Você pode achar esses blogs interessantes:
https://www.plcnext-community.net/en/hn-makers-blog/481-node-red-and-getting-started-with-docker.htmlhttps://www.plcnext-community.net/en/ hn-makers-blog/482-node-red-with-docker-tips-and-best-practice.htmlhttps://www.docker.com/resources/what-container

Isenção de responsabilidade


Esta é uma forma de trabalhar com open-cv no PLCnext Controller. Neste blog você aprenderá como fazer a compilação cruzada do open-cv c++ para um destino PLCnext.
Por mais complicado que pareça, certamente tem seu valor para os sistemas de produção. Certifique-se de fazer sua devida diligência antes de decidir qual deve ser a melhor maneira para o seu projeto.

A imagem não receberá atualizações regulares. Se você estiver interessado em gastar ou manter este projeto, entre em contato com [email protected]

Eu propositadamente deixei de fora como você poderia executar o contêiner indefinidamente, pois isso seria muito diferente do seu aplicativo.
Por favor, encontre uma maneira adequada ou discuta isso com as pessoas envolvidas em seu projeto.

Créditos


O trabalho para o contêiner é fortemente baseado no trabalho de mohaseeb

Tecnologia industrial

  1. Operadores Python
  2. Reconhecimento facial em tempo real:um projeto de ponta a ponta
  3. Rastreamento automático de objetos de visão
  4. A combinação de chips eletrônicos e fotônicos permite a detecção de luz quântica super-rápida
  5. Acessórios de LED – Acessórios de faixa de luz de LED
  6. 24 Unidade 7:Mastercam
  7. Painel PLCnext Tableau
  8. Relatórios PLCnext Power BI
  9. PLCnext Grafana Dashboards
  10. Aplicação Java no PLCnext Control