APP下载

基于项目式启发的服务机器人实验教学方法研究

2023-05-08吕勇余雷王诗颂

电脑知识与技术 2023年9期
关键词:神经网络

吕勇 余雷 王诗颂

关键词:视觉识别;服务机器人;神经网络

0 引言

高等教育是衡量一个国家发展水平的重要标志。随着社会的快速发展以及国家政策的提出,地方高校需要积极响应并作出改变,培养满足企业的新型工科人才,在“新工科”背景下进行一流本科专业的建设。苏州大学机电工程学院的电气工程及其自动化专业经过不懈努力,已顺利通过中国工程教育专业认证,同时也是教育部卓越工程师教育培养计划专业、国家级一流本科专业项目、江苏省一流本科专业以及苏州大学一流本科专业。

近年来,随着机器人技术的快速发展,在工业制造、物流快递以及安防监控等领域的应用日趋普遍。在新工科背景下,同时结合高等学校的特点,如何培养出具有创新能力并符合企业需求的高素质人才,成为当前研究的重要课题。视觉识别是机器人智能化必不可少的要素,随着深度学习的不断发展,基于深度学习的目标检测进一步推动了服务机器人的发展。在实验教学中,要让学生通过具体的实践去更好地理解理论知识,并将理论与应用相结合,起到融会贯通的效果。

机器人[1]作为电气工程及其自动化专业的十分重要的课程之一,从类别来看,其主要分为工业机器人、服务机器人两种。本文以服务机器人[2]作为切入点,采用基于深度学习的PyTorch框架展开具体的实验教学方法研究。实验教学不能仅局限于课堂理论知识的传授,为了让学生更好的提高实践能力,本实验选择了开源的Python机器学习库PyTorch,可以快速搭建简洁且高效的框架。该实验设计采用典型的YOLO算法来实现目标检测,以Python语言作为编程语言,最终在海思芯片上进行例程的实现。

1 实验平台简介

本实验用于深度学习模型训练的服务器平台配置如下:处理器为Intel Core i9-9900K CPU3.6GHz, 显卡为GeForce RTX 2080Ti,显存容量为11GB,类型为GDDR 6,内存为32G,系统为Ubuntu18.04。在编程语言和训练框架方面,本实验采用Python语言,训练框架主要参考PyTorch、TensorFlow、Caffe、CNTK、Keras以及Darknet等开源框架。这些开源框架集成了很多深度学习中的网络模块,使开发更为便捷。由于Py⁃Torch入门较易,设计人性化,因此本文的实验采用PyTorch框架,其不仅能够实现强大的GPU加速,同时还支持动态神经网络。

实验中还涉及算法移植芯片海思,Hi3516DV300作为海思系列的一款性价比极高的芯片,集成了最新的ISP、领先的H.265 视频压缩编码器,并使用了高性能的NNIE(Neural Network Inference Engine) 引擎,使芯片在低码率、高画质、智能处理和分析、低功耗等方面具备行业领先水平。该芯片集成了POR、RTC、Au⁃dio Codec 以及待机唤醒电路,不仅降低了eBOM 成本,且与海思DVR/NVR 芯片采用类似的接口设计,便于开发和量产。芯片的逻辑框图如图1所示。

2 目标检测算法与指导

本实验采用YOLO算法进行目标检测,它将一张图片划分为许多合适大小的小块图片,通过化整为零,对每个小块图片分别进行预测,从而实现整张图片的目标检测,使得其检测速度与之前的算法相比大大增加。YOLOv4算法[3]是在前一版本的YOLOv3算法上改进的结果,其性能有了很大的提升。因此,本文选择YOLOv4作为服务机器人[4]移动终端的物体识别算法。

在进行具体的实验之前,教师对该算法所涉及的理论知识做一些必要的介绍,YOLOv4网络主要分为三部分,分别是主干网络、颈部网络以及头部网络。首先,本文介绍主干网络CSPDarkNet53,它从Dark⁃Net53改进而来,主要由5个大残差块构成,而每一个大残差块又分别由1个、2个、8个、8个和4个小残差块组成。由于CSP(Cross Stage Partial)可以提高神经网络的学习能力,因此将两者结合。其次,本文介绍颈部网络,主要采用了FPN+PANet的结构,通过从上到下以及从下到上并加入侧向连接的方式将多尺度特征进行融合,实现了浅层定位信息与深层语义信息的有效提取。最后,本文介绍头部网络,该网络采用三尺度输出,对于不同尺度大小的目标进行检测。其中头部结构的深度表示边界框偏移量、置信度、类别以及先验框,且每个尺度输出都有三个不同尺寸的先验框,分别对应了大、中、小三种目标的检测。YOLOv4的整体网络结构图如图2所示。

