广元市网站建设_网站建设公司_前端工程师_seo优化
2026/1/10 10:57:50 网站建设 项目流程

摘要

针对传统潜水手势考核依赖人工评估,存在主观性强、效率较低的问题,本文设计了一种基于深度学习的潜水手势考试系统。该系统可对选取的 10 种静态手势和 4 种动态手势进行识别分类,静态手势的识别采用YOLOv8 算法在其预训练权重的基础上使用YOLO 标签化后的 HaGRID 手势数据集进行训练,动态手势的识别则采用 CNN 与 Vision Transformer的组合模型 CNN-ViT 并使用自行拍摄的动态手势视频经过数据增强作为数据集进行训练。系统集成了手势识别和图形化的考试界面和评分系统,实验表明,静态手势识别模型可以在验证集上达到 95%以上的识别准确率,动态手势识别模型在验证集上达到 80%的识别准确率但对部分手势数据的泛化能力较差,对剩余手势数据的识别准确率证明了CNN-ViT 组合模型具有进行动态手势识别的能力。系统在考试开始后可以自主运行,较传统人工评估效率有所提升。该系统为潜水培训考核提供了客观化、智能化的解决方案,为相关行业在安全教育与资格认证方面的标准化和考试的规范性提供了一定参考价值。
关键词:潜水;手势识别; 目标检测

Abstract

In response to the problem of traditional diving gesture assessment relying on manual evaluation, which has strong subjectivity and low efficiency, this paper designs a deep learning based diving gesture examination system. The system can recognize and classify 10 selected static gestures and 4 dynamic gestures. The recognition of static gestures is carried out using the YOLOv8 algorithm on the basis of its pre trained weights, and the HaGRID gesture dataset labeled with YOLO is used for training. The recognition of dynamic gestures is carried out using a combination model of CNN and Vision Transformer, CNN-ViT, and self captured dynamic gesture videos with data augmentation as the dataset for training. The system integrates gesture recognition and a graphical examination interface and scoring system. Experiments have shown that static gesture recognition models can achieve recognition accuracy of over 95% on the validation set, while dynamic gesture recognition models can achieve recognition accuracy of 80% on the validation set. However, their generalization ability to some gesture data is poor. The recognition accuracy of the remaining gesture data proves that the CNN-ViT combination model has the ability to perform dynamic gesture recognition. The system can run autonomously after the exam starts, which improves efficiency compared to traditional manual evaluation. This system provides an objective and intelligent solution for diving training assessment, and provides certain reference value for the standardization of safety education and qualification certification in related industries, as well as the standardization of exams.
Keywords:Diving;Gesture recognition;Object detection

第 1 章 绪论

1.1 研究背景与目的
近年来,潜水运动在全球范围内得到了广泛的普及和推广。特别是在中国潜水运动的发展尤为迅速。据统计,2022 年中国人潜水考证的年增长率约为 30%,远高于全球平均增速。这表明潜水运动正在成为一项受欢迎的大众运动。休闲潜水作为一种结合了旅游和运动的全新体验方式,正在成为一种新的消费趋势。特别是在一些海外潜水旅游目的地,如斐济,由于其水下能见度高、自然景观丰富等特点,吸引了大量休闲潜水爱好者。这种趋势不仅促进了潜水旅游的发展,也能带动相关产业的发展。
潜水手势考试对于潜水运动来说十分重要,通过潜水手势能够及时传达潜水者想要表达出的信息,包括:“OK ”手势,它表示一切正常或是发出“你还好吗? ”的询问;“数字 ”手势,用于在回答时表示剩余氧气、深度等对应的数值; “停止 ”手势,意味着需要立即停止当前动作,可能用于避免危险或者调整方向等等。此外,还有一些与潜水装备和身体状况相关的手势,比如表示气瓶余量不足、需要共享空气、耳朵耳压平衡有问题、感到寒冷等手势。但目前对初学者的潜水手势考核通常由经验丰富、已经通过了考核的潜水员以一对一或一对多的方式进行,这种方式效率低下,人为干扰因素较强,而且当潜水旺季时,容易出现人手不足与考试纪律不强的问题。
1.2 国内外研究现状
1.2.1 国外研究现状
国外理论界关于目标检测的研究源于解决计算机视觉任务中最基本的两个问题:该物体是什么?该物体在哪? 自 2014 年以来,基于深度学习的目标检测获得了学界的高度关注和重视,成为诸多学者关注的热点。
Joseph Redmon 、Santosh Divvala 、Ross Girshick 等人于 2015 年提出了一种通过一次检测过程就能处理整张图片,而不需要像以前那样分步骤处理的算法,并将这个算法命名为 YOLO(You Only Look Once)。YOLO 系列模型具有较高

的推理速度和低的计算成本,可以实现实时目标检测,其早期版本的处理速度可达每秒 45 帧,更高版本的模型能达到每秒 155 帧的速度。
韩国 Inda 大学和 Korea Polytechnic 大学的 JongShill Lee 、YoungJoo Lee 等人用熵分析法从背景复杂的视频流中分割出手势区域并进行手势识别。使用链码的方法检测手势区域的轮廓,最后计算出从手势区域的质心到轮廓边界的距离。该系统可识别6 种手势,平均识别率超过95%;6 个人分别做每个手势的识别率平均达到 90%-100%。
印度研究者 Meenakshi Panwar 在视觉手势识别的基础上提出了一种基于结构特征的手势识别算法,通过背景去除、方向检测、拇指检测和手指数量检测,来最终识别手势。
Mohamed N,Mustafa M B 等人通过回顾 2014 年至 2020 年在知名数据库中关于基于计算机视觉的手势识别研究,在通过关键字查询文章并阅读后总结了这几年手势识别的现状并进行了总结[1]。
1.2.2 国内研究现状
国内对手势识别与目标检测的研究主要是各大高校相关专业的学者和研究院的研究者组织进行的,各大高校的学生以及教师配合进行研究,对手势识别的方法进行了大量的创新。
上海大学 DINGYoudong 、PANG Haib 等人运用改进的 LBP 算法,利用AdaBoost 分类器进行手势识别,建立了多种手势数据集,其中包括一些大角度变化的手势图像。实验表明该方法可较好地对手势特征进行分割和分类。
清华大学计算机科学的学者提出了另一种基于运动分割的帧间图像运动估计方法,指出可以通过运动、形状、颜色和纹理等特性,对手势进行精确的检测。还有学者提出可以只要连接计算机的摄像头就可以读取手势的姿势,对手势进行精确的识别,完成手势的静态识别。
在目标检测领域中,2022 年美团视觉智能部研发了一款致力于工业应用的目标检测框架 YOLOv6,能够同时专注于检测的精度和推理效率。在研发过程中,视觉智能部不断进行了探索和优化,同时吸取借鉴了学术界和工业界的一些前沿进展和科研成果。在工业界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度

可达 35.0%AP ,在 T4 上推理速度可达 1242FPS;YOLOv6-s 在 COCO 上精度可达 43. 1%AP ,在 T4 上推理速度可达 520FPS[2]。
1.3 研究意义
1.3.1 理论意义
基于深度学习的潜水手势考试系统可以提高潜水手势识别的准确性,深度学习模型具有强大的特征提取和表示学习能力,可以从原始图像中提取出更具有区分度的特征,推动了手势识别,目标检测,姿态检测等技术在潜水手势领域的研究,丰富了手势识别在潜水手势领域的研究方向。推动了潜水手势考试的智能化发展,通过深度学习技术,潜水手势考试系统可以实现自动化和智能化的手势识别,减少人工干预和判断的需求,促进了传统考核方式与人工智能技术的学科融合,对潜水手势考试的智能化系统发展具有开拓作用。
1.3.2 实践意义
基于深度学习的潜水手势考试系统不仅具有深远的理论意义,其在实践中的应用价值同样显著。该系统可以提升潜水员培训效率,通过深度学习技术系统能够自动、准确地识别潜水手势,从而辅助教练对潜水员进行更为精准的培训;借助实时反馈机制,使初学者可以迅速了解自己的手势是否准确,从而及时调整,提高学习效率。还可以促进潜水文化的传播与交流,通过潜水手势考试系统的推广和使用,可以加深潜水员对潜水手势的理解和掌握,从而推动潜水文化的传播与交流;潜水手势作为一种独特的沟通方式,也是潜水文化的重要组成部分。通过系统的学习和实践,潜水员可以更好地理解和体验潜水文化的魅力。最后该系统的设计和实现涉及了计算机视觉、深度学习、人机交互等多个领域的知识和技术,它的应用将促进这些领域的交叉融合和共同发展[3]。

第 2 章 关键技术介绍

2.1 深度学习技术
深度学习(Deep Learning)是机器学习中的一个分支,通过模拟人脑神经网络的层次化的结构,从数据中自动学习复杂的特征表示,广泛的应用于计算机视觉[4] 、 自然语言处理、语音识别等领域。
2.1.1 深度学习的基本原理
神经网络结构:由输入层、隐藏层(多层)和输出层组成如图 2-1 所示,通过神经元之间的权重连接传递,在每层中通过激活函数对数据进行非线性变换。

图 2-1 神经网络结构图
层次化的特征提取:由浅层的网络学习输入内容的边缘、纹理等简单特征后再由深层网络组合这些特征用于识别复杂模式如物体、语义等。
反向传播算法:在学习过程中,模型通过计算预测的结果与验证集数据的真实标签通过损失函数后得出的误差,将误差反向的进行逐层传播后调整网络的权重和偏置以优化模型性能。
2.1.2 深度学习的核心优势
自动特征学习:无需手动设计输入数据的特征,模型在学习过程中可以直接从原始数据中提取到高阶的抽象特征。

端到端学习:输入数据到最终的模型输出之间无需对数据进行中间处理,简化模型训练流程。
大规模数据驱动:模型在学习中使用的数据量越大,模型的性能通常越强,大规模的数据则需要更高的算力支持。
跨领域的泛化能力:同一模型架构例如卷积神经网络可以适配图像、视频等不同的任务。
2.2 目标检测技术
2.2.1 YOLO 算法
YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,其核心思想是将目标检测任务转化为单次端到端的回归问题,直接在图像中预测边界框(Bounding Box)和类别概率如图 2-2 所示,具有实时性强、计算效率高的特
点[5]。

图 2-2 YOLO 算法流程图
YOLO 算法的核心是在输入的一幅图像划分一个 S 乘 S 大小的网格,如果某一个目标的中心落在这个网格,那么这个网格就负责预测这个目标。每一个网格还需要负责预测 B 个边界框,边界框包含有其中心点坐标位置、相对于网格进行归一化后的宽和高,通过 Softmax 函数计算的类别概率和包含框内存在目标的概率及定位准确性的置信度。置信度通过边界框内存在目标的概率与预测边界框和真实边界框的交并比相乘后得出。在 YOLO 模型的输出中,会有大量的边界框和对应的置信度值,通过设置一个置信度阈值,在使用模型时可以筛选出那些模型认为最可能包含目标且边界框位置较为准确的检测结果。同时置信度还可

以作为评估模型性能的一个重要指标,通过比较不同模型或同一模型在不同条件下的置信度分布可以对模型的检测能力和稳定性有一个直观的了解。
2.2.2 CNN-ViT 组合模型
目前 CNN(卷积神经网络)与 ViT(Vision Transformer)的组合模型已成为计算机视觉任务中非常有前景的基础架构。这类组合模型不仅超越了传统Transformer 模型的局限性,还能够在性能上战胜众多高性能的卷积模型。
CNN 与 ViT 的组合模型整合了 CNN 在局部特征提取与 ViT 在全局特征捕捉上的优势。通过这种融合,组合模型能够更灵活地适应各种复杂多变的图像任务。此外,这种组合模型还具备更强的泛化能力,能够更好地应对不同领域和场景下的图像数据[6]。
(1) Inception-ResNet-V2 模型
Inception-ResNet-V2 是由 Google 团队在 2016 年提出的一种深度学习模型,结合了 Inception 模块和残差连接(Residual Connections)的优势,是 Inception系列模型的改进版本,有研究表明该模型在特征提取方面具有不错的性能[7] ,该模型的网络结构如图 2-3 所示。

图 2-3 Inception-ResNet-V2 网络结构图
Inception-ResNet-V2 模 型 的 核 心 结 构 由 主 干 网 络 ( Stem ) , 多 个Inception-ResNet 模块和分类头组成。主干网络是模型中进行输入预处理的部分,内含有堆叠的卷积、并行分支的卷积和池化等,用于快速降低特征图的分辨率并提取底层特征。Inception-ResNet 模块分三种类型,特征图经过不同模块后将逐步降低分辨率并增加通道数。三种模块都为多分支结构,第一分支输出不经过处理的原始特征图,剩余分支在对特征图进行不同大小、次数的卷积进行堆叠后再经过一个 1 × 1 的卷积核形成剩余分支的输出。每个模块通过将原始数据与经过分支处理后的数据相加作为模块的输出,这样的计算方式让模型形成了残差连接(Residual Connections),允许梯度直接通过跳跃连接反向传播,使得训练更深的网络成为可能。

(2) Vision Transformer
Vision Transformer(ViT)是一种基于 Transformer 架构的神经网络模型,用于处理计算机视觉任务[8]。传统的计算机视觉模型如卷积神经网络(CNN)在处理图像任务时取得了很大的成功,但其仍存在一些局限,例如对于长距离依赖的建模能力较弱。ViT 通过引入 Transformer 的注意力机制来解决这些问题,使其能够对整个图像进行全局的建模,而不仅仅是局部区域如图 2-4 所示,并在一些视觉任务上取得了优秀的结果。

图 2-4 ViT 算法流程图
ViT 的模型架构主要基于 Transformer 的编码器(Encoder)部分,输入图像进行分块处理后将被拼接上分类 Token 和位置编码后输入到编码器中,编码器的内部由多头自注意力,前馈网络和层标准化组成如图 2-5 所示。

图 2-5 编码器结构图
层标准化是一种用于神经网络的归一化技术,用于增强模型的训练和泛化能力。与批量标准化相比其不依赖批量的大小,在每个样本上进行归一化更适用于处理变长序列,允许每个特征维度上的自适应归一化可以更好地保留模型的表达能力。
多头自注意力是一种在自注意力机制的基础上扩展的注意力机制,通过并行地使用多个注意力头来增强自注意力的表示能力。每个注意力头都有自己的权重矩阵(查询、键和值),并生成一个注意力权重矩阵。通过将多个注意力头的输出进行拼接或加权求和,可以得到最终的多头注意力表示,捕获不同子空间的全局关系。
编码器中的前馈网络是一个内含两个线性层和 GELU 激活函数并使用了Dropout 以增强模型泛化性的多层感知机,其在编码器中的作用是对输入的特征进行非线性变换后作为编码器的输出。

第 3 章 潜水手势考试系统分析

3.1 功能需求分析
3.1.1 手势识别与处理
系统使用内置或外接的摄像设备对使用者的手势进行实时手势捕捉并对视频数据进行分辨率统一的数据标准化。使用基于深度学习的手势识别模块对手势进行识别,并采用国际专业潜水教练协会(PADI)的手势库作为手势数据选取标准[9]。
3.1.2 考试系统
考试系统需要以在手势题目库中随机抽取手势的方式保证每次考试的多样性,在考试期间需要限定每个手势的响应时间。考试系统将由人工智能的深度学习技术进行赋能,在对潜水手势进行快速、精准检测的同时促进实现人工智能技术与传统考试方式的结合。
在使用系统期间使用者需要能在界面的醒目位置看见摄像头的实时画面、当前手势题目和手势的剩余响应时间。考试开始后系统需要可以自行运行,在手势响应时间结束后对使用者进行提示并更新题目与响应时间,直至考试结束。
3.1.3 用户需求
考生可以在系统初始界面的醒目位置查看考试规则,并在阅读后可以自行操作系统进行考试,考生在考试结束后可以通过系统得知本次的考试成绩。
考官可以通过系统对考生进行监考并管理考试流程,在考试结束后若考生对本次考试结果有异议,考官可以通过系统对本次考试进行记录复查或人工评判。
3.2 性能需求分析
3.2.1 实时性需求
考试界面显示的摄像头实时画面在手势的响应时间内不能出现严重的卡顿现象,期间的画面帧速率应保持在 30FPS 左右。
在考试结束后对保存的手势视频答案进行识别时,在使用者发出“查询成绩 ”的指令后,综合静态与动态手势识别模块对答案视频集进行识别并计算成绩的用

时应在 10 秒左右。在进行除“查询成绩 ”外的考试系统流程时,使用者操作的系统响应时间应小于 0.5 秒。
3.2.2 准确性需求
静态手势在深度学习模型的标准验证集中的手势识别准确率应达到 95%以上,动态手势在拍摄条件理想时则需要达到 80%以上。模型将非手势动作误判为有效手势的概率小于 2%,由于个人习惯导致的手势角度误差容忍范围在 45 ° 以内。考试结束后若使用者对考试结果存在异议要求进行人工复查时,系统结果与人工考官评分的一致性需大于 80%才可判定结果有效。
3.3 可行性分析
3.3.1 操作可行性
基于深度学习的目标检测、时空动作识别技术已广泛应用于手势识别领域并已进行了如抽烟手势检测[10],交警指挥用动态手势检测[11]等相关研究,技术路线较为成熟。
传统考试依赖考官现场监考与人工评判,潜水手势考试系统支持无人监考和自动评分,大幅缩短考试周期并减少人工工作量[12]。
3.3.2 经济可行性
疫情后,东南亚地区的出行成本下降,吸引了大量出境游游客,其中的一部分游客更倾向于前往泰国、新加坡、马来西亚和越南等东南亚国家,这些国家拥有较好的潜水资源和潜水体验以及相较于国内更为低廉的花费,这使得潜水运动初学者的数量进一步增加,同时国内的滨海旅游城市也在充分挖掘自身的滨海特色经济,为旅游业的复苏做好准备[13]。
潜水手势考试系统拟以潜水培训机构(如 PADI 、SSI)、海洋科研机构、滨海旅游城市等拥有大量培训考试需求的组织作为目标用户,截至 2024 年,全球潜水培训市场规模超 30 亿美元,人工监考因为考官差旅,时间等因素成本居高不下,自动化的考试系统可以显著降低机构的运营成本,为初学者提供快捷,方便的考试模式。

第 4 章 潜水手势考试系统设计

4.1 系统总体设计
潜水手势考试系统的系统总体由考试系统图形化界面,手势识别模块和手势数据存储模块组成,使用者通过系统图形化界面与考试系统进行交互如图 4-1 所示,不同颜色的人形区域代表了使用者不同的身份,与其颜色相同的箭头代表了使用者与系统进行交互时的具体流程。
图中的深蓝色矩形为考试系统图形化界面,其程序中内含了使用者与系统交互时的业务逻辑,是整个系统的中枢部分,在使用者与系统进行交互时充当各模块间的桥梁。
浅蓝色圆柱为手势数据存储模块,该模块用于存储使用者的考试手势与考试题目,在对考试结果存在异议时可以调取数据进行人工复审。
褐色矩形为手势识别模块,负责进行静态与动态手势的识别并将识别结果返回到考试系统中,考试系统将识别结果与题目进行比对后将得出考试成绩并显示给使用者。

图 4-1 潜水手势考试系统总体设计图

