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