La reconnaissance faciale a déjà conquis le monde entier. Tous les principaux pays utilisent déjà cette fonctionnalité utile. Pourquoi ne pas rendre la vie des gens encore plus pratique et ne pas intégrer la reconnaissance faciale dans la consigne?

Pour cela, nous avons besoin
- facenet réseau neuronal téléchargé
- un ordinateur
- keras
- opencv
Depuis le début nous importons des dépendances
from keras.models import load_model import numpy as np from keras.utils import plot_model import math import glob import os import cv2 import serial
model_path = 'facenet_keras.h5' model = load_model(model_path) cascade_path = 'haarcascade_frontalface_alt2.xml'
Une fonction qui formate une image et la conduit à travers un réseau de neurones
def calc_embs(imgs, margin, batch_size): fram1e = cv2.resize(imgs,(160,160)) ofg2 = np.array(fram1e) aligned_images = prewhiten(ofg2) pd = [] x_train = np.array([aligned_images]) embs1 = model.predict_on_batch(x_train) embs1.reshape(1,-1) embs = l2_normalize(np.concatenate(embs1)) return embs
Fonction qui, lorsqu'un bouton est enfoncé pour la première fois, enregistre le visage d'une personne qui a traversé un réseau de neurones, et une deuxième fois déjà, après avoir conduit un nouveau visage à travers le réseau, le compare avec le visage enregistré
Eh bien et maine. Tout commence par l'arduino, lorsque la lettre B est introduite dans la verrue, ce qui signifie que le bouton est enfoncé. Ensuite, une commande est envoyée à l'arduino pour ouvrir la boîte et la fonction de reconnaissance et d'enregistrement des visages est lancée. Ensuite, si la commande d'appuyer à nouveau sur le bouton provenait de l'arduino, nous recommençons la fonction de reconnaissance et si les visages convergent, alors ouvrons la boîte.
ser = serial.Serial('COM3', 9600, write_timeout=1, timeout=0.1) print(ser.name)
La vidéo est jointe.
Comment distinguer le visage d'une personne d'une photographie du visage d'une personne - je n'ai pas encore pensé.
Lien vers github où se trouve le script