Isi kandungan:
- Langkah 1: Perkara yang Anda Perlu:
- Langkah 2: Menetapkan Persekitaran Python:
- Langkah 3: Skrip Python:
- Langkah 4: Kod Arduino:
- Langkah 5: Mekanisme Pan-Tilt: -
- Langkah 6: Membuat Sambungan:
- Langkah 7: UJIAN:
Video: TRACKING WAJAH MENGGUNAKAN ARDUINO !!!: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Dalam arahan sebelumnya saya telah berkongsi bagaimana anda dapat berkomunikasi antara Arduino dan Python menggunakan modul 'pyserial' dan mengawal LED. Sekiranya anda belum melihatnya, lihat di sini: KOMUNIKASI ANTARA ARDUINO & PYTHON!
Dan bagaimana anda dapat mengesan warna objek dan mengesannya di skrin, Periksa di sini: PENETAPAN WARNA MENGGUNAKAN OPENCV DAN PYTHON.
Dalam Instructable ini saya akan menunjukkan kepada anda cara mengesan wajah menggunakan Arduino & Python dan membuat Kamera mengikuti wajah. Ini mungkin terdengar sukar tetapi percayalah tidak, Yang anda perlukan hanyalah pengetahuan asas mengenai Arduino dan Python.
Oleh itu, mari bermula …
Langkah 1: Perkara yang Anda Perlu:
Keperluannya minimum. Di sini saya telah memberikan senarai bahagian dari semua yang anda perlukan:
Keperluan Perkakasan:
- Arduino UNO (Amazon US / Amazon EU)
- Kamera Web (Amazon US / Amazon EU)
- Servos x 2 (Amazon US / Amazon EU)
- Papan Roti (Amazon US / Amazon EU)
- Servo Pan Tilt Kit (Amazon US / Amazon EU)
Keperluan Perisian:
- Python 2.7 (Sekiranya dipasang, OS Linux biasanya sudah memasangnya)
- OpenCV (Anda boleh memuat turunnya secara berasingan atau memasang menggunakan 'pip install' Dijelaskan lebih lanjut)
- pyserial (Boleh dipasang dengan pip)
- kekenyangan.
- Haarcascade.
Setelah setiap perkara dikumpulkan, kita boleh beralih ke Langkah Pemasangan…
Langkah 2: Menetapkan Persekitaran Python:
Memasang Python:
Jadi pertama kita memerlukan Python 2.7 dan berjalan. Untuk melakukan ini, muat turun pertama dan Pasang python 2.7.14. Untuk memeriksa sama ada ia dipasang dengan betul Pergi: Carian Windows >> Ketik "IDLE" >> Tekan Enter. Shell Python mesti muncul.
ATAU
Dalam carian jenis 'CMD' dan tekan enter untuk membuka Prompt Perintah. Dalam jenis CMD >> python dan tekan enter, antara muka Python harus dipaparkan.
Sekiranya anda melihat kesalahan dalam CMD, Jangan panik, anda mungkin perlu menetapkan pemboleh ubah persekitaran. Anda boleh mengikuti tutorial ini di sini untuk menyediakan Pembolehubah Persekitaran.
Memasang 'pyserial', 'OpenCV "dan" numpy "di python:
Untuk memasang modul ini, kami akan menggunakan pemasangan pip, Buka CMD pertama dan taipkan kod berikut: -
siri pemasangan pip
pip install opencv-python> pip install numpy
arahan ini akan memasang modul yang diperlukan. Sekarang kita boleh beralih ke bahagian pengkodan …
Langkah 3: Skrip Python:
Sebelum mula menulis kod, perkara pertama yang perlu dilakukan ialah membuat folder baru kerana semua kod tersebut perlu disimpan dalam folder yang sama. Oleh itu, buat folder baru, namakan apa sahaja yang anda mahukan. dan muat turun 'Haarcascade' dari bawah dan tampal di folder.
Sekarang buka notepad dan tulis skrip yang diberikan di bawah ini, Simpan sebagai 'face.py' dalam folder yang sama dengan haarcascade. (Anda boleh memuat turun kod yang telah saya berikan di bawah):
#import semua modul yang diperlukan
import numpy sebagai np import serial import time import sys import cv2 #Setup Communication path untuk arduino (Sebagai ganti 'COM5' letakkan port tempat arduino anda disambungkan) arduino = serial. Serial ('COM5', 9600) time.sleep (2) cetak ("Terhubung ke arduino …") #mengimport Haarcascade untuk pengesanan wajah face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #Untuk menangkap aliran video dari kamera web. cap = cv2. VideoCapture (0) #Baca gambar yang diambil, ubah menjadi gambar Kelabu dan cari wajah sementara 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) grey = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) face = face_cascade.detectMultiScale (kelabu, 1.3) # mengesan wajah dan membuat segi empat tepat di sekelilingnya. untuk (x, y, w, h) di muka: cv2. segi empat tepat (img, (x, y), (x + w, y + h), (0, 255, 0), 5) roi_gray = kelabu [y: y + h, x: x + w] roi_color = img [y: y + h, x: x + w] arr = {y: y + h, x: x + w} cetak (arr) cetak ('X: '+ str (x)) cetak (' Y: '+ str (y)) cetak (' x + w: '+ str (x + w)) cetak (' y + h: '+ str (y + h)) # Pusat roi (Rectangle) xx = int (x + (x + h)) / 2 yy = int (y + (y + w)) / 2 print (xx) print (yy) center = (xx, yy) # menghantar data ke cetakan arduino ("Center of Rectangle is:", center) data = "X {0: d} Y {1: d} Z".format (xx, yy) print ("output = '" + data + "'") arduino.write (data) #Lihat aliran. cv2.imshow ('img', img) #Hit 'Esc' untuk menghentikan pelaksanaan k = cv2.waitKey (30) & 0xff jika k == 27: rehat
Setelah ini selesai, teruskan menulis kod untuk arduino…
Langkah 4: Kod Arduino:
Setelah skrip python siap, kita memerlukan lakaran arduino untuk mengawal servo. Rujuk kod di bawah, tampal di Arduino IDE dan simpan sebagai 'servo.ino' dalam folder yang sama dengan face.py dan haarcascade. muat naik kod dan teruskan ke langkah seterusnya untuk membuat sambungan.
(Fail yang boleh dimuat turun di bawah)
#sertakan
Servo servoVer; // Vertikal Servo Servo servoHor; // Servo Mendatar int x; int y; int prevX; int prevY; batal persediaan () {Serial.begin (9600); servoVer.attach (5); // Pasang Servo Vertikal ke Pin 5 servoHor.attach (6); // Pasang Servo Mendatar ke Pin 6 servoVer.write (90); servoHor.write (90); } kekosongan Pos () {if (prevX! = x || prevY! = y) {int servoX = peta (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); }} gelung void () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); jika (Serial.read () == 'Y') {y = Serial.parseInt (); Pos (); }} sementara (Serial.available ()> 0) {Serial.read (); }}}
Langkah 5: Mekanisme Pan-Tilt: -
Saya telah menggunakan kit yang tersedia untuk Pan-Tilt. Sekiranya anda mahu, anda boleh membuatnya sendiri menggunakan kayu / plastik atau bahkan cetakan 3D.
Yang saya gunakan cukup murah, dan sangat senang dipasang. Tetapi jika anda mahukan arahan mengenai cara melakukannya, anda boleh mendapatkannya di sini.
Langkah 6: Membuat Sambungan:
Litarnya cukup mudah. Cukup pasangkan dua servo ke arduino.
- Tegak ke Pin 5
- Melintang ke Pin 6
- Kuasa hingga + 5V
- Tanah ke GND
Periksa rajah litar untuk rujukan.
Langkah 7: UJIAN:
- Setelah semuanya selesai, perkara terakhir yang perlu dilakukan adalah menguji apakah ia berjaya. Untuk menguji terlebih dahulu pastikan bahawa servo disambungkan dengan betul ke arduino dan sketsa dimuat naik.
- Setelah sketsa dimuat, pastikan untuk menutup IDE supaya port bebas disambungkan ke python.
- Sekarang buka 'face.py' dengan Python IDLE dan tekan 'F5' untuk menjalankan kod. Ia akan mengambil masa beberapa saat untuk menyambung ke arduino dan kemudian anda akan dapat melihat tetingkap streaming web cam. Sekarang kod akan mengesan wajah anda dan servo akan mengesannya melacaknya.
- Servo harus bergerak semasa anda menggerakkan objek. Sekarang pasangkan kamera ke servo sehingga ia akan bergerak bersama dengan servo.
Terima kasih.
Disyorkan:
MASK WAJAH AKTIF SUARA: 3 Langkah
SUARA WAJAH AKTIF VOICE: BEBERAPA BULAN KEMBALI GUY NAMED 'TYLER GLAIEL' DIBUAT SEBUAH MASK WAJAH YANG AKTIFKAN VOICE YANG TELAH VIRAL … SETELAH BANYAK DIBUAT TETAPI TIDAK ADA MEREKA YANG MENYEDIAKAN SEMUA BUTIRAN YANG DIPERLUKAN UNTUK DIA. TYLER DIA MEMANDU KE BAWAH PANDUAN DIY DAN GITHUB CO
Mod Wajah Bersih Casio A158W: 4 Langkah
Casio A158W Clean Face Mod: Casio A158W adalah jam tangan digital klasik yang reka bentuknya tidak berubah selama 30 tahun terakhir. Adalah gila untuk berfikir bahawa sekeping teknologi dapat tetap tidak berubah untuk waktu yang lama terutamanya kerana mereka masih membuatnya. Peraturan "jika tidak bro
Lampu Reaktif Suara Tanpa Wajah Kaonashi: 3 Langkah
Lampu Reaktif Suara Tanpa Wajah Kaonashi: Untuk memikat semangat, pasangkan lampu rentetan. Tetapi bukankah lebih keren jika anda dapat menyalurkan lampu sehingga menyala ketika bunyi didengar? Buat topeng muka Kaonashi atau Tanpa Wajah (dari filem klasik Spirited Away) terdengar reaktif
Pengecaman dan Pengecaman Wajah - Arduino Face ID Menggunakan OpenCV Python dan Arduino .: 6 Langkah
Pengecaman dan Pengecaman Wajah | Arduino Face ID Menggunakan OpenCV Python dan Arduino .: Pengenalan wajah AKA ID ID adalah salah satu ciri terpenting pada telefon bimbit pada masa kini. Oleh itu, saya mempunyai soalan " bolehkah saya mempunyai id wajah untuk projek Arduino saya " dan jawapannya adalah ya … Perjalanan saya dimulakan seperti berikut: Langkah 1: Akses ke kami
DIY Car Robot Tracking Car Kit Tracking Car Photosensitive: 7 Steps
DIY Smart Robot Tracking Car Kit Tracking Car Photosensitive: Design by SINONING ROBOTAnda boleh membeli dari robot robot penjejakanTheoryLM393 chip membandingkan kedua photoresistor, apabila terdapat satu LED photoresistor sebelah PUTIH sebelah motor akan berhenti serta-merta, bahagian lain motor putar, sehingga