Isi kandungan:

Kunci Pintar Pengecaman Wajah Dengan LTE Pi HAT: 4 Langkah
Kunci Pintar Pengecaman Wajah Dengan LTE Pi HAT: 4 Langkah

Video: Kunci Pintar Pengecaman Wajah Dengan LTE Pi HAT: 4 Langkah

Video: Kunci Pintar Pengecaman Wajah Dengan LTE Pi HAT: 4 Langkah
Video: Cara Teknologi Pengenal Wajah Mendeteksi Data Pribadi - Walaupun Pakai Masker Tetap Ketahuan Loh 2024, Disember
Anonim
Kunci Pintar Pengecaman Wajah Dengan LTE Pi HAT
Kunci Pintar Pengecaman Wajah Dengan LTE Pi HAT

Pengecaman wajah semakin banyak digunakan, kita boleh menggunakannya untuk membuat kunci pintar.

Langkah 1: Perkara Yang Digunakan dalam Projek Ini

Komponen perkakasan

  • Raspberry Pi 3 Model B
  • Modul Kamera Raspberry Pi V2
  • Grove - Relay
  • LTE Cat 1 Pi HAT (Eropah)
  • Paparan LCD IPS HDMI 10.1 inci 1200x1980

Aplikasi perisian dan perkhidmatan dalam talian

  • WinSCP
  • Notepad ++

Langkah 2: Sambungan Perkakasan

Sambungan Perkakasan
Sambungan Perkakasan

Dalam projek ini, kami merancang untuk mengambil gambar dengan picamera dan mengenali wajah di dalamnya, kemudian memaparkan hasil pengecaman di layar. Sekiranya diketahui wajah, buka pintu, dan hantar siapa yang membuka pintu ke nombor telefon yang ditentukan melalui SMS.

Oleh itu, anda perlu menyambungkan kamera ke antara muka kamera Raspberry Pi, dan memasang antena dan topi Grove - Relay ke LTE Pi, kemudian pasangkan HAT ke Pi anda. Skrin boleh disambungkan ke Raspberry Pi melalui kabel HDMI, jangan lupa sambungkan kuasa ke skrin dan Pi anda.

Langkah 3: Pengaturcaraan Perisian

Pengecaman Muka

Terima kasih untuk Adam Geitgey dan projek Pengecaman Wajahnya, kami dapat menggunakan perpustakaan pengecaman wajah termudah di dunia di Raspberry Pi. Langkah-langkah berikut akan menunjukkan kepada anda cara mengatur pengecaman wajah pada Pi.

Langkah 1. Gunakan raspi-config untuk mengkonfigurasi memori kamera dan GPU.

sudo raspi-config

Memilih Pilihan Antara Muka - Kamera untuk mengaktifkan picamera, kemudian memilih Pilihan Lanjutan - Memori Berpisah untuk menetapkan memori GPU, ia harus diubah menjadi 64. Setelah selesai, but semula Raspberry Pi anda.

Langkah 2. Pasang perpustakaan yang diperlukan.

sudo apt-get kemas kini

sudo apt-get upgrade sudo apt-get install build-essential / cmake / gfortran / git / wget / curl / graphicmagick / libgraphicsmagick1-dev / libatlas-dev / libavcodec-dev / libavformat-dev / libboost-all-dev / libgtk2. 0-dev / libjpeg-dev / liblapack-dev / libswscale-dev / pkg-config / python3-dev / python3-numpy / python3-picamera / python3-pip / zip sudo apt-clean

Langkah 3. Buat array sokongan picamerea.

sudo pip3 install - upgrade picamera [array]

Langkah 4. Pasang dlib dan pengecaman wajah.

sudo pip3 pasang dlib

sudo pip3 install face_recognition

Langkah 5. Muat turun dan jalankan contoh pengecaman wajah

git clone --single-branch

cd./face_recognition/contoh python3 facerec_on_raspberry_pi.py

PEMBERITAHUAN: Sekiranya anda mendapat ImportError: libatlas.so.3: tidak dapat membuka fail objek bersama: Tidak ada fail atau direktori seperti itu, jalankan perintah berikut untuk memperbaikinya.

Geganti

Apabila pengecaman wajah sudah siap, kita dapat terus menambahkan ciri tambahan. Kami menghubungkan Grove - Relay ke LTE Cat 1 Pi HAT, tetapi menggunakan port digital dan bukannya port I2C.

Ini adalah pin-out untuk Raspberry Pi 3B, kita dapat melihat pin SDA dan pin SCL terletak di pin 3 dan pin 5 papan.

Imej
Imej

Oleh itu, kita dapat mengawal relay dengan mengeluarkan isyarat digital ke pin 5. Jalankan mengikuti program python pada Raspberry Pi anda, jika tidak ada yang salah, anda akan mendengar Ti-Ta dari relay.

