산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

OpenCV – Python, PLCnext에서 Red Light 감지

Open CV는 가장 많이 사용되는 Computer Vision 라이브러리 중 하나입니다. Open CV는 얼굴 인식, 물체 추적, 바코드 스캔 등에 사용할 수 있으며 이 블로그에서는 조명이 켜져 있는지 여부를 감지하는 데 더 중요합니다. 이 블로그에서는 PLCnext에서 Open CV 및 Python을 시작하는 데 도움이 되며 적색광 감지를 위해 이미지를 사전 처리하는 방법에 대한 작은 코드 샘플을 제공합니다. 이 블로그는 이전 블로그 게시물에서 설명한 PLCnext 컨트롤러에서 Open-CV를 사용하는 대체 방법입니다.

전제조건

오늘은 AXC F 2152 컨트롤러를 사용하고 있지만 AXC F 1152에서 동일한 절차를 따르고 AXC F 3152 및 RFC 4072에서 매우 유사한 절차를 따를 수 있습니다. 오늘의 유일한 전제 조건은 사용 중인 컨트롤러에 Balena-Engine을 설치하는 것입니다. Balena-Engine의 성공적인 설치 단계는 PLCnext Github 페이지에서 찾을 수 있습니다. 8GB SD 카드를 사용하는 것이 좋습니다. SSH 연결과 WinSCP를 사용하여 컨트롤러에 액세스합니다. 이러한 도구의 사용은 이 블로그 게시물의 범위를 벗어납니다. 이 포럼이나 빠른 Google 검색을 통해 사용 방법에 대한 좋은 가이드를 찾을 수 있습니다.

OpenCV-Python 이미지 다운로드

컨트롤러에 대한 SSH 세션을 시작하고 balena-engine 설치 후 루트 사용자로 다시 로그인합니다.
다음 명령을 실행하고 커피 한 잔을 드십시오. 이미지가 컨트롤러에 다운로드되기까지 시간이 걸립니다.

balena-engine pull pxcbe/opencv-python

설치 확인

이 단계에서는 이미지의 유효성을 검사하고 이미지에 설치된 Open-CV 버전을 가져옵니다. 다음 명령을 실행합니다.
모든 것이 잘되면 컨테이너는 Open-CV 버전을 인쇄하고 컨테이너는 자체적으로 제거됩니다.
작성된 버전은 4.1.0입니다.

balena-engine run -it --rm \
       pxcbe/opencv-python \
       python -c "import cv2; print(cv2.__version__)"


작업 디렉토리 설정

WinSCP를 열고 /opt/plcnext 디렉토리에 opencv 폴더를 만듭니다. 따라서 경로는 /opt/plcnext/opencv여야 합니다.
이 저장소의 내용을 다운로드하고 방금 만든 디렉토리에 복사하여 붙여넣습니다.

.jpg를 자신의 사진으로 변경하고 필요에 맞게 app.py를 수정할 수 있습니다.

스크립트 테스트

이제 GitHub 페이지에서 다운로드한 스크립트를 테스트하고 컨테이너를 대화식으로 실행합니다. 다음 명령을 루트로 실행:

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

이제 컨테이너 내부의 셸 세션에 있습니다.

를 사용하여 opencv_app 디렉토리를 호출합니다.

cd opencv_app

다음으로 스크립트를 시작하십시오:

python app.py

쉘에 출력이 표시되고 /opt/plcnext/opencv 폴더에 3개의 새 이미지가 표시되어야 합니다. 파일을 보려면 먼저 winSCP 폴더를 새로 고쳐야 할 수도 있습니다!

그래서 우리는 무엇을 했는가?

조명이 켜져 있는지 꺼져 있는지 알아보기 전에 이 경우 "open_cv.jpg"의 초기 이미지에 사전 설정을 해야 합니다. 가장 먼저 할 일은 계산 능력을 보존하기 위해 이미지의 크기를 조정하는 것입니다. 이것은 (app.py의) 행 12에서 수행됩니다. cv2.resize 파일 명령. 출력물은 원본과 동일하게 보이지만 초기 이미지의 50%에 불과합니다.

다음 단계는 이미지를 그레이스케일하는 것입니다. 17행에 있는 함수를 사용하여 이미지를 회색조로 처리합니다. 결과는 아래 이미지에서 볼 수 있습니다.

prepossessing 파이프라인의 마지막 단계는 이미지를 임계값으로 지정하는 것입니다. 특정 값 아래의 모든 픽셀은 검정색이 되고 동일한 값 이상의 모든 픽셀은 흰색이 됩니다. 이미지를 임계값으로 지정하는 몇 가지 다른 방법이 있으며 일부는 더 나은 결과를 제공합니다. 하지만 오늘 21행 cv2.threshold 충분할 것입니다. 결과는 다음 그림에서 확인할 수 있습니다. 이제 흑백 픽셀만 있는 작은 이미지 크기가 있습니다. 고정된 카메라에서 조명이 켜져 있는지 감지하는 간단한 방법은 관심 영역(ROI)을 정의하고 흰색 픽셀을 스캔하는 것입니다. 그러나 더 복잡한 알고리즘을 사용하면 더 나은 결과를 얻을 수 있습니다. 추가 자료에서 이 주제를 다루는 다른 블로그를 연결했습니다.

추가 자료

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

이 비디오를 보려면 마케팅 쿠키를 수락하십시오.

이 비디오를 보려면 마케팅 쿠키를 수락하십시오.

여전히 컨테이너에 대해 확신이 서지 않습니까?
다음 블로그가 흥미로울 수 있습니다.

https://www.plcnext-community.net/en/hn-maker-blog/481-node-red-and-getting-started-with-docker.htmlhttps://www.plcnext-community.net/en/ hn-maker-blog/482-node-red-with-docker-tips-and-best-practice.htmlhttps://www.docker.com/resources/what-container

면책 조항

이것은 PLCnext Controller에서 open-cv로 작업하는 한 가지 방법입니다. 이 블로그에서는 PLCnext 타겟에 대해 open-cv C++를 크로스 컴파일하는 방법을 배우게 됩니다.
더 복잡해 보일 수 있지만 프로덕션 시스템에 대한 가치는 분명히 있습니다. 프로젝트에 가장 적합한 방법을 결정하기 전에 실사를 수행해야 합니다.

이미지는 정기적으로 업데이트되지 않습니다. 이 프로젝트를 확장하거나 유지 관리하는 데 관심이 있는 경우 [email protected]

에 문의하십시오.

나는 의도적으로 컨테이너를 무기한 실행할 수 있는 방법을 생략했습니다. 애플리케이션과 많이 다를 수 있기 때문입니다.
적절한 방법을 스스로 찾거나 프로젝트에 관련된 사람들과 논의하십시오.

크레딧

컨테이너 작업은 mohaseeb의 작업을 기반으로 합니다.


산업기술

  1. 파이썬 연산자
  2. 실시간 얼굴 인식:종단 간 프로젝트
  3. 자동 비전 개체 추적
  4. 전자 칩과 광자 칩을 결합하여 초고속 양자 광 검출 가능
  5. LED 액세서리 –LED 조명 스트립 액세서리
  6. 24 단원 7:Mastercam
  7. PLCnext Tableau 대시보드
  8. PLCnext Power BI 보고서
  9. PLCnext Grafana 대시보드
  10. PLCnext Control의 Java 애플리케이션