I am going to start on a python project where I'm making a voice assistant using pyttsx and I'm thinking it would be a cool feature to integrate facial recognition into the assistant. I just wanted to ask that if I make a python script for face recognition (opencv), can I pass the result to the voice assistant so it can spell it out loud? Any help appreciated.
Asked
Active
Viewed 70 times
1 Answers
0
1) install face_recognition
pip install face_recognition
2)load faces using cv2 imread.
import cv2
#faces that look like obama
obama_face1 = cv2.imread("obama_1.png")
obama_face2 = cv2.imread("obama_2.png")
#faces that look like trump
trump_face = cv2.imread("trump.png")
3) Create a face encoding. Face recognition will create something called a face encoding for a face.
import facial_recognition
obama_vector1 = face_recognition.face_encodings(obama_face1)[0]
obama_vector2 = face_recognition.face_encodings(obama_face2)[0]
trump_vector1 = face_recognition.face_encodings(trump_face)[0]
4) create a similarity function. A similarity function tells us if two face encodings are similar.
import scipy.spatial.distance
def cosine_similarity(u:np.array,b:np.array) -> np.float:
return scipy.spatial.distance.cosine(u,b)
5) run the similarity function between faces
trump_X_obama1 = cosine_similarity(obama_vector1, trump_vector)
trump_X_obama2 = cosine_similarity(obama_vector2, trump_vector)
obama1_X_obama2 = cosine_similarity(obama_vector1, obama_vector2)
6) When you run cosine_similarity
on two encodings, and the number is small then those two encodings are similar. If the number is large they are less similar.
print("Obama1 is more like Obama2 than it is Trump", obama1_X_obama2 < trump_X_obama1)
7) To create something that recognizes you. Save a lot of encodings of yourself. Try encoding other faces as well. Determine what similarity is good enough. The encoding is what you need to determine if you're similar.

Conic
- 998
- 1
- 11
- 26