Pop

Tensorflow. Identificación facial con inteligencia artificial (2/2)

2. Reconocimiento facial con inteligencia artificial (2)

  • Hola a todos.Una vez finalizado el curso de google, vamos a entrenar un modelo para hacer un ejemplo de identificación facial.Este ejemplo lo dividiremos en dos vídeos, que estructuraremos de la siguiente manera.
  • En este segundo vídeo vemos un ejemplo en tiempo real donde mi pc me identifica capturando una imagen vía webcam.
  • Os dejo el código visto en el vídeo:
#creamos nuestro reconocedor de imagenes
face_recognizer = cv2.face.LBPHFaceRecognizer_create()

#entrenamos nuestro reconocedor 
face_recognizer.train(caras, np.array(labels))

#función para dibujar un rectángulo en la imagen según coordenadas
def pintarRectangulo(img, rect):
    (x, y, w, h) = rect
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
    
#función que escibe el nombre
def escribirTexto(img, text, x, y):
    cv2.putText(img, text, (x, y), cv2.FONT_HERSHEY_PLAIN, 1.5, (0, 255, 0),

# esta función reconoce a la persona en la imagen pasada
#y dibuja un rectángulo alrededor de la cara detectada con el nombre 
def predecir(imagenTest):
    #copia de la imagen original
    img = imagenTest.copy()
    #detectamos cara en la imagen
    cara, rect = dameCaras(img)

    #Predecir la imagen utilizando nuestro reconocedor facial.
    label= face_recognizer.predict(cara)
    #obtenemos nombre de la imagen
    if label is not None:
        label_text = personas[label[0]]
        #dibujar un rectángulo alrededor de la cara detectada
        pintarRectangulo(img, rect)
        #escribir nombre
        escribirTexto(img, label_text, rect[0], rect[1]-5)
    
    return img

#Cargando imagenes de test
testImg0 = cv2.imread("test-data/test0.jpg")
testImg1 = cv2.imread("test-data/test1.jpg")
testImg2 = cv2.imread("test-data/test2.jpg")

#realizar predicción
prediccionImg0 = predecir(testImg0)
prediccionImg1 = predecir(testImg1)
prediccionImg2 = predecir(testImg2)
print("Predicción completa")

#display both images
cv2.imshow(personas[0], prediccionImg0)
cv2.imshow(personas[1], prediccionImg1)
cv2.imshow(personas[2], prediccionImg2)
cv2.waitKey(0)
cv2.destroyAllWindows()

import cv2
import time 
from keras.models import load_model
def laptop_camera_go():
    # Crear instancia de captura de video.
    cv2.namedWindow("Deteccion facial")
    vc = cv2.VideoCapture(0)

    # capturamos el primer fotograma.
    if vc.isOpened(): 
        rval, frame = vc.read()
    else:
        rval = False
    
    # mantener el flujo de video abierto
    while rval:
        # trazar la imagen de la cámara con detecciones marcadas
        frame = predecir(frame)
        cv2.imshow("Deteccion facial activada", frame)
        
        # Funcionalidad de salida: presione cualquier tecla para salir del video de 
        #la computadora portátil 
        key = cv2.waitKey(20)
        if key > 0: # exit by pressing any key
            cv2.destroyAllWindows()
            for i in range (1,5):
                cv2.waitKey(1)
            return
        
        # obtener siguinete frame
        time.sleep(0.05)             # controlamos framerate
        rval, frame = vc.read()


laptop_camera_go()

No hay comentarios:

Publicar un comentario

Curso .NET Core en C# - 34.Creamos nuestro propio log

34.Creamos nuestro propio log Hola a todos. En este curso, analizaremos todos los conceptos básicos, intermedios y avanzados de  ASP.NET...