Daftar Isi:
- Langkah 1: Hal-hal yang Anda Butuhkan:
- Langkah 2: Menyiapkan Lingkungan Python:
- Langkah 3: Skrip Python:
- Langkah 4: Kode Arduino:
- Langkah 5: Mekanisme Pan-Tilt:-
- Langkah 6: Membuat Koneksi:
- Langkah 7: PENGUJIAN:
Video: PELACAKAN WAJAH MENGGUNAKAN ARDUINO !!!: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Dalam instruksi sebelumnya saya membagikan bagaimana Anda dapat berkomunikasi antara Arduino dan Python menggunakan modul 'pyserial' dan mengontrol LED. Jika Anda belum melihatnya, periksa di sini: KOMUNIKASI ANTARA ARDUINO & PYTHON !
Dan bagaimana Anda dapat mendeteksi warna suatu objek dan melacaknya di layar, Lihat di sini: DETEKSI WARNA MENGGUNAKAN OPENCV DAN PYTHON.
Dalam Instruksi ini saya akan menunjukkan kepada Anda cara melacak wajah menggunakan Arduino & Python dan membuat Kamera mengikuti wajah. Ini mungkin terdengar sulit tetapi percayalah tidak, Yang Anda butuhkan hanyalah pengetahuan dasar tentang Arduino dan Python.
Jadi mari kita mulai…
Langkah 1: Hal-hal yang Anda Butuhkan:
Persyaratannya minimal. Di sini saya telah menyediakan daftar bagian dari semua yang Anda butuhkan:
Persyaratan Perangkat Keras:
- Arduino UNO (Amazon AS / Amazon UE)
- Web Cam (Amazon AS / Amazon UE)
- Servos x 2 (Amazon AS / Amazon UE)
- Papan tempat memotong roti (Amazon AS / Amazon UE)
- Servo Pan Tilt Kit (Amazon AS / Amazon UE)
Persyaratan Perangkat Lunak:
- Python 2.7 (Harus diinstal, OS Linux biasanya sudah diinstal sebelumnya)
- OpenCV (Anda dapat mengunduhnya secara terpisah atau menginstal menggunakan 'pip install' Dijelaskan lebih lanjut)
- pyserial (Dapat diinstal dengan pip)
- mati rasa.
- Haarkaskade.
Setelah semuanya terkumpul, kita dapat melanjutkan ke Langkah Instalasi…
Langkah 2: Menyiapkan Lingkungan Python:
Menginstal Python:
Jadi pertama-tama kita perlu Python 2.7 aktif dan berjalan. Untuk melakukan ini, unduh terlebih dahulu dan Instal python 2.7.14. Untuk memeriksa apakah sudah terpasang dengan benar Goto: Windows Search >> Ketik "IDLE" >> Tekan Enter. Shell Python akan muncul.
ATAU
Dalam pencarian ketik 'CMD' dan tekan enter untuk membuka Command Prompt. Dalam tipe CMD >> python dan tekan enter, antarmuka Python akan menampilkan file.
Jika Anda melihat kesalahan di CMD, Jangan panik Anda mungkin perlu mengatur variabel lingkungan. Anda dapat mengikuti tutorial ini Di Sini untuk mengatur Variabel Lingkungan.
Menginstal 'pyserial', 'OpenCV" dan "numpy" di python:
Untuk menginstal modul ini kita akan menggunakan use pip install, Pertama buka CMD dan ketik kode berikut: -
pip instal serial
pip install opencv-python >pip install numpy
perintah ini akan menginstal modul yang diperlukan. Sekarang kita bisa pindah ke bagian pengkodean…
Langkah 3: Skrip Python:
Sebelum mulai menulis kode hal pertama yang harus dilakukan adalah membuat folder baru karena semua kode harus disimpan dalam folder yang sama. Jadi buat folder baru, beri nama apa pun yang Anda inginkan. dan unduh 'Haarcascade' dari bawah dan tempel di folder.
Sekarang buka notepad dan tulis skrip yang diberikan di bawah ini, Simpan sebagai 'face.py' di folder yang sama dengan haarcascade. (Anda dapat mengunduh kode yang telah saya sediakan file di bawah ini):
#import semua modul yang diperlukan
import numpy as np import serial import time import sys import cv2 #Setup Jalur komunikasi untuk arduino (Sebagai ganti 'COM5' letakkan port yang terhubung dengan arduino Anda) arduino = serial. Serial('COM5', 9600) time.sleep (2) print("Connected to arduino…") #importing Haarcascade untuk deteksi wajah face_cascade = cv2. CascadeClassifier('haarcascade_frontalface_default.xml') #Untuk merekam aliran video dari webcam. cap = cv2. VideoCapture(0) #Baca gambar yang diambil, ubah menjadi gambar Gray dan temukan wajah saat 1: ret, img = cap.read() cv2.resizeWindow('img', 500, 500) cv2.line(img, (500, 250), (0, 250), (0, 255, 0), 1) cv2.line(img, (250, 0), (250, 500), (0, 255, 0), 1) cv2.circle(img, (250, 250), 5, (255, 255, 255), -1) abu-abu = cv2.cvtColor(img, cv2. COLOR_BGR2GRAY) wajah = face_cascade.detectMultiScale(abu-abu, 1.3) # mendeteksi wajah dan membuat persegi panjang di sekitarnya. untuk (x, y, w, h) di wajah: cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_gray = abu-abu[y:y+h, x:x+w] roi_color = img[y:y+h, x:x+w] arr = {y:y+h, x:x+w} print (arr) print ('X:' +str(x)) print ('Y:'+str(y)) print ('x+w:' +str(x+w)) print ('y+h:' +str(y+h)) # Pusat roi (Persegi Panjang) xx = int(x+(x+h))/2 yy = int(y+(y+w))/2 print (xx) print (yy) center = (xx, yy) # mengirim data ke arduino print("Pusat Persegi Panjang adalah:", center) data = "X{0:d}Y{1:d}Z".format(xx, yy) print ("output = '" +data+ "'") arduino.write(data) #Menampilkan aliran. cv2.imshow('img', img) #Tekan 'Esc' untuk menghentikan eksekusi k = cv2.waitKey(30) & 0xff jika k == 27: break
Setelah ini selesai, lanjutkan untuk menulis kode untuk arduino…
Langkah 4: Kode Arduino:
Setelah skrip python siap, kita perlu sketsa arduino untuk mengontrol servo. Lihat kode di bawah ini, paste di Arduino IDE dan simpan sebagai 'servo.ino' di folder yang sama dengan face.py dan haarcascade. unggah kode dan lanjutkan ke langkah berikutnya untuk membuat koneksi.
(File yang dapat diunduh diberikan di bawah)
#termasuk
Servo servoVer; //Servo Servo Servo Vertikal servoHor; //Servo Horizontal int x; int y; int sebelumnya; int sebelumnya; void setup() { Serial.begin(9600); servoVer.attach(5); //Lampirkan Servo Vertikal ke Pin 5 servoHor.attach(6); //Lampirkan Servo Horizontal ke Pin 6 servoVer.write(90); servoHor.write(90); } void Pos() { if(prevX != x || prevY != y) { int servoX = map(x, 600, 0, 70, 179); int servoY = peta(y, 450, 0, 179, 95); servoX = min(servoX, 179); servoX = maks(servoX, 70); servoY = min(servoY, 179); servoY = maks(servoY, 95); servoHor.write(servoX); servoVer.write(servoY); } } void loop() { if(Serial.available() > 0) { if(Serial.read() == 'X') { x = Serial.parseInt(); if(Serial.read() == 'Y') { y = Serial.parseInt(); Pos(); } } while(Serial.available() > 0) { Serial.read(); } } }
Langkah 5: Mekanisme Pan-Tilt:-
Saya telah menggunakan kit yang tersedia untuk Pan-Tilt. Jika mau, Anda bisa membuatnya sendiri menggunakan kayu/Plastik atau bahkan cetak 3D.
Yang saya gunakan cukup murah, dan sangat mudah dirakit. Namun jika Anda menginginkan petunjuk tentang cara melakukannya, Anda dapat menemukannya di sini.
Langkah 6: Membuat Koneksi:
Sirkuit ini cukup sederhana. Cukup pasang dua servos ke arduino.
- Vertikal ke Pin 5
- Horizontal ke Pin 6
- Daya ke +5V
- Tanah ke GND
Periksa diagram sirkuit untuk referensi.
Langkah 7: PENGUJIAN:
- Setelah semuanya selesai, hal terakhir yang harus dilakukan adalah menguji apakah itu berfungsi. Untuk menguji terlebih dahulu pastikan bahwa servos terhubung dengan benar ke arduino dan sketsa diunggah.
- Setelah sketsa diunggah pastikan untuk menutup IDE sehingga port bebas untuk terhubung ke python.
- Sekarang buka 'face.py' dengan Python IDLE dan tekan 'F5' untuk menjalankan kode. Ini akan memakan waktu beberapa detik untuk terhubung ke arduino dan kemudian Anda akan dapat melihat jendela streaming web cam. Sekarang kode akan mendeteksi wajah Anda dan servos akan melacaknya.
- Servo harus bergerak saat Anda memindahkan objek. Sekarang cukup pasang kamera ke servos sehingga akan bergerak bersama dengan servos.
Terima kasih.
Direkomendasikan:
Pengenalan dan Identifikasi Wajah - ID Wajah Arduino Menggunakan OpenCV Python dan Arduino.: 6 Langkah
Pengenalan dan Identifikasi Wajah | ID Wajah Arduino Menggunakan OpenCV Python dan Arduino.: Pengenalan wajah AKA ID wajah adalah salah satu fitur terpenting di ponsel saat ini. Jadi, saya punya pertanyaan "bisakah saya memiliki id wajah untuk proyek Arduino saya" dan jawabannya adalah ya… Perjalanan saya dimulai sebagai berikut: Langkah 1: Akses ke kami
Perangkat Pelacakan Wajah! Python & Arduino: 5 Langkah
Perangkat Pelacakan Wajah! Python & Arduino: Halo semua orang di luar sana yang membaca instruksi ini. Ini adalah perangkat pelacak wajah yang bekerja pada pustaka python yang disebut OpenCV. CV adalah singkatan dari 'Computer Vision'. Kemudian saya mengatur antarmuka serial antara PC saya dan Arduino UNO saya. Jadi maksudnya ini
Pelacakan Wajah dan Pendeteksi Senyuman Robot Halloween: 8 Langkah (dengan Gambar)
Pelacakan Wajah dan Pendeteksi Senyum Robot Halloween: Halloween akan datang! Kami memutuskan untuk membangun sesuatu yang keren. Temui robot Ghosty dan Skully. Mereka dapat mengikuti wajah Anda dan mereka tahu kapan Anda tersenyum untuk tertawa bersama Anda! Proyek ini adalah contoh lain dari penggunaan Aplikasi iRobbie yang mengubah iPhone menjadi
Pistol Pelacakan Wajah: 4 Langkah
Face Tracking Gun: Proyek ini merupakan perluasan dari proyek laser trip wire gun yang ditunjukkan di sini - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ?ALLSTEPS Satu-satunya perbedaan adalah bahwa pistol tidak akan dipicu oleh laser tetapi oleh
Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: 9 Langkah (dengan Gambar)
Robot Pengemis Dengan Pelacakan dan Kontrol Wajah oleh Xbox Controller - Arduino: Kami akan membuat robot pengemis. Robot ini akan berusaha mengganggu atau menarik perhatian orang yang lewat. Ini akan mendeteksi wajah mereka dan mencoba menembakkan laser ke arah mereka. Jika Anda memberi robot koin, ia akan menyanyikan sebuah lagu dan menari. Robot membutuhkan