Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Pan / Miringkan pelacakan wajah dengan raspberry pi

Dengan beberapa usaha saya telah menemukan bahwa mengendalikan dua motor servo untuk memungkinkan webcam untuk pan/tilt sambil melacak wajah secara real time menggunakan raspberry pi tidak mustahil seperti yang terlihat pada awalnya. Dengan beberapa penyesuaian yang hati-hati dan pengoptimalan kode, saya dapat mengizinkan pi untuk mengikuti dua servos saat menjalankan deteksi wajah OpenCV pada 320x240 mencari profil kanan, profil kiri, dan wajah depan dan menyesuaikan servos lebih cepat dari sekali per detik .

Langkah 1:Dapatkan perangkat kerasnya.

Hal-hal yang dibutuhkan:

Raspberry pi — Model A akan berfungsi dengan baik, saya memiliki Model B asli yang memiliki spesifikasi yang sama dengan Model A baru (tanpa jaringan).
Braket geser/miring
Dua Servo
Kabel Pita GPIO
Webcam yang Didukung Pi —  Saya menggunakan Logitech C210

Dengan asumsi Anda sudah memiliki raspberry pi dan webcam, perangkat keras tambahan akan menjalankan Anda sekitar $25

Langkah 2:Siapkan raspberry pi Anda.

Pastikan Anda menggunakan RaspbianOS Resmi (versi hard-float) dan yang terbaru.
Anda mungkin ingin meng-overclock raspberry pi Anda. saya lakukan untuk 800mhz. Semakin tinggi Anda naik, semakin cepat pengenalan wajah, tetapi pi Anda mungkin kurang stabil.

Instal OpenCV untuk python:sudo apt-get install python-opencv
Dapatkan driver servo servoblaster yang luar biasa untuk raspberry pi oleh Richard Hirst:di sini

Anda dapat mengunduh semua file sebagai arsip zip dan mengekstraknya ke folder di suatu tempat di pi.
Untuk menginstal driver servo blaster, buka terminal dan CD ke direktori tempat Anda mengekstrak file servoblaster
jalankan perintah:make install_autostart

Anda mungkin ingin membuat waktu habis servoblaster dan berhenti mengirim sinyal ke servo setelah satu detik jika tidak dipindahkan.
untuk melakukannya, tambahkan baris berikut ke /etc/modules:servoblaster idle_timeout=1000

mulai servoblaster dengan perintah berikut:sudo modprobe servoblaster

Tugas selanjutnya adalah membuat kamera berfungsi seperti yang diharapkan:

Pertama-tama, terima kasih banyak kepada Gmoto karena telah menemukan ini dan menunjukkannya, ini adalah bagian terakhir dari "pi" untuk membuat semuanya berjalan lancar; Anda harus menyesuaikan beberapa parameter di modul uvcvideo agar semuanya berjalan dengan baik.
Yaitu, jalankan perintah ini:

rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80

Anda harus menjalankannya setiap kali melakukan boot ulang jika Anda berencana menjalankan program pelacakan wajah, atau sebagai alternatif menambahkan parameter ke /etc/modules seperti yang Anda lakukan dengan tweak waktu habis servoblaster.

Langkah 3:Siapkan peralatan Anda

Buat braket pan/tilt sesuai instruksi dan pasang servos.
Pasang kamera Anda ke bagian atas braket (saya hanya menggunakan selotip) dan colokkan ke port usb raspberry pi Anda.
Saya dulu dapat menyalakannya tanpa hub usb, tetapi Anda mungkin ingin mendapatkan hub usb yang aktif dan melakukannya.

Langkah 4:Menghubungkan servos

Servoblaster menganggap servo-0 sebagai apa pun yang terhubung ke GPIO 4 dan servo-1 adalah apa pun yang terhubung ke GPIO-17.
Servo memiliki tiga kabel, satu berwarna merah yang merupakan Vin/positif, satu berwarna coklat atau hitam yang adalah ground/negatif dan yang lainnya adalah kontrol.
menggunakan kabel pita (dan dalam kasus saya beberapa kabel konektor macet ke dalam lubang) sambungkan kabel kontrol untuk setiap servo ke pin yang benar. Kode mengasumsikan bahwa servo-0 akan mengontrol gerakan kiri-kanan dan servo-1 akan mengontrol gerakan naik-turun kamera; jadi hubungkan mereka dengan cara ini.

Sekarang tampaknya masuk akal bahwa Vin untuk servos akan berasal dari pin 5v dari GPIO dan ground untuk servo akan berasal dari pin ground GPIO, tetapi ini tidak berhasil dalam kasus saya karena saya menggunakan servo yang lebih besar untuk pangkalan. Servo besar menarik lebih banyak daya daripada yang diinginkan oleh pi. Namun, saya dapat memberi daya pada servo kemiringan yang lebih kecil tanpa masalah. Selain itu, Richard Hirst yang membuat servoblaster tampaknya menyiratkan bahwa ia dapat menggerakkan beberapa servo kecil dengan GPIO 5v. Saya juga mengetahui bahwa ada beberapa sekering dalam versi pi saya yang kemudian dilepas terkait dengan pin daya tersebut. Naluri saya memberi tahu saya bahwa Anda dapat memberi daya pada dua servos yang lebih kecil dari pin tersebut pada pi yang lebih baru. Jika Anda tidak bisa, inilah yang harus Anda lakukan:

Anda akan memerlukan beberapa jenis sumber daya eksternal yang mampu menangani beban 5v-6v yang berat:Saya menggunakan yang terpasang pada arduino, tetapi sumber daya 5 volt apa pun harus melakukannya; servos dinilai hingga 6v. Pin 5v pada catu daya komputer, pengisi daya dinding 5v-6v, beberapa baterai secara paralel; apapun yang mengapungkan perahumu. Setelah Anda memiliki sumber eksternal, cukup sambungkan jalur positif dan negatif dari servos ke sisi positif dan negatif sumber daya Anda, lalu sambungkan pembumian (negatif) dari sumber daya eksternal ke pin pembumian pada raspberry pi GPIO.

Langkah 5:Jalankan program

Saya telah melampirkan skrip python ke artikel ini, itu disebut PiFace.py untuk menjalankannya hanya CD ke lokasinya di terminal dan ketik:python PiFace.py

Berikut adalah beberapa video saya beraksi.

Untuk detail lebih lanjut:Pan / Tilt face tracking dengan raspberry pi


Proses manufaktur

  1. Baca suhu dengan DS18B20 | Raspberry Pi 2
  2. Pemantauan Suhu di Raspberry Pi
  3. Mengukur suhu dengan RASPBERRY PI
  4. Memantau Suhu Dengan Raspberry Pi
  5. Integrasi Data Sensor dengan Mikroprosesor Raspberry Pi
  6. Sensor pelacakan garis dengan RPi
  7. Mendeteksi Petir dengan Raspberry Pi
  8. Pelacakan Bola Raspberry Pi
  9. Alarm air raspberry pi 2 dengan tukang sepatu plus
  10. Pan / Miringkan pelacakan wajah dengan raspberry pi