import RPi. GPIO sebagai GPIO

RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.output (RELAY_PIN, GPIO. HIGH)

Jadi inilah idenya, kami memuatkan wajah yang dikenali dari folder, mengenali wajah yang ditangkap oleh picamera, jika wajah di dalam folder, mengawal relay untuk membuka kunci pintu. Kami dapat mengemasnya ke kelas, berikut adalah kaedah load_known_faces () dan kaedah unlock (), program yang lengkap dapat dimuat turun pada akhir artikel ini.

def load_known_faces (diri):

known_faces = os.listdir (self._ known_faces_path) for known_face in known_faces: self._ known_faces_name.append (known_face [0: len (known_face) - len ('. jpg')]) known_face_image = face_recognition.load_image_file (self_face_faces (self_pile_faces)) diri._ dikenali_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) return len (self._ known_faces_encoding) def unlock (self): if self._ matched.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) cetakan ('Pintu dibuka') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return Self true._ retry_count + = 1 print ('Please try again … { } '. format (self._ retry_count)) kembali Palsu

Berfikir secara transenden, kita dapat menunjukkan gambar siapa yang dikenali, perpustakaan PIL dan matplotlib dapat membantu, antaranya, matplotlib perlu dipasang secara manual, jalankan perintah ini di terminal Raspberry Pi anda.

sudo pip3 pasang matplotlib

Importnya dalam kod anda, dan ubah jika kaedah blok dalam buka kunci () seperti ini:

img = Image.open ('{} / {}. jpg'.format (diri._ dikenali_faces_path, diri._ dikenali_faces_nama [0]))

plt.imshow (img) plt.ion () GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Door dibuka') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) diri._ reset_recognise_params () kembali Benar

Sekarang, jika wajah dikenali, gambar dalam folder akan dipaparkan di skrin.

Imej
Imej

SMS

Kadang-kadang kita ingin tahu siapa di bilik kita, dan sekarang ada tempat untuk LTE Cat 1 Pi HAT. Pasang kad SIM padanya, dan ikuti langkah-langkah untuk menguji sama ada ia berfungsi atau tidak.

Langkah 1. Dayakan UART0 di Raspberry Pi

Gunakan nano untuk mengedit config.txt dalam / but

sudo nano /boot/config.txt

tambahkan dtoverlay = pi3-disable-bt ke bahagian bawahnya, dan lumpuhkan perkhidmatan hciuart

sudo systemctl lumpuhkan hciuart

kemudian hapuskan konsol = serial0, 115200 dalam cmdline.txt dalam / but

sudo nano /boot/cmdline.txt

Setelah selesai, anda harus menghidupkan semula Raspberry Pi anda.

Langkah 2. Muat turun contoh dan jalankan.

Buka terminal pada Raspberry Pi anda, ketik perintah ini ke baris demi baris.

cd ~

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py pasang cd test sudo python test01.py

Sekiranya anda melihat output ini di terminal anda, LTE Cat 1 Pi HAT berfungsi dengan baik.

Header GPIO 40-pin dikesan

Mengaktifkan CTS0 dan RTS0 pada GPIO 16 dan 17 rts cts semasa bangun… nama modul: LARA-R211 RSSI: 3

Sekarang kita tahu HAT berfungsi dengan baik, bagaimana menggunakannya untuk menghantar SMS? Perkara pertama yang perlu anda ketahui ialah Raspberry Pi berkomunikasi dengan HAT melalui arahan AT AT oleh UART. Anda boleh menghantar arahan AT ke LTE HAT dengan menjalankan kod ini di python

dari import ublox_lara_r2 *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Tutup urut debug u.debug = Salah u.sendAT ('')

Perintah AT untuk menghantar SMS adalah seperti berikut

AT + CMGF = 1

AT + CMGS =

jadi inilah kaedah _send_sms ():

def _send_sms (diri):

jika diri._ phonenum == Tiada: kembalikan Salah untuk membuka kunci dalam diri._ mengenali_face_names (): jika diri._ ublox.sendAT ('AT + CMGF = 1 / r / n'): cetak (diri._ ublox.response) jika diri. _ublox.sendAT ('AT + CMGS = "{}" / r / n'.format (self._ phonenum)): cetak (self._ ublox.response) jika diri._ ublox.sendAT (' {} masuk ke ruangan. / x1a'. format (unlocker)): cetak (self._ ublox.response)

PEMBERITAHUAN: Perpustakaan LTE Cat 1 Pi HAT yang ditulis oleh python2, yang sangat tidak sesuai dengan python3, jika anda ingin menggunakannya dengan mengenali wajah, sila muat turun dari pautan dari akhir artikel ini.

Disyorkan: