Índice:
- Etapa 1: Coisas usadas neste projeto
- Etapa 2: Conexão de Hardware
- Etapa 3: Programação de software
- Etapa 4: feito
Vídeo: Smart Lock de reconhecimento facial com LTE Pi HAT: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
O reconhecimento de rosto está se tornando cada vez mais usado, podemos usá-lo para fazer um bloqueio inteligente.
Etapa 1: Coisas usadas neste projeto
Componentes de hardware
- Raspberry Pi 3 Modelo B
- Módulo de câmera Raspberry Pi V2
- Grove - Relé
- LTE Cat 1 Pi HAT (Europa)
- Tela LCD IPS HDMI 1200x1980 de 10,1 polegadas
Aplicativos de software e serviços online
- WinSCP
- Notepad ++
Etapa 2: Conexão de Hardware
Neste projeto, planejamos tirar fotos com picamera e reconhecer rostos nelas e, em seguida, exibir o resultado do reconhecimento na tela. Se os rostos forem conhecidos, abra a porta e envie quem abriu a porta para o número de telefone especificado via SMS.
Portanto, você precisa conectar uma câmera à interface da câmera do Raspberry Pi e instalar a antena e o Grove - Relay para o chapéu LTE Pi e, em seguida, conecte o HAT ao seu Pi. A tela pode ser conectada ao Raspberry Pi por meio de um cabo HDMI, não se esqueça de conectar a alimentação à tela e ao Pi.
Etapa 3: Programação de software
Reconhecimento facial
Obrigado por Adam Geitgey e seu projeto Face Recognition, podemos usar a biblioteca de reconhecimento facial mais simples do mundo no Raspberry Pi. As etapas a seguir mostrarão como configurar o reconhecimento de rosto em Pi.
Etapa 1. Use raspi-config para configurar a câmera e a memória GPU.
sudo raspi-config
Escolhendo Opções de Interface - Câmera para habilitar a picamera, então escolhendo Opções Avançadas - Divisão de Memória para definir a memória GPU, ela deve ser alterada para 64. Após terminar, reinicie seu Raspberry Pi.
Etapa 2. Instale as bibliotecas necessárias.
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
Etapa 3. Faça picamerea support array.
sudo pip3 install --upgrade picamera [array]
Etapa 4. Instale o dlib e o reconhecimento facial.
sudo pip3 install dlib
sudo pip3 install face_recognition
Etapa 5. Baixe e execute um exemplo de reconhecimento facial
git clone --single-branch
cd./face_recognition/examples python3 facerec_on_raspberry_pi.py
AVISO: Se você obteve ImportError: libatlas.so.3: não é possível abrir o arquivo de objeto compartilhado: Não existe esse arquivo ou diretório, execute o seguinte comando para corrigi-lo.
Retransmissão
Quando o reconhecimento de rosto estiver pronto, podemos continuar a adicionar recursos adicionais. Conectamos o Grove-Relay ao LTE Cat 1 Pi HAT, mas ele usa a porta digital em vez da porta I2C.
Esta é a pinagem do Raspberry Pi 3B, podemos ver o pino SDA e o pino SCL localizados nos pinos 3 e 5 da placa.
Portanto, podemos controlar o relé por meio de saídas de sinal digital para o pino 5. Execute o programa python seguinte em seu Raspberry Pi, se nada der errado, você ouvirá um Ti-Ta do relé.
importar RPi. GPIO como GPIO
RELAY_PIN = 5 GPIO.setmode (GPIO. BOARD) GPIO.setup (RELAY_PIN, GPIO. OUT) GPIO.output (RELAY_PIN, GPIO. HIGH)
Então aqui está a ideia, carregamos rostos conhecidos de uma pasta, reconhecemos rostos capturados por picamera, se o rosto está na pasta, controlamos o relé para destravar a porta. Podemos empacotá-los em uma classe, aqui está o método load_known_faces () e o método unlock (), o programa completo pode ser baixado no final deste artigo.
def load_known_faces (self):
faces_conhecidas = os.listdir (self._caminho_faces_conhecidas) para face_conhecida em faces_conhecidas: self._nome_faces_conhecidas.append (face_conhecida [0: len (face_conhecida) - len ('. jpg')]) imagem_conhecida_face = face_recognition.load_image_faces) self._ known_faces_encoding.append (face_recognition.face_encodings (known_face_image) [0]) retornar len (self._ known_faces_encoding) def unlock (self): if self._ matched.count (True)> 0: GPIO.output (self._ relay_pin, GPIO. HIGH) print ('Porta aberta') time.sleep (5) GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True self._ retry_count + = 1 print ('Por favor, tente novamente… { } '. format (self._ retry_count)) return False
Pense transcendentalmente, podemos mostrar a imagem que reconheceu, as bibliotecas PIL e matplotlib podem ser úteis, dentre elas, o matplotlib precisa ser instalado manualmente, execute este comando no terminal do seu Raspberry Pi.
sudo pip3 install matplotlib
Importe-os em seu código e altere o método block in unlock () desta forma:
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 ('Porta aberta') plt.pause (3) plt.close () GPIO.output (self._ relay_pin, GPIO. LOW) self._ reset_recognise_params () return True
Agora, se um rosto for reconhecido, a imagem da pasta será exibida na tela.
SMS
Às vezes queremos saber quem está em nossa sala, e agora há um lugar para LTE Cat 1 Pi HAT. Conecte um cartão SIM a ele e siga as etapas abaixo para testar se funciona ou não.
Etapa 1. Habilite UART0 no Raspberry Pi
Use o nano para editar config.txt em / boot
sudo nano /boot/config.txt
adicione dtoverlay = pi3-disable-bt na parte inferior e desative o serviço hciuart
sudo systemctl disable hciuart
em seguida, exclua console = serial0, 115200 em cmdline.txt em / boot
sudo nano /boot/cmdline.txt
Depois de tudo feito, você deve reiniciar o Raspberry Pi.
Etapa 2. Baixe o exemplo e execute-o.
Abra um terminal em seu Raspberry Pi, digite estes comandos linha por linha.
cd ~
git clone https://github.com/Seeed-Studio/ublox_lara_r2_pi_hat.git cd ublox_lara_r2_pi_hat sudo python setup.py install cd test sudo python test01.py
Se você vir essas saídas em seu terminal, o LTE Cat 1 Pi HAT funciona bem.
Cabeçalho GPIO de 40 pinos detectado
Habilitando CTS0 e RTS0 em GPIOs 16 e 17 rts cts ao despertar … nome do módulo: LARA-R211 RSSI: 3
Agora que sabíamos que o HAT funciona bem, como usá-lo para enviar SMS? A primeira coisa que você precisa saber é que o Raspberry Pi se comunica com o HAT por meio de comandos de envio AT pelo UART. Você pode enviar comandos AT para LTE HAT executando este código em python
de importação ublox_lara_r2 *
u = Ublox_lara_r2 () u.initialize () u.reset_power () # Fechar massagem de depuração u.debug = False u.sendAT ('')
O comando AT para enviar SMS é o seguinte
AT + CMGF = 1
AT + CMGS =
então aqui está o método _send_sms ():
def _send_sms (self):
if self._ phonenum == None: retorna False para o destravador em self._ reconhece_face_names (): if self._ ublox.sendAT ('AT + CMGF = 1 / r / n'): print (self._ ublox.response) se self. _ublox.sendAT ('AT + CMGS = "{}" / r / n'.format (self._ phonenum)): print (self._ ublox.response) if self._ ublox.sendAT (' {} entrar na sala. / x1a'.format (unlocker)): print (self._ ublox.response)
AVISO: A biblioteca LTE Cat 1 Pi HAT escrita por python2, que não é muito compatível com python3, se você quiser usá-la com reconhecimento facial, faça o download do link no final deste artigo.
Recomendado:
Abellcadabra (sistema de travamento de porta com reconhecimento facial): 9 etapas
Abellcadabra (Sistema de Trava de Porta de Reconhecimento de Rosto): Durante a quarentena, tentei encontrar uma maneira de matar o tempo construindo um sistema de reconhecimento de rosto para a porta da casa. Eu chamei de Abellcadabra - que é a combinação entre Abracadabra, uma frase mágica com campainha que eu só pego a campainha. LOL
Espelho de reconhecimento facial com compartimento secreto: 15 etapas (com fotos)
Espelho de reconhecimento facial com compartimento secreto: Sempre fiquei intrigado com os compartimentos secretos sempre criativos usados em histórias, filmes e coisas do gênero. Então, quando eu vi o Concurso de Compartimento Secreto, decidi experimentar a ideia sozinho e fazer um espelho de aparência comum que abre um s
Fechadura de reconhecimento facial: 8 etapas
Fechadura de reconhecimento facial: Em construção há cerca de um mês, apresento a fechadura de reconhecimento facial! Tentei fazer com que parecesse o mais elegante possível, mas só consigo fazer tanto quanto um garoto de 13 anos. Esta fechadura de reconhecimento facial é operada por um Raspberry Pi 4, com uma batente portátil especial
Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas
Reconhecimento e identificação facial | Arduino Face ID usando OpenCV Python e Arduino .: O reconhecimento facial AKA Face ID é um dos recursos mais importantes em telefones celulares hoje em dia. Então, eu tinha uma pergunta " posso ter um ID de rosto para meu projeto Arduino? e a resposta é sim … Minha jornada começou da seguinte maneira: Etapa 1: Acesso a nós
Reconhecimento facial na prática: 21 etapas
Reconhecimento Facial na Prática: Este é um assunto que me fascina tanto que me faz perder o sono: Visão computacional, a detecção de objetos e pessoas através de um modelo pré-treinado