【Face Recognition人脸识别】1. 人脸检测

  • 我们已经学习了人脸识别的基本流程,包括人脸图像采集、人脸检测、特征点提取和人脸识别的整个流程。不仅了解了其中的原理,还学会了编写实际应用的代码。
  • 本次主要将介绍使用Face Recognition库进行人脸识别。因为Face Recognition是对Dlib的封装,所以其原理和我们前几个讲解的相同。本次主要为大家讲解其基本使用方法。
  • 为什么在学习完整个流程之后还要讲Face Recognition库呢?
    …在前面我们主要使用Dlib库,它是一个在工业界和学术界广受好评,极其优秀的库。
    …而Face Recognition基于Dlib库做了高度封装,当之无愧的称之为世界上最简洁的人脸识别库。
    …所以,我们学习完基础的原理以及Dlib库,就好比学会了“走路”;而Face Recognition库的高效与简洁,可以让我们彻底“跑起来”。

【 1. 读取图片 】

load_image_file(file, mode='RGB')

#	file:带检测的图片文件路径;
#	mode:可选值,默认为RGB,也可以指定为L ,代表转化为灰度照片。

范例:

image = face_recognition.load_image_file("picture1.jpg")

【 2. 检测人脸并返回人脸位置 】

在face recognition库中,人脸检测只需两步:

  • 读取照片;
  • 检测人脸。
    .
    ( 也就是将模型选择之类的操作都封装,默认使用Dlib库中已经训练完成的模型。)
face_locations(img, number_of_times_to_upsample=1, model="hog")

#	img:待检测的图片对象;
#	number_of_times_to_upsample:可选值,为寻找人脸进行多少次图片变换,值越大,越能找到更小的人脸;
#	model:可选值,默认使用hog模式, hog 模式在CPU上运行表现更好;如果有GPU加速,也可以指定为cnn模式。

范例:

# 加载face_recognition库
import face_recognition
# 读取照片
image = face_recognition.load_image_file("picture.jpg")
# 获取检测到的人脸位置
face_locations = face_recognition.face_locations(image)
# 输出人脸位置
print(face_locations)

picture1.jpg:
在这里插入图片描述
运行结果:
在这里插入图片描述

【 3. 绘制人脸区域 】

我们同样可以使用之前学到的OpenCV绘制人脸区域,再前面识别的基础代码上,加上下面的绘制代码:

import cv2
# 加载face_recognition库
import face_recognition
# 读取照片
image = face_recognition.load_image_file("picture1.jpg")
# 获取检测到的人脸位置
face_locations = face_recognition.face_locations(image)
# 打印人脸位置
print(face_locations)
# 绘制人脸区域
for face_location in face_locations:
    top, right, bottom, left = face_location
    cv2.rectangle(image, (left, top), (right, bottom), (0, 255, 0), 2)
# 将图片转换成原来的色彩
#(因在前面的步骤中face recognition已自动将图片转化成了灰度图)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 展示图片
cv2.imshow("picture1 Recognition", image_rgb)
# 等待用户关闭界面
cv2.waitKey(0)

运行结果:
在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MR_Promethus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值