第3节 “认出”一个人(基于图片的人脸识别预测)教案 2022—2023学年川教版(2019)初中信息技术八年级上册

文档属性

名称 第3节 “认出”一个人(基于图片的人脸识别预测)教案 2022—2023学年川教版(2019)初中信息技术八年级上册
格式 docx
文件大小 38.2KB
资源类型 教案
版本资源 川教版
科目 信息技术(信息科技)
更新时间 2023-05-07 12:44:44

图片预览

文档简介

2.3 “认出”一个人(基于图片的人脸识别预测)教案
川教版(2019)初中信息技术八年级上册
教学基本信息
年级 八年级(上) 教材版本 川教版
教材分析
《基于图片的人脸识别预测》是川教版八年级上册第三单元第三节内容,在此之前,学生已经学习过如何利用Python进行人脸标注以及人脸识别训练过程。本节微课内容只选取了第三节内容中的基于图片的人脸识别部分。
学情分析
本节课面向八年级学生,学生已经具备一定的Python编程能力,可以根据自己看懂书中内容并进行代码调试。 学生的数学思维、逻辑思维能力也基本形成,大部分学生能够在本节微课的引导下完成人脸识别的三个任务。
教学方法
讲授法、演示操作法。
教学目标
能说出“认出”人脸的基本过程(信息意识)。 能完成多人人脸识别预测代码编写(计算思维)。 能说出“标注人名”的基本过程(信息意识)。 能完成标注人名代码编写(计算思维)。 在实际编程过程中体会到编程的魅力,并据此引导学生产生学习兴趣,认识到编程对我们实际生活的重要性(信息社会责任)。
教学重难点
教学重点: 1. 能够说出认出人脸和人脸身份标注的一般过程; 2. 能够说出LBPH识别器中predict()函数的作用; 3. 能够动手编程完善两人人脸预测的代码; 4. 能够动手编程完善人名标注的代码。 教学难点: 1. 编程完善人脸预测的代码; 2. 编程完善人名标注的代码。
教学资源准备
教案、教材、配套练习题、安装Python和人脸识别模块的电脑。
课堂教学过程结构设计
教学活动教师活动学生活动设计意图 复习回顾 同学们好,欢迎来到梁老师的微课堂。今天梁老师为大家带来的内容为《基于图片的人脸识别预测》。在学习本课内容之前,我们来回顾一下人脸识别训练的步骤。 一共有五个步骤,分别为引入模块,输入训练图片、设置图片标签、加入LBPH识别器和机器训练。观看视频讲解,回忆机器训练知识点帮助学生回忆之前所学知识,快速让学生进入主题 活动一:认出人脸过程 【提问】:在识别完人脸特征后,机器是怎么根据人脸识别出其他特征的呢?比如姓名,是否佩戴口罩等等。这就是本课需要学的内容。 【任务】首先,请同学们阅读教材60-61页,思考识别人脸的一般过程是什么呢? 根据教材内容,我们知道计算机通过机器学习已经“认识”一个人,知道其人脸特征了,接着就可以输入照片进行人脸识别预测,看看计算机能不能“认出”这个人。基于图片的人脸识别预测的过程有三步:输入测试图片,识别预测和输出预测结果,其中核心的步骤为识别预测。 【提问】那机器是如何对图片进行识别预测的呢? 我们知道要“认出”一个人,首先需要提取人脸重要特征,然后用LBPH识别器进行识别,预测会用到LBPH识别器中的predict()函数,该函数有两个重要指标,分别为标签值和置信度评分。标签值表示:表示测试图片和标签显示图片为同一人。置信度评分表示用来衡量所识别人脸与原模型的差距,0表示完全匹配。 思考问题 带着问题观看教材 带着问题观看教材,知道predict()函数的用法 吸引学生注意力,培养学生的信息意识和逻辑思维能力 活动二:完成两人识别预测代码【任务】现在请同学们阅读教材61-63页,自行完成两人识别代码并思考以下代码含义。 #人脸识别预测 predict_img=cv2.imread('test01.jpg',cv2.IMREAD_GRAYSCALE) label,confidence=recognizer.predict(predict_img) print('label=',label) print('confidence=',confidence) 【教师演示并讲解】现在老师展示的是两人识别的代码。可以发现,该代码和上节课所学的人脸识别训练代码前面部分是一样的,只多了最后4行代码,这4行代码是什么意思呢?我们来运行一下。 发现会输出label标签值和confidence置信度评分。第一行代码中有个单词叫做imread,它其实是image read读入图片的缩写。因此,第一行代码的含义为读入测试图片test01.jpg。第二行代码有个predict函数,该函数为LBPH识别器中的内置函数。可以返回标签值和置信度评分。Print我们知道为输出打印的意思,因此第三、四行代码的含义分别为输出测试图片的标签值和置信度评分。那之前老师演示的代码label等于1,confidence约等于24.45, 1表示测试图片和后面的标签“1”是同一个人;confidence显示约为24.45,表示相似度比较高。 【提问】请思考下面两个问题:如何将输出结果confidence的值变为0?如何将输出结果confidence的值增高到50以上呢?我们知道0表示测试图片与训练图片完全一致,值越大匹配度越低,低于50表示匹配度较好,高于80则认为匹配度不高。因此,该如何修改代码呢? 【教师演示并讲解】如果测试图片与训练图片完全一致,我们看下结果呢? 测试图片我们输入img01,运行代码后发现置信度评分为0,为什么会出现这样的结果呢? 因为我们的测试图片和训练图片是完全一样的,所以训练结果也完全一致。因此,在进行机器训练时,训练图片和测试图片不能完全一致,否则训练结果将失去真实性。 那如何提高置信度评分呢? 我们来输入袁隆平爷爷的图片。发现结果明显提高了,因为我们的训练图片为钱学森和钱伟长,没有袁隆平爷爷,所以最后输出结果匹配度较低。 带着问题观看教材 观看教师代码讲解部分,掌握多人识别预测代码编写 思考问题,编写代码 观看视频,进一步理解confidence的含义 帮助学生快速掌握本节课学习重点 帮助学生理解多热识别预测代码细节问题 进一步 拓展问题,培养学生的计算思维能力 活动三:完成标注姓名代码【提问】这个程序识别的结果不容易让人看懂,能不能直接在测试图的人脸位置处标注出识别出的姓名呢? 观看教材我们发现,图片人脸标注需要三个步骤:图片人脸定位、人脸训练识别和身份标注。 【提问】前面两个步骤我们都已经代码实现了,那第三个步骤身份标注该如何代码实现呢? 【任务1】请同学们阅读教材63-64页,自行完成标注姓名代码并思考以下代码含义。 for (x, y, w, h) in faces: cv2.rectangle(predict_img, (x, y), (x+w, y+h), (255, 255, 0), 2) if confidence < 100: if label==0: name='Qianxuesen' else: name='Qianweichang' else: name = 'unknown' 观看教材思考问题 编写代码并思考核心代码含义 提升学生的计算思维和逻辑思维能力课后作业完成识别袁隆平代码。 现在给定的袁隆平爷爷三幅图片,请读入测试图片“yuan3.jpg”,输出测试结果。代码以自己的姓名命名。 完成思维导图绘制 请根据本节微课所学内容,完成相关本节知识点思维导图绘制,需要满足: 1. 认出人脸过程; 2. 识别预测过程; 3. 识别预测核心代码知识点,如predict函数使用等; 4. 标注人脸过程; 5. 标注人脸过程核心代码知识点,如身份标注中标注框颜色更改等。 完成课后作业 检验巩固所学知识课堂小结如何从图片“认出”一个人 如何标注人名 观看视频 巩固所学知识结语课虽终而学不止,正如我们所见,生活中充满了各种人脸识别技术相关运用,但这仅仅是起点,不是终点,关于人脸识别技术的未来研究就靠同学们啦! 观看视频 培养学会僧的信息社会责任意识