BerandaComputers and TechnologyCara Membangun Detektor Masker Wajah dengan Raspberry Pi

Cara Membangun Detektor Masker Wajah dengan Raspberry Pi

Salah satu pekerjaan terburuk di dunia saat ini adalah menjadi penyambut di toko ritel yang harus memberi tahu orang-orang untuk memakai masker wajah. Alih-alih membuat pemeriksaan manusia untuk kepatuhan topeng, kita dapat membuat detektor topeng bertenaga Raspberry Pi yang menggunakan pengenalan gambar. Kemudian pelanggan yang sulit diatur dapat meneriaki layar Raspberry Pi sebagai gantinya.

Dalam artikel ini, kami akan menunjukkan cara menyiapkan Raspberry Pi Sistem Deteksi Masker Wajah dan membunyikan bel saat seseorang tidak memakai masker wajahnya. Proyek ini terinspirasi oleh video dari sebuah mal di Asia di mana gerbang masuk hanya bisa diaktifkan oleh pengguna yang memakai masker wajah.

Face Mask Detector

(Kredit gambar: Perangkat Keras Tom )

Bagaimana cara kerja proyek Raspberry Pi Face Mask Detector?

Ketika pengguna mendekati webcam Anda, kode Python menggunakan TensorFlow , OpenCV , dan Paket imutils akan mendeteksi apakah pengguna menggunakan masker atau tidak. Pengguna yang tidak memakai masker wajah akan ditandai dengan kotak merah di sekitar wajah mereka, dan pengguna yang memakai masker wajah akan melihat kotak hijau di sekitar wajah mereka dengan teks, “Terima kasih kamu. Topeng Aktif. ” Pengguna yang tidak memakai masker akan melihat kotak merah di sekitar wajah mereka dengan, “Tanpa Masker Wajah Terdeteksi. ”

Berapa lama proyek detektor topeng Raspberry Pi?

Dimulai dengan penginstalan baru Raspberry Pi OS, untuk menyelesaikan semua elemen proyek ini akan membutuhkan setidaknya 5 jam. Jika Anda menyelesaikan posting kami sebelumnya di Pengenalan Wajah Raspberry Pi , Anda dapat mengurangi 1,5 jam untuk menginstal OpenCV. Bahkan lebih baik lagi, kami telah menyertakan model terlatih bagi Anda untuk melompat langsung ke sistem deteksi topeng Pi yang berfungsi.

ICYMI – Pengenalan Wajah dengan Raspberry Pi: Kami baru-baru ini memposting tutorial pengenalan wajah tempat kami menggunakan pembelajaran mesin untuk melatih Raspberry Pi kami untuk mengenali wajah tertentu. Tutorial ini menggunakan banyak prinsip pembelajaran mesin dan AI yang sama, tetapi hari ini kami menambahkan TensorFlow untuk mengidentifikasi sebuah objek, khususnya masker wajah. Kami baru-baru ini menampilkan proyek Raspberry Pi Tensorflow lain yang menentukan apakah kucing membawa mangsa ke pintu pemiliknya.

Penafian: Artikel ini disediakan dengan tujuan untuk penggunaan pribadi. Kami mengharapkan pengguna kami untuk sepenuhnya mengungkapkan dan memberi tahu saat mereka mengumpulkan, menggunakan, dan / atau membagikan data. Kami berharap pengguna kami sepenuhnya mematuhi semua hukum nasional, negara bagian, dan kota yang berlaku.

Yang Anda Butuhkan untuk Deteksi Masker Wajah Raspberry Pi

Mayoritas tutorial ini didasarkan pada perintah terminal. Jika Anda tidak terbiasa dengan perintah terminal pada Raspberry Pi Anda, kami sangat merekomendasikan untuk meninjau 25+ Perintah Linux Pengguna Raspberry Pi Perlu Diketahui pertama.

Bagian 1 : Instal Dependensi untuk Deteksi Masker Wajah Raspberry Pi

Pada langkah ini, kami akan menginstal OpenCV , imutils , dan Tensorflow .

  • OpenCV adalah perpustakaan perangkat lunak sumber terbuka untuk memproses gambar dan video waktu nyata dengan kemampuan pembelajaran mesin.
  • Imutils adalah serangkaian fungsi kemudahan untuk mempercepat komputasi OpenCV di Raspberry Pi.
  • Tensorflow adalah platform pembelajaran mesin open source.

1. Instal salinan baru Sistem Operasi Raspberry Pi pada kartu microSD 16GB atau yang lebih besar. Lihat artikel kami di cara mengatur Raspberry Pi untuk pertama kalinya atau bagaimana melakukan pemasangan Raspberry Pi tanpa kepala . Kami mencoba proyek ini dengan menjalankan ‘sudo apt-get update && sudo apt-get upgrade’ dan kami gagal membangun / menginstal OpenCV.

2. Hubungkan webcam Anda ke salah satu port USB di Raspberry Pi Anda. Jika Anda menggunakan kamera Raspberry Pi alih-alih webcam, gunakan kabel pita Anda untuk menghubungkannya ke Pi Anda. Boot Raspberry Pi Anda.

Face Mask Detector

(Kredit gambar: Tom Perangkat keras)

Akan ada langkah opsional untuk menambahkan LED dan bel di langkah terakhir.

3. Jika Anda menggunakan kamera Pi dan bukan webcam, aktifkan Kamera dari konfigurasi Raspberry Pi Anda. Tekan OK dan reboot Pi Anda.

Face Mask Detector

(Kredit gambar: Perangkat Keras Tom)

4. Buka Terminal. Anda dapat melakukannya dengan menekan CTRL + T.

5. Install OpenCV . Langkah ini membutuhkan waktu sekitar 2 jam. Silakan lihat Bagian 1 dari Tutorial Pengenalan Wajah Raspberry Pi kami untuk instruksi lengkap dalam menginstal OpenCV. Setelah selesai menginstal OpenCV, terminal Anda akan terlihat seperti ini:

Face Mask Detector

(Kredit gambar: Perangkat Keras Tom)

6. Instal TensorFlow . Langkah ini memakan waktu sekitar 5-10 menit.

  sudo pip3 instal https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.1.0/tensorflow-2.1.0-cp37-none-linux_armv7l.whl

7. Pasang imutils. Langkah ini memakan waktu sekitar 1 menit.

  sudo pip3 menginstal imutils  

Bagian 2: Deteksi Masker Wajah (Metode Pintasan)

Pada bagian ini, kita akan melewatkan pelatihan model dan menjalankan model yang sudah dibuat sebelumnya untuk mengidentifikasi apakah Anda mengenakan masker atau tidak.

1. Buka terminal baru di Pi Anda dengan menekan Ctrl-T .

2. Unduh kode dari GitHub.

  git clone https://github.com/carolinedunn/face_mask_detection

3. Jalankan model siap pakai yang dilatih dengan lebih dari 1.000 gambar. Di terminal, ubah direktori (cd) menjadi direktori yang baru saja Anda kloning dari GitHub.

  cd face_mask_detection  Face Mask Detector

4. Jalankan kode Python 3 untuk membuka webcam Anda dan mulai algoritme deteksi topeng.

  python3 detect_mask_webcam.py  Jika Anda menggunakan Kamera Pi, masukkan python3 detect_mask_picam.py  

Setelah beberapa detik, Anda akan melihat kamera Anda lihat jendela pop-up dan lihat kotak hijau yang menunjukkan keberadaan masker wajah.

(Kredit gambar: Perangkat Keras Tom)

Atau kotak merah yang menunjukkan kurangnya wajah topeng.

Face Mask Detector

(Kredit gambar: Perangkat Keras Tom)

Anda dapat mencoba bereksperimen dengan berbagai masker wajah, penggunaan masker wajah yang tidak tepat dan tepat (misalnya masker wajah yang menggantung di telinga, atau masker wajah di bawah hidung).

Tekan ESC untuk menghentikan skrip.

Bagian 3: Pelatihan Model Masker Wajah (Metode Panjang)

Setelah detektor masker wajah Anda aktif dan berjalan, Anda mungkin bertanya-tanya, “Bagaimana cara kerjanya? ”

Lebih dari seribu foto digunakan untuk melatih model yang detect_mask_webcam.py digunakan untuk membuat topeng atau tanpa topeng determinasi. Semakin banyak contoh yang diberikan, semakin baik pembelajaran mesin karena lebih sedikit foto=kurang akurat.

Foto dibagi menjadi 2 folder di kumpulan data kami , dengan_masker dan tanpa_masker dan algoritme pelatihan membuat model topeng vs. tanpa topeng berdasarkan set data . Contoh foto yang disediakan di folder dataset yang Anda download dari GitHub adalah foto saya sendiri.

