人工智能之视觉技术
作者: 周茂华 石占虎 张勇
教学背景
人工智能创意应用是基于人工智能技术,帮助中小学生通过机器学习、算力、算法、数据建模等方式,开发与设计具有创新性应用、具有交互性的人工智能创新创意作品。基于近几年的新冠肺炎疫情,以智能防疫为主题开展了一系列人工智能创意应用项目教学,其中口罩识别是智能防疫的基础入门课程,对于学生理解和运用人工智能技术有很好的启发性。
教学主题
本节课采用项目式学习方式进行,智能识别是否佩戴口罩。在课堂上充分调动学生的自主性,让学生在制作过程中掌握人工智能中模型的训练和调用,了解KNN算法,并运用这些知识完成项目。
实施步骤
项目准备
本项目通过开源硬件实现效果,提供硬件清单如下:掌控板×1,掌控板扩展板×1,小方舟视觉传感器×1(图1)。将小方舟通过连接线连接到掌控板的串口上,其中TX接P1口,RX接P0口。编程软件使用mPython,其中包含了编程需要的各种Python库。
训练模型
小方舟作为视觉传感器要实现检测口罩的任务,需要提前进行模型训练,让小方舟通过学习训练1个完整的模型,之后调用该模型就可实现口罩检测任务。
小方舟训练模型采用KNN算法,该算法也叫邻近算法,或K最邻近(KNN,K-Nearest Neighbor)分类算法,是数据挖掘分类技术中最简单的方法之一。所谓K最邻近,就是K个最近的邻居,意指每个样本都可用它最接近的K个邻近值代表。邻近算法是将数据集合中每一个记录进行分类的方法,其原理为:从所有的训练样本中找出与未知最近的K个样本,将K个样本中出现最多的类别赋给未知样本。
比如,一只鹰在农场长大,不知道自己是什么种类,如果在它生活的环境里有鸡和鹰,那么它会认为自己是鹰还是鸡呢?
假设图2中绿色的圆代表从小生活在农场里的鹰,蓝色正方形代表生活在它附近的鸡,红色三角形代表生活在它附近的其他鹰,那么从小就生活在农场里的鹰会认为自己是鹰还是鸡呢?这取决于它心里的“K”,如果K为1,它周边围有3只鹰,1只鸡,它会认为自己是鹰;如果K为3,它周边有7只鸡,4只鹰,那么它会认为自己是鸡。可见,环境对认知的影响非常重要。
小方舟内置了KNN算法,学生只需调用即可。代码如下:
刷入代码后,小方舟界面会出现“物体学习”字样(图3)。
通过掌控板的A、B按键进行学习,其中A键表示类别,按1下A键表示学习第1个类别,再按1下A键表示学习第2个类别,以此类推,代码如下:
B键表示进行学习,将该分类下的多张图片让小方舟学习,学习1张按1下B键。代码如下:
几个分类学习完后,再按一下A键表示训练完成,此时小方舟会出现“训练中……”字样(图4)。
训练结束,小方舟识别到戴口罩的人脸出现Mask字样,识别到没有戴口罩的人脸出现Nomask字样,后面都会跟一串数字,数字表示识别的精准度,数字越小说明识别越精准。
调用模型
训练完成就可以调用这个模型,过程如下:初始化小方舟,调用模型分类器“traffic”,如果精准度小于10,说明已经识别到了人脸,再根据返回的ID执行操作。其中Mask的ID为0,Nomask的ID为1。代码如下:
总结反思
人工智能教育是提升学生人工智能素养的泛学科教育,旨在培养学生理解和掌握人工智能的知识、原理,体验和实践人工智能技术,并运用技术尝试创造性地解决实际问题的能力。但由于其涉及到的知识面较多,对于学生而言学习难度太大,容易打消他们学习的积极性,因此,在中小学人工智能教育中不妨放弃那些复杂的原理和理论,轻装上阵,以项目体验的方式,借助各种开源的软硬件进行实现,学生在收获成就感的同时,也激发了学习兴趣,可为未来的真正的人工智能学习奠定基础。