Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

OpenCV — Python, обнаружение красного света на ПЛКСледующая

Open CV — одна из наиболее часто используемых библиотек Computer Vision. Open CV можно использовать для распознавания лиц, отслеживания объектов, сканирования штрих-кодов и, что более важно для этого блога, определения того, включен свет или нет. В этом блоге я помогу вам начать работу с Open CV и Python на PLCnext и представлю небольшой пример кода о том, как предварительно обработать ваши изображения для обнаружения красного света. Этот блог представляет собой альтернативный способ использования Open-CV на контроллере PLCnext, описанный в предыдущих сообщениях блога.

Предпосылки

Сегодня я использую контроллер AXC F 2152, но можно выполнить ту же процедуру на AXC F 1152 и очень похожую процедуру на AXC F 3152 и RFC 4072. Единственным предварительным условием на сегодняшний день является установка Balena-Engine на контроллере, который вы используете. Шаги для успешной установки Balena-Engine можно найти на странице PLCnext Github. Рекомендуется использовать SD-карту на 8 Гб. Мы будем использовать SSH-соединение и WinSCP для доступа к контроллеру. Использование этих инструментов выходит за рамки этого блога. Вы найдете хорошее руководство по их использованию на этом форуме или с помощью быстрого поиска в Google.

Загрузить образ OpenCV-Python

Запустите сеанс SSH с контроллером и снова войдите в систему как пользователь root после установки 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 и создайте папку opencv в каталоге /opt/plcnext. Таким образом, ваш путь должен быть /opt/plcnext/opencv.
Загрузите содержимое этого репозитория и скопируйте и вставьте его в только что созданный каталог.

Вы можете заменить .jpg своим собственным изображением и изменить файл app.py в соответствии со своими потребностями.

Протестировать скрипт

Теперь мы протестируем скрипт, который вы скачали со страницы GitHub, и запустим контейнер в интерактивном режиме. Выполните следующую команду от имени пользователя root:

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

Теперь вы находитесь в сеансе оболочки внутри контейнера, вызовите каталог opencv_app с помощью

cd opencv_app

И запустите скрипт с:

python app.py

Вы должны увидеть вывод в оболочке и 3 новых изображения в папке /opt/plcnext/opencv. Возможно, вам придется сначала обновить папку winSCP, чтобы увидеть их!

Итак, что мы сделали?

Прежде чем мы сможем пойти и начать выяснять, включен наш свет или нет, нам нужно выполнить некоторую предварительную обработку исходного изображения, в данном случае «open_cv.jpg». Первое, что вам нужно сделать, это изменить масштаб изображения, чтобы сохранить некоторую вычислительную мощность. Это делается в строке 12 (app.py) файл с cv2.resize команда. Результат выглядит так же, как и исходный, но составляет всего 50 % исходного изображения.

Следующим шагом является отображение изображения в градациях серого. Мы масштабируем изображение по шкале серого с помощью функции, найденной в строке 17, результат можно увидеть на изображении ниже.

Последним шагом в нашем предварительном конвейере является пороговое значение изображения, каждый пиксель ниже определенного значения будет черным, все, что выше того же значения, будет белым. Есть несколько разных способов трэшинга изображения, некоторые из них дадут лучший результат. Но на сегодня строка 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

Чтобы посмотреть это видео, примите маркетинговые файлы cookie.

Чтобы посмотреть это видео, примите маркетинговые файлы cookie.

Все еще немного не уверены в контейнерах?
Вам могут быть интересны эти блоги:

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

Отказ от ответственности

Это один из способов работы с open-cv на контроллере PLCnext. В этом блоге вы узнаете, как выполнить кросс-компиляцию open-cv C++ для цели PLCnext.
Однако это может показаться более громоздким, но оно, безусловно, имеет свою ценность для производственных систем. Обязательно проявите должную осмотрительность, прежде чем решить, какой способ лучше всего подходит для вашего проекта.

Изображение не будет получать регулярные обновления. Если вы заинтересованы в расширении или поддержке этого проекта, напишите по адресу [email protected]

Я намеренно не упомянул, как вы можете запускать контейнер бесконечно, поскольку это будет сильно отличаться от вашего приложения.
Пожалуйста, найдите подходящий способ самостоятельно или обсудите это с людьми, участвующими в вашем проекте.

Кредиты

Работа над контейнером во многом основана на работе mohaseeb


Промышленные технологии

  1. Операторы Python
  2. Распознавание лиц в реальном времени:сквозной проект
  3. Автоматическое отслеживание объекта обзора
  4. Сочетание электронных и фотонных чипов обеспечивает сверхбыстрое обнаружение квантового света
  5. Аксессуары для светодиодов – Аксессуары для светодиодных лент
  6. 24 Модуль 7:Mastercam
  7. Информационная панель PLCnext Tableau
  8. Отчеты PLCnext Power BI
  9. Информационные панели PLCnext Grafana
  10. Java-приложение на PLCnext Control