Bagaimana jika alih-alih ratusan foto, kita melatih sistem Deteksi Masker Raspberry Pi kami pada 20 foto ? Untungnya, kami memiliki model terlatih untuk Anda uji.

Dari folder face_mask_detection di terminal Anda, jalankan Python 3 kode untuk membuka webcam Anda dengan 20 model foto.

  python3 detect_mask_webcam.py --model mask_detector-20.model  Jika Anda menggunakan Kamera Pi, masukkan python3 detect_mask_picam.py --model mask_detector-20.model  

Setelah Beberapa detik, Anda akan melihat jendela pop-up tampilan kamera Anda dan melihat kotak hijau atau kotak merah. Anda akan menemukan model ini tidak terlalu akurat.

Cara melatih sendiri model masker wajah Raspberry Pi

Sebagai bagian dari tutorial ini, saya telah membuat cara bagi Anda untuk melatih model pada foto Anda sendiri.

Di folder set data dalam face_mask_detection di Pi Anda, periksa dua subfolder, dengan_mask dan tanpa_masker .

Face Mask Detector

(Kredit gambar: Tom Perangkat keras)

Untuk melatih Pi dengan foto Anda, cukup simpan foto Anda (foto orang yang memakai atau tidak memakai masker wajah) ke folder yang sesuai. Bersenang-senanglah dengan ini dan ambil foto diri Anda dan keluarga Anda.

Ambil foto Anda sendiri dengan Raspberry Anda Pi

1. Buka Terminal , tekan Ctrl-T.

2. Ubah direktori ke folder face_mask_detection.

  cd face_mask_detection  Face Mask Detector

3. Jalankan kode Python untuk mengambil foto diri Anda yang mengenakan topeng, sama halnya dengan foto tanpa topeng.

  Jika menggunakan webcam yang dijalankan: python withMaskDataset.py atau python withoutMaskDataset.py Jika menggunakan kamera pi run: python withMaskDataset-picam.py atau python tanpaMaskDataset-picam.py 

4. Tekan spasi untuk mengambil foto.

5. Tekan q untuk keluar setelah Anda selesai mengambil foto.

(Kredit gambar: Perangkat Keras Tom)

Menjalankan skrip ini akan secara otomatis menyimpan foto ke foldernya masing-masing, dengan_mask dan tanpa_masker . Semakin banyak foto yang Anda ambil, semakin akurat model yang akan Anda buat di langkah berikutnya, namun perlu diingat, Raspberry Pi Anda tidak memiliki daya komputasi yang sama dengan komputer desktop Anda. Raspberry Pi Anda hanya akan dapat menganalisis dan memproses foto dalam jumlah terbatas karena daya komputasi dan ukuran RAM-nya. Pada Raspberry Pi 4 8GB kami, kami dapat memproses sekitar 1.000 foto, tetapi butuh lebih dari 2 jam untuk membuat model.

Melatih model untuk deteksi masker wajah Raspberry Pi

Pada langkah ini, kami akan melatih model berdasarkan foto kita di folder dataset, tapi kita perlu menginstal beberapa paket lagi terlebih dahulu. Jumlah foto maksimum yang dapat diproses skrip train_mask_detector.py akan bervariasi bergantung pada model Raspberry Pi Anda dan memori yang tersedia.

1. Buka Terminal , tekan Ctrl-T.

2. Instal paket sklearn dan matplotlib ke Pi Anda.

  sudo pip3 menginstal sklearn  sudo pip3 memasang matplotlib  

Face Mask Detector

(Kredit gambar: Perangkat Keras Tom)

3. Latih modelnya. Ingatlah bahwa, semakin banyak foto yang Anda miliki di folder kumpulan data, semakin lama waktu yang dibutuhkan untuk membuat model. Jika Anda mendapatkan kesalahan "kehabisan memori", kurangi jumlah foto dalam kumpulan data Anda sampai Anda berhasil menjalankan kode Python.

  cd face_mask_detection  python3 train_mask_detector.py --dataset dataset --plot mymodelplot.png --model my_mask_detector.model  

(Kredit gambar: Perangkat Keras Tom)

Dalam pengujian kami, dibutuhkan waktu lebih dari 2 jam untuk melatih model dengan 1.000 gambar.

Face Mask Detector

(Kredit gambar: Perangkat Keras Tom)

Dalam contoh ini, kami melatih model kami hanya dengan 20 gambar, dan tingkat kepercayaan / akurasinya sekitar 67%.

Setelah skrip selesai dijalankan, Anda akan melihat file baru di direktori face_mask_detector : my_mask_detector.model

4. Pertama, mari periksa untuk melihat seberapa akurat menurut Pi kita model ini. Buka gambar yang baru dibuat bernama mymodelplot.png

(Kredit gambar: Perangkat Keras Tom)

Dalam gambar ini, kami melatih model dengan 1.000 gambar dan akurasi pelatihan sangat tinggi.

Menguji wajah Raspberry Pi Anda model topeng

Sekarang Anda telah melatih model Anda, mari kita uji!

Jalankan skrip deteksi yang sama, tetapi tentukan model Anda, bukan model default.

Dari jendela Terminal yang sama:

python3 detect_mask_webcam.py –model my_mask_detector.model Jika Anda menggunakan Kamera Pi, masukkan python3 detect_mask_picam.py –model my_mask_detector.model

Bagaimana kau melakukannya? Beri tahu kami di komentar di bawah.

Bagian 4: Menambahkan Buzzer dan LED

Sekarang kami telah melatih model kami untuk deteksi masker wajah Raspberry Pi, kami dapat bersenang-senang dengan hasilnya.

Di bagian ini, kami menambahkan bel dan 2 LED untuk mengidentifikasi dengan cepat apakah seseorang mengenakannya. masker wajah atau tidak.

Face Mask Detector


(Kredit gambar: Kepada Perangkat Keras m)

Untuk langkah ini, Anda akan menambahkan:

  • Breadboard Kecil

  • Dua resistor 330 Ohm
  • 1 LED Merah
  • 2 LED Hijau
  • 1 Buzzer
  • 1. Sambungkan LED dan bel seperti yang ditunjukkan pada diagram di bawah ini. (Selalu tambahkan resistor antara terminal positif LED Anda dan pin GPIO Anda pada Pi Anda.)

    a. LED merah akan dikontrol oleh GPIO14.b. LED hijau akan dikontrol oleh GPIO15.c. Buzzer akan diaktifkan oleh GPIO 21d. Hubungkan GND ke GND di Pi Anda.

    Face Mask DetectorFace Mask DetectorFace Mask Detector

    (Kredit gambar: Perangkat Keras Tom)

    2. Uji pengaturan LED dan buzzer Anda dengan menjalankan LED-buzzer.py . Buka terminal baru dan jalankan kode pengujian dengan mengetik:

      cd face_mask_detection python LED-buzzer.py  

    Jika Anda melihat LED menyala dan mati secara bergantian dan bunyi bip bel Anda. Anda berhasil menyelesaikan langkah ini dan dapat melanjutkan. Jika LED tidak menyala atau bel Anda tidak berfungsi, periksa kabel Anda.

    (Kredit gambar: Perangkat Keras Tom)

    3. Jika bel Anda tetap aktif setelah Anda menekan Ctrl-C untuk keluar dari kode python, jalankan python LED-buzzer-OFF.py untuk mematikan bel dan LED.

    4. Uji sistem deteksi masker wajah Raspberry Pi Di terminal yang sama, jalankan

     

    python3 detect_mask_webcam_buzzer.py Jika Anda menggunakan Kamera Pi, masukkan python3 detect_mask_picam_buzzer.py Jika Anda menggunakan model Anda sendiri, tambahkan –model my_mask_detector.model seperti yang Anda lakukan di langkah sebelumnya.

    Jika semuanya bekerja dengan benar, ketika skrip mendeteksi Anda memakai masker, LED hijau akan menyala. Jika skrip mendeteksi Anda tidak mengenakan masker wajah, bel akan berbunyi bersama dengan LED merah menyala.

    (Kredit gambar: Perangkat Keras Tom)

    Kemungkinan untuk proyek ini tidak terbatas. Anda dapat terus melatih model Anda dengan lebih banyak foto. Anda dapat menambahkan motor servo atau mengaktifkan gerbang, saat masker wajah terdeteksi. Atau Anda dapat mencoba menggabungkan tutorial ini dengan kode pengiriman email otomatis dari Tutorial Pengenalan Wajah Raspberry Pi untuk mengirim email dengan foto ketika seseorang masuk tanpa masker wajah.

    Read More

    RELATED ARTICLES

    LEAVE A REPLY

    Please enter your comment!
    Please enter your name here

    Most Popular

    Recent Comments