Inhoudsopgave:
- Stap 1: Dingen die in dit project worden gebruikt
- Stap 2: Hardwareverbinding
- Stap 3: Softwareprogrammering
- Stap 4: Klaar
Video: Gezichtsherkenning Smart Lock met LTE Pi HAT - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Gezichtsherkenning wordt steeds meer gebruikt, we kunnen er een slim slot van maken.
Stap 1: Dingen die in dit project worden gebruikt
Hardware onderdelen
- Raspberry Pi 3 Model B
- Raspberry Pi-cameramodule V2
- Grove - Estafette
- LTE Cat 1 Pi HOED (Europa)
- 10,1-inch 1200x1980 HDMI IPS LCD-scherm
Software-apps en online services
- WinSCP
- Kladblok++
Stap 2: Hardwareverbinding
In dit project zijn we van plan om foto's te maken met picamera en gezichten erin te herkennen, en vervolgens het herkenningsresultaat op het scherm weer te geven. Als gezichten bekend zijn, open dan de deur en stuur via sms wie de deur heeft geopend naar het opgegeven telefoonnummer.
Je moet dus een camera aansluiten op de camera-interface van Raspberry Pi en een antenne en Grove - Relay op de LTE Pi-hoed installeren, en vervolgens HAT op je Pi aansluiten. Scherm kan via een HDMI-kabel op Raspberry Pi worden aangesloten, vergeet niet de stroom op je scherm en Pi aan te sluiten.
Stap 3: Softwareprogrammering
Gezichtsherkenning
Bedankt voor Adam Geitgey en zijn gezichtsherkenningsproject, we kunnen 's werelds eenvoudigste gezichtsherkenningsbibliotheek op Raspberry Pi gebruiken. De volgende stappen laten u zien hoe u gezichtsherkenning op Pi instelt.
Stap 1. Gebruik raspi-config om het camera- en GPU-geheugen te configureren.
sudo raspi-config
Interface-opties kiezen -- Camera om de picamera in te schakelen, dan Geavanceerde opties kiezen -- Geheugen splitsen om GPU-geheugen in te stellen, dit moet worden gewijzigd in 64. Na het voltooien, start u uw Raspberry Pi opnieuw op.
Stap 2. Installeer de vereiste bibliotheken.
sudo apt-get update
sudo apt-get upgrade 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
Stap 3. Maak picamerea ondersteunt array.
sudo pip3 install --upgrade picamera[array]
Stap 4. Installeer dlib en gezichtsherkenning.
sudo pip3 installeer dlib
sudo pip3 installeer face_recognition
Stap 5. Voorbeeld van gezichtsherkenning downloaden en uitvoeren
git clone --single-branch
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
KENNISGEVING: Als u ImportError: libatlas.so.3: kan het gedeelde objectbestand niet openen: geen dergelijk bestand of map, voer dan de volgende opdracht uit om het te repareren.
Relais
Als gezichtsherkenning klaar is, kunnen we doorgaan met het toevoegen van extra functies. We hebben Grove - Relay aangesloten op LTE Cat 1 Pi HAT, maar het gebruikt een digitale poort in plaats van een I2C-poort.
Dit is pin-out voor Raspberry Pi 3B, we kunnen de SDA-pin en SCL-pin zien in pin 3 en pin 5 van het bord.
Dus we kunnen het relais besturen door een digitaal signaal uit te voeren naar pin 5. Voer het volgende python-programma uit op je Raspberry Pi, als er niets misgaat, hoor je een Ti-Ta van relais.
importeer RPi. GPIO als GPIO
RELAY_PIN = 5 GPIO.setmode(GPIO. BOARD) GPIO.setup(RELAY_PIN, GPIO. OUT) GPIO.output(RELAY_PIN, GPIO. HIGH)
Dus hier is het idee, we laden bekende gezichten uit een map, herkennen gezichten die zijn vastgelegd door picamera, als het gezicht in de map staat, stuurrelais om de deur te ontgrendelen. We kunnen ze in een klasse verpakken, hier is de methode load_known_faces() en de methode unlock(), het voltooide programma kan aan het einde van dit artikel worden gedownload.
def load_known_faces(zelf):
bekende_gezichten = os.listdir(zelf._bekende_gezichten_pad) voor bekend_gezicht in bekende_gezichten: zelf._bekende_faces_name.append(known_face[0: len(known_face) - len('.jpg')]) famous_face_image = face_recognition.load_image_file(self._known_faces_) 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('Deur geopend') time.sleep(5) GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() return True self._retry_count += 1 print('Probeer het opnieuw…{ }'.format(self._retry_count)) return False
Denk transcendent, we kunnen de foto laten zien die herkende, bibliotheken PIL en matplotlib kunnen nuttig zijn, waaronder matplotlib moet handmatig worden geïnstalleerd, voer deze opdracht uit in de terminal van uw Raspberry Pi.
sudo pip3 matplotlib installeren
Importeer ze in je code, en verander if block in unlock() methode als volgt:
img = Afbeelding.open('{}/{}.jpg'.format(zelf._bekende_gezichten_pad, zelf._bekende_faces_name[0]))
plt.imshow(img) plt.ion() GPIO.output(self._relay_pin, GPIO. HIGH) print('Deur geopend') plt.pause(3) plt.close() GPIO.output(self._relay_pin, GPIO. LOW) self._reset_recognise_params() return True
Als er nu een gezicht wordt herkend, wordt de afbeelding in de map op het scherm weergegeven.
sms
Soms willen we weten wie er in onze kamer is, en nu is er plaats voor LTE Cat 1 Pi HAT. Sluit er een simkaart op aan en volg de stappen om te testen of het werkt of niet.
Stap 1. Schakel UART0 in Raspberry Pi in
Gebruik nano om config.txt te bewerken in /boot
sudo nano /boot/config.txt
voeg dtoverlay=pi3-disable-bt toe aan de onderkant ervan en schakel de hciuart-service uit
sudo systemctl schakel hciuart uit
verwijder vervolgens console=serial0, 115200 in cmdline.txt in /boot
sudo nano /boot/cmdline.txt
Nadat alles is gedaan, moet je je Raspberry Pi opnieuw opstarten.
Stap 2. Download het voorbeeld en voer het uit.
Open een terminal op je Raspberry Pi, typ deze opdracht regel voor regel erin.
cd ~
git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py installatie-cd-test sudo python test01.py
Als u deze uitgangen in uw terminal ziet, werkt de LTE Cat 1 Pi HAT goed.
40-pins GPIO-header gedetecteerd
CTS0 en RTS0 inschakelen op GPIO's 16 en 17 rts cts bij het ontwaken… modulenaam: LARA-R211 RSSI: 3
Nu wisten we dat de HAT goed werkt, hoe kunnen we hem gebruiken om sms'jes te verzenden? Het eerste dat u moet weten, is dat de Raspberry Pi met de HAT communiceert via AT-opdrachten via UART. Je kunt AT-opdrachten naar LTE HAT sturen door deze code in python uit te voeren
van ublox_lara_r2 import *
u = Ublox_lara_r2() u.initialize() u.reset_power() # Sluit debug massage u.debug = False u.sendAT('')
Het AT-commando voor het verzenden van sms is als volgt:
AT+CMGF=1
AT+CMGS=
dus hier is de _send_sms() methode:
def _send_sms(zelf):
if self._phonenum == Geen: return False voor unlocker in self._recognise_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)): print(self._ublox.response) als self._ublox.sendAT('{} de kamer binnenkomt.\ x1a'.format(unlocker)): print(self._ublox.response)
KENNISGEVING: De bibliotheek van de LTE Cat 1 Pi HAT, geschreven door python2, die niet erg compatibel is met python3, als u deze wilt gebruiken met gezichtsherkenning, download deze dan via de link aan het einde van dit artikel.
Aanbevolen:
Abellcadabra (gezichtsherkenning deurvergrendelingssysteem): 9 stappen
Abellcadabra (Gezichtsherkenning Deurvergrendelingssysteem): Tijdens de quarantaine probeerde ik een manier te vinden om de tijd te doden door gezichtsherkenning te bouwen voor de huisdeur. Ik noemde het Abellcadabra - wat een combinatie is tussen Abracadabra, een magische uitdrukking met deurbel waarvan ik alleen de bel neem. LOL
Gezichtsherkenning en identificatie - Arduino Face ID met OpenCV Python en Arduino: 6 stappen
Gezichtsherkenning en identificatie | Arduino Face ID met behulp van OpenCV Python en Arduino. Gezichtsherkenning AKA face ID is tegenwoordig een van de belangrijkste functies op mobiele telefoons. Dus ik had een vraag "mag ik een gezichts-ID hebben voor mijn Arduino-project" en het antwoord is ja… Mijn reis begon als volgt: Stap 1: Toegang tot wij
Gezichtsherkenning in de praktijk: 21 stappen
Gezichtsherkenning in de praktijk: dit is een onderwerp waar ik zo door gefascineerd ben, dat ik er bijna van wakker lig: computervisie, de detectie van objecten en mensen door een vooraf getraind model
ESP32 CAM Gezichtsherkenning met MQTT-ondersteuning - AI-denker: 4 stappen
ESP32 CAM Gezichtsherkenning met MQTT-ondersteuning | AI-Denker: Hallo! Ik wilde mijn code delen voor een project waar ik een ESP CAM met gezichtsherkenning nodig had, die gegevens naar MQTT kon sturen. Dus goed.. na misschien 7 uur zoeken door meerdere codevoorbeelden en zoeken naar wat is wat, heb ik finis
Opencv gezichtsherkenning: 4 stappen
Opencv-gezichtsherkenning: gezichtsherkenning is tegenwoordig heel gewoon, in veel toepassingen zoals smartphones, veel elektronische gadgets. Dit soort technologie omvat veel algoritmen en tools enz