Isi kandungan:
- Bekalan
- Langkah 1: Memasang Python dan OpenCV
- Langkah 2: Apakah Ciri-ciri seperti Haar?
- Langkah 3: Pengekodan di Python
- Langkah 4: Memprogram Arduino
- Langkah 5: Kesimpulannya
Video: Peranti Penjejak Muka! Python & Arduino: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Oleh Techovator0819Saluran Youtube SayaMengikuti Lagi oleh pengarang:
Tentang: Saya suka membuat perkara baru. Seperti perkara yang berkaitan dengan pengawal mikro, kejuruteraan mekanikal, Kecerdasan Buatan, Sains Komputer dan apa sahaja yang menarik minat saya. Dan di sini anda akan menjumpai semua… Lebih Lanjut Mengenai Techovator0819 »
Halo semua di luar sana membaca arahan ini. Ini adalah alat penjejak wajah yang berfungsi di perpustakaan python yang disebut OpenCV. CV bermaksud 'Computer Vision'. Kemudian saya menyediakan antara muka bersiri antara PC saya dan Arduino UNO saya. Oleh itu, ini bukan hanya berfungsi pada Python.
Peranti ini mengenali wajah Anda di dalam bingkai, lalu mengirimkan perintah tertentu ke Arduino untuk meletakkan kamera sedemikian rupa sehingga tetap berada di dalam bingkai! Bunyi sejuk? Mari kita masuk ke dalamnya.
Bekalan
1. Arduino UNO
2. 2 x Motor Servo (Mana-mana motor servo akan baik tetapi saya menggunakan Tower Pro SG90)
3. Memasang Python
4. Memasang OpenCV
5. Kamera Web
Langkah 1: Memasang Python dan OpenCV
Memasang Python agak lurus ke hadapan!
www.python.org/downloads/
Anda boleh mengikuti pautan di atas untuk memuat turun versi python (Mac, windows atau Linux) yang paling sesuai dengan anda (64 bit atau 32 bit). Selebihnya proses pemasangan adalah mudah dan anda akan dipandu oleh antara muka.
Setelah selesai memasang, buka arahan arahan anda dan ketik perkara berikut:
memasang pip opencv-python
Itu mesti memasang perpustakaan openCV. Sekiranya terdapat masalah dalam penggambaran, anda boleh melihat halaman INI.
Setelah menyediakan Persekitaran dan semua prasyarat, mari kita lihat bagaimana kita dapat membina ini!
Langkah 2: Apakah Ciri-ciri seperti Haar?
Ciri seperti Haar adalah ciri gambar digital. Nama itu berasal dari gelombang gelombang Haar. Ini adalah keluarga gelombang berbentuk persegi yang digunakan mengenal pasti ciri dalam gambar digital. Haar cascades pada dasarnya adalah pengkelasan yang membantu kita mengesan objek (dalam keadaan muka kita) menggunakan ciri seperti haar.
Dalam kes kami, untuk kesederhanaan, kami akan menggunakan Haar Cascades yang sudah dilatih untuk mengenal pasti wajah. Anda boleh mengikuti pautan INI dari halaman github dan memuat turun fail xml untuk Haar Cascade.
1. Klik pada 'haarcascade_frontalface_alt.xml'
2. Klik pada butang 'Raw' di bahagian kanan atas tetingkap kod.
3. Ini akan mengarahkan anda ke halaman lain dengan teks sahaja.
4. Klik kanan dan tekan 'Save as..'
5. Simpan dalam direktori atau folder yang sama dengan kod python yang hendak anda tulis.
Langkah 3: Pengekodan di Python
import cv2
import numpy sebagai masa import siri np import
Kami mengimport semua perpustakaan yang kami perlukan.
ard = bersiri. Serial ("COM3", 9600)
Kami membuat objek bersiri yang dipanggil '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 fail HaarCascade tetap berada di folder yang sama dengan program python ini.
vid = cv2. VideoCapture (0)
Kami membuat objek untuk menangkap video dari kamera web. 0 sebagai parameter bermaksud cam web pertama yang disambungkan ke PC saya.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
Walaupun Betul:
_, frame = vid.read () # membaca bingkai semasa ke bingkai berubah-ubah kelabu = cv2.cvtColor (bingkai, cv2. COLOR_BGR2GRAY) #convert frame -> gambar skala kelabu # baris berikut mengesan wajah. Parameter # pertama adalah gambar yang ingin anda kesan pada # minSize = () menentukan ukuran minimum wajah dari segi piksel # Klik pautan di atas untuk mengetahui lebih lanjut mengenai wajah Pengelasan Cascade = face_cascade.detectMultiScale (kelabu, minSize = (80, 80), minNeighbour = 3) #A untuk gelung untuk mengesan wajah. untuk (x, y, w, h) di wajah: cv2. segi empat tepat (bingkai, (x, y), (x + w, y + h), (255, 0, 0), 2) #melukis sebuah segi empat tepat di sekitar wajah Xpos = x + (w / 2) # menghitung koordinat X pusat wajah. Ypos = y + (h / 2) #calcualtes koordinat Y dari pusat wajah jika Xpos> 280: # Blok kod berikut memeriksa apakah wajah itu ard.write ('L'.encode ()) #on kiri, kanan, atas atau bawah berkenaan dengan masa. tidur (0,01) # pusat bingkai. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0.01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) lain: ard.write ('S'.encode ()) time.sleep (0.01) break cv2.imshow (' frame ', frame) #menampilkan bingkai di tetingkap yang terpisah. k = cv2.waitKey (1) & 0xFF jika (k == ord ('q')): #if 'q' ditekan pada papan kekunci, ia keluar dari gelung sementara. rehat
cv2.destroyAllWindows () # menutup semua tetingkap
ard.close () # menutup komunikasi bersiri
vid.release () #berhenti menerima video dari cam web.
Langkah 4: Memprogram Arduino
Jangan ragu untuk mengubah suai program mengikut persediaan perkakasan anda yang sesuai dengan keperluan anda.
#sertakan
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
batal persediaan () {
// letakkan kod persediaan anda di sini, untuk dijalankan sekali: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); kelewatan (1000); }
input char = ""; // input bersiri disimpan dalam pemboleh ubah ini
gelung kosong () {
// letakkan kod utama anda di sini, untuk dijalankan berulang kali: jika (Serial.available ()) {// memeriksa apakah ada data dalam input buffer bersiri = Serial.read (); // membaca data menjadi pemboleh ubah jika (input == 'U') {servoY.write (y + 1); // menyesuaikan sudut servo mengikut input y + = 1; // mengemas kini nilai sudut} yang lain jika (input == 'D') {servoY.write (y-1); y - = 1; } lain {servoY.write (y); } jika (input == 'L') {servoX.write (x-1); x - = 1; } lain jika (input == 'R') {servoX.write (x + 1); x + = 1; } lain {servoX.write (x); } input = ""; // membersihkan pemboleh ubah} // proses terus berulang !!:)}
Langkah 5: Kesimpulannya
Ini adalah cara yang baik dan interaktif di mana anda boleh merancang menggabungkan Computer Vision dalam projek Arduino anda. Penglihatan Komputer sebenarnya cukup menyeronokkan. Dan saya sangat berharap bahawa anda telah menyukainya. Sekiranya ya, beritahu saya dalam komen. Dan sila melanggan saluran youtube saya. Terima kasih terlebih dahulu <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Disyorkan:
Penjejak GPS DIY --- Aplikasi Python: 5 Langkah (dengan Gambar)
DIY GPS Tracker --- Aplikasi Python: Saya mengambil bahagian dalam acara berbasikal dua minggu yang lalu. Setelah selesai, saya ingin memeriksa laluan dan kelajuan yang saya naiki ketika itu. Malangnya, ia tidak dapat dicapai. Sekarang saya menggunakan ESP32 untuk membuat pelacak GPS, dan saya akan mengambilnya untuk merakam laluan berbasikal saya
Kit Antara Muka Web Python Penuh untuk PhidgetSBC3: 6 Langkah
Kit Antaramuka Web Python Penuh untuk PhidgetSBC3: Papan PhidgetSBC3 adalah Komputer Papan Tunggal yang berfungsi penuh, yang menjalankan Debain Linux. Ia serupa dengan raspberry Pi, tetapi mempunyai 8 input sensor analog dan 8 input digital dan 8 output digital. Ia dihantar dengan pelayan web dan aplikasi web untuk
Peranti ASS (Peranti Sosial Anti-Sosial): 7 Langkah
Peranti ASS (Peranti Sosial Anti-Sosial): Katakan anda adalah orang yang suka berada di sekitar orang tetapi tidak suka mereka berada terlalu dekat. Anda juga adalah orang yang lebih senang dan sukar untuk mengatakan tidak kepada orang lain. Oleh itu, anda tidak tahu bagaimana memberitahu mereka untuk mundur. Baiklah, masukkan - Peranti ASS! Y
Pistol Penjejak Muka: 4 Langkah
Face Tracking Gun: Projek ini adalah pengembangan dari projek laser wire wire gun yang ditunjukkan di sini - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ? ALLSTEPS Satu-satunya perbezaan adalah bahawa pistol tidak akan dicetuskan oleh laser tetapi oleh
Peranti Penjejak Suria: 25 Langkah
Peranti Penjejak Suria: Dengan mengikuti langkah-langkah ini, anda akan dapat membuat dan menerapkan panel surya yang menyesuaikan kedudukannya untuk mengikuti sinar matahari. Ini membolehkan jumlah tenaga maksimum ditangkap sepanjang hari. Peranti ini dapat merasakan kekuatan li