作者
刘 梅
山东省淄博第一中学
“一口道尽千年事,双手对舞百万兵”,传统皮影戏因其操作复杂、对表演者技艺要求严苛,加之缺乏足够的交互性,难以与观众建立深入的互动,阻碍了这一传统艺术的传承与发展。本项目基于人体姿态识别技术,实现“无接触式”的皮影戏互动表演,旨在利用人工智能技术创新皮影戏文化。
课程目标
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
课程通过4个子项目带领学生学习人体姿态识别技术的原理及应用。通过人体姿态数据采集、模型训练、模型调用、模型优化、模型部署等环节,带领学生亲历完整的人工智能模型训练流程。
学情分析
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
本项目授课对象为高中二年级学生,已具备一定的 Python编程基础与开源硬件操作经验,在前期参与过人工智能相关项目的开发。
课程设计
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
以“打造多功能人工智能皮影机器人”为主题,包含4个子项目,共计7个课时,在真实的项目情境下,带领学生依次完成核心知识的学习,课程安排如图1所示。
图 1 课程安排
教学准备
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
软件工具
XEdu安装包、半成品代码。
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
硬件工具
摄像头、Arduino板、舵机、LED小灯、OLED屏、杜邦线。
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
分组情况
学生2人1组,每组配备1套硬件器材。
实施过程
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
简单数学模型构建(以课时1为例)
思考:如何利用简单手势控制小灯亮灭?
教师首先为学生表演一段魔术“空中点灯”,隐藏摄像头后,通过食指与拇指的开合,控制LED小灯亮灭。学生结合手部关键点检测原理,在教师的引导下,将两指开合问题抽象成平面中两点之间的距离问题,并结合两点之间的距离公式,通过编程控制LED小灯亮灭(图2)。
图 2 学生利用简单手势控制小灯
设计意图 鉴于后续项目中“机器学习建模”相关内容较为抽象,学生理解起来存在一定困难,因此设置本节课作为前置课程。课程聚焦于引导学生通过“人工搭建简单数学模型”的实践过程,助力其深入理解后续机器学习流程中复杂模型训练与建模的内在逻辑,从而搭建起从“简单建模”到“复杂建模”的认知阶梯,实现有效过渡。
数据集的获取(以课时3为例)
思考:在机器学习中,数据集的概念及作用是什么?
在机器学习过程中,数据集就如同烹饪所需的原材料,是训练模型不可或缺的基础。数据集的获取方式有很多,本项目中,需要借助摄像头采集4种特定的手语手势数据。学生依据分组主题,补全相关代码,为采集到的手势数据添加标签。随后,利用摄像头,按照预先设定的命名顺序,依次采集多种手语姿态,每种50张,以此构建完整的数据集。
设计意图 数据采集为模型训练的首要环节,数据集的质量直接影响后期模型训练质量。通过本环节,学生可以初步理解数据集的概念及其在模型训练中的关键作用,理解标签的含义,并动手实践,体验自主采集数据集的过程与方法。
复杂模型训练与优化(以课时4为例)
思考:如何搭建神经网络进行复杂模型的训练?如何调整关键参数以提高模型训练质量?
数据获取及预处理完成后,需要搭建神经网络进行模型训练。本项目使用的是LSTM(长短期记忆网络),这是一种特殊的循环神经网络(RNN),被广泛应用于文本分类、姿态估计、语音识别等领域。学生利用model.add()函数补全代码,添加神经网络各层,构建完整的LSTM模型架构。学生2人1组,对test_size、epochs等关键参数进行差异化赋值,观察模型训练中不同关键参数对loss(损失函数)与accuracy(准确率)的影响,并在电子学案中做好记录,进而理解不同参数对模型训练质量的影响。核心代码如图3所示。
图 3 LSTM 神经网络搭建核心代码示例
设计意图 本项目旨在帮助学生理解机器学习模型训练的具体流程及不同关键参数对模型训练质量的影响。
模型调用及部署(以课时6为例)
思考:如何结合开源硬件部署训练得到的模型,以增加模型的交互性与趣味性?
学生按照线路图连接硬件器材,补全半成品代码,调用前期训练生成的h5模型权重文件,结合分支语句,实现不同手语手势控制不同颜色的小灯亮起、触发语音播报等(图4)。
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
图 4 模型调用及部署
设计意图 学生实现了利用开源硬件部署训练模型的操作,完成了从数据获取到部署应用的完整机器学习流程。这一过程不仅让学生对机器学习有了更深刻的理解,也让他们感受到了技术落地的魅力。
成果展示与总结评价
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
教师总结项目内容,各小组填写项目评价量表,展示本组作品,分享设计和实现过程中的心得体会与收获,以便在后期进一步完善作品。
设计意图 诊断教学目标达成度,对学生学习效果进行评价。
学习成果
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
在皮影机器人开发实践中,学生基于原有功能,创新性地融入语音对话、环境温湿度监测等功能,打造出兼具趣味交互与实用价值的多功能智能皮影机器人。在实践合作过程中,学生编程能力显著提升,掌握了运用技术工具解决实际问题的技巧,创新精神与动手能力得到充分锻炼,同时信息社会责任感也得以强化。
图5 学生作品示例
反思与提高
nload="this.removeAttribute('width'); this.removeAttribute('height'); this.removeAttribute('onload');" />
本项目具有极高的趣味性与交互性,且易于拓展。学生如想开发出更多的项目,只需要采集不同类型的人体姿态,并借助更多的软硬件工具完成部署即可,如开发交警手势识别装置、深蹲检测装置等。
模型训练是一个考验时间与算力的环节,尤其在普通机房这样的低算力环境下,要让学生从头训练得到1个模型十分困难。本项目中,教师提前训练好1个完成度约50%的预训练模型,学生在此基础上对预训练模型关键参数进行微调,短时间内即可训练生成新的模型,提高了课堂效率。但学生采集的人体姿态必须与教师进行模型训练时采集的姿态动作一致,不利于个性化训练模型。未来教师可提供多种姿态的预训练模型,供学生选择使用,从而生成更加多样化的成果。
本文系淄博市教育科学“十四五”规划课题“基于跨学科理念的普通高中人工智能项目教学实践研究”(课题批准号:2025ZJY029)阶段性研究成果
微店订阅流程
step 1
step 2
点击图片直接跳小程序
来源 | 《中国科技教育》2025-06
编辑 | 孟想
审校 | 若惜、朱志安