рдлреЗрд╕ рд░рд┐рдХрдЧреНрдирд┐рд╢рди рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рд╕рднреА рдкреНрд░рдореБрдЦ рджреЗрд╢ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпреЛрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдПрдВ рд╕рд╛рдорд╛рди рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдЪреЗрд╣рд░реЗ рдХреА рдкрд╣рдЪрд╛рди рдХреЛ рдПрдореНрдмреЗрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ?

рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП
- рдбрд╛рдЙрдирд▓реЛрдб рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ facenet
- рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░
- keras
- opencv
рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
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'
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИ
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
рдПрдХ рдлрд╝рдВрдХреНрд╢рди, рдЬрдм рдкрд╣рд▓реА рдмрд╛рд░ рдПрдХ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЪреЗрд╣рд░реЗ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдЬреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЧреБрдЬрд░ рдЪреБрдХрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА, рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирдпрд╛ рдЪреЗрд╣рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рдЪреЗрд╣рд░реЗ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред
рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ рдЦреИрд░ рдФрд░ рдореЗрдиред рдпрд╣ рд╕рдм arduino рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдЕрдХреНрд╖рд░ B рдХреЛ рдорд╕реНрд╕реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдХрдорд╛рдВрдб рдХреЛ рдмреЙрдХреНрд╕ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдбрд┐рдиреЛ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЪреЗрд╣рд░реЗ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдФрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░, рдпрджрд┐ рдмрдЯрди рджрдмрд╛рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рдлрд┐рд░ рд╕реЗ рдЖрд░реНрдбрд┐рдиреЛ рд╕реЗ рдЖрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдлрд┐рд░ рд╕реЗ рдорд╛рдиреНрдпрддрд╛ рд╕рдорд╛рд░реЛрд╣ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЪреЗрд╣рд░реЗ рдЕрднрд┐рд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреЙрдХреНрд╕ рдЦреЛрд▓реЗрдВред
ser = serial.Serial('COM3', 9600, write_timeout=1, timeout=0.1) print(ser.name)
рд╡реАрдбрд┐рдпреЛ рд╕рдВрд▓рдЧреНрди рд╣реИ
рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЪреЗрд╣рд░реЗ рдХреА рддрд╕реНрд╡реАрд░ рд╕реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЪреЗрд╣рд░реЗ рдХреЛ рдХреИрд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП - рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рд╣реИред
рдЬрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╣рд┐рдд рд╣реИ, рд╡рд╣рд╛рдБ рдЧрдердм рд╕реЗ рд▓рд┐рдВрдХ