“人脸识别”三维解构的教学设计
2022-03-24廖力紫张馨月
廖力紫 张馨月
在人工智能的学习中,“人脸识别”是一个重要的主题,但是人脸识别涉及一些复杂高深的专业术语和算法,中学生目前还没有达到这方面的知识储备。怎么办呢?这实在是对教师的考验,如果不顾一切地讲算法,学生肯定云里雾里,听不懂,但是如果完全跳过算法,直接给出程序,那么课堂就成了体验课,没有一定深度,没有涉及知识核心,没有展现学科精华。要想解决这一矛盾,关于“人脸识别”的教学必须做到既要让学生体会学科核心思想,又不能让那些专业算法成为拦路虎,阻挡学生学习的脚步。为了做到这一点,笔者经过深入思考后,把知识进行了简化分解和重构。
● 设计思想
针对中学生的理解能力,笔者将“人脸识别”的内容从三个维度进行解构(如右图)。横向简化分解成人脸检测定位和人脸训练识别这两部分;纵向分成基于静态图片的识别和基于动态视频的识别两部分;第三维度设置知识卡片、拓展阅读,对学习过程中不可避免的专业名词和术语,以知识卡片和拓展阅读的形式进行简单介绍和补充说明,让学生自行阅读了解,避免干扰主体思维的形成。
根据上面的知识解构,第一部分首先从人脸检测定位入手,学习基于静态图片的人脸定位和基于视频摄像头的人脸定位,这部分建议2~3课时。第二部分进行人脸训练识别的学习,也是从图片和视频这两方面分别进行,这部分建议2~3课时。
● 教学内容
1.人脸检测定位
学习人脸检测定位先从图片入手,让学生首先了解核心的分类器技术,再过渡到视频,这样在学习视频处理时,加上帧的相关知识即可。
(1)基于图片的人脸检测
这部分的教学目标是了解原理和过程、读懂程序,能在现有程序的基础上进行简单的修改变换和应用;教学重点是人脸检测的过程和详细步骤,教学难点是分类器。
人脸检测在生活中有很多地方会运用到,如为方便大家拍照,手机画面会自动标注出人脸。在进行教学时,可以用这个例子,让学生有直观印象。
让学生对人脸检测的过程有一个整体的认识,这是教学的重点,人脸检测先判断是否存在人脸,如果存在人脸,则给出脸的位置、大小和各个主要面部器官的位置信息。人脸检测程序的主要步骤为:引入OpenCV——读入图片,并预处理——人脸分类器——人脸标注显示。
本节课的人脸检测程序将会涉及OpenCV库,为了不影响学生主体思维的形成,将对OpenCV库的介绍设置成“知识卡片”的形式,让学生自行阅读。图片预处理成灰度图,这个可以根据情况进行讲解,也可让学生自行阅读。分类器是人脸检测的核心,需要重点讲解,本次程序要用到的是Haar分类器中的haarcascade_frontalface_default.xml。
在学生实践了人脸检测程序、理解了相关代码后,可在练习环节让学生修改人脸标注框的形状,把方形框改成圆形框,或者修改标注框的颜色。如果这个任务完成良好,可以加入第二个练习,在检测人脸的基础上检测眼睛。对学有余力的学生,还可以让其在检测人脸的基础上检测笑容。
(2)基于视频的人脸检测
学习了基于图片的人脸检测,再学习基于视频的检测就容易多了,只需要补充动态视频的相关知识即可。这部分的教学目标是理解动态视频的原理,能调用摄像头读取帧、检测人脸;教学重难点是理解帧,将动态影像转化成静态图像进行处理。
动态视觉效果是由多幅静态图片连续播放形成,每一幅静态图片就是“帧”。因此,视频检测的实质是针对一系列的连续静态图片——帧所做的检测,所以这节的重点是学习如何处理帧。
教师先讲解如何调用摄像头→读取帧→关闭摄像头,让学生上机实践,学会对摄像头的控制和对帧的读取;再结合基于图片检测的知识,对帧加入進行人脸检测的代码。根据前面的图片检测眼睛的练习,可以设置“基于视频检测眼睛”的拓展练习。为了提高学生的学习兴趣,可以让学生阅读关于人脸识别技术发展的相关资料。
2.人脸训练识别
在已经检测到人脸的基础上让机器“认识”人,核心是机器学习。机器要“学习”,离不开数据,这体现了数据的重要性。
(1)基于图片的人脸识别
这部分的教学目标是理解基于图片的“人脸识别”原理,能对不同的人脸进行识别;教学重难点是理解机器学习,了解标签的作用和置信度的含义。
机器学习是教学的重难点,机器学习的过程要分析清楚。机器学习需要数据,输入人脸图片,对它进行训练,它会学习关于人脸特征的内容。在训练完成后,当输入一张人脸照片时,它会依据前面的学习判断出这个人是否“认识”。一般来说,给机器训练的数据越多,它的识别结果越准确,可以给学生提供介绍“人脸数据集”的相关资料。
本节课的人脸识别程序使用LBPH识别器,这个识别器由OpenCV扩展库提供,需要安装此扩展库,对LBPH识别器的介绍可放在“知识卡片”中。
在实践环节,教师首先分析针对单人的训练识别,明确人脸识别程序的主要步骤为:引入相关库——输入训练图片——设置图片标签——加入LBPH识别器——机器训练——输入预测图片——机器识别预测——输出预测结果。设置标签属于机器学习中的有监督学习,此处可以根据学生的接受程度,适当加入有监督学习和无监督学习的介绍。
接着让学生思考如何在单人识别的基础上完成两人的训练识别。如果学生能够完成多人的训练识别,可以进行练习二:将程序中输出的标签和置信度修改成更容易让普通人看懂的结果。顺着这个思路,拓展练习可设置成:直接在图片上标注识别出的人名。人脸识别属于计算机视觉的范围,拓展阅读可以给学生提供计算机视觉的相关资料。
(2)基于视频的人脸识别
这部分的教学目标是综合运用前面的知识,完成一个比较完整的项目。如果学生基础比较薄弱,可以把这部分简化,作为体验课。
● 教学反思
学生在运行基于图片的人脸检测程序时发现,只有用正脸照片才能识别,侧脸图片无法识别。笔者顺着这个问题引导学生观察OpenCV库的Haar分类器,有些学生发现了侧脸分类器 haarcascade_frontalface_alt.xml,用这个分类器可以对侧脸进行识别。为什么侧脸分类器可以识别正脸分类器无法识别的人脸呢?笔者抛出这个问题,引发了学生的热烈讨论。另外,在一个班有一对双胞胎,为了分辨双胞胎,学生们反复调整置信度,或者换不同的识别器,整个课堂的教学氛围非常积极活跃,完全超出了教学预设。
教学设计是有规律可寻的,但真实的课堂远比预设的更精彩,这也是值得教师庆幸的事。