Daftar Isi:

Perangkat Pelacakan Wajah! Python & Arduino: 5 Langkah
Perangkat Pelacakan Wajah! Python & Arduino: 5 Langkah

Video: Perangkat Pelacakan Wajah! Python & Arduino: 5 Langkah

Video: Perangkat Pelacakan Wajah! Python & Arduino: 5 Langkah
Video: ArduMeka #53 - Analisis Wajah Untuk Mendeteksi Kelelahan Pengendara Berbasis OpenCV | Rizky Dermawan 2024, November
Anonim
Image
Image
Perangkat Pelacakan Wajah! Python & Arduino
Perangkat Pelacakan Wajah! Python & Arduino
Perangkat Pelacakan Wajah! Python & Arduino
Perangkat Pelacakan Wajah! Python & Arduino

Oleh Techovator0819Saluran Youtube SayaIkuti Lainnya oleh penulis:

IoT: Weather Box (dengan Alarm & Timer Kustom)
IoT: Weather Box (dengan Alarm & Timer Kustom)
IoT: Weather Box (dengan Alarm & Timer Kustom)
IoT: Weather Box (dengan Alarm & Timer Kustom)
Robot Otonom multi-fungsi: 'Aset'
Robot Otonom multi-fungsi: 'Aset'
Robot Otonom multi-fungsi: 'Aset'
Robot Otonom multi-fungsi: 'Aset'

Tentang: Saya suka membuat hal-hal baru. Seperti hal-hal yang berhubungan dengan mikrokontroler, teknik mesin, Kecerdasan Buatan, Ilmu Komputer, dan apa pun yang menarik minat saya. Dan di sini Anda akan menemukan semua… Selengkapnya Tentang Techovator0819 »

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 itu berarti ini tidak hanya berfungsi pada Python.

Perangkat ini mengenali wajah Anda dalam bingkai, kemudian mengirimkan perintah tertentu ke Arduino untuk memposisikan kamera sedemikian rupa sehingga tetap berada di dalam bingkai! Terdengar keren? Mari kita langsung masuk ke dalamnya.

Perlengkapan

1. Arduino UNO

2. 2 x Motor Servo (Motor servo apa pun akan baik-baik saja tetapi saya menggunakan Tower Pro SG90)

3. Menginstal Python

4. Menginstal OpenCV

5. Kamera Web

Langkah 1: Menginstal Python dan OpenCV

Menginstal Python cukup mudah!

www.python.org/downloads/

Anda dapat mengikuti tautan di atas untuk mengunduh versi python (Mac, windows atau Linux) yang paling cocok untuk Anda (64 bit atau 32 bit). Sisa dari proses instalasi sederhana dan Anda akan dipandu melalui antarmuka.

Setelah Anda selesai menginstal, buka command prompt Anda dan ketik berikut ini:

pip instal opencv-python

Itu harus menginstal perpustakaan openCV. Dalam kasus pemecahan masalah, Anda dapat melihat halaman INI.

Setelah menyiapkan Lingkungan dan semua prasyarat, mari kita lihat bagaimana kita bisa benar-benar membangun ini!

Langkah 2: Apa Itu Fitur Seperti Haar?

Fitur seperti haar adalah fitur dari citra digital. Nama ini berasal dari wavelet Haar. Ini adalah keluarga gelombang berbentuk persegi yang digunakan untuk mengidentifikasi fitur dalam citra digital. Kaskade Haar pada dasarnya adalah pengklasifikasi yang membantu kita mendeteksi objek (dalam kasus wajah kita) menggunakan fitur mirip haar.

Dalam kasus kami, untuk kesederhanaan, kami akan menggunakan Haar Cascades yang telah dilatih sebelumnya untuk mengidentifikasi wajah. Anda dapat mengikuti tautan INI dari halaman github dan mengunduh file xml untuk Haar Cascade.

1. Klik 'haarcascade_frontalface_alt.xml'

2. Klik tombol 'Raw' di bagian kanan atas jendela kode.

3. Ini akan mengarahkan Anda ke halaman lain hanya dengan teks.

4. Klik kanan dan tekan 'Simpan sebagai..'

5. Simpan di direktori atau folder yang sama dengan kode python yang akan Anda tulis.

Langkah 3: Pengodean dengan Python

impor cv2

impor numpy sebagai np impor waktu impor serial

Kami mengimpor semua perpustakaan yang kami butuhkan.

ard = serial. Serial("COM3", 9600)

Kami membuat objek serial yang disebut 'ard'. Kami juga menentukan Nama Port dan BaudRate sebagai parameter.

face_cascade = cv2. CascadeClassifier('haarcascade_frontalface_default.xml')

Kami membuat objek lain untuk Haar Cascade kami. Pastikan file HaarCascade tetap berada di folder yang sama dengan program python ini.

vid = cv2. VideoCapture(0)

Kami membuat objek yang menangkap video dari webcam. 0 sebagai parameter berarti web cam pertama yang terhubung ke PC saya.

docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html

sementara Benar:

_, frame = vid.read()#membaca frame saat ini ke variabel frame grey = cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY)#converts frame -> gambar grayscale #baris berikut mendeteksi wajah. #Parameter pertama adalah gambar yang ingin Anda deteksi pada #minSize=() menentukan ukuran minimum wajah dalam hal piksel #Klik tautan di atas untuk mengetahui lebih banyak tentang Klasifikasi Cascade face = face_cascade.detectMultiScale(abu-abu, minSize =(80, 80), minNeighbors=3) #A untuk loop untuk mendeteksi wajah. untuk (x, y, w, h) di wajah: cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)#menggambar persegi panjang di sekitar wajah Xpos = x+(w/2)#menghitung koordinat X pusat wajah. Ypos = y+(h/2)#menghitung koordinat Y bagian tengah wajah jika Xpos > 280: #Blok kode berikut memeriksa apakah wajah adalah ard.write('L'.encode()) #on kiri, kanan, atas atau bawah sehubungan dengan time.sleep(0.01) #center dari frame. elif Xpos 280: ard.write('D'.encode()) time.sleep(0.01) elif Ypos < 200: ard.write('U'.encode()) time.sleep(0.01) else: ard.write ('S'.encode()) time.sleep(0.01) break cv2.imshow('frame', frame)#menampilkan frame di jendela terpisah. k = cv2.waitKey(1)&0xFF if(k == ord('q')): #jika 'q' ditekan pada keyboard, ia keluar dari loop while. merusak

cv2.destroyAllWindows() #menutup semua jendela

ard.close() #menutup komunikasi serial

vid.release() #berhenti menerima video dari web cam.

Langkah 4: Memprogram Arduino

Jangan ragu untuk memodifikasi program sesuai pengaturan perangkat keras Anda sesuai dengan kebutuhan Anda.

#termasuk

Servo servoX;

Servo servoY;

int x = 90;

int y = 90;

batalkan pengaturan() {

// letakkan kode setup Anda di sini, untuk dijalankan sekali: Serial.begin(9600); servoX.attach (9); servoY.attach(10); servoX.tulis(x); servoY.tulis(y); penundaan (1000); }

masukan karakter = ""; //input serial disimpan dalam variabel ini

lingkaran kosong() {

// letakkan kode utama Anda di sini, untuk dijalankan berulang kali: if(Serial.available()){ //memeriksa apakah ada data di buffer serial input = Serial.read(); //membaca data menjadi variabel if(input == 'U'){ servoY.write(y+1); //menyesuaikan sudut servo sesuai dengan input y += 1; //memperbarui nilai sudut } else if(input == 'D'){ servoY.write(y-1); y -= 1; } else{ servoY.tulis(y); } if(input == 'L'){ servoX.write(x-1); x -= 1; } else if(input == 'R'){ servoX.write(x+1); x += 1; } else{ servoX.tulis(x); } masukan = ""; //menghapus variabel } //proses terus berulang!!:) }

Langkah 5: Kesimpulan

Ini adalah salah satu cara yang bagus dan interaktif di mana Anda dapat merancang menggabungkan Computer Vision dalam proyek Arduino Anda. Computer Vision sebenarnya cukup menyenangkan. Dan saya sangat berharap kalian menyukainya. Jika ya, beri tahu saya di komentar. Dan tolong subscribe channel youtube saya. Terima kasih sebelumnya <3<3

youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos

Direkomendasikan: