Created
October 23, 2022 00:03
-
-
Save giljr/ed68f7cc34ae400e8779837c8d6dfdf4 to your computer and use it in GitHub Desktop.
FAce recognition using Python https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import face_recognition | |
import numpy as np | |
from PIL import Image, ImageDraw | |
# Load a sample picture and learn how to recognize it. | |
known_image = face_recognition.load_image_file("toby.jpg") | |
encoding = face_recognition.face_encodings(known_image)[0] | |
# Load an image with unknown faces | |
unknown_image = face_recognition.load_image_file("office.jpg") | |
# Find all the faces and face encodings in the unknown image | |
face_locations = face_recognition.face_locations(unknown_image) | |
face_encodings = face_recognition.face_encodings(unknown_image, face_locations) | |
# Convert the image to a PIL-format image so that we can draw on top of it with the Pillow library | |
# See http://pillow.readthedocs.io/ for more about PIL/Pillow | |
pil_image = Image.fromarray(unknown_image) | |
# Create a Pillow ImageDraw Draw instance to draw with | |
draw = ImageDraw.Draw(pil_image) | |
# Loop through each face found in the unknown image | |
for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings): | |
# See if the face is a match for the known face(s) | |
matches = face_recognition.compare_faces([encoding], face_encoding) | |
# Use the known face with the smallest distance to the new face | |
face_distances = face_recognition.face_distance([encoding], face_encoding) | |
best_match_index = np.argmin(face_distances) | |
if matches[best_match_index]: | |
# Draw a box around the face using the Pillow module | |
draw.rectangle(((left - 20, top - 20), (right + 20, bottom + 20)), outline=(0, 255, 0), width=20) | |
# Remove the drawing library from memory as per the Pillow docs | |
del draw | |
# Display the resulting image | |
pil_image.show() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment