第15课时 人脸检测

**学科:**人工智能年级: 七年级上
**课题:**第15课时 人脸检测课时数:1

教学目标

理解人脸检测的原理;

能够读懂人脸检测代码;

掌握级联分类器CascadeClassifier的使用方法;

教学重点:

理解人脸检测的原理。

教学难点:

级联分类器CascadeClassifier的使用方法。

教学准备:

示例图片,程序代码文件(!!所有的图片、代码必须以英文命名)


教 学 过 程


一、开放导入

现在市面上绝大部分的手机拍照都具有人脸检测功能,它能在拍照时检测画面中是否出现人脸,如果检测到,便在人脸上画一个矩形,并可以在时对该区域进行美化,实现美颜的效果。

人脸检测是人工智能领域一个重要的应用分支,本节课我们就来学习制作一个简单的人脸检测器。
在这里插入图片描述
二、核心过程推进

1.人脸检测原理

我们将人脸看作二维像素矩阵;
在这里插入图片描述

然后通过大量人脸图像样本构造出人脸检测模型;

在这里插入图片描述

最后根据相似度量来判断检测图片中是否有人脸。

2.人脸检测器

人脸检测器的功能是从一个图像中找出人脸的位置和大小,并使用矩形标示出来。

在这里插入图片描述
人脸检测难点在于构建准确的人脸检测模型,人脸检测模型越准确,人脸识别率也就越高。 幸运的是,OpenCV提供了级联分类器(CascadeClassifier)和人脸检测模型(Faces.xml),我们只需要使用几行代码就可以实现人脸检测功能。

import cv2
#从文件读取图像并转为灰度图像
img = cv2.imread('gdg03.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#创建人脸检测器
file = 'faces.xml'
face_cascade = cv2.CascadeClassifier(file)
#检测人脸区域
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
#标注人脸区域
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

cv2.imshow('Image', img)  #显示检测结果

cv2.waitKey(0)  #按任意键退出
cv2.destroyAllWindows()  #关闭窗口

opencv在做人脸识别时需要使用灰度图,所以需要先将彩色图转换为灰度图;

检测人脸区域 1.3和5这个两个数值取值越大,准确率越高,但识别率则会越低,试着将两个数减小或增大,看看检测效果会发生什么变化?

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

练习

分别检测素材中的含有人脸的图片,通过调整1.3和5的数值,使其能够准确的检测出图片中的人脸。

faces = face_cascade.detectMultiScale(gray, 1.3, 5)

三、开放延伸

通过本节课的学习,对于图片修改你有哪些收获呢?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值