官方网址:https://github.com/ageitgey/face_recognition
在图片中查找面孔:
- import face_recognition
- image = face_recognition.load_image_file("your_file.jpg")
- face_locations = face_recognition.face_locations(image)
查找和操作图片中的面部特征
- import face_recognition
- image = face_recognition.load_image_file("your_file.jpg")
- face_landmarks_list = face_recognition.face_landmarks(image)
应用数字化妆

- import face_recognition
- known_image = face_recognition.load_image_file("biden.jpg")
- unknown_image = face_recognition.load_image_file("unknown.jpg")
-
- biden_encoding = face_recognition.face_encodings(known_image)[0]
- unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
-
- results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
将此库与其他 Python 库一起使用来进行实时人脸识别:

pip3最后,使用(或pip2用于 Python 2)从 pypi 安装此模块:
pip3 install face_recognition
人脸检测
面部特征
面部识别
我字节写了个demo:
- #1、导入库
- #2、显示图片
- #3、绘制Landmarks关键点
- #4、主函数
- #注意本想母官方只支持mac和linux系统,windows不支持,还没解决
- import face_recognition
- import cv2
- import matplotlib.pyplot as plt
-
- #显示关键点
- def show_landmarks(image,landmarks):
- for landmarks_dict in landmarks:
- for landmarks_key in landmarks_dict.keys():
- for point in landmarks_dict[landmarks_key]:
- cv2.circle(image,point,3,(0,0,255),-1)
- #返回绘制后的图片
- return image
- def show_img(image,title): #传过来图片和标题
- plt.title(title)
- plt.imshow(image)
- plt.axis("off") #关闭x轴和y轴
- def main():
- #5、读取图片
- image = cv2.imread("../images/liuyifei.jpg")
-
- #6、图片灰度转换
- gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
-
- #7、调用face_recognition库方法:face_landmarks()获取人脸关键点
- face_marks = face_recognition.face_landmarks(gray,None,"large")#None不知道几个人脸,让系统自己去找;large是68个点,small是5个点
- print(face_marks)
- #8、绘制关键点
- img_result = show_landmarks(image.copy(),face_marks) #复制一份原始图片
-
- #9、创建画布
- plt.figure(figsize=(9,6))
- plt.suptitle("Face Landmarks with face_recognition",fontsize=14,fontweight="bold")
-
- #10、显示整体效果
- show_img(img_result, "landmarks")
-
- if __name__ == "__main__":
- main()