산업기술
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 검색을 통해 사용 방법에 대한 좋은 가이드를 찾을 수 있습니다.
컨트롤러에 대한 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://medium.com/@kenan.r.alkiek/https-medium-com-kenan-r-alkiek-traffic-light-recognition-505d6ab913b1
이 비디오를 보려면 마케팅 쿠키를 수락하십시오.
이 비디오를 보려면 마케팅 쿠키를 수락하십시오.
여전히 컨테이너에 대해 확신이 서지 않습니까?
다음 블로그가 흥미로울 수 있습니다.
이것은 PLCnext Controller에서 open-cv로 작업하는 한 가지 방법입니다. 이 블로그에서는 PLCnext 타겟에 대해 open-cv C++를 크로스 컴파일하는 방법을 배우게 됩니다.
더 복잡해 보일 수 있지만 프로덕션 시스템에 대한 가치는 분명히 있습니다. 프로젝트에 가장 적합한 방법을 결정하기 전에 실사를 수행해야 합니다.
이미지는 정기적으로 업데이트되지 않습니다. 이 프로젝트를 확장하거나 유지 관리하는 데 관심이 있는 경우 [email protected]
에 문의하십시오.
나는 의도적으로 컨테이너를 무기한 실행할 수 있는 방법을 생략했습니다. 애플리케이션과 많이 다를 수 있기 때문입니다.
적절한 방법을 스스로 찾거나 프로젝트에 관련된 사람들과 논의하십시오.
컨테이너 작업은 mohaseeb의 작업을 기반으로 합니다.
산업기술
easymon은 스마트폰 세계의 사용 편의성을 머신 컨트롤러 영역으로 가져오는 원격 모니터링 솔루션입니다. PLCnext 스토어에서 PLCnext 기능 확장을 설치하고 iOS 또는 Google Play 스토어에서 해당 스마트폰 앱을 설치하기만 하면 됩니다. 빠르고 쉬운 구성 후에 선택한 데이터 포인트 업데이트가 페어링된 스마트폰 앱 인스턴스에 전파됩니다. 현재 실행 중인 PLCnext 프로그램의 각 변수는 모니터링되는 데이터 포인트로 구성할 수 있습니다. 1. 디자인에 의한 개인정보 보호 사용 편의성 외에도 easymon을 개발하
PLCnext 기능 앱 easymon 컨트롤의 원격 모니터링을 설정하는 번거로움을 없애줍니다. 클라우드 기반 IoT 서비스의 모든 핵심 부분을 구성하는 대신 모바일 장치에서 모니터링하려는 PLCnext 프로젝트 변수를 선택하고 알림 임계값을 설정하기만 하면 됩니다. 이 구성은 명시적으로 선택한 변수에 대한 데이터만 클라우드로 전파하기 위해 PLCnext에서 실행되는 easymon 구성기에서 발생합니다. PLCnext 저장소는 연결된 PLCnext 컨트롤러에서 기능 확장의 설치 및 관리를 용이하게 하는 데 큰 역할을 합니다.