
import cv2
import dlib
from skimage import io
#使用特征提取器get_frontal_face_detector
detector=dlib.get_frontal_face_detector()
#dlib的68点模型,使用作者训练好的特征预测器
predictor=dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
#图片所在路径
img=io.imread("C:/Users/xpp/Desktop/Lena.png")
#生成dlib的图像窗口
win=dlib.image_window()
win.clear_overlay()
win.set_image(img)
#特征提取器的实例化
dets=detector(img, 1)
print("人脸数:",len(dets))
for k, d in enumerate(dets):
print("第",k+1,"个人脸d的坐标:",
"left:",d.left(),
"right:",d.right(),
"top:",d.top(),
"bottom:",d.bottom())
width=d.right()-d.left()
heigth=d.bottom()-d.top()
print('人脸面积为:',(width*heigth))
#利用预测器预测
shape=predictor(img, d)
#标出68个点的位置
for i in range(68):
cv2.circle(img,(shape.part(i).x,shape.part(i).y),4,(203,192,255),-1,8)
cv2.putText(img,str(i),(shape.part(i).x,shape.part(i).y),cv2.FONT_HERSHEY_SIMPLEX,0.5,(255,255,255))
#显示一下处理的图片,然后销毁窗口
cv2.imshow('result',img)
cv2.waitKey(0)人脸数:1 第 1 个人脸d的坐标:left: 201 right: 356 top: 184 bottom: 339 人脸面积为:24025


算法:基于Dlib的人脸检测与识别是通过多级级联的回归树进行关键点的回归。
文献:Kazemi, V. , & Sullivan, J. . (2014). One Millisecond Face Alignment with an Ensemble of Regression Trees. IEEE Conference on Computer Vision & Pattern Recognition. IEEE.
Zhou, E. , Fan, H. , Cao, Z. , Jiang, Y. , & Qi, Y. . (2013). Extensive Facial Landmark Localization with Coarse-to-Fine Convolutional Network Cascade. IEEE International Conference on Computer Vision Workshops. IEEE.
链接:https://pypi.org/project/dlib/#files
http://dlib.net/files/
https://cmake.org/download/
https://cmake.org/files/
https://www.boost.org/
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!