版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEII目录摘要 IABSTRACT II1引言 11.1课题背景 11.2国内外研究现状 11.2.1YOLOv5模型研究现状 11.2.2头盔佩戴检测研究现状 21.3论文结构安排 31.4本章小结 32深度学习相关理论与技术概述 42.1卷积神经网络 42.1.1卷积层 42.1.2池化层 52.1.3全连接层 62.2常用目标检测算法 72.2.1R-CNN系列算法 72.2.2SSD系列算法 72.2.3YOLO系列算法 82.3模型选择 82.4本章小结 93电动车驾驶人员头盔数据集预处理 103.1图像数据获取 103.2数据集标注 113.3图像预处理 123.4本章小结 134电动车驾驶人员头盔佩戴检测模型构建 144.1YOLOv5系列模型研究 144.2解决的问题 154.3模型训练流程 154.4模型构建 164.5模型优化 184.5.1注意力机制 184.5.2YOLOv5s-SE模型 184.6模型性能对比 204.6.1模型精度对比 214.6.2模型召回率对比 224.6.3模型mAP@0.5值对比 234.6.4模型对比小结 244.7本章小结 245电动车驾驶人员头盔实时检测系统搭建 265.1PyQt5框架 265.2系统可视化模块设计 265.3系统测试 275.3.1图片及视频文件检测 275.3.2摄像头实时检测 285.4本章小结 306总结与展望 316.1总结 316.2展望 31致谢 32参考文献 33摘要本文旨在介绍一种基于YOLOv5模型的电动车驾驶人员头盔佩戴检测系统及其实现。随着电动车的普及,鉴于电动车驾乘人员头盔佩戴率低以及头盔对于电动车在交通事故中对驾乘人员的保护作用,2020年4月,公安部交通管理局部署“一盔一带”安全守护行动。调查显示,97.7%的调查对象都知道该制度,仅有2.3%的调查对象不知道该制度。从宣传的效果来看,头盔强制性佩戴制度的知晓率还是非常高。虽然知晓率高,但是大多数的电动车事故还是由于驾驶人员未佩戴头盔而导致的。因此,设计一种有效的头盔佩戴检测系统对提高电动车驾驶安全至关重要。本研究采用了YOLOv5模型,该模型具有高效的目标检测能力,能够实时准确地检测驾驶人员是否佩戴头盔。在系统实现方面,本文详细介绍了数据采集与预处理、模型训练、系统集成等关键步骤。通过实验验证,本系统能够在不同场景下高效地识别电动车驾驶人员的头盔佩戴情况,为电动车行业的安全管理提供了一种有效的技术手段。本文作者主要完成了以下工作:1.通过网上收集和道路拍摄等方式收集电动车驾驶人安全头盔数据,并使用图像增强技术扩充数据集,以解决数据集缺失问题。2.使用Labelimg工具进行数据标注,将标注图片生成的xml文件通过python代码转换为YOLO模型训练使用的txt格式,将处理的文件按2:8的比例,随机分成验证集和训练集。3.基于YOLOv5s-SE模型,在本地使用GPU对处理完的数据集进行训练,使用效果最佳的模型部署在可视化界面,将检测过程中的结果保存到tmp文件夹下。4.基于PyQt5的图形界面设计。对该系统进行了需求分析,设计实现检测不同的文件及摄像头实时检测界面。关键词:YOLOv5-SE;深度学习;Labelimg;电动车头盔检测;PyQt5
ABSTRACTThisarticleaimstointroduceanelectricvehiclehelmetwearingdetectionsystembasedontheYOLOv5modelanditsimplementation.Withthepopularityofelectricvehicles,consideringthelowhelmetwearingrateamongelectricvehicleridersandtheprotectiveeffectofhelmetsforridersintrafficaccidents,inApril2020,theTrafficManagementBureauoftheMinistryofPublicSecuritydeployedthe"Onehelmet,onebelt"safetyprotectioncampaign.Surveysshowthat97.7%ofsurveyrespondentsknewaboutthissystem,whileonly2.3%didnot.Fromtheperspectiveofthepropagandaeffect,theawarenessrateofthemandatoryhelmetwearingsystemisstillveryhigh.Despitethehighawarenessrate,mostelectricvehicleaccidentsarestillcausedbyridersnotwearinghelmets.Therefore,designinganeffectivehelmetwearingdetectionsystemiscrucialforimprovingthesafetyofelectricvehicledriving.ThisstudyadoptedtheYOLOv5model,whichhasefficienttargetdetectioncapabilitiesandcanaccuratelydetectwhetherdriverswearhelmetsinrealtime.Intermsofsystemimplementation,thisarticleintroducesthekeystepsofdatacollectionandpreprocessing,modeltraining,andsystemintegrationindetail.Throughexperimentalverification,thissystemcaneffectivelyidentifythehelmetwearingsituationofelectricvehicledriversindifferentscenarios,providinganeffectivetechnicalmeansforsafetymanagementintheelectricvehicleindustry.Theauthorsofthisarticlemainlycompletedthefollowingwork:(1)Collectingelectricvehicledriversafetyhelmetdatathroughonlinecollectionandroadphotography,andusingimageenhancementtechnologytoexpandthedatasettosolvetheproblemofmissingdata.(2)UsingLabelimgtoolfordataannotation,convertingthexmlfilesgeneratedbytheannotatedimagesintotxtformatusedforYOLOmodeltrainingthroughpythoncode,andrandomlydividingtheprocessedfilesintovalidationsetsandtrainingsetsataratioof1:9.(3)BasedontheYOLOv5s-SEmodel,usingGPUtotraintheprocesseddatasetlocally,deployingthemodelwiththebesteffectonthevisualizationinterface,andsavingtheresultsofthedetectionprocesstotheimagesfolder.(4)Designingagraphicalinterfacebasedonpyqt5.Conductingademandanalysisforthesystem,designingandimplementinginterfacesfordetectingdifferentfilesandreal-timecameradetection.Keywords:YOLOv5-SE;DeepLearning;Labelimg;ElectricVehicleHelmetDetection;PyQt5PAGE61引言1.1课题背景随着电动车的普及和城市交通拥堵问题的日益突出,电动车已经成为许多人日常出行的首选方式。然而,与电动车的增加相伴随的是电动车事故的频发,其中很多事故是由于驾驶人员未佩戴头盔而导致的。头部是人体最重要的器官之一,未佩戴头盔的驾驶人员在交通事故中面临着更高的风险,颅脑损伤率和死亡率显著增加。根据统计数据显示,佩戴头盔可以有效地减少颅脑损伤的发生率,并降低交通事故造成的严重后果。因此,设计一种有效的头盔佩戴检测系统对提高电动车驾驶安全至关重要。目前,一些地区的交管部门已经采取了一系列措施来促进电动车驾驶人员的头盔佩戴,如公安部开展的“一盔一带”行动[1]。然而,由于交通监管区域广阔、人力资源有限等原因,人工监管的效率较低,难以实现全面监控。因此,开发一种基于技术手段的智能头盔佩戴检测系统具有重要的现实意义。1.2国内外研究现状基于深度学习的电动车驾驶人员头盔实时检测系统的研究,在国内外均受到了广泛关注。在国内,多所高校和科研机构正积极投入电动车头盔佩戴检测的研究。他们不仅关注于深度学习算法的优化,还积极探索如何将这些算法有效地部署在嵌入式平台上,以实现实时、高效的头盔佩戴检测。一些研究团队已经取得了初步成果,通过改进深度学习模型,提高了头盔佩戴实时检测的精度和速度。同时,在国外的研究机构也在这一领域取得了显著进展。他们不仅关注于算法的优化,还积极探索头盔佩戴检测在实际应用中的各种问题。尽管国内外在电动车头盔佩戴检测的研究上取得了一些进展,但仍面临着诸多挑战。例如,不同品牌、不同款式的头盔在形状、颜色等方面存在差异,这对检测算法的泛化能力提出了高要求,在不同天气、不同遮挡及不同角度等各方面,也对实时检测电动车驾驶人员头盔功能增加了不少难度。此外,实时检测对系统的响应速度有着极高的要求,如何在保证检测精度的同时提高检测速度,是国内外研究者都需要解决的关键问题。1.2.1YOLOv5模型研究现状自Grishick[2]等提出的R-CNN算法后,将卷积神经网络应用于特征提取,并借助于CNN算法良好的特征提取性能,一举将pascalvoc数据集的检测效率提升了18.6%,从35.1%提升到53.7%,自此深度学习算法开始在目标检测领域占据主导地位。近几年YOLOv5进一步提高了模型的性能,并增加了超参数优化、集成实验跟踪和自动导出为常用导出格式等新功能,网络架构图如图1.1所示。Ultralytics公司是YOLOv5的主要开发者之一,他们负责了YOLOv5的开源发布和持续更新。他们的团队致力于不断改进YOLOv5模型的性能和功能,并提供了丰富的文档、示例代码和模型权重供研究者使用。在国内外,目标检测算法的研究已经取得了一定的成果。国外研究主要集中在YOLO算法的改进和优化方面,如YOLOv6、YOLOv7等版本的推出,以及与其他算法的比较研究。同时,还有一些研究致力于将目标检测算法应用于实际场景中,如自动驾驶、足球运动员检测,车辆备件检测等领域。国内研究方面,目标检测算法的研究也在不断深入。朱东伟[3]致力于将YOLOv5检测算法应用海洋生物检测的领域,以科技放大资源优势。此外,还有一些研究关注于算法的改进和优化,如工地内人员密集、环境复杂,佩戴安全帽能大大提高工人的安全,陈海德[4]基于YOLOv5s提出了SC-YOLOv5检测算法,以提高在工地复杂环境下安全头盔检测的准确性。总的来说,目标检测算法的研究已经取得了一定的成果,但仍然存在一些问题和挑战。图1.SEQ图1.\*ARABIC1YOLOv5模型流程图1.2.2头盔佩戴检测研究现状目前对电动车驾驶人员安全头盔检测研究少于工地安全帽的检测研究。之前提到Grishick提出的R-CNN算法取得不错成绩后,深度学习开始加速发展进步,如今人工智能已成为热门。目前,已有不少学者使用深度学习的方法展开了对工地工人安全帽佩戴检测研究。如徐守坤[5]等为了增强网络对不同尺寸目标的检测效果,在FasterR-CNN算法的基础上进行了创新,他们增加了锚点的数量。为了减少误检的目标,运用了多部件结合的策略。通过这些改进措施,最终成功地提高了检测精度。徐先锋[6]等为提高安全帽检测效率,同时尽量保持检测精度。他们选择轻量级的MobileNet网络来替代传统的SSD算法中的主干网络,显著减少了网络参数,从而降低了计算复杂度。为了克服模型训练中的难题,他们引入了迁移学习策略。通过这些策略的应用,他们成功在保持较高检测精度的前提下,实现了安全帽检测速度的显著提升。1.3论文结构安排本文模型设计内容一共分为六章,以下是各章节的具体内容:第一章:引言。本章主要介绍了本课题背景和国内外在YOLOv5算法和电动车驾驶人员头盔检测现状。第二章:深度学习相关理论与技术概述。本章主要介绍了深度学习中的卷积神经网络技术及常用的目标检测算法。第三章:电动车驾驶人员头盔数据集预处理。本章主要介绍了数据集的获取、数据集介绍、数据标注,及数据的格式转换和划分。第四章:电动车驾驶人员头盔佩戴检测模型构建。本章主要介绍了针对电动车驾驶人员头盔佩戴检测问题构建YOLOv5s-SE深度学习模型、模型训练流程及在对YOLOv5s-SE模型优化前训练的模型性能进行对比,可以更直观的观察优化后模型的性能提升。第五章:电动车驾驶人员头盔实时监测系统。本章主要介绍了系统搭建使用的pyqt5框架,将训练完成的YOLOv5-SE模型部署到可视化窗口,并在可视化界面内使用模型测试图像识别情况。第六章:总结与展望。本章主要总结本实验的流程与成果,在未来期望进一步提高实验成果。1.4本章小结本章主要介绍了电动车驾驶人员头盔佩戴检测系统的研究背景和国内外研究现状。随着电动车的普及,头盔佩戴问题引起了人们的关注。电动车事故中未佩戴头盔的驾驶人员面临更高的风险,因此设计一种有效的检测系统具有重要意义。目前,针对电动车头盔佩戴的检测研究还存在不少的难题。近年来,深度学习算法在目标检测领域取得了显著进展,如YOLOv5模型的提出进一步提高了检测性能、在疫情期间,口罩佩戴检测更是让目标检测算法有了进一步应用。国内外研究者通过对目标检测算法的改进和优化,以及应用于实际场景中,取得了一定的成果。未来的研究方向包括进一步提高算法的准确性和实时性,为实际应用提供更好的支持。
2深度学习相关理论与技术概述2.1卷积神经网络深度学习作为人工智能领域的重要技术,通过训练模型来学习输入数据中的潜在规律,使得计算机能够从文字、图像和声音等数据中提取特征,并做出相应的识别和分析。随着深度学习技术的不断演进,机器逐渐具备了人类般的分析学习能力,实现了对复杂数据的高效处理和理解。卷积神经网络(ConvolutionalNeuralNetworks)是深度学习中的重要组成部分,主要应用于计算机视觉领域,如物体检测、图像分类、行为识别等任务。随着硬件设备计算能力的提升,研究者提出了各种卷积结构,形成了不同深度和复杂度的网络模型。在图像检测任务中,CNN的输入通常是RGB图像,经过一系列的卷积操作、池化操作以及非线性激活函数的处理如图2.1所示。图2.SEQ图2.\*ARABIC1卷积神经网络流程图2.1.1卷积层卷积层(ConvolutionalLayer)是卷积神经网络中的核心组件之一,负责对输入数据进行特征提取和信息抽取。在计算机视觉领域,卷积层通常被用于处理图像数据,其主要作用是通过滤波器(也称为卷积核)对输入数据进行卷积操作,从而提取出图像中的特征信息。卷积层由多个滤波器组成,每个滤波器都是一个小的可学习的参数矩阵,它在输入数据上滑动以执行卷积操作如图2.2所示。通过卷积操作,滤波器从输入数据中提取出不同位置和尺度的特征,这些特征对于后续的任务(如分类、检测等)具有重要意义。在卷积操作过程中,滤波器与输入数据的对应位置进行元素相乘,并将所有结果相加,得到卷积后的特征图。这一过程可以有效地捕获输入数据的局部特征,并且具有平移不变性,即特征在图像中的位置不影响卷积结果。图2.SEQ图2.\*ARABIC2卷积层原理图2.1.2池化层池化层(PoolingLayer)是卷积神经网络中的另一个重要组成部分,通常紧随在卷积层之后。池化层的主要目的是对卷积层输出的特征图进行下采样,减少特征图的尺寸并保留最显著的特征。常见的池化操作包括最大池化和平均池化,还有一种少用的随机池化操作,操作过程如图2-3。最大池化通过在特定区域内选择最大值来减少特征图的尺寸,从而保留最显著的特征。平均池化则是在特定区域内取特征值的平均值作为池化结果,同样可以减少特征图的尺寸。池化操作有助于降低特征图的维度,减少计算量,并且能够提高模型的计算效率。此外,池化操作还具有一定的平移不变性,即在一定程度上能够保持特征的不变性,使得模型对于图像的微小变化具有一定的鲁棒性。在卷积神经网络中,池化层通常与卷积层交替使用,通过不断降低特征图的尺寸,逐渐提取出更加抽象和高级的特征信息。这样的层级结构有助于网络更好地理解输入数据,并且提高了模型的泛化能力。图2.SEQ图2.\*ARABIC3池化层原理图2.1.3全连接层全连接层(FullyConnectedLayer)是神经网络中的一种常见层类型,也称为密集连接层或输出层。在全连接层中,每个神经元都与前一层的所有神经元相连接,每个连接都有一个权重参数,这些参数需要在训练过程中学习到。全连接层通常位于神经网络的末尾,用于将网络中学到的高层特征映射到输出类别。在图像分类任务中,全连接层将卷积层和池化层提取的特征进行扁平化,并将其输入到一个或多个全连接层中,然后经过激活函数处理得到最终的分类结果。全连接层的计算过程可以用以下公式表示:Y=f其中,xi是前一层神经元的输出,wi是连接权重,b是偏置项,全连接层的主要优点是可以捕获输入数据中的全局信息,并且具有较强的拟合能力。但是全连接层也带来了较高的计算复杂度和参数数量,容易导致过拟合现象的发生。2.2常用目标检测算法2.2.1R-CNN系列算法R-CNN是双步目标检测的先驱,它将目标检测任务分解为候选区域提取和目标分类的两个步骤。先通过选择性搜索等算法从输入图像中生成数百至数千个候选区域,然后对每个候选区域使用预训练的卷积神经网络(CNN)提取特征,并使用支持向量机(SVM)进行目标分类。虽然R-CNN在准确性方面表现出色,但其运行速度较慢,主要原因是需要独立处理每个候选区域,导致计算和内存消耗较大。FasterR-CNN是R-CNN的改进版本,通过引入区域兴趣池化(ROIPooling)机制如图2.4所示,将候选区域提取和特征提取合并为一个步骤,从而大大提高了检测速度。FastR-CNN首先将整个图像输入到CNN中,再使用ROIPooling从CNN的特征图中提取每个候选区域的特征表示。这样,相比于R-CNN,FasterR-CNN只需要一次前向传播过程,大大减少了计算时间。同时,FastR-CNN还引入了分类损失和边界框回归损失的多任务损失函数,使得模型的训练更加稳定和高效。图2.SEQ图2.\*ARABIC4FaseerRNN算法2.2.2SSD系列算法SSD是最早提出的一种单阶段目标检测算法,它通过在不同尺度的特征图上应用一系列预定义的默认框来检测不同大小和形状的目标。SSD在特征图的每个位置预测目标的类别和位置偏移量,并且通过非极大值抑制(NMS)筛选检测结果,最终得到最终的目标检测结果。SSDResNet是在SSD基础上引入了ResNet作为特征提取网络的一种改进算法。ResNet是一种深度残差网络结构,能够有效解决深层神经网络训练过程中的梯度消失和模型退化问题。SSDResNet通过使用ResNet作为特征提取网络,进一步提升了模型的检测性能和泛化能力,使得在复杂场景下的目标检测效果更加准确和稳定。2.2.3YOLO系列算法YOLO系列算法是一类前沿的实时目标检测算法,它采用端到端的策略,实现了对目标类别和位置信息的直接预测。与传统的目标检测算法不同,YOLO将检测任务简化为一个回归问题,通过单次查看输入图像,即可得出目标的类别和边界框坐标。YOLO系列算法已经发展出多个版本,如YOLOv4和YOLOv5等,每个版本都在前人的基础上进行了优化和改进。YOLOv5是于2020年由Ultralytics团队提出。与之前的版本YOLOv4相比,YOLOv5具有更高的性能和更简单的结构,同时保持了较快的检测速度。YOLOv5采用了轻量级的网络结构如下图2.5所示,使用更少的参数和更简单的模型设计来实现目标检测任务。这使得YOLOv5在保持高性能的同时,具有更快的推理速度和更低的计算成本。YOLOv5通过利用多尺度的特征图来提高目标检测的准确性。它采用了类似于FPN(FeaturePyramidNetwork)的特征融合策略,将不同层级的特征图进行有效地融合,从而能够更好地检测不同尺寸的目标。在训练过程中YOLOv5采用了大量的数据增强技术,包括随机裁剪、随机缩放、随机扭曲等,以增加模型的鲁棒性和泛化能力。此外,YOLOv5还使用了一种称为“自适应训练”的方法,可以根据目标检测任务的复杂程度自动调整模型的训练策略。使用PyTorch框架实现,使得模型的训练和部署更加简单和灵活。图2.SEQ图2.\*ARABIC5YOLOv5网络结构图2.3模型选择YOLOv5在目标检测任务中具有更快的推理速度和更高的效率。相比之下,R-CNN算法需要候选区域提取和多次前向传播,而SSD算法则需要对不同尺度的特征图进行检测,这些操作都会增加计算成本和时间消耗。而YOLOv5采用轻量级网络结构和单次前向传播的方式,能够更快地完成目标检测任务。R-CNN算法采用了复杂的多阶段流程,包括候选区域提取和区域分类等步骤,而SSD算法则需要设计复杂的多尺度特征图和锚框。YOLOv5的简单结构使得模型更易于训练和优化,并且能够在实际应用中实现较高的性能。综上所述,YOLOv5相比于R-CNN和SSD算法具有更快的速度和更高的效率,更简单而强大的网络结构,以及更简洁高效的端到端处理方式,因此在实际应用中具有更大的优势。如下表2-1是YOLVv5和其他算法的对比表。表2.SEQ表2.\*ARABIC1YOLOv5与其他算法对比图模型实时性优势劣势R-CNN否对小目标检测能力强目标获取时间长FasterR-CNN否准确率高复杂度高SSD一般多尺度检测推理速度慢YOLOv4良好模型结构相对简单直接,易于实现对密集目标不敏感YOLOv5优秀速度快,高效简洁检测精度还有待提高2.4本章小结在本章中,对几种常见的目标检测算法进行了介绍和对比,包括YOLO、SSD和R-CNN系列算法。在对比中,YOLO算法具有较快的检测速度和较高的准确性,特别适用于对实时性要求较高的场景。SSD算法在速度和准确性之间取得了一种平衡,而R-CNN系列算法则在准确性上有一定优势,但速度较慢。综合考虑实际需求和算法特性,本文选择了YOLOv5模型作为电动车驾驶人员头盔佩戴检测系统的与训练模型,以其在速度和精度方面的优势,为提升电动车驾驶人员头盔检测性能和驾驶人员安全提供支持。
3电动车驾驶人员头盔数据集预处理3.1图像数据获取在电动车驾驶人员头盔数据集的采集过程中,本实验需要考虑图像的可使用条件,以确保数据集的准确性和有效性。主要来源包括网上爬取数据集和自己在不同地点的拍摄。对于图像的条件,实验需要确保图像具有良好的清晰度、准确性和数据集的规模,为提高模型的检测效率。因此,我会选择不同天气、不同角度、不同数量和不同遮挡条件下的图像数据,且保证数据集中不同类别的目标数量比例尽可能均衡。其次,对于网上爬取数据集,可以利用各种图像数据集的在线资源,如开放的图像库、天池、飞浆数据集平台等。通过使用网络爬虫技术,可以自动化地从这些资源中收集大量的图像数据,除此之外还在小红书、微博等自媒体平台收索关键字“电动车大军”来收集可用于训练的图片及视频,并根据需要进行筛选和整理。另外,为了获取更具代表性和多样性的数据,还会在不同地点进行拍摄。这包括在城市道路、乡镇地区等不同场景下拍摄电动车驾驶人员的图像,以确保数据集的全面性和普适性。同时,还会注意不同时间段和天气条件下的拍摄,以增加数据集的多样性和泛化性能,根据不同方法共采集数据5000张如图3.1所示。数据集中不同情况的示例图片如下图3.2所示。图3.SEQ图3.\*ARABIC1图像数据集(a)不同数量(b)不同距离、不同光照(c)不同角度、不同天气图3.SEQ图3.\*ARABIC2举例数据集3.2数据集标注图像标注是目标检测任务中至关重要的一环,它为模型提供了训练所需的标注数据集。在本研究中,采用了LabelImg工具来进行图像标注。LabelImg是一个开源的图像标注工具,提供了丰富的功能,包括创建和编辑边界框、选择和修改标签、显示和隐藏边界框等。它还支持在图像上进行缩放、移动和调整大小,以便更精确地标注目标对象。LabelImg支持多种常用的标注文件格式,包括XML、JSON、CSV等,可以根据自己的需求选择合适的格式导出标注结果。在标注过程中,需要明确定义各个类别的含义和范围。在本实验中的图像数据由helmet、without_helmet、two_wheeler三个类别构成,分别对应佩戴头盔目标、未佩戴头盔目标和电动车目标如图3.3所示。图3.SEQ图3.\*ARABIC3Labelimg工具界面3.3图像预处理图像预处理在图像识别深度学习中起到了消除噪声、增强信息、简化数据和提升神经网络性能的关键作用。通过预处理,可以使得图像数据更加适合深度学习模型的训练和应用,从而提高图像识别的准确性和效率。1.通过标注工具标注的图像生成的xml文件通过python代码转换为txt格式文件,以适用于YOLOv5s模型训练如图3.4所示,代码部分如下:defconvert_annotation(image_id,width,hight):defconvert_annotation(image_id,width,hight):
in_file=open(xml_path+'\\{}.xml'.format(image_id),encoding='UTF-8')
out_file=open(txt_path+'\\{}.txt'.format(image_id),'w')#生成同名的txt格式文件
tree=ET.parse(in_file)
root=tree.getroot()
size=root.find('size')#此处是获取原图的宽高
ifsizeisnotNone:
w=int(size.find('width').text)
h=int(size.find('height').text)
else:
w=width
h=hight2.将图像数据集划分为训练集和验证集可以帮助实验更好地训练和优化模型,提高其在未知数据上的性能,从而实现更准确的图像识别。训练集的主要作用是为模型提供大量的学习样本,使其能够学习到数据中的特征和规律。验证集则用于评估模型在训练过程中的性能,并提供关于模型泛化能力的反馈,代码部分如下:defmoveimg(fileDir,tarDir):defmoveimg(fileDir,tarDir):
pathDir=os.listdir(fileDir)
filenumber=len(pathDir)
rate=0.2#自定义抽取图片的比例
picknumber=int(filenumber*rate)#按照rate比例取一定数量图片
sample=random.sample(pathDir,picknumber)#随机选取picknumber数量的样本图片
print(sample)
fornameinsample:
shutil.move(fileDir+name,tarDir+"\\"+name)
return
defmovelabel(file_list,file_label_train,file_label_val):
foriinfile_list:
ifi.endswith('.jpg'):
filename=file_label_train+"\\"+i[:-4]+'.txt'
ifos.path.exists(filename):
shutil.move(filename,file_label_val)
print(i+"处理成功!")图3.SEQ图3.\*ARABIC4数据格式转换3.4本章小结在本章中,介绍了图像标注的过程,主要包括了数据集的收集和标注两个方面。首先,描述了图像收集的条件,包括图像质量的要求和主要来源,其中涵盖了网上爬取数据集和自行拍摄不同地点的图像。其次,介绍了使用标注工具LabelImg进行数据标注的过程,以及如何将标注结果转换为适用于YOLOv5模型训练的txt格式。最后,实验概括了数据集的构成,说明了实验中的图像数据包括了三个类别:佩戴头盔目标(helmet)、未佩戴头盔目标(without_helmet)和电动车目标(two_wheeler)。这些步骤和内容为后续目标检测模型的训练提供了基础和准备工作。4电动车驾驶人员头盔佩戴检测模型构建4.1YOLOv5系列模型研究YOLOv5包括YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四个版本,YOLOv5s相比其他版本来说具有较小的模型体积和低计算复杂度,这使得它在移动设备上的部署和实时检测方面具有显著的优势。labels4,segments4=[],[labels4,segments4=[],[]s=self.img_size#获取图像尺寸yc,xc=(int(random.uniform(-x,2*s+x))forxinself.mosaic_border)#mosaiccenterx,y#random.uniform随机生成上述范围的实数(即一半图像尺寸到1.5倍图像尺寸)#这里是随机生成mosaic中心点indices=[index]+random.choices(self.indices,k=3)#3additionalimageindices#随机生成另外3张图片的索引ifi==0:#topleftimg4=np.full((s*2,s*2,img.shape[2]),114,dtype=np.uint8)#baseimagewith4tiles#先生成背景图x1a,y1a,x2a,y2a=max(xc-w,0),max(yc-h,0),xc,yc#xmin,ymin,xmax,ymax(largeimage)#设置大图上的位置(要么原图大小,要么放大)x1b,y1b,x2b,y2b=w-(x2a-x1a),h-(y2a-y1a),w,h#xmin,ymin,xmax,ymax(smallimage)elifi==1:#topright(右上角)x1a,y1a,x2a,y2a=xc,max(yc-h,0),min(xc+w,s*2),ycx1b,y1b,x2b,y2b=0,h-(y2a-y1a),min(w,x2a-x1a),helifi==2:#bottomleft(左下角)x1a,y1a,x2a,y2a=max(xc-w,0),yc,xc,min(s*2,yc+h)x1b,y1b,x2b,y2b=w-(x2a-x1a),0,w,min(y2a-y1a,h)elifi==3:#bottomright(右下角)x1a,y1a,x2a,y2a=xc,yc,min(xc+w,s*2),min(s*2,yc+h)x1b,y1b,x2b,y2b=0,0,min(w,x2a-x1a),min(y2a-y1a,h)图4.SEQ图4.\*ARABIC1Mosaic数据增强4.2解决的问题在构建电动车驾驶人员头盔佩戴检测系统的过程中,首先需要清晰地界定所要解决的问题。鉴于电动车驾驶人员的安全行为对交通安全至关重要,佩戴头盔作为预防头部伤害的关键措施显得尤为重要。但受限于监管人员的数量和监管范围,全面监控电动车驾驶人员的头盔佩戴情况成为一项艰巨任务。因此,设计一款能够自动检测电动车驾驶人员头盔佩戴情况的智能系统显得至关重要,为交通安全领域提供了一种高效、便捷的监管方式。选择构建这一系统的核心原因在于传统人工监管的局限性,计算机视觉和深度学习技术的引入,为电动车头盔佩戴检测提供了一种全新的解决方案。通过这两种技术的结合,本实验可以开发出一种自动化、高效的头盔检测系统,能够实时分析视频或图像数据,准确识别电动车驾驶人员,并迅速发现未佩戴头盔的违规行为。4.3模型训练流程实验流程图如图4.2所示,左侧描述了从数据集采集到数据预处理、数据标注、格式转换、数据集划分等一系列步骤,最终构建了训练集、验证集和测试集。在中间部分,展示了目标检测模型的训练过程,包括加载数据、设置候选框、设置参数、初始化网络模型、通过随机梯度下降等方式训练网络,直到损失函数收敛到一定程度,并保存训练好的模型参数。右侧则是测试阶段,将待测试的图像输入训练好的模型中,并获取检测结果。这一流程的设计旨在全面覆盖了实验的数据准备、模型训练和测试阶段,确保了实验的科学性和可靠性。图4.SEQ图4.\*ARABIC2模型训练流程4.4模型构建在模型架构上,YOLOV5采用了先进的卷积神经网络,将输入的图像划分为多个网格。每个网格负责预测固定数量的边界框,并为每个边界框输出对应的置信度和各类别的概率。这种设计使得模型能够同时处理多个目标,大大提高了检测效率。为了进一步提升检测的准确性,YOLOV5采用了非极大值抑制算法,用于融合重叠的目标框,最终输出精确且清晰的目标检测结果。在训练过程中,YOLOV5使用交叉熵损失函数来衡量模型预测与真实标签之间的差异,并通过反向传播算法来更新模型的权重,从而不断优化模型的性能。YOLOV5还采用了多尺度输入策略,通过输入不同尺度的图像,使模型能够学习到更加丰富的特征信息,从而进一步提高检测精度。train:VOC2024/images/train
val:VOC2024/images/valnc:3train:VOC2024/images/train
val:VOC2024/images/valnc:3#标注类别数names:['helmet','without_helmet','two_wheeler']#标注名称2.在helemt_YOLOv5s_se.yaml配置模型参数,Nc代表类别数,这里设置为3,depth_multiple和width_multiple这两个参数用于缩放模型的深度和宽度,调整为0.33和0.50。anchors定义了不同尺度的锚框,用于预测目标的边界框。代码部分如nc:3#numberofclassesdepth_multiple:0.33nc:3#numberofclassesdepth_multiple:0.33width_multiple:0.50anchors:#定义了不同尺度的锚框-[10,13,16,30,33,23]#P3/8-[30,61,62,45,59,119]#P4/16-[116,90,156,198,373,326]#P5/32parser.add_argument('--weights',type=str,default=ROOT/'pretrained/yolov5s.pt',help='initialweightspath')#预训练模型parser.add_argument('--weights',type=str,default=ROOT/'pretrained/yolov5s.pt',help='initialweightspath')#预训练模型parser.add_argument('--cfg',type=str,default=ROOT/'models/helmet_yolov5s_se.yaml',help='model.yamlpath')#网络结构parser.add_argument('--data',type=str,default=ROOT/'data/helmet_data.yaml',help='dataset.yamlpath')#使用数据集parser.add_argument('--epochs',type=int,default=100)#训练轮数parser.add_argument('--batch-size',type=int,default=2,help='totalbatchsizeforallGPUs,-1forautobatch')#每次输出给神经网络大小4.模型训练进行时,如图4.3所示。图4.SEQ图4.\*ARABIC3模型训练进行图5.将训练完成的模型配置到可视化界面,在电动车驾驶人头盔检测系统中上传待检测的图像,测试模型效果。如下图4.4所示。图4.SEQ图4.\*ARABIC4识别测试4.5模型优化针对YOLOv5s模型的性能提升,引入注意力机制将成为优化的关键。自注意力机制能够帮助模型更好地理解输入数据中的上下文信息和位置关联,从而提高模型的特征提取和表征能力。通过在YOLOv5s模型中添加自注意力机制,可以期待在目标检测任务中取得更好的性能表现,尤其是在处理特定的小目标检测问题时,能够提升模型的检测精度和鲁棒性。接下来,将介绍如何将注意力机制集成到YOLOv5s模型中,以期实现模型性能的进一步提升。4.5.1注意力机制注意力机制(AttentionMechanism)是受人类视觉处理方式启发而提出的一种重要技术。人类在处理视觉信息时,往往会选择性地关注某些特定部分,而忽略其他次要的信息,以有效地利用有限的认知资源。这种机制使得人们能够更加专注地处理重要的视觉信息,例如在阅读时,人们只关注和处理少量关键词。因此,注意力机制主要包括两个方面:确定需要关注的输入的哪些部分,以及如何合理地分配有限的信息处理资源给这些重要部分。近年来,随着对注意力机制的研究不断深入,相关论文的数量也在不断增加,表明注意力机制在计算机视觉和深度学习领域的重要性和应用前景。4.5.2YOLOv5s-SE模型SE(Squeeze-and-Excitation)注意力机制是一种用于增强深度神经网络特征表示能力的有效方法。该机制通过动态调整特征图中每个通道的重要性来提高模型的性能。在Squeeze阶段,全局平均池化操作被应用于输入特征图,以获取每个通道的全局信息。然后,在Excitation阶段,利用一个小型的前馈神经网络,根据全局信息生成通道注意力权重向量,用于重新加权原始特征图的每个通道。重要的通道得到增强,不重要的通道被抑制,从而增强了特征的判别能力如图4.5所示。在目标检测任务中,引入SE注意力模块可以帮助模型更好地区分目标和背景,提高小目标检测的准确性和稳健性图4.SEQ图4.\*ARABIC5SE注意力机制对YOLOv5s添加SE注意力机制模块步骤如下:classSE(nn.Module):def__init__(self,c1,c2,ratio=16):classSE(nn.Module):def__init__(self,c1,c2,ratio=16):super(SE,self).__init__()#c*1*1适应性平均池化层,将输入特征图的空间维度降为1x1,输出特征图的通道数不变self.avgpool=nn.AdaptiveAvgPool2d(1)self.l1=nn.Linear(c1,c1//ratio,bias=False)self.relu=nn.ReLU(inplace=True)self.l2=nn.Linear(c1//ratio,c1,bias=False)self.sig=nn.Sigmoid()defforward(self,x):b,c,_,_=x.size()y=self.avgpool(x).view(b,c)y=self.l1(y)y=self.relu(y)y=self.l2(y)y=self.sig(y)y=y.view(b,c,1,1)returnx*y.expand_as(x)#将权重y与原始输入x相乘,实现通道权重的重新调整#expand_as(x)确保y与x的形状相同,以便进行逐元素相乘操作ifmin[Conv,GhostConv,Bottleneck,GhostBottleneck,SPP,SPPF,DWConv,MixConv2d,Focus,CrossConv,BottleneckCSP,C3,C3TR,C3SPP,C3Ghost,SE]:ifmin[Conv,GhostConv,Bottleneck,GhostBottleneck,SPP,SPPF,DWConv,MixConv2d,Focus,CrossConv,BottleneckCSP,C3,C3TR,C3SPP,C3Ghost,SE]:c1,c2=ch[f],args[0]ifc2!=no:#ifnotoutputc2=make_divisible(c2*gw,8)args=[c1,c2,*args[1:]]ifmin[BottleneckCSP,C3,C3TR,C3Ghost]:args.insert(2,n)#numberofrepeatsn=1backbone:#[from,number,module,args][[-1,1,Conv,[64,6,2,2]],#0-P1/2卷积层,卷积核数量64,卷积核大小6*6backbone:#[from,number,module,args][[-1,1,Conv,[64,6,2,2]],#0-P1/2卷积层,卷积核数量64,卷积核大小6*6[-1,1,Conv,[128,3,2]],#1-P2/4[-1,3,C3,[128]],[-1,1,Conv,[256,3,2]],#3-P3/8[-1,6,C3,[256]],[-1,1,Conv,[512,3,2]],#5-P4/16[-1,9,C3,[512]],[-1,1,Conv,[1024,3,2]],#7-P5/32[-1,3,C3,[1024]],[-1,-1,SE,[1024]],[-1,1,SPPF,[1024,5]],#9]4.6模型性能对比在本实验中,采用了精确率(Precision)、召回率(Recall)以及mAP@0.5(平均精度均值在IoU阈值为0.5时的值)这三个核心指标来全面评估电动车头盔佩戴检测系统的性能。精确率衡量了模型预测为头盔佩戴(正样本)的结果中,真正为头盔佩戴的比例。这一指标反映了模型在预测时的准确性,避免将未佩戴头盔的情况误判为佩戴。召回率则反映了模型能够正确识别出实际佩戴头盔的样本的能力。它关注的是在所有实际佩戴头盔的样本中,模型正确识别出的比例,从而评估模型在检测头盔佩戴情况时的完备性。而mAP@0.5则是一个综合考量了不同召回率下的精度的指标,它能够真实反映模型在多个样本上的整体检测能力。通过计算在不同召回率水平下的精确率的平均值,mAP@0.5提供了一个全面且客观的评估标准,可以更好地了解模型在头盔佩戴检测任务中的性能表现。通过优化这三个指标,可以提升模型的预测准确性和完备性,从而增强电动车驾驶人员头盔佩戴检测系统的实际效果。精确率和召回率的提升意味着模型在预测和识别头盔佩戴情况时的准确性更高,而mAP@0.5的提升则反映了模型在整体性能上的优化。精确率、召回率和mAP平均精度均值计算式及含义如下表4.1所示。表4.SEQ表4.\*ARABIC1模型性能参数公式Precision计算公式Precision=Precision越高,意味着模型的预测结果中假阳性的比例越低。Recall计算公式Recall=Recall越高,表示模型对正类目标的覆盖率越高,减少了假阴性。mAP@0.5计算公式mAP=mAP的计算涉及到对每个类别的平均精度(AP)进行计算,然后取所有类别的AP的平均值。在前文提出添加SE注意力机制后,为了更直观表现YOLOv5-SE模型的提升,接下来对模型的Precision、Recall和mAP@0.5等关键指标进行了细致的分析。4.6.1模型精度对比在引入YOLOv5-SE模型后,由于添加了先进的注意力机制,其精度(Precision)相较于原始的YOLOv5s模型有了显著的提升。具体来说,YOLOv5-SE模型的Precision从原先的65.94%跃升至72.05%,如下图4.7所示,这一增幅明显的提升了注意力机制在提升模型性能方面的有效性。图4.SEQ图4.\*ARABIC6precision对比4.6.2模型召回率对比在对比YOLOv5s与YOLOv5-SE模型的召回率(Recall)时,尽管YOLOv5-SE通过引入注意力机制在Precision方面取得了显著提升,但召回率却出现了轻微的下降。具体来说,YOLOv5-SE模型的Recall从原先的72.7%略微降低至70.8%,如下图4.8所示。这一变化可能反映了模型在优化过程中的权衡取舍,虽然注意力机制增强了模型对关键特征的识别能力,提高了Precision,但可能也因此对某些较为模糊或难以区分的目标产生了更多的漏检,导致了Recall的轻微下降。不过值得注意的是,虽然Recall略有降低,但综合考虑Precision和Recall两个指标,YOLOv5-SE模型的整体性能依然有所提升。图4.SEQ图4.\*ARABIC7recall对比4.6.3模型mAP@0.5值对比在深入探讨YOLOv5s与YOLOv5-SE模型性能对比时,Map@0.5这一关键指标的变化尤为引人关注。在YOLOv5-SE模型中引入注意力机制后,Map@0.5从原先的72.53%提升至了75.24%,如下图4.9所示。这一显著的提升不仅凸显了注意力机制在提升模型整体性能方面的巨大潜力,也进一步验证了YOLOv5-SE模型在目标检测任务中的优越性。图4.SEQ图4.\*ARABIC8mAP@0.5对比4.6.4模型对比小结在对比YOLOv5s与YOLOv5-SE模型性能时,注意到不同参数间呈现出有趣的变化。引入注意力机制后,YOLOv5-SE模型在Precision方面取得了显著进步,从65.94%跃升至72.05%,显示出模型在目标识别上的精准度得到了有效提升。然而,Recall方面则出现了轻微的下降,从72.7%降至70.8%,这可能意味着模型在优化过程中对于某些目标的检测敏感度略有降低。尽管如此,当综合考虑Map@0.5这一综合指标时,发现YOLOv5-SE模型取得了令人瞩目的提升,从72.53%提升至75.24%。这一显著的提升不仅反映了模型在Precision和Recall之间的权衡优化,更凸显了注意力机制在提升模型整体性能方面的巨大作用。总体而言,尽管Recall略有下降,但YOLOv5-SE模型通过引入注意力机制在Precision和Map@0.5方面取得了显著优势,展现出其在目标检测任务中的卓越性能。表4.SEQ表4.\*ARABIC2模型性能参数对比模型PrecisionRecallmAP@0.5YOLOv5s65.94%72.7%72.53%YOLOv5-SE72.05%70.8%75.24%4.7本章小结本章主要介绍了电动车驾驶员头盔佩戴检测模型的构建过程。本实验选择了YOLOv5作为目标检测算法,并详细介绍了其原理和特点,包括模型的组成部分、训练过程中的关键步骤以及使用的增强技术。在选择YOLOv5模型时,针对实际需求选择了YOLOv5s版本,并说明了选择的原因。接着,介绍了数据集的采集和制作过程,包括图像的收集来源、数据标注工具的使用以及标注数据转换为YOLOv5模型可用的格式。在实验过程中,使用了TensorBoard对训练结果进行了可视化,并提出了一些常见问题及相应的改进方法,以优化模型的性能和效果。
5电动车驾驶人员头盔实时检测系统搭建5.1PyQt5框架PyQt5是一个用于创建图形用户界面应用程序的全功能Python框架。它是基于Qt库,提供了丰富的工具和组件,可用于开发跨平台的桌面应用程序。PyQt5充分利用了Qt的功能和灵活性,使开发者能够轻松地构建各种类型的界面,从简单的窗口到复杂的应用程序。PyQt5框架提供了多种模块和类,其中包括用于创建窗口、按钮、等各种GUI元素的类,以及用于处理用户交互、事件处理、布局管理等功能的模块。开发者可以使用这些类和模块来构建用户友好的界面,实现丰富的交互体验。还提供了丰富的文档和示例代码,帮助开发者快速上手并掌握框架的各种功能和特性。通过PyQt5,开发者可以利用Python的简洁性和强大的语法特性,快速构建出便捷且功能丰富的图形界面应用程序,满足本实验的各种需求。5.2系统可视化模块设计可视化界面是头盔检测系统的重要组成部分,采用PyQt5搭建完成,提供了直观、友好的图形界面,使得系统的操作更加便捷和直观如图5.1所示。该界面集成了训练最佳模型,具有图片检测、视频检测和摄像头实时检测等功能,满足了用户在不同场景下的检测需求。在图片检测界面,用户可以通过简单的操作加载本地图片,然后点击检测按钮,系统即可对图片中的目标进行检测,并将检测结果直观地显示在界面上。用户可以清晰地看到每个检测到的头盔目标以及其对应的位置和置信度,为用户提供了直观的检测效果反馈。在视频检测界面,用户可以选择本地视频文件进行检测,系统将逐帧地对视频进行检测,并实时显示检测结果。在摄像头实时检测界面,用户可以连接摄像头设备,实时查看摄像头捕获的画面,并进行头盔检测。系统将实时地对摄像头捕获的画面进行检测,并将检测结果即时显示在界面上。每次进行图片、视频或实时摄像头检测时,系统都会将检测到的目标标注在原始图像上,并将标注后的图像保存在"tmp"文件夹中,以便用户后续查看和分析。这样的设计能够帮助用户更方便地记录和保存检测过程中的关键信息,也有助于后续的数据处理和分析工作。图5.SEQ图5.\*ARABIC1可视化界面5.3系统测试5.3.1图片及视频文件检测在电动车驾驶人员头盔佩戴检测系统中,针对静态的图像文件以及视频文件的检测功能已经得到了完整的实现。这一功能允许用户上传或指定图像或视频文件,系统则会自动运用已经训练好的模型对这些文件进行头盔佩戴情况的检测。对于静态的图像文件,可以通过系统界面选择或拖拽图片文件到指定区域,系统随即读取这些图片,并逐一进行头盔佩戴情况的检测。检测过程中,系统会利用已训练完成的图像处理技术,确保图片中的电动车驾驶人员能够被准确识别,并判断其是否佩戴了头盔。检测完成后,系统会将检测结果以标注的形式直接展示在图片上如图5.2所示。对于视频文件,系统同样提供了强大的检测功能。用户可以选择上传视频文件,或者指定系统中已有的视频文件进行检测。系统会对视频进行逐帧处理,利用训练好的模型对每一帧中的电动车驾驶人员进行头盔佩戴情况的检测。这样,可以实时查看视频中的检测过程,并了解整个视频时间段内驾驶人员的头盔佩戴情况。为了更好的测试模型性能,测试选取不同角度不同光照等情况下的测试效果如图5.3所示。图5.SEQ图5.\*ARABIC2静态检测(a)不同角度(b)不同光照图5.SEQ图5.\*ARABIC3不同条件的图像测试5.3.2摄像头实时检测在电动车驾驶人员头盔佩戴检测系统中,视频实时检测模块是一个至关重要的功能,它允许用户通过摄像头实时捕捉电动车驾驶人员的画面,并立即进行头盔佩戴情况的检测。这一功能的实现,不仅提高了检测的即时性和效率,也为交通监管部门提供了便捷、高效的监管手段。视频实时检测模块的实现主要依赖于已经训练好的模型以及相关的视频处理、图像处理技术。具体来说,当用户点击视频实时检测模块开始摄像头检测时,系统会启动摄像头设备,并实时捕获视频流。捕获到的视频流首先会经过一系列的预处理操作,包括调整分辨率、色彩空间转换等,以适应模型输入的要求。预处理后的视频帧会被送入已经训练好的头盔佩戴检测模型中。模型会对每一帧图像进行快速、准确的目标检测,识别出电动车驾驶人员并判断其是否佩戴了头盔。检测结果会以实时标注的形式显示在视source=str(self.vid_source)#指向视频流
webcam=self.webcamsource=str(self.vid_source)#指向视频流
webcam=self.webcam
device=select_device(self.device)
stride,names,pt,jit,onnx=model.stride,s,model.pt,model.jit,model.onnx
imgsz=check_img_size(imgsz,s=stride)#检测图像大小
save_img=notnosaveandnotsource.endswith('.txt')#saveinferenceimagesifwebcam:#检测网络摄像头
view_img=check_imshow()
cudnn.benchmark=True#检测GPU加速dataset=LoadStreams(source,img_size=imgsz,stride=stride,auto=ptandnotjit)
bs=len(dataset)#batch_size
else:
dataset=LoadImag
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安卓软件面试题及答案
- 司泵工复测水平考核试卷含答案
- 医药商品物流员发展趋势竞赛考核试卷含答案
- 峰岹科技深度报告:国内电机驱动控制芯片领军者机器人与AI服务器散热双轮驱动
- 多孔硝酸铵造粒工成果转化考核试卷含答案
- 电子商务平台开发协议2026年全功能版
- 2026安全类面试题目及答案
- 拜耳法溶出工常识考核试卷含答案
- 沼气工安全规程模拟考核试卷含答案
- 种畜胚胎移植工岗前培训效果考核试卷含答案
- 新会陈皮公共监管仓建设规范
- 2026湖南金叶烟草薄片有限责任公司招聘11人备考题库及参考答案详解一套
- 2026生态修复行业市场发展分析及前景趋势与投融资发展机会研究报告
- 四川德阳绵竹市金申投资集团有限公司招聘笔试题库2026
- 2026年国有企业领导人员廉洁从业若干规定知识试题
- 自闭症儿童干预培训课件2026年
- 2026年重庆市地理生物会考真题试卷+解析及答案
- 年处理10万吨废旧光伏组件循环再利用项目可行性研究报告模板拿地申报
- 中考英语复习:语法选择10篇必考题型(广州专用)附答案
- 《重点区域生态保护和修复投资估算指南(试行)》
- 慢阻肺患者呼吸肌训练器械使用
评论
0/150
提交评论