基于YoloV8开展高中人工智能项目教学
作者: 周由
摘要:在人工智能时代背景下,中小学开展人工智能教学是时代所需、国家所需。但受制于教师的知识储备、教学资源与工具等因素,教师在开展高中人工智能教学过程中,常常难以引领学生利用所学人工智能知识去解决真实问题。YoloV8作为一种目标检测算法,具有低门槛、高界限的特点,适用于解决各种计算机视觉任务。本文以“疲劳驾驶检测”项目为例,展示了基于YoloV8进行人工智能项目开发的具体步骤与优势,其有利于提升学生的核心素养,也为教师在高中开展人工智能项目教学提供了一个新的视角。
关键词:高中人工智能;项目教学;YoloV8
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)07-0077-04
引言
随着人工智能(简称AI)技术的飞速发展,AI已对人类的生活、学习、工作等产生了深远的影响。2017年7月,国务院印发的《新一代人工智能教育发展规划》[1]提出:实施全民智能教育项目,要在中小学阶段设置人工智能相关课程,逐步推广编程教育。教育部在《教育信息化2.0行动计划》[2]中也提出要求:完善课程方案和课程标准,充实适应信息时代、智能时代发展需要的人工智能和编程课程内容。《普通高中信息技术课程标准(2017年版)》[3](以下简称“新课标”)中也分别在必修和选择性必修中对高中人工智能教育提出了具体的内容要求。由此可见,开展人工智能教育是人工智能时代所需,也是国家与社会所需。
目前,国内中小学开展的人工智能教学实践探索可分为两类:一是在机器人或创客课程中引入人工智能内容,这一类探索侧重于人工智能与机器人、编程的融合;二是开设专门的人工智能课程,这一类探索侧重于人工智能历史、原理、应用、伦理等的讲解,这与课程标准选择性必修模块内容相呼应。从实践情况来看,目前国内中小学的人工智能教育主要是依托编程教育与机器人教育来开展。[4]开展第二类教学实践探索的学校、教师相对较少的原因主要是缺乏专业师资与教学资源。詹泽慧、钟柏昌对选择性必修模块《人工智能初步》四个版本(教科版、人教版、浙教版和粤教版)的教材内容进行分析发现,高中人工智能教学内容的大部分知识点集中在人工智能核心算法和典型应用上,凸显了算法这一学科大概念。[5]人工智能核心算法如启发式搜索、机器学习、神经网络等对教师的知识储备要求非常高,这使得许多一线教师产生望而却步的心理。在教学资源方面,有人提出“除部分发达地区以外,多数地区没有与教学相适配的实验室”。[6]一些人工智能教材在编写时采用了一些AI开放平台、Python第三方库来实现AI典型应用,这类工具适合向学生进行人工智能算法、原理的讲解,但由于涉及较多的编程知识,学生难以应用所学人工智能的知识设计创新应用解决真实问题;一些教材则通过与公司合作的形式搭建了专门的AI教学实验平台[7],但由于这类实验平台常常是付费的,大部分学校都无法使用。
新课标的“人工智能初步”模块提出,利用开源人工智能应用框架,搭建简单的人工智能应用模块。[3]美国K12人工智能教学指南中也提倡教师在人工智能教学中,引导和鼓励学生使用开源软件或服务来开发自己的AI应用,让学生在设计和应用中学习。[8]综上所述,简单易用、能搭建AI应用的工具或开源框架不仅是教师开展高中人工智能教学、学生开展人工智能项目实践的必需品,还能激发教师教学人工智能和学生学习人工智能的信心、兴趣。因此,笔者借助YoloV8这一简单易用的搭建AI应用的工具,开展了人工智能教学的尝试。
基于YoloV8开发人工智能项目的步骤
YoloV8是YOLO(You Only Look Once)系列算法的最新版本,适用于解决各种计算机视觉任务,如目标检测、图像分类、运动追踪、语义分割、姿态估计等。借助YoloV8实现上述计算机视觉任务不仅编程简单,而且训练的模型性能非常优越。这使得教师、学生均可从烦琐的编程中脱离出来,从而更加关注真实问题的解决、人工智能应用的创新设计。下面,以“疲劳驾驶检测”项目为例,介绍基于YoloV8开发人工智能项目的一般步骤与实施过程。
1.项目简介
据世界卫生组织预测,到2030年,由道路交通事故导致人类死亡的数量将位居全球第5位。公安部交管局统计数据显示,20%的道路交通事故由疲劳驾驶造成,疲劳驾驶已成为道路交通事故的“头号杀手”。[9]检测驾驶员开车过程中是否存在疲劳驾驶,有助于预防交通事故的发生。本项目将单位时间内眼睛闭合时间所占百分比作为判断驾驶员是否疲劳驾驶的依据,一般来讲,当1s~1.5s内眼睛闭合时间占比达70%~80%时则认为驾驶员是疲劳驾驶。[10]
项目待解决问题有:①对于一张人脸图像,如何检测是不是闭眼状态?②对于一段视频,如何计算单位时间内的眼睛闭合时间所占比例?针对问题①,本项目借助YoloV8工具训练目标检测模型解决,针对问题②,本项目借助OpenCV工具获取视频帧,再利用训练好的YoloV8目标检测模型来检测每一帧是否闭眼,统计闭眼时间占比。由于本文旨在介绍YoloV8工具开发人工智能项目的优势,故问题②的解决过程省略。
2.YoloV8项目环境准备
YoloV8是基于深度学习框架pytorch编写的,因此,在使用YoloV8开发人工智能项目前,需要安装pytorch,再安装ultralytics库,之后便可正常使用YoloV8相关预训练模型,安装pytorch和ultralytics库只需要简单的几行指令即可,该部分可由教师提前在网络教室部署完成。
3.数据集准备
(1)图像标注
YoloV8算法是一种监督学习算法,因此,用于YoloV8训练的数据集中的每张图片都需有相应的标注信息,其标注信息采用一个文本文档存储,下页图1为一张图片及其标注信息的示例。在该标注信息中,分别记录了图像中每个标注框中检测对象的类别、中心横坐标与图像宽度比值、中心纵坐标与图像宽度比值、标注框宽度与图像宽度比值、标注框高度与图像高度比值,这些信息可用于定位一张给定的图像中标注框所在的图像区域,进而使用这个区域的像素与这个区域对应的类别进行训练。
(2)划分数据集
对于标注后的数据集,还需要将数据集按照一定的比例随机划分为训练集、验证集和测试集(可选),其中,训练集用于训练模型得到模型参数,验证集将用于模型的超参数选择和性能调优,测试集则用于评估最终模型性能的评估。
(3)本项目使用的数据集概况
针对疲劳驾驶检测,网络上有许多开源数据集,如YAWDD数据集可用于训练检测驾驶员是否打哈欠。本项目数据集来自网络,数据集中共包含2914张经过标注的图像,其中训练集2332张,验证集582张,图像分辨率为640*480像素,图像标注信息共4个类别,分别是为:类别0:closed_eye、类别1:closed_mouth、类别2:open_eye、类别3:open_mouth。
(4)创建数据集配置文件
数据集配置文件是一种yaml格式的文件,文件的主要内容为训练集、验证集图像的路径,每个检测对象的类别编号及名称。
4.模型的训练
在准备好数据集和配置文件后,借助YoloV8进行目标检测模型训练非常简单,其程序仅三行(如图2)。其中,YOLO(‘yolov8n.pt’)加载了一个预训练模型,该模型是基于coco数据集训练的,Ultralytics官网文档中还提供了更多的模型加载方式;model.train()函数中提供了三个参数,参数data为数据集配置文件路径,参数epochs为训练的轮次,参数imgsz为图像大小,更多参数设置可进一步参考Ultralytics官网文档。
5.调用模型进行预测
调用训练好的模型进行预测,也只需三行代码(如图3)。其中,YOLO('./runs/detect/train2/weights/best.pt')加载了用该数据集训练好的目标检测模型,model.predict()函数中传入了一张图像,并将目标检测结果存入results中,关于results的详细内容,可参考Ultralytics官网文档。
6.项目实施概况
本项目在笔者所在学校高中人工智能校本选修课中实施,在实施过程中,学生惊讶于YoloV8训练模型的简便与性能的优越,在进行项目选题与规划时,学生孵化的项目也非常有创意。例如,有的项目是基于YoloV8的限速牌检测与分类,该项目的背景是针对由于地图数据更新不及时、某些偏远地区限速牌情况未知等情况,借助YoloV8实时检测限速牌、取消限速牌信息,从而实时提醒驾驶员;有的项目是基于YoloV8的自助摄影系统,想在摄影过程中,通过选定摄影对象进行自助跟踪拍摄……YoloV8这一工具让学生能天马行空地去想象,而无需受制于当下的知识储备与编程能力。
基于YoloV8开展高中人工智能项目教学的优势、局限与建议
1.优势与局限
优势:低门槛,高界限。基于YoloV8开发人工智能项目编程难度低,学生容易上手,YoloV8训练的模型性能优越,可用于解决许多真实问题。
局限:由于YoloV8是计算机视觉领域的工具,所以无法基于该工具开发自然语言处理等其他人工智能领域的项目。
2.建议
第一,重视人工智能原理的探究。虽然基于YoloV8可以快速地进行项目开发,避免了学生陷入琐碎的编程任务中,但若教师忽视人工智能原理的介绍与讲解,学生即便使用YoloV8完成了项目,也是知其然不知其所以然。因此,教师需根据课程标准、教材设计系统的教学内容,在指导学生开展项目实践的同时注重人工智能原理的探究。
第二,关注真实问题的解决。一方面,YoloV8工具的编程难度较低,教师的关注点可更多放在如何孵化项目解决真实问题上;另一方面,真实的问题的解决常常不会仅仅依赖某一个工具,但真实问题常常能激发学生主动探究的欲望,促使学生进一步学习其他人工智能技术并应用所学知识来解决问题,从而提升学生的核心素养。
第三,关注人工智能带来的伦理和社会影响。在教学过程中,要有意识地引导学生思考和讨论人工智能技术的伦理和社会影响,如让他们了解目标检测技术在隐私、安全和公平性方面可能产生的问题,并鼓励他们思考如何解决这些挑战。
结语
本文介绍了YoloV8这一计算机视觉工具,其具有低门槛、高界限的特点,虽然该工具仅仅是针对计算机视觉领域,但基于该工具可孵化出非常多的创新人工智能项目,因此可用于高中人工智能项目教学。
当然,在基于YoloV8开展高中人工智能项目教学时,还需要重视人工智能原理的探究,关注真实问题的解决,关注人工智能带来的伦理与社会影响,以便全面提升学生的核心素养。
参考文献:
[1]中共中央国务院.国务院关于印发新一代人工智能发展规划的通知[DB/OL].http://www.gov.cn/zhengce/content/2017-07/20/content_5211996.htm.
[2]中华人民共和国教育部.教育部关于印发《教育信息化2.0行动计划》的通知[DB/OL].http://www.moe.edu.cn/srcsite/A16/s3342/201804/t20180425_334188.html.
[3]中华人民共和国教育部.普通高中信息技术课程标准(2017年版)[S].北京:人民教育出版社,2018.
[4]谢忠新,曹杨璐,李盈.中小学人工智能课程内容设计探究[J].中国电化教育,2019(04):17-22.
[5]詹泽慧,钟柏昌.高中人工智能教育应该教什么和如何教——基于四本《人工智能初步》教材的内容分析[J].电化教育研究,2020,41(06):68-74+82.
[6]陈凯泉,何瑶,等.人工智能视域下的信息素养内涵转型及AI教育目标定位——兼论基础教育阶段AI课程与教学实施路径[J].远程教育杂志,2018(01):61-71.
[7]周邵锦,王帆.K-12人工智能教育的逻辑思考:学生智慧生成之路——兼论K-12人工智能教材[J].现代教育技术,2019,29(04):12-18.
[8]方圆媛,黄旭光.中小学人工智能教育:学什么,怎么教——来自“美国K-12人工智能教育行动”的启示[J].中国电化教育,2020(10):32-39.
[9]孟宪超.疲劳驾驶致交通事故特点及有效预防分析[J].物流工程与管理,2014,36(08):187-188.
[10]冯世霖,李作进,史蓝洋,等.改进的轻量级GBC-YOLOv5疲劳驾驶检测方法[J].重庆科技学院学报:自然科学版,2023,25(04):65-73.