使用Python3实现识别图片中的所有人脸并显示出来,代码如下:
- # -*- coding: utf-8 -*-
- # 识别图片中的所有人脸并显示出来
- # filename : find_faces_in_picture.py
- from PIL import Image
- import face_recognition
- # 将jpg文件加载到numpy 数组中
- image = face_recognition.load_image_file("linuxidc.com.jpg")
- # 使用默认的给予HOG模型查找图像中所有人脸
- # 这个方法已经相当准确了,但还是不如CNN模型那么准确,因为没有使用GPU加速
- # 另请参见: find_faces_in_picture_cnn.py
- face_locations = face_recognition.face_locations(image)
- # 使用CNN模型
- # face_locations = face_recognition.face_locations(image, number_of_times_to_upsample=0, model="cnn")
- # 打印:我从图片中找到了 多少 张人脸
- print("I found {} face(s) in this photograph.".format(len(face_locations)))
- # 循环找到的所有人脸
- for face_location in face_locations:
- # 打印每张脸的位置信息
- top, right, bottom, left = face_location
- print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right))
- # 指定人脸的位置信息,然后显示人脸图片
- face_image = image[top:bottom, left:right]
- pil_image = Image.fromarray(face_image)
- pil_image.show()
- # 或者执行python文件
- $ python3 www.linuxidc.com.py
从图片中识别出10张人脸,并显示出来。
- I found 10 face(s) in this photograph.
- A face is located at pixel location Top: 445, Left: 1867, Bottom: 534, Right: 1957
- A face is located at pixel location Top: 544, Left: 643, Bottom: 619, Right: 718
- A face is located at pixel location Top: 478, Left: 1647, Bottom: 553, Right: 1722
- A face is located at pixel location Top: 504, Left: 126, Bottom: 594, Right: 215
- A face is located at pixel location Top: 536, Left: 395, Bottom: 611, Right: 469
- A face is located at pixel location Top: 544, Left: 1042, Bottom: 619, Right: 1116
- A face is located at pixel location Top: 553, Left: 818, Bottom: 627, Right: 892
- A face is located at pixel location Top: 511, Left: 1431, Bottom: 586, Right: 1506
- A face is located at pixel location Top: 564, Left: 1227, Bottom: 626, Right: 1289
- A face is located at pixel location Top: 965, Left: 498, Bottom: 1017, Right: 550
如下图: