宋秀双 河北省张家口市涿鹿县涿鹿中学信息技术教师,曾荣获张家口市信息技术教学新星、张家口市学科带头人等称号。所做课程荣获河北省优秀示范课,辅导的学生曾获“童创未来”全国青少年人工智能创新挑战赛金奖、河北省第五届中小学教育机器人暨创客竞赛创客项目高中组一等奖。
教学背景
2011年,卫生部发布了《老年人跌倒干预技术指南》,其中提到:跌倒是我国65岁以上老年人伤害死亡的首位原因,并且老年人跌倒死亡率随年龄的增加急剧上升。跌倒除了会导致老年人死亡外,还可能导致大量残疾,影响老年人的身心健康。而且我国已进入老龄化社会,65岁及以上老年人已达1.5亿,按30%的发生率估算,每年将有4000多万老年人至少发生1次跌倒。因此,本课带领学生制作一个老人跌倒AI警报器,帮助家属关注老人居家生活情况,在发生跌倒事件时及时报警,从而让老人及时就医,降低伤亡风险。
教学目标
1.学会在Mind+软件环境的Python模式下,安装MediaPipe开源人工智能库。
2.利用MediaPipe开源人工智能库判断人体跌倒特征,感受人工智能。
3.学会在Mind+的上传模式下,编程实现通过物联网与Arduino通信,让学生掌握LED灯带及语音合成模块的使用方法。
4.学会积极观察身边的事情并发现问题,然后从中找到解决问题的办法,在生活中传承尊老、敬老、爱老的中华民族传统美德。
教学重点与难点
教学重点 两个人体跌倒行为特征分析。
教学难点 在Python模式下,使用MediaPipe开源人工智能库编写程序,识别跌倒特征。
教学准备
开发板LattePanda、摄像头、DFRduino UNO R3(Arduino 主控板)、Arduino IO传感器扩展板V7.1、语音合成模块、WS2812 RGB 全彩灯带(7灯珠),物联网模块。
教学过程
一、情境导入
师:2021年7月31日,安徽蚌埠一名独居老人在家中阳台摔倒。8月3日,有居民听到敲击声,才发现老人在家中跌倒,急忙报警求助。很庆幸,这位老人最终等来了外界的救助,没有生命危险。同学们想一想,怎样避免这种情况出现呢?
学生思考、回答。
师:同学们说得都很好,我们确实应该多多陪在老人身边。即使在外工作,也应常回家看看。大家想一想,有没有更智能的方法来解决这个问题呢?
学生思考并讨论。
师:解决这个问题的方法有很多,比如用摄像头来监控老人在家的状态,利用人工智能算法来判断是否跌倒,并语音提醒在家的亲属。还可以通过物联网发送指令给接收端进行声光报警,同时也可以将老人跌倒的照片通过QQ邮件发送给远方的亲属。今天老师就带领大家制作一个老人跌倒AI警报器。
二、跌倒行为特征分析
跌倒指因羁绊、地面湿滑使脚失足,产生快速倾倒。跌——失足,落,降低;倒——躺在地上,平躺、趴、侧卧等。跌倒是瞬间动作,人体的动作、高度和速度等会快速地改变。人体在跌倒过程中,一般是从站立状态到坐在地板上或者躺在地板上,人体的中心点从较高的位置快速下降到地面或者接近地面的高度。人体跌倒后,身体一般是仰卧式、俯卧式和侧卧式,这时两髋中心点离地面(两脚中点)的高度非常小。
所以可根据跌倒行为这两个特征进行判断。目标人体中心点的下降速度是第一个检测特征,如果检测到了第一个检测特征,再进一步检测第二个特征,即两髋中心点离地面的高度。地面位置不好确定,可以近似采用左脚和右脚连线中点代表地面。
三、设计与制作
1.硬件搭建与连接
教师展示电子电路图。先将摄像头连接开发板LattePanda,再将LED灯带接Arduino扩展板引脚4,语音合成模块接IIC接口,物联网模块接UART引脚,T接RX,R接TX,+接VCC,-接GND。
学生小组分工合作进行硬件连接,连接好后将其装入容器中,容器课前自行准备。组内安排专人负责检查接线是否正确,以防通电后烧坏硬件设备。
教师展示学生连接好的硬件设备,如图1。
2.软件配置
师:我们如何判断人体跌倒情况呢?这就需要用到姿势估计。它涉及人体关节(通常称为关键点)在图像的定位。每个人都可由多个关键点组成,在关键点之间绘制线条,能有效地绘制人的粗略形状。MediaPipe可以直接调用其API完成目标检测、人脸检测以及关键点检测等,如图2。
本例中,可选择两肩中点作为稳定的参考点(与摆动的胳膊和腿比较)。通过对目标人体监测,实时处理返回的骨骼数据,在每相邻10帧求一次人体参考点的下降速度spineV。当spineV>VT(临界值),则认为检测到了第一个跌倒特征。当检测到了第一个跌倒特征后,只要计算两髋中心点距离两脚中点的高度baseH。当baseH<临界值,则认为检测到第二个检测特征,认定此人跌倒。
教师指导学生在开发板LattePanda中安装MediaPipe开源人工智能库,安装命令:pip install mediapipe。
3.程序编写
教师对系统监控端程序代码进行分功能段讲解,包括利用OpenCV获取摄像头图像;利用PoseModule类获取图像中人体姿态坐标;通过姿态分析识别出跌倒的两个特征;输出画面显示“跌倒”字样。
4.测试程序模型
师:我们可以选择UR跌倒检测数据集来进行测试,因为它包含不同的跌倒场景。使用视频“fall.mp4”,程序代码改成cap = cv2.VideoCapture('fall.mp4')。
教师提供视频,学生利用自己编写的程序进行测试,如图3。
师:我们还可以编写程序,让系统监控端通过邮件服务器自动向指定联系人发送邮件,邮件内容包含被监护人姓名、跌倒事件发生的时间以及现场RGB图像等重要信息,确保相关监护人会在第一时间收到老年人发生跌倒的通知,以便提供及时有效的救助,减少损失和伤害。
学生以小组为单位完成邮件提醒程序编写与调试。
师:我们还可以利用Mind+软件及Easy IoT物联网技术,实现数据无线传输。让Arduino通过物联网模块接收数据,通过语音合成模块播放警报信息,并用LED灯闪烁提醒,吸引周围邻居的关注,让独居老人也能得到及时救助。
学生小组合作完成程序编写,让系统端通过物联网发送警报信息。
(教师通过讲解及任务分解,帮助学生明确分工,合作完成完整程序的编写。学生在小组讨论和不断地调试、修正过程中完善程序,并在此过程中培养沟通、团结、合作的能力。最后教师再公布完整程序。)
四、拓展与提升
师:本节课运用人工智能算法来判断老人跌倒,并通过物联网和QQ邮件告知亲属,让大家认识了MediaPipe开源人工智能库,掌握了LED灯带与语音合成模块的使用方法。希望同学们通过今天的制作,能够发现更多我们生活中存在的老人安全问题,然后使用人工智能技术去解决,并创新出更多、更优秀的作品。
教师布置课后任务:本项目作品只能在老人跌倒后进行报警。怎样能在老人跌倒前,通过对老人姿态的分析,进行有效的预警?比如告知有晕倒倾向的老人,及时停下来休息。请根据本节课所学的教学内容,使用如树莓派、熊猫板等制作一款老人跌倒预警器,并尝试改进它的不足之处。
教学反思
本课通过老人跌倒AI警报器的制作过程,让学生学会观察生活,发现生活中经常遇到的问题,然后通过学习新的技术去寻找解决问题的方法。在教学方法上,本节课每个教学环节我都会提出问题,让学生在活动实践中观察思考。在制作过程中,我将任务进行分解,让学生在一个个小任务中逐步发现问题和解决问题。本课例是一个综合性的项目,不仅有开源硬件和开源算法的运用,还涉及人工智能,既培养了学生的思维能力,同时又培养了学生使用新技术解决实际问题的能力,提升了学生的综合素质。
(本课件由DF创客社区推荐)