4.2 数据集构建
4.2.1 数据采集
(1) 基于 HaGRID 数据集的静态手势数据集
本文所使用的 HaGRID 数据集是从开源平台 Github 获取的 ,发布方为SberDevices,于 2022 年发布。HaGRID (Hand Gesture Recognition Image Dataset)是一个大型图像数据集用于图像分类或目标检测任务,该数据集大小为 716GB,包含了 552992 个全高清 (1920×1080 像素)的 RGB 图像,分为 18 类手势如图4-2 所示。

图 4-2 HaGRID 数据集分类示例图
(2) 自行拍摄的潜水手势动态手势数据集
在查阅了 github、kaggle 等开源平台后发现目前没有公开的动态潜水手势数据集可以使用,从考试系统的多样性出发,决定自行拍摄制作动态手势数据集。
数据采用智能手机的摄像头进行拍摄,视频的清晰度为 1280×720 像素,帧速率为 30FPS。考虑到进行大规模的数据采集需要大量的时间成本与受试者,本数据集仅在同学、亲友间进行了数据采集。本数据集仅选取了4 种我认为比较重要的动态潜水手势[14]例如“耳压未平衡 ”、“安全停留三分钟 ”等如图 4-3 所示,每种手势共采集了 5 个样本。数据集总数为 35 ,其中包括了从其它动态手势数据集中选取的 15 个视频数据作为无效手势。

图 4-3 动态手势示例图
所采集的视频数据时长为 4~6 秒,画面中动作人员位于主体位置,上半身无遮挡清晰可见,每一段视频中原则上只会包含有一种手势。视频中动作人员的动作逻辑为从初始状态开始后做出手势,稍微停留后回到初始状态,手势需与动作人员同处画面的主体位置。数据集中视频数据的命名规则为“动作人员编号_数据增强方法_动作编号_.mp4 ”,例如视频数据“ 1_0_0_.mp4 ”就代表该视频数据是第一个动作人员未经数据增强的第一个手势的视频。
4.2.2 数据增强
(1) 静态手势数据集
用于进行静态手势识别所选择的 YOLOv8 算法在模型的训练过程中带有在线数据增强,模型在训练过程中会对数据集进行实时的数据增强操作。YOLO 算法在模型训练中使用的数据增强方式主要包括:马赛克增强、混合增强、随机扰动和颜色扰动。
马赛克增强首先会随机选取 4 张训练图像,将它们以2×2 的网格形式拼接成一张大图且包含来自四张原始图像的目标框,大图中的训练图像可能会被进行随机缩放以增加多样性,在图像完成拼接后大图将再次进行随机裁剪或平移,确保图中出现在不同位置。马赛克增强通过缩放与拼接后训练图像中的小目标可能被放大,可以帮助模型更好的学习如手部等小目标的特征。

混合增强通过线性插值混合两张图像及其标签,模拟真实场景中的图像重叠或模糊边界。混合增强可以提示边界鲁棒性,模型可以学习到重叠目标的检测和处理部分遮挡,通过混合增强生成的混合图像可以增加数据多样性,缓解模型过拟合。
随机扰动通过旋转、缩放、平移等几何变换模拟图像在真实世界中的形变、视角变化等现象。通过随机扰动增强模型对目标形变、视角变化的适应能力可以提升模型的几何鲁棒性,通过模拟复杂场景更有效的帮助模型学习因个人习惯带来的手势差异。
颜色扰动通过调整亮度、对比度等图像颜色通道模拟真实世界中的光照、相机参数等变化。通过颜色扰动增强模型在低光照、过曝等极端光照下的表现可以提升模型的光照鲁棒性,还能减少模型对特定摄像头色彩风格的依赖,提升系统的泛用能力。
(2) 动态手势数据集
考虑到自行采集的动态手势数据集数据量小,将采用水平翻转、面部模糊如
图 4-4 所示两种方式对数据集进行数据增强。

图 4-4 数据增强示例图
使用水平翻转进行数据增强可以使数据中动作人员的动作手位置发生变化,国际专业潜水培训系统的国际标准中并未规定必须使用右手做出手势,因此使用水平翻转可以使模型学习到与动作手相对的另一只手的动作特征,增加数据量的同时提升模型的泛化能力。

将动作人员的面部进行模糊处理可以模拟现实的水下环境中佩戴潜水镜与呼吸器的情况,提升模型的鲁棒性。同时面部的模糊有助于减小模型对数据中面部的依赖,迫使模型专注与手部动作,降低对无关背景的依赖。
4.3 模型选择
4.3.1 静态手势识别模型
YOLOv8 是由 Ultralytics 公司在 2023 年推出的 YOLO 系列最新版本,考虑到模型训练的算力需求以及潜水手势考试系统对实时性的要求 ,选择了YOLOv8n 作为了静态手势识别模型(下文中会简称为“v8n 模型 ”)。其 v8n代表“Nano ”级别,是转为轻量化、低算力场景设计的模型,适用在移动端、嵌入式设备或实时性要求高的任务。虽然本文设计的潜水手势考试系统仅在陆地上使用,但已有部分的研究表明YOLOv8n 模型在进行改进后就能进行水下目标的目标检测任务[15]。
YOLOv8n 在 COCO 数据集上的参数量仅约 3.2M ,在 Tesla T4 GPU 上的推理速度可达到 300FPS 以上。相较于 YOLOv5n,v8n 模型在牺牲少量速度的情况下显著提升了识别精度,更适合对精度要求敏感的轻量化场景。相较于 YOLOv8的其它如 v8s 、v8m 等版本,v8n 在保持轻量化的前提下通过对架构的优化显著缩小了其与其它版本的精度差距。
4.3.2 动态手势识别模型
深度学习模型 Transformer 具有强大的建模与并行计算能力,通过位置编码与编码器对视频帧进行编码可以实现模型对时空目标的检测从而达到进行动态手势识别的目标。
潜水手势考试系统使用了由 Inception-ResNet-V2 和 Vision Transformer 组合而成的CNN-ViT 组合模型作为动态手势识别模型,该组合模型由 CNN 在浅层提取局部的手势特征,在深层引入 ViT 对动态手势进行全局建模。
纯 ViT 模型需要海量数据才能学习空间结构,但 CNN 的归纳偏置在小数据集上表现更为稳定,通过预训练的 Inception-ResNet-V2 模型初始化特征提取可以让模型减低对数据量的依赖,使得使用自行采集的小数据集进行动态手势的目标检测成为可能。

