Съдържание:

Smart Lock за разпознаване на лица с LTE Pi HAT: 4 стъпки
Smart Lock за разпознаване на лица с LTE Pi HAT: 4 стъпки

Видео: Smart Lock за разпознаване на лица с LTE Pi HAT: 4 стъпки

Видео: Smart Lock за разпознаване на лица с LTE Pi HAT: 4 стъпки
Видео: 5-ZOOM VANDAL-RESISTANT CAMERA WITH PEOPLE DETECTION AND TRACKING 2024, Декември
Anonim
Smart Lock за разпознаване на лица с LTE Pi HAT
Smart Lock за разпознаване на лица с LTE Pi HAT

Разпознаването на лица става все по -широко използвано, можем да го използваме, за да направим интелигентно заключване.

Стъпка 1: Нещата, използвани в този проект

Хардуерни компоненти

  • Raspberry Pi 3 Модел B
  • Модул за камера на Raspberry Pi V2
  • Гроув - Реле
  • LTE Cat 1 Pi HAT (Европа)
  • 10,1 инчов 1200x1980 HDMI IPS LCD дисплей

Софтуерни приложения и онлайн услуги

  • WinSCP
  • Notepad ++

Стъпка 2: Хардуерна връзка

Хардуерна връзка
Хардуерна връзка

В този проект планираме да правим снимки с пикамера и да разпознаваме лица в тях, след което да показваме резултата от разпознаването на екрана. Ако са известни лица, отворете вратата и изпратете кой е отворил вратата до посочен телефонен номер чрез SMS.

Така че трябва да свържете камера към интерфейса на камерата на Raspberry Pi и да инсталирате антена и Grove - Relay към LTE Pi шапка, след което да включите HAT към вашия Pi. Екранът може да бъде свързан към Raspberry Pi чрез HDMI кабел, не забравяйте да свържете захранването към екрана и Pi.

Стъпка 3: Софтуерно програмиране

Разпознаване на лица

Благодаря за Адам Гейтгей и неговия проект за разпознаване на лица, можем да използваме най -простата библиотека за разпознаване на лица в света на Raspberry Pi. Следващите стъпки ще ви покажат как да настроите разпознаването на лица на Pi.

Стъпка 1. Използвайте raspi-config, за да конфигурирате камерата и GPU паметта.

sudo raspi-config

Избор на опции за интерфейс - Камера, за да активирате пикамерата, след това изберете Разширени опции - Разделяне на паметта, за да зададете памет на графичния процесор, тя трябва да бъде променена на 64. След като приключите, рестартирайте вашия Raspberry Pi.

Стъпка 2. Инсталирайте необходимите библиотеки.

sudo apt-get update

sudo apt-get надстройка 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

Стъпка 3. Направете пикамерия поддържа масив.

sudo pip3 install --upgrade picamera [масив]

Стъпка 4. Инсталирайте dlib и разпознаване на лица.

sudo pip3 инсталирайте dlib

sudo pip3 инсталирайте face_recognition

Стъпка 5. Изтеглете и стартирайте пример за разпознаване на лица

git clone-single-branch

cd./face_recognition/examples python3 facerec_on_raspberry_pi.py

ЗАБЕЛЕЖКА: Ако имате ImportError: libatlas.so.3: не може да отвори споделен обект файл: Няма такъв файл или директория, изпълнете следната команда, за да го поправите.

Реле

Когато разпознаването на лица е готово, можем да продължим да добавяме допълнителни функции. Свързахме Grove - Relay към LTE Cat 1 Pi HAT, но той използва цифров порт, а не I2C порт.

Това е pin-out за Raspberry Pi 3B, можем да видим SDA щифт и SCL щифт, разположени в щифт 3 и щифт 5 на платката.

Образ
Образ

Така че можем да контролираме релето чрез изходен цифров сигнал към пин 5. Изпълнете следвайки програмата python на вашия Raspberry Pi, ако нищо не се обърка, ще чуете Ti-Ta от релето.

импортирайте RPi. GPIO като GPIO

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

Ето идеята, зареждаме известни лица от папка, разпознаваме лица, заснети от пикамера, ако лицето в папката, контролно реле за отключване на вратата. Можем да ги опаковаме в клас, тук е методът load_known_faces () и метод unlock (), завършената програма може да бъде изтеглена в края на тази статия.

def load_known_faces (self):

known_faces = os.listdir (self._ known_faces_path) за known_face в known_faces: self._ known_faces_name.append (known_face [0: len (known_face) - len ('. jpg')]) known_face_image = face_recognition.load_image_file (self._ known_faces_athp) 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 ('Door open') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count += 1 print ('Моля, опитайте отново … { } '. format (self._ retry_count)) return False

Мислете трансцендентално, можем да покажем картината кой е разпознал, библиотеките PIL и matplotlib могат да бъдат полезни, сред тях matplotlib трябва да се инсталира ръчно, изпълнете тази команда в терминала на Raspberry Pi.

sudo pip3 инсталирайте matplotlib

Импортирайте ги във вашия код и променете if block in unlock () метода по следния начин:

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 ('Door open') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () връща True

Сега, ако лице е разпознато, картината в папката ще се покаже на екрана.

Образ
Образ

СМС

Понякога искаме да знаем кой е в стаята ни и сега има място за LTE Cat 1 Pi HAT. Включете SIM карта към нея и следвайте стъпките, за да проверите дали тя ще работи или не.

Стъпка 1. Активирайте UART0 в Raspberry Pi

Използвайте nano, за да редактирате config.txt в /boot

sudo nano /boot/config.txt

добавете dtoverlay = pi3-disable-bt в дъното му и деактивирайте услугата hciuart

sudo systemctl деактивирайте hciuart

след това изтрийте console = serial0, 115200 в cmdline.txt в /boot

sudo nano /boot/cmdline.txt

След като всичко е направено, трябва да рестартирате вашия Raspberry Pi.

Стъпка 2. Изтеглете пример и го стартирайте.

Отворете терминал на вашия Raspberry Pi, въведете тези команди в него ред по ред.

cd ~

git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py инсталирайте cd тест sudo python test01.py

Ако виждате тези изходи във вашия терминал, LTE Cat 1 Pi HAT работи добре.

Открит е 40-пинов GPIO заглавие

Активиране на CTS0 и RTS0 на GPIO 16 и 17 rts cts при събуждане … име на модул: LARA-R211 RSSI: 3

Сега знаехме, че HAT работи добре, как да го използваме за изпращане на SMS? Първото нещо, което трябва да знаете, е, че Raspberry Pi комуникира с HAT чрез изпращане на AT команди от UART. Можете да изпращате AT команди на LTE HAT, като изпълните този код в python

от ublox_lara_r2 внос *

u = Ublox_lara_r2 () u.initialize () u.reset_power () # Затвори масаж за отстраняване на грешки u.debug = False u.sendAT ('')

Командата AT за изпращане на SMS е следната

AT+CMGF = 1

AT+CMGS =

така че тук е методът _send_sms ():

def _send_sms (self):

if self._ phonenum == None: връщане на False за отключване в self._ Reconise_face_names (): if self._ ublox.sendAT ('AT+CMGF = 1 / r / n'): print (self._ ublox.response) if self. _ublox.sendAT ('AT+CMGS = "{}" / r / n'.format (self._ phonenum)): печат (self._ ublox.response), ако self._ ublox.sendAT (' {} влезте в стаята. / x1a'.format (unlocker)): print (self._ ublox.response)

ЗАБЕЛЕЖКА: Библиотеката на LTE Cat 1 Pi HAT, написана от python2, която не е много съвместима с python3, ако искате да я използвате с разпознаване на лица, моля, изтеглете я от връзката в края на тази статия.

Препоръчано: