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