4.4 系统模块设计
4.4.1 考试系统图形化界面
考试系统图形化界面通过 PyQt5 进行设计,PyQt5 是一个用于创建跨平台GUI 应用程序的 Python 库,是 Qt 与 Python 的结合并允许 Python 开发者利用 Qt的功能。
考试系统的图形化界面共有开始界面、考试界面和人工复审界面三个主要界面。开始界面用于关联其它的两个界面,在界面中的按钮在点击后可以跳转到考试界面与人工复审界面。考试界面用于向使用者展示摄像头实时画面与考试内容,在考试结束后向使用者展示考试成绩。在人工复审界面中有一个输入框用于输入考官的验证信息,在验证信息正确的情况下会弹出上一次的考试数据供考官进行人工复审。
4.4.2 手势识别模块
手势识别模块会根据不同的手势识别需要调用静态(动态)手势识别模型的训练权重对手势进行检测并将检测的分类值依照字典转换为分类结果数组后返回给考试系统进行评分。如若模型对输入数据有要求手势识别模块还会根据模型需要的数据对模数据先进行预处理后再交由模型处理。
4.4.3 手势数据存储模块
手势数据存储模块通过考试系统中的考试业务逻辑触发,在题目的响应时间更新后同步对摄像头实时画面中的视频帧进行存储。在存储时为方便手势识别模块的识别和人工复审,视频帧将以指定的分辨率、格式和帧速率以视频文件的方式保存在考试系统设置的考试结果中。

第 5 章 系统实现

5.1 开发环境
本文中实现深度学习的库为 PyTorch 和 TensorFlow ,编写代码使用的软件为 PyCharm2023.2. 1 版本,使用基于 Anaconda 的 Python3.9.20 版本作为解释器,运行程序的设备是系统为 Windows10 的笔记本电脑, 内存 16GB ,虚拟内存24GB ,CPU 为 AMD Ryzen 4800H with Radeon Graphics ,GPU 为英伟达 RTX 2060 6GB 。本文中主要使用到的库及其版本如表 5-1 所示。
表 5-1 程序库与版本表

模块 版本
keras 2.6.0
matplotlib 3.9.4
numpy 1.23.0
pyqt5 5.15.11
tensorflow-gpu 2.6.0
torch 1.9. 1+cu111
tqdm 4.67.1
ultralytics 8.3.74
cuda 11.2.0
cudnn 8. 1.0.77
5.2 数据预处理与参数配置
5.2.1 数据预处理
(1) 静态手势数据
由于数据集数量巨大,在使用该数据集时仅选取了符合国际专业潜水培训系统国际标准的 10 个手势作为潜水手势考试系统的静态手势数据集使用。考虑到全高清的 RGB 图像需要大量的存储空间与网络带宽,在保存数据集时使用了该数据集的轻量化版本的 HaGRID-512px 。该轻量化版本将原始数据集图像中较短的一边缩小到了512 像素的同时对另一边也进行了等比例的缩放,这一

操作使得该轻量化版本的单个手势数据大小从原数据集的 20GB 减小到了1.3GB 左右,极大的减小了对存储空间与网络带宽的需求。
在作为静态手势数据集的图像中包含大量不同的人与不少于该人数的独特场景,大部分场景为室内,光照变化很大,包括人造光和自然光。拍摄距离为0.5 到 4 米,可以满足不同距离下的识别要求。在符合标准的 10 种手势中每一种里随机抽取了 1000 张图像,静态手势数据集共计 10000 张,10 种手势的训练集和验证集划分详情如表 5-2 所示。
表 5-2 数据集 10 种手势划分详情表

种类 单个训练集 单个验证集 总训练集 总验证集 总数
10 900 100 9000 1000 10000
YOLOv8n 模型所需要的数据集由图像与内写有该图像中边界框数据(中心点坐标,宽度,高度)的 txt 文件组成,图像与 txt 文件的文件名需要保持一致。HaGRID 数据集的标注文件格式为json ,不能直接用于 v8n 模型训练,需要进行数据预处理将标注文件转换到所需要的格式。对 HaGRID 数据集进行数据预处理的部分代码如图 5-1 所示。

图 5-1 json 转 txt 部分代码截图
函数 decode_json 负责对原有的json 格式标签进行解码,取出其中的类别,图片大小,边界框位置坐标等有效信息。其中边界框的位置信息由于格式的不同需要使用函数 convert进行转换,该函数接收从json 中解析出的图像大小,边界

框的左上角与右下角坐标作为参数 size 、box 进行边界框位置信息的转换,转换前后的标签如图5-2 所示。

图 5-2 json 标签(左)与 txt 标签(右)格式示例图
(2) 动态手势数据
Inception-ResNet-V2 模型是基于 Google 的 Inception 架构发展而来,因此其对输入数据的要求也与 Inception 架构一脉相承。Inception-ResNet-V2 模型是一个基于 CNN 的深度学习模型,不能直接处理视频数据,需要对视频数据进行帧拆分后才可以作为模型的输入。对数据集视频数据进行帧拆分的部分代码如图5-3 所示。

图 5-3 视频帧拆分部分代码截图
函数 load_video 有一个形式参数 file_name 用于接收需要进行帧拆分的视频数据文件名,函数的内部变量会对视频按照设定好的间隔进行视频帧的拆分。在帧拆分后会调用函数 crop_center_square 对当前帧进行中心裁剪处理以减小背景对模型的影响。在视频数据的帧全部拆分且裁剪后函数 load_video 会返回一个由处理后的帧组成的列表 frames 作为 Inception-ResNet-V2 模型的输入数据。

Inception-ResNet-V2 模型输出的特征矢量列表需要经过划分后才可作为数据集使用,对输出进行划分并转换为数据集的代码如图5-4 所示。

图 5-4 数据集划分截图

5.2.2 模型参数配置
(1) 静态手势识别
对 v8n 模型的超参数设置如下表 5-3 所示,由于 YOLO 算法的高度封装,超参数种类繁多,本文主要设置的超参数有 batch、epochs 和 imgsz。data 的参数是数据集的 yaml 文件路径,这个文件中指定了训练集与验证集的存储路径和分类与类别名称的对应情况;batch 的参数值是模型每轮训练时使用的批量大小; epochs 的参数值是模型进行训练的总轮次;imgsz 的参数值是像素值,用于确认训练时输入模型的图像大小,模型会根据这一参数对输入图像进行缩放。
表 5-3 YOLOv8n 模型超参数表

参数名称 参数值
batch 16
epochs 100
imgsz 512
(2) 动态手势识别
对 Inception-ResNet-V2 模型的超参数的设置如下表 5-4 所示,由于该模型仅用于在浅层提取局部的手势特征,对其的设置的超参数有weights 、include_top、 pooling 和 input_shape。Weights 参数用于指定模型使用的预训练权重,include_top参数设置模型是否使用最顶部的分类头,pooling 参数用于设置模型的池化方式, input_shape 参数用于限定模型的输入数据形状。

表 5-4 Inception-ResNet-V2 模型超参数表

参数名称 参数值
weights “imagenet”
include_top False
pooling “ ”
avg
input_shape (299,299,3)
ViT 模型是组合模型中的主要部分,其输入是经过 Inception-ResNet-V2 模型处理过后的视频帧特征矢量列表,ViT 模型由位置编码和编码器组成,通过继承Layer 类并重写方法以实现自定义如图 5-5 所示。

图 5-5 位置编码与编码器部分代码截图
对 ViT 模型的超参数的设置如下表 5-5 所示,ViT 模型负责对动态手势进行全局建模,对其设置的超参数有 num_heads、epochs、batch_size、steps_per_epoch、 validation_steps 和 callbacks 。num_heads 设置了编码器的自注意力头的数量, epochs 参数设置了模型的学习轮次,batch_size 设置了批量大小,steps_per_epoch和 validation_steps 设置了每一轮需要的训练集与验证集的数量,callbacks 设置了“保存最佳权重 ”、“提前停止 ”等回调函数以便在模型训练过程中进行自定义操作或监控训练过程。

表 5-5 ViT 模型超参数表

参数名称 参数值
num_heads 2
epochs 500
batch_size 16
steps_per_epoch train_count // batch_size
validation_steps test_count // batch_size
callbacks [checkpoint, earlyStopping, ReduceLROnPlateau]
5.3 模型训练与评估
5.3.1 静态手势识别模型
(1) 模型训练
YOLOv8n 模型的训练流程如图 5-6 所示。

图 5-6 v8n 模型训练流程图
由于在 v8n 模型的参数设置阶段未对其进行优化器的设置,模型在开始训练后会根据训练轮次、数据集分类数量自动进行优化器的设置。本文中对模型进行训练时其自动选择了随机梯度下降(SGD)作为优化器,学习率为 0.01,动量为

0.9。模型每一轮次的训练时间约为 80 秒,模型所有轮次全部训练完毕的所需要的时长在 2 小时 15 分左右。
(2) 模型评估
模型在经过训练后其训练过程中的边界框损失从 1.02 下降到了 0.49 ,分类损失从 2.97 下降到了 0.22;在验证集上的边界框损失从 0.74 下降到了 0.53 ,分类损失从 0.98 下降到了 0.22 如图 5-7 所示。

图 5-7 训练轮次与损失趋势图
从图中训练轮次与损失值的趋势曲线可以看出模型训练损失和验证损失均在下降并且两者趋于平稳,从最后一轮的数据可以看出两者差距较小且验证集上的损失值没有上升趋势。结合以上数据可以说明模型训练良好,可以泛化到验证集上,模型过拟合程度低。
模型对于目标的分类效果如图5-8 混淆矩阵所示,矩阵的横坐标为真实值,纵坐标为预测值。

图 5-8 v8n 模型分类效果混淆矩阵
从混淆矩阵中可以看出模型对验证集数据的分类沿矩阵对角线分布,预测分类与实际分类绝大部分相符。左下三角区存在对部分样本的漏检或者识别为其它分类的现象,数量极小;右上三角区中存在一定数量对样本的错误检测,其中对背景的错误检测较多,推测为对验证集中的复杂背景存在误判,对模型的分类效果影响不大。
综上所述,YOLOv8n 模型在进行训练后在验证集上的精确率(precision)达到了 98% ,对新数据有很强的泛化能力,可以作为静态手势识别模型使用。
5.3.2 动态手势识别模型
(1) 模型训练
CNN-ViT 组合模型的训练流程如图 5-9 所示。

图 5-9 组合模型训练流程图
对组合模型设置了 Adam 作为优化器,学习率设置为 1 × 10-5(0.00001);将模型的损失函数设置为分散类别交叉熵函数用于进行分类任务,模型的最后一层经过一个 softmax 函数对分类结构进行概率化。在训练过程中使用 checkpoint回调函数对每轮训练的最佳权重进行保存;使用 earlyStopping 回调函数会损失值进行监测 ,当损失值在 5 个训练轮次中没有明显变动则提前终止训练; ReduceLROnPlateau 回调函数检测模型训练 30 个轮次后损失值的下降情况,当损失值不再下降时将当前学习率降低为原来的 70%,学习率最低降低到 1 × 10-15。
组合模型在对视频帧的特征提取阶段用时 1 分 30 秒左右,在模型训练阶段每一轮次的训练时间在 160 毫秒至 200 毫秒左右,整个组合模型的训练时间在 5分钟以内。
(2) 模型评估
在模型进行 500 轮次的训练并触发 earlyStopping 提前终止训练时的最佳权重对模型进行评估的结果如图5-10 所示。

图 5-10 组合模型评估截图
由于自行采集的数据集数据量较少,模型在使用最佳权重对验证集数据进行评估时分类损失达到了 0.0094 ,准确率(accuracy)达到了 1.0。

模型在训练过程中的分类损失从 2.5 降低到了 0.01 左右,分类的准确率从0.2 上升到了 0.9 左右如图 5-11 所示。

图 5-11 组合模型损失(上)与准确率(下)变化趋势图
从图中可以看出模型的训练分类损失与准确率在前 100 轮的训练中迅速变化,在后面的训练轮次中变化不再明显但仍然保持着下降(上升)的趋势。由于模型在小数据集上进行训练,虽然在验证集上的损失与准确率变化趋势与训练集相同,但是验证集的变化曲线存在震荡,说明模型在训练集上出现了一定程度的过拟合。
综上所述,组合模型虽然能够进行对动态手势的识别,但在数据集采集的过程中由于每个动作人员对手势范例的理解不同,采集的数据动作标准度、动作持续时长等方面对采集的数据的统一性造成了一定的影响,使得模型不能对新数据有很好的泛化能力,在自行采集的小数据集上表现不佳。

5.4 系统界面
5.4.1 开始界面
系统开始界面如图5-12 所示。

图 5-12 开始界面 UI 截图
开始界面由三个按钮和一块注意事项区组成,点击“进入系统 ”按钮将跳转到考试界面;点击“退出 ”按钮将关闭开始界面窗口并退出系统;“人工复审 ”按钮由监考方进行使用,点击后会弹出用于输入验证信息的验证框,验证通过后会展示上一次的考试信息用于人工复审。
开始界面部分代码如图 5-13 所示。

图 5-13 开始界面部分代码截图
类MenuWidget通过继承PyQt5 中的 QWidget类来实现对窗口中内部控件与布局的实现。start_clicked 、end_clicked 、manual_review 函数为界面中的三个按钮发出点击信号时所激活的槽函数,用于实现按钮所对应的功能。
5.4.2 考试界面
系统考试界面如图5-14 所示。

图 5-14 考试界面 UI 截图
系统考试界面大体上分为三个部分,左半部分用于在连接摄像头后显示使用者的实时画面,右上部分为考试中试题于当前手势剩余时间的显示部分,右下部分是考试界面的操作部分。整个界面大小固定为 1600×900 像素不可缩放,始终显示在所有窗口上方以防止使用者误操作。
考试界面的操作部分同样分为三个按钮,“开始考试 ”按钮在点击后会开始进行试题抽取、刷新显示部分内容等一系列考试业务逻辑;“查询成绩 ”按钮在未点击开始考试按钮前将不可用,其在考试后点击则将计算考试成绩并显示在显示部分上;点击“退出系统 ”按钮将关闭考试界面窗口,窗口关闭后不会中断考试业务逻辑,途中退出视为成绩不合格。
考试界面部分代码如图5-15 所示。

图 5-15 考试界面部分代码截图
类 ExamWidget通过继承 PyQt5 中的 QDialog 类来进行考试界面窗口的实例化并在其中绘制控件和进行布局。该类中的 8 个槽函数分别负责实现获取摄像头实时画面、开启考试业务逻辑、录制摄像头实时画面等功能。
5.4.3 人工复审界面
人工复审界面如图 5-16 所示。

图 5-16 人工复审界面 UI 截图
人工复审界面的构成较为简单,由输入框、提示框和确定按钮组成。使用时需要在输入框中输入正确的密钥后点击确定按钮即可打开存储考试结果的本地文件夹,方便考官在考生对成绩存在异议时进行人工复审。
人工复审界面代码如图5-17 所示。

图 5-17 人工复审界面代码截图
人工复审界面对密钥是否正确的判断通过 secret_key 槽函数实现,通过将输入的密钥与设定的密钥进行比对后判断密钥是否正确,若密钥正确则在打开考试结果文件夹后关闭人工复审界面,若不正确则将在提示框中显示“密钥错误 ”的提示。

第 6 章 系统测试

6.1 开始界面测试
开始界面是程序启动后的第一个界面,具备关联考试界面与人工复审界面的能力。测试中需要对界面程序、按钮功能进行测试,确保界面程序正常运行,按钮在点击后可以进行对应的跳转操作;确保程序不出现卡顿与功能失效的现象。
开始界面进行测试时开始界面中按钮的功能正常,点击“开始考试 ”按钮后可以跳转到考试界面,点击“人工复审 ”按钮后可以打开人工复审界面,点击“退出 ”按钮后程序可以正常的关闭界面并退出程序。对开始界面的测试过程如图6-1 ,6-2 所示。

图 6-1 打开考试界面测试截图

图 6-2 打开人工复审界面测试截图
对开始界面的测试表明该界面程序运行正常,无卡顿、卡死现象发生;按钮功能正常,在被点击后可以正确的打开对应的界面。

6.2 考试模块测试
考试模块是系统中的核心部分,负责整个考试业务逻辑的运行。测试中需要对摄像头实时画面、考试业务逻辑进行测试,确保使用者能从系统中获取摄像头实时画面与考试相关信息;确保考试相关业务逻辑在被激活后可以自主运行。
以考生的身份对考试模块进行测试,在开始界面点击按钮进入考试界面中后可以在界面的左半部分看见本人的摄像头实时影像,右上部分可以明确的了解到当前试题的题目与剩余响应时间,右下部分按钮功能正常。对考试模块的测试过程如图 6-3 ,6-4 ,6-5 所示。

图 6-3 考试过程测试截图

图 6-4 考试结束测试截图

图 6-5 成绩查询测试截图
对考试模块的测试表明考试模块的程序运行正常,点击“开始考试 ”按钮后可以正确的触发考试业务逻辑,考试结束后点击“查询成绩 ”按钮后程序可以进行考试成绩的计算并显示在界面中。考试业务逻辑在被触发后可以自主运行并在响应时间结束后对题目及响应时间进行刷新,考试结束后会提示使用者考试已结束。
6.3 人工复审模块测试
在考生对考试成绩存在异议时考官将使用该模块对考生的考试进行人工复审。测试中需要对模块的验证功能进行测试,只有当验证通过时模块才会调出存储在本地的考试结果,确保验证功能工作正常。
在该模块的输入框中输入密钥后输入内容不可见,密钥内容正确时程序可以正确打开存储了上一次考试结果的本地文件夹,密钥内容错误时收到了系统“密钥错误 ”的提示。对人工复审模块的测试过程如图 6-6 ,6-7 所示。

图 6-6 密钥正确测试截图

图 6-7 密钥错误测试截图
对人工复审模块的测试表明模块具有验证使用者身份的能力,在不同的使用者操作时该模块能根据使用者的身份决定是否调出上一次考试的结果存储以进行人工复审。

结论
在本文中我们进行了基于深度学习的潜水手势考试系统的设计、实现与测试。在进行实验设计的过程中,我验证了静态手势识别模型的有效性和泛化能力,也从动态手势识别模型的设计与训练中了解到了自己对于人工智能这一学科还有很长的路要走。对静态手势识别模型的实验结果表明该模型对潜水手势中的静态手势检测效果表现良好,可以快速并精确的识别图像中不同类别、具有一定角度变化的静态手势目标。从全局看,本文设计的基于深度学习的潜水手势考试系统为传统以人工监考为主的潜水手势考试提供了一种自动化的解决方案,具有一定的实际应用价值。本文最大的遗憾在于未能使训练出的 CNN-ViT 组合模型对数据集中全部的手势数据都具有一定的泛化能力,考试系统的设计也存在一些可以进一步研究和改进的地方。以下几点是我在总结了组合模型对部分手势泛化能力不佳的原因以及考试系统存在的缺陷后进行的归纳:
第一点,强化数据集的构建。数据集的构建需要寻找科学有效的视频数据采集方法,通过查阅文献,开源项目等资料了解视频类数据集的采集和构建。自行采集数据集时若数据内容对专业性有一定要求则需要寻求专业人士的帮助,在专业人士的***可以减少因个人习惯等原因引起的手势差异问题。在进行数据采集时通过使用统一的拍摄设备,使用三角架固定拍摄设备后要求被拍摄者站在指定地点进行拍摄,这样可以最小化拍摄距离与拍摄角度对视频数据产生影响。同时数据集的采集量也尤为重要,本文中使用的自行采集的动态潜水手势数据集原始数据量过小,即便在经过数据增强增加了数据量后模型还是在训练集上出现了过拟合,因此在数据的采集阶段就应该注重模型的数据量与多样性。
第二点,深入对模型算法原理的了解。在本文选用CNN-ViT 组合模型时未对 ViT 模型的学习原理做到充分的了解,在今后的学习中需要继续学习如 ViT模型是如何对输入的视频帧序列进行全局建模的,注意力机制又是如何作用在位置编码划分后的网格上。同时也需要了解其它可以进行动态手势识别的模型如CNN-RNN 等,在丰富知识储备的同时也能将模型进行比较,更好的领略到人工智能的科学之美。
第三点,考试系统业务逻辑的缺陷。本文在进行考试业务逻辑的编写时对系统中各个槽函数进程间没有做并发处理,这导致了某些进程在进入循环、判断等

结构后会对资源造成长时间的占用导致其它进程踏步等待。其中对系统影响较大的一点是这样会造成手势视频存储模块在进行第二段视频存储时出现仅存储了一帧的现象。原因推测为视频存储模块与考试界面中的实时画面共享一个视频流,考试计时器在第一次倒计时结束后会通过另一个槽函数进行重置 ,此后一直在该槽函数上运行,计时器判断结构实现因此导致第二段视频在存储时因资源被占用导致该现象的出现。通过进一步对 PyQt5 库中并发逻辑的学习可以进一步的完善考试系统的业务逻辑,使其更加稳定、流畅。
第四点,深度学习库的冲突与部署。本文在假设动态手势识别模型训练成功的前提下在考试系统的业务逻辑中对手势识别模块进行整合,在程序没有报错的情况下先运行 TensorFlow会导致PyTorch 因无法识别到某个组件而无法运行,反之则会导致 TensorFlow 无法初始化高性能 GPU 加速库(cuDNN)而报错。在程序中进行了一系列如限制显存使用、运行后关闭模型等操作后问题依旧存在,本文中的手势识别模块中的模型未进行部署,将模型转化为 ONNX 格式进行部署后也许可以解决深度学习库的冲突问题并实现模型在不同框架间的互操作性。

参考文献
[1] Mohamed N, Mustafa M B, Jomhari N. A Review of the Hand Gesture Recognition System: Current Progress and Future Directions[J].IEEE Acce ss, 2021.DOI:10. 1109/ACCESS.2021.3129650.
[2] 张馨泽.基于 YOLOv6 的交通标志识别[D].哈尔滨理工大学,2024.DOI:10.27 063/d.cnki.ghlgu.2024.000210.
[3] 魏嘉焜,王家润.手势识别与交互综述[J].计算机与现代化,2024,(08):67-76.
[4] 卢宏涛,罗沐昆.基于深度学习的计算机视觉研究新进展[J].数据采集与处理,2022,37(02):247-278.DOI:10. 16337/j.1004-9037.2022.02.001.
[5] 邵延华,张铎,楚红雨,等.基于深度学习的 YOLO 目标检测综述[J]. 电子与信息学报,2022,44(10):3697-3708.
[6] 程杨瑞.基于 CNN 的 Trsanformer 图像分类算法研究[D].南华大学,2023.DOI: 10.27234/d.cnki.gnhuu.2023.001499.
[7] 吕田田.基于 Transformer 的小样本目标检测方法研究[D].西安工业大学,202 4.DOI:10.27391/d.cnki.gxagu.2024.000847.
[8] 田永林,王雨桐,王建功,等.视觉 Transformer 研究的关键问题:现状及展望[J].自动化学报,2022,48(04):957-979.DOI:10. 16383/j.aas.c220027.
[9] Drew Richardson, Karl Shreeves, Dail Shroeder, Joy Zuehis. PADI Open Water Dive Course(Chinese Version)[M]. California, USA, Professional Association of Diving Instructors,2006.
[10]姜晓凤,王保栋,夏英杰等.基于人体关键点和 YOLOv4 的吸烟行为检测[J].陕西师范大学学报(自然科学版),2022,50(3):96-103.
[11]刘永涛,刘永杰,孙斐然等.基于深度学习的交警动态手势检测与识别方法研究[J].武汉理工大学学报(交通科学与工程版),2024,48(3):441-447.
[12]周伟鸿,朱思霖.基于深度学习技术的智慧考场方案的应用探究[J].信息技术与信息化,2020,(12):224-227.

[13]赵娜娜,李如跃.海南省三亚市滨海旅游特色产业发展研究[J].商展经济,202 3,(08):38-40.DOI:10. 19995/j.cnki.CN10-1617/F7.2023.08.038.
[14]廖昌波,付国举,刘晓波,等.下潜过程中潜水员耳压平衡技巧及对策[J].海军医学杂志,2019,40(04):298-300.
[15]李培坤,李锋,葛忠显,等.基于改进 YOLOv8n 的水下目标检测算法[J/OL].电子测量技术,1-8[2025-02-27].http://kns.cnki.net/kcms/detail/11.2175.TN.20 250109.1307.027.html.

致谢
行文至此,意味着我的本科学习生涯即将画上句点。回头看向论文写作的日日夜夜,从选题的迷茫到框架的调整,从数据的搜集到反复的修改,这一路离不开诸多师长、亲友的鼓励与帮助,在此谨以最诚挚的谢意表达我的感激之情。
首先,衷心感谢我的导师。感谢您在学术上的严谨指导与耐心包容,从论文选题到研究方法的设计,从逻辑梳理到书写规范,您总能用渊博的学识为我指明方向。正是导师孜孜不倦的教导与无私奉献让我能够克服困难重重,顺利完成论文,您对待学术的求真态度与谦和待人的品格,将成为我终身学习的榜样。
其次,感谢****的全体授课老师是你们深入浅出的课堂让我夯实了专业基础,开阔了学术视野;感谢参与论文评审的老师和答辩组专家提出的宝贵意见,让我的论文得以进一步完善;感谢学校提供了良好的学习环境和丰富的学习资源,学校图书馆中的资料为我的论文写作提供了极大的便利。
最后,感谢我的同窗好友、同学、亲友、家人们,你们在资料搜集、思路讨论中给予的支持,让我深感团队协作的力量。同时也感谢你们能在百忙之中的空余时间配合我进行数据的采集,让我的论文有了基础。
至此,我再次向所有给予我帮助和支持的人由衷的表示感谢,我会将在这段时间学习到的宝贵经历铭记与心,正视存在的缺陷与不足,在之后的学习工作生活中以此激励自己不断追求进步,为人工智能事业奉献自己的力量。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询