基于深度学习的“云、边、端”部署实践教学研究
作者: 李哲 高娇娇 苗丹
摘要:本文设计了一款基于深度学习的目标检测实践平台,平台采用YOLOv8网络模型作为目标检测算法,通过对图像数据集的训练优化网络,达到目标检测结果。该平台达到了“软件+硬件+网络”同步实践的教学效果,能够让学生将理论付诸实践,在一定程度上培养了学生的动手操作和应用创新能力,并且能够助力教师科研水平的提高,达到教学和科研“双赢”。
关键词:目标检测;YOLOv8;Jetson Nano;实践教学
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)22-0000-05
引言
“新工科”是应对变化、引领未来的建设理念,也就是对新技术、新产业与新变化推进可持续竞争力的新型工科人才培养改革。电子信息类专业是支撑“中国制造2025”“互联网+”时代需求的专业之一,其培养的人才不仅要掌握和运用现有的知识,更要能够掌握和运用现有知识来不断更新自我以适应新的变化和需求。[1]在“新工科”建设理念指导下,更多的应用型课程应运而生,笔者所在学校通信工程专业开设的应用型课程“模式识别与机器学习”是一门“理论+应用”的实践课程,该课程内容包括人工智能技术方面的理论,以及更重要的该技术的应用实践环节。
在模式识别与机器学习中有一个重要的应用领域——“目标检测识别”,其原理是利用计算机视觉对环境进行感知,提取目标并进行分割,相比于人眼,它能够快速地在视觉信息里提取到需要的图像和视频信息。[2]目标检测也是人工智能技术的重要应用之一,其主要任务就是找出图像中感兴趣的物体,确定目标的类别和位置。目标检测技术广泛应用于智能视频监控、工业检测、航空航天、智能交通等诸多领域。[3]
基于深度学习的目标检测算法有着较强的提取特征能力,为了提高学生在模式识别领域的创新和实践能力,笔者结合学生专业背景和未来就业前景,设计了一款基于深度学习的目标检测实践平台。该平台采用主流的目标检测YOLOv8算法,在目标检测和识别领域进行实时检测,在服务器端进行网络优化,得到理想的检测结果;在硬件部署方面利用NVIDIA的Jetson Nano开发板作为载体,其具有嵌入式端的GPU模块,能够更好地完成深度学习模型推理;网络模型通过Web技术移植到网络云端,网络端可以方便读取和观察检测过程的结果。“云、边、端”三平台都可以实现数据图像的追踪、定位、分割、识别、缺陷检测等。该平台满足“新工科”建设中对人才培养提出的新要求,有助于加强学生对理论知识的巩固,并在科教融合背景下促进学生工程能力的提升。[4-6]
基于深度学习的目标检测实践平台的设计
1.目标检测实践设计流程
目标实时检测主要包括图像数据集处理、检测模型处理、实时嵌入式设备检测和网络云端上线操作。目标检测平台设计流程如图1所示。
数据集的处理包括图像数据的收集。大部分常用图像数据信息可以从官方网站获取,有些图像数据则需要自主按照要求去实地现场拍摄、加工和筛选等。[7]经过简单收集后的图像数据按照要求进行标注,标注后的数据集按照一定的比例分为训练集和测试集。
检测模型采用目标检测较优的YOLOv8网络模型,首先,针对不同的项目特点优化网络模型,修改模型超参数达到目标检测优化。其次,在网络模型训练成功后,将其部署到Jetson Nano核心板上,通过核心板的外接设备对图像目标进行实时检测。[8]最后,将模型移植到网络云端,进行可视化、互动操作等。
该实践平台实现了“软件、硬件、网络”三平台一体化结合,学生通过收集图像和数据标签,先期通过软件进行模型训练,中期利用硬件部署达到实时监测,后期移植网络端可视化操作,最后达到理论与实践的完美结合,这在一定程度上提高了学生的动手操作和创新应用的能力。
2.目标检测的实践教学平台设计
图像目标检测实践平台设计的核心是通过学生“学中做”“做中研”“研中学”的循环学习方式,让学生运用新知识提升工程设计能力和创新能力。该实践通过项目式教学充分调动学生的积极性和主动性,培养学生的设计思维和工程思维。[9]图像检测实践平台设计的项目如上页表所示,其中的项目类型包括基础项目、拓展项目和创新项目。
基础项目训练使学生初步运用YOLOv8神经网络模型对目标进行检测识别,首先构建数据集,并将数据集分为训练集和测试集,其次构建神经网络模型对模型进行训练,最后加载训练好的模型,对测试集进行预测,达到识别效果。
拓展项目要求学生通过优化现有的网络模型,对较难的目标进行检测识别。
创新项目要求学生可以选择教师发布的项目,也可以自行设计检测目标,自行完成目标检测。
同时,设计的项目内容要充分满足“高阶性、创新型和挑战度”原则[10],通过“层层递进”式的项目化设计,覆盖全员进行模式识别的实践。
目标检测方法设计和部署
1.图像数据集的选择
本实践平台针对的主要是图像数据的目标检测和识别,对于常用的图像目标检测识别,其图像数据集资源较丰富,并且包括训练图像和和测试图像,如动物种类Dogs vs Cats数据集、面部表情KDEF数据集、垃圾分类数据集等。在下载数据集后,进行标注预处理,以便能够达到训练和测试图像分类、目标检测、图像分割等的目的。
但对于特定场景下的图像目标检测识别,其图像数据集网络资源则不一定丰富。在这种情况下,就需要学生通过视频监控或者实地拍摄收集图像资源,进行训练图像和测试图像的划分。因此,从利用现有的数据集进行训练检测到自建数据集进行训练检测,这样的实践过程能够使学生从上到下完整地完成一个设计项目,进而达到较好的训练目的。
2.YOLOv8模型构建
YOLO现在已经成为机器人、无人驾驶和视频监控应用中的核心实时物体检测算法。目前,YOLO版本已经发展到YOLOv8网络模型,该模型是一个面向实时工业应用而开源的目标检测算法。因此,笔者在实践教学平台中使用了最新的YOLOv8模型。该算法针对不同的设备需求和不同的应用场景提供了大小和参数不同的网络。YOLOv8模型的网络结构如图2所示。
YOLOv8网络模型分为输入端(Input)、主干道(Backbone)、连接(Neck)和输出(Detect)4个部分。Backbone和Neck中主要采用C2f结构,该结构是对残差特征进行学习的主要模块,C2f结构相较于YOLOv5的C3模块加入了更多的分支,丰富了梯度回传时的直流。其他主要组成模块还包含卷积层(Conv)和SPPF结构。[11-12]
然后,通过服务器上的网络模型进行目标检测,流程如下:将测试图像传入YOLOv8网络进行网络训练,通过训练得到较优的网络模型,然后输入数据进行YOLO检测得到检测结果(如上页图3)。
3.模型硬件部署
在服务器端按照以上步骤学习完成后,需要在Jetson Nano嵌入式设备上完成目标检测算法的板级验证。Jetson Nano是NVIDIA的嵌入式平台,为了可以在Jetson Nano硬件上运行模型,首先要对开发环境进行搭建。[13-14]Jetson Nano的系统安装以SD卡作为媒介进行,采用Jetson Nano进行模型迁移部署,对TensorFlow GPU、优化引擎TensorRT等进行安装,具体步骤如图4所示。
在深度学习服务器上,将训练好的YOLOv8模型.pt文件序列化成.wts文件传入Jeston Nano开发板,在Jeston Nano开发板上优化并编译相应的YOLOv8模型文件,将.wts文件转换为.engine文件,完成后进行模型转换,采用TensorRT Python程序接口实现API调用。
实践项目案例应用
本文的实践项目,笔者选取了非机动车佩戴头盔目标检测识别。由于非机动车事故产生的人身伤害最严重的是头部受伤,因此,交管部门大力倡导非机动车驾驶员佩戴头盔,但是通过人工监管的方法覆盖范围有限,工作实施难度大,所以本项目设计的初衷也是要求学生在学习实践专业知识的同时,遵守交通规则,懂得规矩意识,实现“育才”和“育德”相向而行。
1.服务器端实践项目应用
由于非机动车佩戴头盔的图片网络资源并不丰富,因此本设计项目要求学生先自建数据集,该数据集由学生分组收集拍照。
首先,教师将40人的班级分为10组,要求每组拍照100张,图片要求涵盖不同的地点、不同的背景、不同的车型(包括自行车、电动自行车和电动摩托车)。
其次,学生将拍照后的图片进行数据集的标注处理,利用Labelimag工具对获取的图像进行标注,将拍摄到的图像分为四类,分别是Hel_mo,Hel_no,Hel_mo1,Hel_no1。其中,Hel_mo,Hel_no分别表示电动自行车骑行者佩戴和未佩戴头盔;Hel_mo1,Hel_no1分别表示非电动自行车骑行者佩戴和未佩戴头盔。
再次,采用YOLOv8网络模型对以上图像数据进行训练和检测。利用第一层网络识别第一目标是否驾驶的是电动自行车,再利用第二层网络识别判断目标是否佩戴头盔。其中一组学生获得的检测识别结果正确率都在95%以上,效果较好。
最后,教师利用图像集中有大量的多目标图像将难度适当升高,学生经过网络模型训练后得到的识别率为90%左右。
2.Jetson Nano端实践项目应用
为了实时监控项目监测结果,教师可以指导学生采用Jetson Nano进行模型迁移部署。学生按流程完成服务器端训练好的模型,将模型迁移部署到Jeston Nano端,在Jetson Nano开发板上优化并编译相应的YOLOv8模型文件,完成后进行模型转换,转换格式后实现API调用。TensorRT进一步加快了推理过程,运行结果显示在Jetson Nano端运行速度有明显提高,一张照片的检测识别速度由几百毫秒提升到几十毫秒,识别速度和效果较好。
3.网页云端实践项目应用
为提升目标检测系统的效率,云端覆盖了图像数据的标定、数据集管理、模型训练和部署等。[15]教师进一步将上述训练好的网络模型移植网络端,Web网络端可以进行实时交互式、可视化操作。该页面包含模型配置,配置下有任务类型选择、模型类型选择和置信度选择。主界面包含原图像和检测识别后的图像,在输出图像下方详细介绍该检测结果的张量信息。在网页端进行参数选择执行化高,结果可以实时显示,对比性强,同时也大大降低了去程序中修改参数的工作量,免去了大量的重复工作。
结语
基于深度学习的图像检测实践平台是“模式识别和机器学习”课程的实践环节,该实践平台的使用能让学生更好地理解模式识别和机器学习在实际生活中的实际应用价值。该平台以网络模型YOLOv8算法为核心,在“云、边、端”进行实践操作,采用“软件+硬件+网络云”结合的形式进行模型设计和部署,每个环节都培养了学生的动手操作和应用创新能力。该实践平台的建设有助于学生在计算机视觉、深度学习、模式识别领域的深入研究和学习,拓展了学生的知识领域。
参考文献:
[1]王凤仙,闫晓波.应用型本科多学科互融型创新创业教育模式探究[J].农机使用与维修,2023(10):126-129.
[2]李颖,王奇强.分布式人工智能技术在视觉信息处理中的应用[J].数字通信世界,2019(10):182.
[3]蔡嘉磊,茅智慧,李君,等.基于深度学习的目标检测算法与应用综述[J].网络安全技术与应用,2023(11):41-45.
[4]孙康宁,于化东,梁延德.基于新工科的知识、能力、实践、创新一体化培养教学模式探讨[J].中国大学教学,2019(03):93-96.
[5]任玉琢,徐利梅,谢晓梅.面向新工科的本科专业培养方案及创新课程设计与实践[J].高等工程教育研究,2019(03):29-32.
[6]周珂,赵志毅,李虹.“学科交叉、产教融合”工程能力培养模式探索[J].高等工程教育研究,2019(03):33-39.
[7]左超,陈钱.计算光学成像:何来,何处,何去,何从?[J]红外与激光工程,2022,(51):158.
[8]王俊,陈俊杰,刘胜.基于Jetson Nano的遗留物检测人工智能嵌入式教学实践系统[J].实验室研究与探索,2022,41(11):204-207.
[9]蒋翠玲,万永菁,朱煜.基于华为“智能基座”计划的项目式教学实践——以机器视觉算法实训课程为例[J].化工高等教育,2022,39(04):24-30.
[10]肖成勇,李擎,张德政,等.基于深度学习的计算机视觉创新实验平台设计与实现[J].实验室研究与探索,2022,41(04):94-98.
[11]杜宝侠,唐友,辛鹏,等.基于改进YOLOv8的苹果检测方法[J].无线互联科技,2023,20(13):119-122.
[12]袁红春,陶磊.基于改进的Yolov8商业渔船电子监控数据中鱼类的检测与识别[J].大连海洋大学学报,2023,38(03):533-542.
[13]郑朝冰.基于深度学习的复杂交通场景下车牌识别算法研究与实现[D].深圳:深圳大学.2021.
[14]丁奇安,刘龙申,陈佳,等.基于Jetson Nano+YOLOv5的哺乳期仔猪目标检测[J].农业机械学报,2022,53(03):277-280.
[15]孙贺,冷于浩,刘默嘉.基于机器视觉的表面质量检测系统研究与应用[J].无线互联科技,2022,19(18):106-109.
第一作者简介:李哲(1988—),女,汉族,河北邢台人,讲师,硕士,研究方向为模式识别。
基金项目:河北省社会科学发展研究课题(编号:202403214);教育部高等学校自动化类专业教学指导委员会教改研究面上项目(编号:2024065);河北省高等学校科学技术研究项目(编号:ZC2024032)。