Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

OpenCV – Python, Deteksi Lampu Merah di PLCnext

Open CV adalah salah satu perpustakaan Computer Vision yang paling banyak digunakan di luar sana. Open CV dapat digunakan untuk pengenalan wajah, pelacakan objek, pemindaian barcode dan yang lebih penting untuk blog ini, mendeteksi apakah lampu menyala atau mati. Di blog ini saya akan membantu Anda memulai Open CV dan Python di PLCnext dan menyajikan contoh kode kecil tentang cara memproses gambar Anda untuk deteksi lampu merah. Blog ini adalah cara alternatif untuk menggunakan Open-CV pada pengontrol PLCnext yang dijelaskan dalam posting blog sebelumnya.

Prasyarat

Hari ini saya menggunakan AXC F 2152 Controller tetapi dimungkinkan untuk mengikuti prosedur yang sama pada AXC F 1152 dan prosedur yang sangat simular pada AXC F 3152 dan RFC 4072s. Satu-satunya prasyarat untuk hari ini adalah memasang Balena-Engine pada pengontrol yang Anda gunakan. Langkah-langkah untuk keberhasilan instalasi Balena-Engine dapat ditemukan di halaman PLCnext Github. Disarankan untuk menggunakan kartu SD 8gb. Kami akan menggunakan koneksi SSH dan WinSCP untuk mengakses pengontrol. Penggunaan alat-alat ini berada di luar cakupan posting blog ini. Anda akan menemukan panduan yang bagus tentang cara menggunakannya di forum ini atau dengan penelusuran cepat di Google.

Unduh Gambar OpenCV-Python

Mulai sesi SSH ke controller dan login sebagai user root lagi setelah instalasi balena-engine.
Jalankan perintah berikut dan ambil secangkir kopi, perlu beberapa saat sebelum gambar diunduh ke pengontrol.

balena-engine pull pxcbe/opencv-python

Validasi instalasi

Pada langkah ini kami akan memvalidasi gambar dan menginstal versi Open-CV di gambar. Jalankan perintah selanjutnya.
Jika semuanya berjalan dengan baik, wadah akan mencetak versi Open-CV dan wadah akan menghapus sendiri.
Pada saat penulisan, versi yang terinstal adalah:4.1.0

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


Siapkan direktori kerja

Buka WinSCP dan buat folder opencv di direktori /opt/plcnext. Dengan demikian, jalur Anda harus /opt/plcnext/opencv.
Unduh konten repositori ini dan salin tempel di dalam direktori yang baru saja kita buat.

Anda dapat mengubah .jpg dengan gambar Anda sendiri dan memodifikasi app.py agar sesuai dengan kebutuhan Anda.

Uji skrip

Sekarang kami akan menguji skrip yang telah Anda unduh dari halaman GitHub dan menjalankan wadah secara interaktif. Jalankan perintah berikutnya sebagai root:

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

Anda sekarang berada dalam sesi shell di dalam wadah, panggil direktori opencv_app dengan

cd opencv_app

Dan mulai skrip dengan:

python app.py

Anda akan melihat beberapa output di shell dan 3 gambar baru di folder /opt/plcnext/opencv. Anda mungkin harus me-refresh folder winSCP Anda terlebih dahulu untuk dapat melihatnya!

Jadi apa yang telah kita lakukan?

Sebelum kita bisa pergi dan mulai mencari tahu apakah lampu kita hidup atau mati, kita perlu melakukan beberapa praproses pada gambar awal dalam hal ini "open_cv.jpg". Hal pertama yang biasanya Anda lakukan adalah mengubah skala gambar untuk mempertahankan beberapa daya komputasi. Ini dilakukan pada baris 12 (dari app.py) file dengan cv2.resize memerintah. Outputnya terlihat sama dengan aslinya tetapi hanya 50% dari gambar awal.

Langkah selanjutnya adalah membuat gambar menjadi abu-abu. Kami membuat grayscale pada gambar dengan fungsi yang terdapat pada baris 17, hasilnya dapat dilihat pada gambar di bawah ini.

Langkah terakhir dalam pipeline prepossessing kami adalah ambang batas gambar, setiap piksel di bawah nilai tertentu akan menjadi hitam, semua di atas nilai yang sama akan menjadi putih. Ada beberapa cara berbeda untuk treshold gambar, beberapa akan memberikan hasil yang jauh lebih baik. Tapi untuk hari ini baris 21 cv2.threshold akan cukup. Hasilnya dapat dilihat pada gambar berikut. Kami sekarang memiliki ukuran gambar kecil dengan hanya piksel hitam dan putih. Metode sederhana untuk mendeteksi jika lampu menyala dari kamera stasioner adalah dengan menentukan Region Of Intrest (ROI) dan memindai piksel putih. Namun algoritma yang lebih rumit akan memberi Anda hasil yang lebih baik. Saya menautkan beberapa blog lain yang menangani topik ini di bawah bacaan lebih lanjut.

Bacaan Lebih Lanjut

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

Terimalah cookie pemasaran untuk menonton video ini.

Terimalah cookie pemasaran untuk menonton video ini.

Masih sedikit ragu dengan container?
Anda mungkin menganggap blog ini menarik:

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

Penafian

Ini adalah salah satu cara untuk bekerja dengan open-cv pada PLCnext Controller. Di blog ini Anda akan belajar tentang cara mengkompilasi silang open-cv c++ untuk target PLCnext.
Namun mungkin tampak lebih rumit, itu pasti memiliki nilai untuk sistem produksi. Pastikan untuk melakukan uji tuntas sebelum memutuskan cara terbaik untuk proyek Anda.

Gambar tidak akan mendapatkan pembaruan rutin. Jika Anda tertarik untuk mengeluarkan atau mempertahankan proyek ini, silakan hubungi [email protected]

Saya sengaja mengabaikan bagaimana Anda dapat menjalankan wadah tanpa batas karena ini akan sangat berbeda dengan aplikasi Anda.
Silakan temukan sendiri cara yang cocok atau diskusikan hal ini dengan orang-orang yang terlibat dalam proyek Anda.

Kredit

Pekerjaan untuk wadah sangat didasarkan pada karya mohaseeb


Teknologi Industri

  1. Operator Python
  2. Real-Time Face Recognition:Proyek End-to-End
  3. Pelacakan Objek Penglihatan Otomatis
  4. Menggabungkan Elektronik, Chip Fotonik Memungkinkan Deteksi Cahaya Kuantum Super Cepat
  5. Aksesoris LED –Aksesoris Strip Lampu LED
  6. 24 Unit 7:Mastercam
  7. Dasbor Tableau PLCnext
  8. Laporan Power BI PLCnext
  9. Dasbor Grafana PLCnext
  10. Aplikasi Java pada Kontrol PLCnext