高山
摘要:2020年修订版信息技术课程标准提出,要通过典型的应用实例,了解数据采集、分析和可视化表达的基本方法,使学生掌握一种程序设计语言的基本知识,使用程序设计语言实现简单算法。本案例以机械手为平台让学生在解决问题的过程中,将所思、所想在机械手的平台上进行操作,通过问题提出、问题分析,最终解决“手势识别”问题的过程,培养学生的创新思维能力,提升学生利用信息技术解决实际问题的能力。
关键词:人工智能;机械手;Python
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2021)S2-0038-04
引言
2017年教育部颁布的高中信息技术课程标准,将《人工智能初步》纳入到信息技术选修课当中,然而,人工智能教育在国内还处于初步阶段,大部分的人工智能实验室和课程都是学校与社会资源合作建设开发的。尽管2003年高中阶段就开设过人工智能课程,但是课程开设效果不明显,以北京市为例,多数北京学校的人工智能教育以信息技术机房为上课地点,用传统的教育教学方式授课,人工智能教育还是以编程解决计算机程序问题为主。少数学校使用智能教学工具辅助进行人工智能编程教育,但教学环节还是采用传统教学,教学平台单一,缺少生动有趣的人工智能教学平台。笔者针对这些问题,结合高中信息技术课程标准,开发了用Python实现“手势识别”机械手的教学案例,本案例可操作性强,能够激发学生学习人工智能技术的兴趣,具有一定的教育普及性。
问题的提出
中小学校的人工智能教育对于教师和学生来说都具有挑战性,在课堂中,如何能够生动、形象、有趣地为学生讲解人工智能课程是教师需要面对的问题。
1.以计算机为主的教学平台,缺乏生动有趣的教学情境和项目
在传统的信息技术教学中,教师通过计算机为学生讲解编程等信息技术,如今,大部分中小学的人工智能选修课程使用的依然是计算机编程。不可否认,计算机容易上手,通过教学活动,结果可以十分方便地显示到屏幕上,但是,所有的课程都使用计算机授课容易脱离生活,使课程枯燥,让学生逐渐失去学习的兴趣。
2.中小学人工智能教学中没有系统的人工智能机器人教学平台
目前,大多数中小学校的人工智能课程还是以体验为主,利用图形化编程感受人工智能应用,有的学校如顺义马坡中心小学利用一些智能硬件去讲解人工智能课程。从整体上看,中小学人工智能课程中还不具备系统、专业的人工智能教学设备。
因此,本案例将从学生学段特点和教师特点出发,开发适合中小学人工智能教育教学技术平台,通过人工智能机械手去培养学生对人工智能技术的兴趣,掌握人工智能知识。
人工智能机械手教学案例研究
1.案例介绍
手势识别技术是人工智能图像识别技术中的一项应用技术,是一种新型的人机交互方式。它利用机器学习的算法识别人类的手势动作,这一技术被广泛应用到智能家居、智能穿戴和智能汽车中。本节课是我校人工智能校本课程让机械手具备“智能”单元中的第2节课,本单元课程框架如图1所示。这节课也是人民教育出版社和中国地图出版社出版的信息技术必修1“数据与计算”第4章第2节“利用智能工具解决问题”的内容。学生通过本节课的学习了解人工智能系统工作的一般过程,理解人工智能平台中手势识别智能工具的使用方法;能够使用分支语句进行编程;掌握使用智能工具解决问题的技术过程。
2.案例准备
(1)教学工具的准备
人工智能机械手:人工智能机械手是以树莓派开源硬件作为核心处理系统,使用Arduino开源硬件控制机械手的动作。使用Python语言编程可以实现对机械手手指以及手臂的转动以及通过图像识别技术实现对手势的识别。
Python程序设计语言:Python程序设计语言是一种跨平台的编程语言,它的语法简单易学,适合初学者学习,同时它可以使用大量的第三方函数库进行程序设计和开发。此外,人民教育出版社出版的信息技术必修教材的程序设计语言是Python语言,这样可以更好地结合国家教材进行人工智能教学。
(2)手势识别网络工具的准备
手势识别技术需要使用机器学习的算法和技术,在这里我们需要连接互联网,使用“百度大脑”的手势识别API接口进行手势的识别。准备工作如下。
网络注册:使用人工智能工具需要在智能平台网站上先注册个人信息再使用。例如,在百度大脑上,我们先要为每组学生注册一个使用账号。
获得KEY序列号:注册完成后,登录百度智能云系统。在控制台建立手势识别的个人应用,得到三个序列号:用户AppID号、手势识别号KEY、用户密钥号SECRET_KEY。
3.案例实施过程
用Python实现“手势识别”机械手的教学案例的实施过程分为情景导入,编写手势识别机械手程序,拓展学习和总结提升四个部分。
(1)情境导入
课程采用学生身边的真实案例引入,本校学生制作的“手语灵巧手”获得全国青少年创新大赛一等奖,学生通过观看创新作品的视频,了解机械手工作的过程,感受人工智能就在我们的身边,激发学习热情。
(2)编写手势识别机械手程序
①引用Python模块。
手势识别程序需要引用Aip模块中的AipBodyAnalysis函数,此模块的作用是与手势识别智能平臺进行网络连接。此外还需要引入一些其他模块。
from aip import AipBodyAnalysis #引用手势识别模块
②编写关联程序并使用Python中的模块连接。
app_id='22877235'
api_key='jhj7msxOwpplIy
w1ZgeY3Yyc'
secret_key='nNdxAsBIrNO
cPomgizdbZpVATP8PdCb3'
gesture_client =AipBod
yAnalysis(app_id,api_key,secret
_key) #连接服务器
③编写摄像头采集图片程序。
Serial_Init() #串口初始化
Camera_Init() #摄像头初始化
Window_Init("cap",320,240)
#打开桌面视频窗口
threading.Thread(target =
Dynamic_Show).start() #开始视频采集
④编写主代码。
使用Python编程设计四种手势的程序,实现机械手模拟人手。本案例中的手势识别智能工具可以识别15种常见手势。
使用分支语句编写主程序代码:
while True:
result_1 = Pic_Analysis() #将手势识别全部信息返回给变量result_1
if not 'error_code' in result_1.keys() and result_1['result_num'] != 0:
for j in result_1['result']:
if j['classname'] != 'Face':
result_2 = j['classname'] #将手势识别的结果信息赋值result_2
print(result_2)
if result_2 == 'One': #比较结果
Fingers_Degree_Set(0, 99, 0,0, 0, 50) #控制手势动作
if result_2 == 'Two':
Fingers_Degree_Set(0, 99, 99,0, 0, 50)
if result_2 == 'Three':
Fingers_Degree_Set(0, 99, 99,99, 0, 50)
if result_2 == 'Four':
Fingers_Degree_Set(0, 99, 99,99, 99, 50)
⑤案例实现效果。
运行程序,手势的图像信息会在屏幕中的窗口显示。摆出“1”的手势动作,机械手将会做出相同的动作。
(3)拓展学习
如果你要完成一个可以使用语音控制机械手的任务,想一想,操作过程是什么?操作过程如图2所示。
(4)总结提升
①手势识别是一种新型的人机交互方式。
②人工智能系统工作的一般过程,如图3所示。
③利用智能工具解决问题的技术过程如下页图4所示。
结论
本案例提出了一种以机械手作为教学平台的课程设计思路,让学生对开源硬件实体进行学习和探究,重点培养学生利用人工智能技术解决生活中现实问题的计算思维能力,在解决问题的过程中鼓励学生思考、创新、实践,从而培养学生的创造性思维能力,让学生将学习到的人工智能技术迁移到生活中遇到的问题中,学以致用;解决了目前中小学人工智能教学中教学手段单一、学生兴趣不高的问题,在内容上尊重学生的理解程度和认知规律,避免过高的门槛对学生学习和教师教学产生阻碍,在教学过程中,更加重视实践性和学生的兴趣养成,关注学生兴趣点以及思维的培养。课程主线立足于人工智能核心内容领域,而非编程、机器人、开源硬件等内容的讲授。在整体案例设计中,遵循“体验-探究-提升-总结”的教学思路,让学生在兴趣、探究中获取人工智能知识。
参考文献:
[1]朱微霞.基于Python深度学习的目标检测案例探究——高中信息技術校本课程人工智能案例开发[J].现代信息科技,2020,4(14):70-72.
[2]张俊花,贾丙辉.借助机器人巡线引领探究性学习——“基于机器人教育的程序设计”教学案例及分析[J].中国教育技术装备,2019(15):68-70.