前面两篇博客解决了安装dlib库的问题和numpy和dlib不兼容的问题,今天开始做人脸识别第一个项目
我们可以从网上下载一张带有人脸的图片或者自己电脑有的也可以,我这里使用lyf的图片进行演示
加载图像文件
img1 = face_recognition.load_image_file('lyf1.png')
将图像从 BGR 格式转换为 RGB 格式
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
获取人脸位置信息
faceloc1 = face_recognition.face_locations(img1)[0]
这里后面的0表示图片上检测到的第一个人脸
框出人脸
cv2.rectangle(img1, (faceloc1[3], faceloc1[0]), (faceloc1[1], faceloc1[2]), (0, 255, 0), 3)
上面提到我们获取人脸位置信息时,具体来说,face_recognition.face_locations(img1)
返回一个列表,列表中的每个元素表示一个检测到的人脸的位置信息,形如 (top, right, bottom, left)
,分别表示人脸框的上边界、右边界、下边界和左边界的坐标。
我这里画了一个图来演示一下,更方便看 face_recognition.face_locations获取的位置信息
完整代码
import cv2
import face_recognition
# 加载图像文件
img1 = face_recognition.load_image_file('lyf1.png')
# 将图像从 BGR 格式转换为 RGB 格式
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
# 第一个人的人脸位置信息
faceloc1 = face_recognition.face_locations(img1)[0]
# 框出人脸
cv2.rectangle(img1, (faceloc1[3], faceloc1[0]), (faceloc1[1], faceloc1[2]), (0, 255, 0), 3)
# 打印人脸位置信息
print(faceloc1)
cv2.imshow('lyf1', img1)
cv2.waitKey(0)
效果演示
这样就完成了人脸的识别和框出,有兴趣的可以关注一下,谢谢