在实际实验过程中,由于神经网络的训练需要耗费很长的时间,教师指导学生侧重将YOLO算法的预训练模型部署到芯片端,在有理解能力的基础上再深入了解YOLO算法。

3 实验流程与效果

3.1 划分小组

为了保证每个学生能够提高实践能力,提高团队协作能力,首先对学生进行分组(3~4人每组),并选择动手能力强、有责任心和集体荣誉感的同学作为每个小组的组长。在实验过程中,根据学生反馈的问题对教学过程动态调整,一方面对项目进行优化,另一方面可以开拓学生的思路,形成一个良性循环。

3.2 项目教学内容

对于服务机器人目标检测的应用方面进行知识的普及,同时结合实验的专业知识进行讲解,并尽量采用可视化的方式便于学生理解。在实验过程中,由于硬件[5]只支持Caffe框架,首先指导学生首先将Py⁃Torch模型[6]转换为Caffe模型,并替换掉硬件不支持的激活函数,比如将Mish激活函数替换為ReLU函数;其次在电脑端对Caffe模型进行验证,在保证模型正确的前提下实行量化;最后将量化的模型烧录到芯片端,并通过串口指令观察输出信息,实验的整体流程如图3所示。为了确保在芯片端移植的正确性,老师要求学生在每一步转换的过程中进行可视化,实验可视化结果如图4所示。(a) 图为Darknet模型的检测结果;(b) 图为Caffe模型的检测结果;(c) 图为芯片端的检测结果;(d) 图为Xshell串口终端的输出信息,主要包含推理时间、标签类别以及置信度等信息。

3.3 实验结果对比

当指导完学生将YOLOv4算法运行于海思芯片端,教师对实验结果进行对比。由于芯片的算力有限,在移植的过程中需要将模型进行量化压缩,由此不可避免地带来精度的损失。在服务器端,目标检测的精度可以达到85.96%,如图5(a)所示;在芯片端,目标检测的精度有一定的下降,如图5(b)所示,只有73.48%。通过实验结果的对比,让学生有一个感性的认识,从深度学习算法(理论)到芯片的实际应用会存在很多问题,比如代码如何优化?模型如何修改?框架如何设计?性能如何提高,这些都将促进学生主动学习的能力。

3.4 讨论与分析

学生不能仅满足于项目的完成,还需要分组进行讨论,分享各自在实验过程中的收获与不足,并可以进行二次开发参加竞赛或者作为毕业设计的一部分。通过实验教学将抽象的算法实际化、具体化,帮助学生理解和掌握服务机器人目标检测算法实际部署的关键技术。最后,鼓励学生大胆创新,开拓新的实验项目,逐步形成具有递进关系的教学实验内容。

4 结束语

通过以上的具体实验,本实验以神经网络算法为核心,在教学过程中采用了“任务驱动的自主学习”方法,设置了现实中的服务机器人[6]需要芯片移植这一实际问题。在完成实验目标的过程中,学生以小组为单位在硬件平台上进行动手能力的实际操作,从而可以拓展学生对机器人相关知识理解的广度与深度。

此外,本实验不仅涉及硬件知识的掌握,还要对PyTorch相应模块的添加具有一定的编程能力,进一步引导学生在算法上进行优化,比如YOLOv4算法的轻量化,使其移植更高效。该实验从实际应用角度巩固学生在课堂上所学的知识,有利于学生了解行业需求,并为将来走向企业打下坚实的基础。

猜你喜欢

神经网络
基于递归模糊神经网络的风电平滑控制策略
BP神经网络在路标识别上的应用研究
神经网络抑制无线通信干扰探究
基于Alexnet神经网络的物体识别研究
基于BP神经网络的旋转血泵生理控制
基于神经网络MRAS的速度辨识仿真研究
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
基于神经网络分数阶控制的逆变电源