0

我将开始一个 python 项目,我正在使用 pyttsx 制作语音助手,我认为将面部识别集成到助手中将是一个很酷的功能。我只是想问一下,如果我为人脸识别(opencv)制作一个python脚本,我可以将结果传递给语音助手,以便它可以大声拼写出来吗?任何帮助表示赞赏。

4

1 回答 1

0

1) 安装face_recognition

pip install face_recognition

2) 使用 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) 创建人脸编码。人脸识别将为人脸创建称为人脸编码的东西。

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)创建相似函数。相似度函数告诉我们两个人脸编码是否相似。

import scipy.spatial.distance
def cosine_similarity(u:np.array,b:np.array) -> np.float:
    return scipy.spatial.distance.cosine(u,b)  

5)运行人脸之间的相似度函数


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)当您运行cosine_similarity两种编码并且数量很小时,这两种编码是相似的。如果数量很大,它们就不太相似。

print("Obama1 is more like Obama2 than it is Trump", obama1_X_obama2 < trump_X_obama1)  

7)创造一些能认出你的东西。保存很多自己的编码。尝试对其他面孔也进行编码。确定什么相似性足够好。编码是您需要确定您是否相似的内容。

于 2019-10-15T21:56:53.903 回答