资源简介 中小学教育资源及组卷应用平台 广东高等教育版信息技术八年级下册第二单元第4课教学设计课题 第4课检测图像中的人脸 单元 第二单元 学科 信息技术 年级 八年级学习 目标 了解OpenCV库的功能。 初步了解分类器的作用。 理解cv2.imread()、cv2.imshow()、cv2.rectangle()函数的功能与用法。 掌握用OpenCV库检测图像中人脸的方法与步骤。重点 理解cv2.imread()、cv2.imshow()、cv2.rectangle()函数的功能与用法。难点 掌握用OpenCV库检测图像中人脸的方法与步骤。教学过程教学环节 教师活动 学生活动 设计意图导入新课 观看图形。随着人工智能时代的到来,人脸识别技术得到了广泛的应用,如火车站人脸识别进站、银行刷脸取款、支付宝和微信等人脸识别支付等。 人脸检测是人脸识别的重要基础。如何从图像中检测出人脸呢? 如图2-4-2所示,当用智能手机拍照时,怎样确定手机已经检测到人脸呢? 观看、欣赏、思考 激发学生的学习兴趣,了解日常生活中的人脸识别检测 。讲授新课 分析问题 本课的任务是编写程序从图片中找出所有人的脸,并对每一张脸用矩形框做出标记,如图2-4-3所示:程序要解决的关键问题: 一是如何调用人脸分类器文件创建人脸检测器以检测图像中的人脸; 二是如何获得图像中的人脸范围的数据,并在图像上用图形绘制人脸范围的标记。 要解决这两个问题,在程序中需要利用到OpenCV库。二、学习新知(一)OpenCV库 OpenCV库是一个跨平台的计算机视觉库,可以运行在Linux、Windows、Android、MacOS操作系统上。可以处理图像识别、目标检测、图像分割和行人再识别等主流视觉任务。 OpenCV库在Python3中使用的名称是cv2。如下图:(二)分类器 分类器的作用是根据已有类别的训练数据,判断一个新样本是否同属该类别。 例如,利用猫脸分类器文件‘haarcascade_fronttalcatface.xml’来检测一张图像是否有猫脸的程序如下:探究: 运行猫脸检测程序cat_face.py,了解猫脸检测的流程,体会各函数的作用,并将表2-4-1补充完整。三、设计算法 1、导入cv2库 2、读入人脸检测图像 3、创建人脸检测器 4、对图像进行灰度处理,进行人脸检测 5、根据检测到的人脸数据,用矩形框标注人脸 6、显示标注人脸后的图像 四、编写程序 (一)读入图像 读入图像是人脸检测的第一步,我们先用cv2的函数读入一个图像并显示出来。实践: 完善并运行程序human_face.py,读入和显示待检测人脸的图像,观察运行结果。 检测图像中的人脸 在读入图像后,接下来需要创建人脸检测器进行人脸检测,并根据检测到的人脸数据用矩形框标注人脸区域。探究: 在程序human_face.py的基础上,添加创建人脸检测器、检测人脸区域和标注人脸区域的代码,完成人脸检测程序,然后用该程序检测班级活动照片中的人脸。实践与创作: 车牌自动识别系统随处可见,该系统首先要做的是车牌检测,请利用教材配套资源中的车辆图像和车牌特征分类器文件,编写一个车牌检测程序,检测结果按图2-4-5所示用矩形框标出来实践与评估在Python中导入OpenCV库的命令是import cv2 2、cv2库的__cv2.imread()函数可以读入一个图像,cv2.imshow()函数用来在指定窗口中显示图像 3、在本课人脸检测程序中,关于语句faces=face.detectMultiScale(gray,1.2,4),下列说法错误的是(D) A、detectMultiScale()函数用来检测人脸 B、检测到的人脸数据存放在faces列表 C、参数1.2表示每次扫描后将图像缩小20%,再进行下一次扫描 D、参数4表示最多检测到的人脸个数为4 4、请完善下列程序,在图’photo.jpg’中画出线条宽度为5的红色圆 进行探究,初步了解程序解决的关键问题。 了解OpenCV库。 了解分类器的作用及类别。 操作、实践 了解读入图像的的用法。 教师讲解,学生听讲,了解检测图像中的人脸。 掌握标注人脸区域的用法。 自主探究,学生理解和掌握。 动手导入OpenCV库。 听讲、了解。 学生听老师讲解,了解创建人脸检测器。 课堂小结 学生回答 利用问题形式进行总结板书 一、分析问题 二、学习新知 (一)OpenCV库 (二)分类器 三、设计算法 四、编写程序 (一)读入图像 (二)检测图像中的人脸 21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页) HYPERLINK "http://www.21cnjy.com/" 21世纪教育网(www.21cnjy.com)(共41张PPT) 第 4 课 检测图像中的人脸 ——OpenCV 库的应用广东高等教育出版 第八册下 新知导入图 2-4-1 支付宝人脸识别新知讲解 随着人工智能时代的到来,人脸识别技术得到了广泛的应用,如火车站人脸识别进站、银行刷脸取款、支付宝和微信等人脸识别支付等。 人脸检测是人脸识别的重要基础。如何从图像中检测出人脸呢?快门乐新知讲解交流 如图2-4-2所示,当用智能手机拍照时,怎样确定手机已经检测到人脸呢?新知讲解图 2-4-2 手机拍照的人脸检测新知讲解一、分析问题 本课的任务是编写程序从图片中找出所有人的脸,并对每一张脸用矩形框做出标记,如图2-4-3所示:新知讲解图 2-4-3 图像中的人脸检测效果新知讲解 程序要解决的关键问题:一是如何调用人脸分类器文件创建人脸检测器以检测图像中的人脸;二是如何获得图像中的人脸范围的数据,并在图像上用图形绘制人脸范围的标记。 要解决这两个问题,在程序中需要利用到OpenCV库。新知讲解二、学习新知 OpenCV库是一个跨平台的计算机视觉库,可以运行在Linux、Windows、Android、MacOS操作系统上。可以处理图像识别、目标检测、图像分割和行人再识别等主流视觉任务。 OpenCV库在Python3中使用的名称是cv2。(一)OpenCV库新知讲解 在DOS方式中安装OpenCV库的命令为: pip install opencv-python 在Python中导入OpenCV库(cv2)的命令为: import cv2 新知讲解 分类器的作用是根据已有类别的训练数据,判断一个新样本是否同属该类别。 例如,利用猫脸分类器文件‘haarcascade_fronttalcatface.xml’来检测一张图像是否有猫脸的程序如下:(二)分类器新知讲解#car_face.pyimport cv2 #导入cv2库#读入待检的图像文件,存到img中img=cv2.imread(‘images/catl.jpg’)#创建名为face的猫脸检测器face=cv2.CascadeClassifier(‘haarcascade_frontalcatface.xml’)#将img中的图像转为灰度图像,存到gray中新知讲解gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)faces=faces.detectMultiScale(gray,1.2,5) #检测gray中所有的猫脸for (x,y,w,h) in face: #从列表face中读取所有的猫脸数据#在每张猫脸上画矩形框 cv2.rectangle(img,(x,y),(x+w,y+h),(0,0,255),3)cv2.imshow(‘result’,img) #在result窗口中显示已检测的图像cv2.waitKey(0) #按任意键退出cv2.destroyAllWindows() #关闭所有窗口新知讲解 运行猫脸检测程序cat_face.py,了解猫脸检测的流程,体会各函数的作用,并将表2-4-1补充完整。探究新知讲解函数 作用 cv2.imread() 读入图像 cv2.CascadeClassifier() 创建检测器 cv2.cvtColor() 转换图片颜色 face.detectMultiScale() 检测图像中所有的“猫脸”,并记录各张脸的左上角坐标及宽与高 cv2.rectangle() cv2.imshow() cv2.waitKey() 等待按下任意键 cv2.destroyAllWindows() 表 2-4-1 cv2库的部分函数在指定窗口中显示所有检测到的图像关闭所有窗口用矩形框标注检测到的猫脸新知讲解三、设计算法根据前面图像中人脸检测的任务分析,参考猫脸检测的流程,实现图像中人脸检测的算法思路如下:新知讲解1、导入cv2库2、读入人脸检测图像3、创建人脸检测器4、对图像进行灰度处理,进行人脸检测5、根据检测到的人脸数据,用矩形框标注人脸6、显示标注人脸后的图像新知讲解四、编写程序(一)读入图像读入图像是人脸检测的第一步,我们先用cv2的函数读入一个图像并显示出来。新知讲解探究 完善并运行程序human_face.py,读入和显示待检测人脸的图像,观察运行结果。新知讲解# human_face.py import cv2 #导入cv2库img=______________(‘images/face1.jpg’) #从文件夹face1.jpg中读入图像文件face1.jpg_____________(‘result’,img) #在result窗口显示图像cv2.waitKey(0) #按任意键退出cv2.destroyAllWindows() #关闭所有窗口cv2.imreadcv2.imshow新知讲解(二)检测图像中的人脸在读入图像后,接下来需要创建人脸检测器进行人脸检测,并根据检测到的人脸数据用矩形框标注人脸区域。新知讲解1、创建人脸检测器face=cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)用cv2.CascadeClassifier()函数创建一个名为face的人脸检测器,代码如下。其中,参数“haarcascade_frontalface_default.xml”是人脸检测器文件新知讲解2、检测人脸区域(1)用cv2.cvtcolor()将img中的图像转换为灰度图像,存放在gray中gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)其中,参数cv2.COLOR_BGR2GRAY表示将img中的图像转换为灰度图像,检测灰度图像可以降低计算强度,加快检测速度新知讲解face=face.detectMultiScale(gray,1.1,3) (2)用face.detectMultiScale()函数检测图像中的人脸新知讲解函数名detectMultiScale()前要加上前面定义的检测器对象名称“face”作为前缀。函数的第一个参数gray中存放的是前面以转换的灰度图像;第二个参数1.1表示待检测图像在多次扫描中,会逐步按1:1:1的比例缩小进行扫描;第三个参数3表示每一张人脸至少要检测到3次才确定为人脸。检测结果包含人脸区域左上角的坐标、人脸的宽度和高度,存放到face元组中。新知讲解3、标注人脸区域for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),4)用for循环读取face中的所有人脸数据,获得每张人脸区域的左上角坐标(x,y)、宽w和高h,逐一用cv2.rectangle()函数的原图像img上画矩形。该函数的参数含义如图2-4-4所示新知讲解图2-4-4 cv2.rectangle() 函数参数的含义新知讲解实践 在程序human_face.py的基础上,添加创建人脸检测器、检测人脸区域和标注人脸区域的代码,完成人脸检测程序,然后用该程序检测班级活动照片中的人脸。新知讲解实践与创作 车牌自动识别系统随处可见,该系统首先要做的是车牌检测,请利用教材配套资源中的车辆图像和车牌特征分类器文件,编写一个车牌检测程序,检测结果按图2-4-5所示用矩形框标出来新知讲解图 2-4-5 车牌检测 检测与评估1、在Python中导入OpenCV库的命令是_______________2、cv2库的______________函数可以读入一个图像,_______________函数用来在指定窗口中显示图像拓展新知cv2.imread()import cv2cv2.imshow()3、在本课人脸检测程序中,关于语句faces=face.detectMultiScale(gray,1.2,4),下列说法错误的是( ) A、detectMultiScale()函数用来检测人脸 B、检测到的人脸数据存放在faces列表中 C、参数1.2表示每次扫描后将图像缩小20%,再进行下一次扫描 D、参数4表示最多检测到的人脸个数为4拓展新知D4、请完善下列程序,在图’photo.jpg’中画出线条宽度为5的红色圆拓展新知#image.pyimport cv2color=(0,0,255) #将红色值存到color中img=cv2._________(‘photo.jpg’) #读入图像cv2.circle(______,(480,300),100,color,___) #画一个半径100的圆cv2.imshow(‘image’,img)cv2.waitKey(0)cv2.destroyAllWindows()拓展新知imreadimg5 5、完成表2-4-2的学习评估,并将评估等级填写到“我的成长记录袋”中。拓展新知拓展新知评估项目 掌握程度 我在本课学习中的最大收获和不足 较好 一般 较差 了解OpenCV库的功能 初步了解分类器的作用 理解cv2.imread()、cv2.imshow()、cv2.rectangle()函数的功能与用法 掌握用OpenCV库检测图像中人脸的方法与步骤 会利用各种分类器文件编程检测图像中的目标 我的学习效果达到了______等级 表2-3-1 学习评估表课堂总结一、用函数cv2.CascadeClassifier()和人脸分类(‘haarcascade_frontalface_default.xml’)器创建人脸检测器,存在face中二、检测人脸区域(1)用cv2.cvtcolor()将img中的图像转换为灰度图像,存放在gray中face=cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)课堂总结(2)用face.detectMultiScale()函数检测图像中的人脸三、标注人脸区域face=face.detectMultiScale(gray,1.1,3) for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),4)板书设计一、分析问题二、学习新知 (一)OpenCV库 (二)分类器三、设计算法 四、编写程序 (一)读入图像 (二)检测图像中的人脸谢谢21世纪教育网(www.21cnjy.com) 中小学教育资源网站 有大把高质量资料?一线教师?一线教研员?欢迎加入21世纪教育网教师合作团队!!月薪过万不是梦!!详情请看:https://www.21cnjy.com/help/help_extract.php 展开更多...... 收起↑ 资源列表 第4课 检测图像中的人脸.doc 第4课 检测图像中的人脸.pptx