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

Pengenalan Wajah Real-Time pada Raspberry Pi – Panduan Ujung ke Ujung

Tutorial ini memandu Anda dalam membangun sistem pengenalan wajah real-time pada Raspberry Pi menggunakan OpenCV dan Pi-Cam. Dari pengaturan hardware hingga pelatihan recognizer, setiap langkah disajikan dengan cuplikan kode yang jelas dan tips praktis.

Di bawah ini Anda akan melihat demonstrasi langsung Pi-Cam mendeteksi wajah secara real-time.

Proyek ini mengandalkan perpustakaan open-source OpenCV, yang dioptimalkan untuk kinerja real-time. Meskipun kita akan fokus pada Raspberry Pi yang menjalankan Raspbian, kode yang sama berjalan di macOS dan Windows dengan hanya penyesuaian minor.

3 Fase

Alur kerja pengenalan wajah lengkap dapat dibagi menjadi tiga tahap yang berbeda:

Diagram di bawah meringkas fase-fase ini.

Langkah 1: Bill of Materials

Komponen esensial:

Langkah 2: Menginstal OpenCV 3

Kami merekomendasikan mengikuti panduan Adrian Rosebrock untuk instalasi OpenCV 3 yang bersih di Raspbian Stretch. Setelah tutorial, aktifkan lingkungan virtual Python yang khusus:

source ~/.profile workon cv 
Setelah di dalam lingkungan, verifikasi versi Python dan instalasi OpenCV:
python >>> import cv2 >>> cv2.__version__ 
Anda seharusnya melihat nomor versi seperti 3.3.0 atau lebih baru.

Langkah 3: Menguji Kamera Anda

Jika kamera tidak terdeteksi, aktifkan driver dengan:

sudo modprobe bcm2835-v4l2 
Cuplikan Python berikut membuka stream Pi-Cam, menampilkannya dalam warna dan grayscale, dan membaliknya secara vertikal (sesuaikan jika orientasi kamera Anda berbeda):
import numpy as np import cv2 cap = cv2.VideoCapture(0) cap.set(3, 640) cap.set(4, 480) while True: ret, frame = cap.read() frame = cv2.flip(frame, -1) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame', frame) cv2.imshow('gray', gray) if cv2.waitKey(30) & 0xff == 27: break cap.release() cv2.destroyAllWindows() 
Jalankan dengan python simpleCamTest.py (tersedia di GitHub proyek). Tekan ESC untuk keluar.

Langkah 4: Deteksi Wajah

Klasifikasi Haar Cascade OpenCV adalah pendekatan pembelajaran mesin yang ringan untuk mendeteksi wajah. Unduh berkas XML yang telah dilatih sebelumnya (haarcascade_frontalface_default.xml) dan letakkan di folder Cascades. Skrip berikut menunjukkan deteksi wajah real-time dengan kotak pembatas:

import cv2 faceCascade = cv2.CascadeClassifier('Cascades/haarcascade_frontalface_default.xml') cap = cv2.VideoCapture(0) cap.set(3, 640) cap.set(4, 480) while True: ret, img = cap.read() img = cv2.flip(img, -1) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale( gray, scaleFactor=1.2, minNeighbors=5, minSize=(20, 20) ) for (x, y, w, h) in faces: cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) cv2.imshow('video', img) if cv2.waitKey(30) & 0xff == 27: break cap.release() cv2.destroyAllWindows() 

Parameter detectMultiScale mengontrol sensitivitas: scaleFactor mengurangi ukuran gambar setiap iterasi, minNeighbors menyaring false positive, dan minSize menetapkan wajah terkecil yang dapat terdeteksi.

Contoh Tambahan

Jelajahi opsi deteksi lebih banyak di GitHub proyek:

Tutorial Deteksi Objek Haar Cascade – Wajah & Mata

Langkah 5: Pengumpulan Data

Mengumpulkan dataset yang berlabel esensial untuk pelatihan. Buat folder proyek (misalnya, FacialRecognitionProject) dan subdirektori dataset:

mkdir FacialRecognitionProject cd FacialRecognitionProject mkdir dataset 
Unduh berkas Haar Cascade ke root proyek. Lalu jalankan 01_face_dataset.py untuk menangkap 30 gambar wajah per pengguna:

import cv2 import os cam = cv2.VideoCapture(0) cam.set(3, 640) cam.set(4, 480) face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') face_id = input('\nMasukkan ID pengguna (angka) dan tekan  → ') print('\n[INFO] Menginisialisasi pengambilan wajah. Lihat ke kamera…') count = 0 while True: ret, img = cam.read() img = cv2.flip(img, -1) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_detector.detectMultiScale(gray, 1.3, 5) for (x, y, w, h) in faces: cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2) count += 1 cv2.imwrite(f'dataset/User.{face_id}.{count}.jpg', gray[y:y+h, x:x+w]) cv2.imshow('image', img) if cv2.waitKey(100) & 0xff == 27 or count >= 30: break if count >= 30: break cam.release() cv2.destroyAllWindows() print('\n[INFO] Keluar dari Program dan membersihkan.') 

Setiap gambar bernama User.{id}.{count}.jpg (misalnya, User.1.4.jpg). Sesuaikan jumlah sampel sesuai kebutuhan.

Langkah 6: Pelatih

Menggunakan gambar yang dikumpulkan, latih recognizer wajah OpenCV. Model yang dihasilkan disimpan sebagai berkas .yml di folder trainer. Lihat skrip pelatihan lengkap di repositori proyek untuk detail implementasi.

Baca Lebih Detail: Proyek Pengenalan Wajah Real-Time Ujung ke Ujung

Proses manufaktur

  1. Menguasai Operator Python: Panduan Komprehensif
  2. Operasi List Python: Pembuatan, Akses, Modifikasi, dan Teknik Lanjutan
  3. Menguasai Kamus Python: Pembuatan, Manipulasi, dan Teknik Lanjutan
  4. Menginstal Google Assistant pada MATRIX Voice Raspberry Pi – Panduan Langkah demi Langkah
  5. Speathe: Komunikasi Berbasis Napas untuk Pengguna Paralisis
  6. Bangun Pintu Pengenalan Wajah Aman dengan Windows IoT dan Raspberry Pi
  7. Pelacakan Objek Berbasis Visi Otomatis dengan Raspberry Pi dan OpenCV
  8. Membangun Pengenali Angka Tangan Raspberry Pi dengan TensorFlow & OpenCV
  9. Membangun Rover Windows IoT Core dengan Raspberry Pi 2 – Panduan Pemula hingga Lanjutan
  10. Memperluas GoPiGo v2 pada Windows 10 IoT Core untuk Raspberry Pi 3