python dlib实现人脸特征识别

 安装好dlib后下载已经训练好的识别模型 :

http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

然后就可以开工了:

import matplotlib.pyplot as plt
import dlib
import numpy as np

detector=dlib.get_frontal_face_detector()
predictor=dlib.shape_predictor(r"D:\LB\JAVASCRIPT\shape_predictor_68_face_landmarks.dat")

plt.rcParams['figure.figsize'] = (20.0, 20.0)  
img=plt.imread(r"D:\test_photo0.jpg")
img=np.array(img)

dets=detector(img,1)
print("识别出的人脸总数:",len(dets))

plt.rcParams['figure.figsize'] = (20.0, 20.0)  # 用来设置显示图片尺寸
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

for k,d in enumerate(dets):    
    shape=predictor(img,d)
    px=[]
    py=[]
    for i in range(68):
        x=shape.part(i).x
        y=shape.part(i).y        
        px.append(x)
        py.append(y)        
        plt.text(x+3, y-5, i, fontsize=14,color="white")
        
    plt.scatter(px,py,color="red",s=14)

plt.imshow(img)
plt.show()

看看识别效果,相当精准,可以单个人物识别,也可以群体识别:

猜你喜欢

转载自blog.csdn.net/MAILLIBIN/article/details/88900680
今日推荐