İçindekiler:

LTE Pi HAT ile Yüz Tanıma Akıllı Kilit: 4 Adım
LTE Pi HAT ile Yüz Tanıma Akıllı Kilit: 4 Adım

Video: LTE Pi HAT ile Yüz Tanıma Akıllı Kilit: 4 Adım

Video: LTE Pi HAT ile Yüz Tanıma Akıllı Kilit: 4 Adım
Video: Reeder telefonun gerçekten 3 kamerası mı var ? 2024, Temmuz
Anonim
LTE Pi HAT ile Yüz Tanıma Akıllı Kilit
LTE Pi HAT ile Yüz Tanıma Akıllı Kilit

Yüz tanıma giderek daha yaygın bir şekilde kullanılıyor, bunu akıllı bir kilit yapmak için kullanabiliriz.

Adım 1: Bu Projede Kullanılanlar

Donanım bileşenleri

  • Raspberry Pi 3 Model B
  • Raspberry Pi Kamera Modülü V2
  • Koru - Röle
  • LTE Cat 1 Pi HAT (Avrupa)
  • 10.1 inç 1200x1980 HDMI IPS LCD Ekran

Yazılım uygulamaları ve çevrimiçi hizmetler

  • WinSCP
  • not defteri++

2. Adım: Donanım Bağlantısı

Donanım Bağlantısı
Donanım Bağlantısı

Bu projede pikamera ile fotoğraf çekip içindeki yüzleri tanımayı ve ardından tanıma sonucunu ekranda göstermeyi planlıyoruz. Tanınan yüzler varsa kapıyı açın ve kapıyı kimin açtığını belirtilen telefon numarasına SMS ile gönderin.

Bu yüzden Raspberry Pi'nin kamera arayüzüne bir kamera bağlamanız ve anten ve Grove - Röleyi LTE Pi şapkasına takmanız, ardından HAT'ı Pi'nize takmanız gerekir. Raspberry Pi'ye bir HDMI kablosu ile ekran bağlanabilir, ekranınıza ve Pi'ye güç bağlamayı unutmayın.

Adım 3: Yazılım Programlama

Yüz tanıma

Adam Geitgey ve Yüz Tanıma projesi için teşekkürler, Raspberry Pi üzerinde dünyanın en basit yüz tanıma kütüphanesini kullanabiliriz. Aşağıdaki adımlar size Pi'de yüz tanımayı nasıl kuracağınızı gösterecektir.

Adım 1. Kamera ve GPU belleğini yapılandırmak için raspi-config kullanın.

sudo raspi yapılandırması

Arayüz Seçeneklerinin Belirlenmesi - Picamera'yı etkinleştirmek için Kamera, ardından GPU belleğini ayarlamak için Gelişmiş Seçenekler - Bellek Bölme'yi seçin, 64 olarak değiştirilmelidir. Bitirdikten sonra Raspberry Pi'nizi yeniden başlatın.

Adım 2. Gerekli kitaplıkları kurun.

sudo apt-get güncellemesi

sudo apt-get yükseltmesi sudo apt-get install build-essential / cmake / gfortran / git / wget / curl / Graphicsmagick / 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-get clean

Adım 3. Picamerea'nın diziyi desteklemesini sağlayın.

sudo pip3 install --upgrade picamera[dizi]

Adım 4. dlib ve yüz tanımayı kurun.

sudo pip3 dlib'i kurun

sudo pip3 face_recognition'ı kurun

Adım 5. Yüz tanıma örneğini indirin ve çalıştırın

git klon --single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

DİKKAT: ImportError: libatlas.so.3: paylaşılan nesne dosyasını açamıyorsanız: Böyle bir dosya veya dizin yok, düzeltmek için aşağıdaki komutu çalıştırın.

Röle

Yüz tanıma hazır olduğunda ek özellikler eklemeye devam edebiliriz. Grove - Relay'i LTE Cat 1 Pi HAT'a bağladık, ancak I2C portu yerine dijital portu kullanıyor.

Bu Raspberry Pi 3B için pin çıkışıdır, kartın pin 3 ve pin 5'inde bulunan SDA pinini ve SCL pinini görebiliriz.

resim
resim

Böylece röleyi pin 5'e dijital sinyal vererek kontrol edebiliyoruz. Raspberry Pi'nizde aşağıdaki python programını çalıştırın, eğer bir aksilik olmazsa röleden Ti-Ta sesi duyacaksınız.

RPi. GPIO'yu GPIO olarak içe aktar

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

İşte fikir, bir klasörden bilinen yüzleri yükleriz, picamera tarafından yakalanan yüzleri tanırız, eğer klasördeki yüz, kapının kilidini açmak için röleyi kontrol eder. Bunları bir sınıfa paketleyebiliriz, işte load_known_faces() yöntemi ve unlock() yöntemi, tamamlanan program bu makalenin sonunda indirilebilir.

def load_known_faces(self):

bilinen_yüzlerde bilinen_yüz için bilinen_yüzler = os.listdir(self._known_faces_path): self._known_faces_name.append(known_face[0: len(known_face) - len('.jpg')]) bilinen_face_image = face_recognition.load_image_file(self._known_faces_path) self._known_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) print('Kapı açıldı') time.sleep(5) GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() return True self._retry_count += 1 print('Lütfen tekrar deneyin…{ }'.format(self._retry_count)) false döndür

Transandantal düşünün, kimin tanıdığını gösterebiliriz, PIL ve matplotlib kitaplıklarının yardımcı olabileceği, bunların arasında matplotlib'in manuel olarak yüklenmesi gerekiyor, bu komutu Raspberry Pi'nizin terminalinde çalıştırın.

sudo pip3 matplotlib yükleyin

Bunları kodunuza aktarın ve şunun gibi unlock() yönteminde if bloğunu değiştirin:

img = Image.open('{}/{}.jpg'.format(self._known_faces_path, self._known_faces_name[0]))

plt.imshow(img) plt.ion() GPIO.output(self._relay_pin, GPIO. HIGH) print('Kapı açıldı') plt.pause(3) plt.close() GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() true döndürür

Şimdi, bir yüz tanınırsa, klasördeki resim ekranda görüntülenecektir.

resim
resim

SMS

Bazen odamızda kimin olduğunu bilmek istiyoruz ve artık LTE Cat 1 Pi HAT için bir yer var. Bir SIM kart takın ve çalışıp çalışmadığını test etmek için aşağıdaki adımları izleyin.

Adım 1. Raspberry Pi'de UART0'ı Etkinleştirin

/boot'ta config.txt dosyasını düzenlemek için nano'yu kullanın

sudo nano /boot/config.txt

altına dtoverlay=pi3-disable-bt ekleyin ve hciuart hizmetini devre dışı bırakın

sudo systemctl hciuart'ı devre dışı bırak

daha sonra /boot'ta cmdline.txt'de console=serial0, 115200'ü silin

sudo nano /boot/cmdline.txt

Her şey bittikten sonra Raspberry Pi'nizi yeniden başlatmalısınız.

Adım 2. Örneği indirin ve çalıştırın.

Raspberry Pi'nizde bir terminal açın, bu komutları satır satır yazın.

cd ~

git klon https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py kurulum cd testi sudo python test01.py

Bu çıkışları terminalinizde görüyorsanız, LTE Cat 1 Pi HAT iyi çalışır.

40 pinli GPIO başlığı algılandı

GPIO'larda CTS0 ve RTS0'ı etkinleştirme 16 ve 17 rts cts uyanırken… modül adı: LARA-R211 RSSI: 3

Artık HAT'ın iyi çalıştığını biliyorduk, SMS göndermek için nasıl kullanılır? Bilmeniz gereken ilk şey, Raspberry Pi'nin HAT ile UART tarafından gönderilen AT komutları aracılığıyla iletişim kurduğudur. Bu kodu python'da çalıştırarak AT komutlarını LTE HAT'a gönderebilirsiniz.

ublox_lara_r2'den içe aktarma *

u = Ublox_lara_r2() u.initialize() u.reset_power() # Hata ayıklama masajını kapat u.debug = Yanlış u.sendAT('')

SMS göndermek için AT komutu aşağıdaki gibidir

AT+CMGF=1

AT+CMGS=

işte _send_sms() yöntemi:

tanım _send_sms(self):

if self._phonenum == Yok: self._recognise_face_names() içindeki kilit açma için False döndür: if self._ublox.sendAT('AT+CMGF=1\r\n'): eğer self ise print(self._ublox.response). _ublox.sendAT('AT+CMGS="{}"\r\n'.format(self._phonenum)): print(self._ublox.response) if self._ublox.sendAT('{} odaya girin.\ x1a'.format(kilit açma)): print(self._ublox.response)

DİKKAT: LTE Cat 1 Pi HAT'ın python2 tarafından yazılmış, python3 ile pek uyumlu olmayan kütüphanesini yüz tanıma ile kullanmak isterseniz lütfen bu yazının sonundaki linkten indirin.

Önerilen: