1 face_recognition.api.
face_landmarks
(face_image, face_locations=None, model='large')
参数:
(1)face_image -要搜索的图像
(2)face_locations——可选地提供要检查的脸部位置列表。
(3)模型-可选-使用哪个模型。“大”(默认)或“小”。
“小” :只返回5点,但更快。
2 face_landmarks(face_image, face_locations=None, model="large")
from PIL import Image, ImageDraw
import face_recognition
def get_face_features(img_path):
# 将jpg文件加载到numpy 数组中
image = face_recognition.load_image_file(img_path)
# 查找图像中所有面部的所有面部特征
face_landmarks_list = face_recognition.face_landmarks(image, model='large')
print("I found {} face(s) in this photograph.".format(len(face_landmarks_list)))
# 输出第一个人脸的面部特征信息
print(face_landmarks_list[0]["chin"])
print(face_landmarks_list[0]["left_eyebrow"])
print(face_landmarks_list[0]["right_eyebrow"])
print(face_landmarks_list[0]["nose_bridge"])
print(face_landmarks_list[0]["nose_tip"])
print(face_landmarks_list[0]["left_eye"])
print(face_landmarks_list[0]["right_eye"])
print(face_landmarks_list[0]["top_lip"])
print(face_landmarks_list[0]["bottom_lip"])
pil_image = Image.fromarray(image)
d = ImageDraw.Draw(pil_image)
for face_landmarks in face_landmarks_list:
facial_features = [
'chin',
'left_eyebrow',
'right_eyebrow',
'nose_bridge',
'nose_tip',
'left_eye',
'right_eye',
'top_lip',
'bottom_lip'
]
for facial_feature in facial_features:
d.line(face_landmarks[facial_feature], width=5)
pass
pass
del d
pil_image.show()
pass
if __name__ == '__main__':
get_face_features("0.jpg")
pass
结果如下所示:
第一个人脸的特征信息:
第二个人脸的特征信息:
3 face_recognition.face_landmarks(image, model='small')
from PIL import Image, ImageDraw
import face_recognition
def get_face_features(img_path):
# 将jpg文件加载到numpy 数组中
image = face_recognition.load_image_file(img_path)
# 查找图像中所有面部的所有面部特征
face_landmarks_list = face_recognition.face_landmarks(image, model='small')
print("I found {} face(s) in this photograph.".format(len(face_landmarks_list)))
print(face_landmarks_list[0]["nose_tip"])
print(face_landmarks_list[0]["left_eye"])
print(face_landmarks_list[0]["right_eye"])
pil_image = Image.fromarray(image)
d = ImageDraw.Draw(pil_image)
for face_landmarks in face_landmarks_list:
facial_features = [
'nose_tip',
'left_eye',
'right_eye',
]
for facial_feature in facial_features:
d.line(face_landmarks[facial_feature], width=5)
pass
pass
del d
pil_image.show()
pass
if __name__ == '__main__':
get_face_features("0.jpg")
pass
结果如下所示: