版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
车牌识别技术作为智能交通系统中的一个重要组成部分,在实际生活中得到了广泛的应用。传统的车牌识别方法存在着准确性和稳定性等方面的问题,因此需要采用新的方法进行改进和优化。本研究旨在探究基于深度学习的车牌识别方法及其系统实现,通过构建车牌识别系统,提高车牌识别的准确性和稳定性,为智能交通系统的发展做出贡献。本文首先介绍了深度学习技术及其在图像识别中的应用,卷积神经网络(CNN)。接着,基于这些技术,我们提出了一种车牌识别系统的框架设计,包括车牌定位、字符分割、字符识别等步骤。随后,通过CCPD2019数据集真实拍摄的车牌图像进行实验与结果分析,验证了该方法的准确性和稳定性。实验结果表明,基于深度学习的车牌识别系统可以有效地提高车牌识别的准确性和稳定性。该方法不受光线、角度等因素的干扰,可以实现对不同车辆的快速识别,具有广泛的应用前景。关键词:深度学习;车牌识别;系统实现;轻量级CNN;AbstractLicenseplaterecognitiontechnology,asanimportantcomponentofintelligenttransportationsystems,hasbeenwidelyappliedinpracticallife.Traditionallicenseplaterecognitionmethodshaveissueswithaccuracyandstability,thereforenewmethodsneedtobeadoptedforimprovementandoptimization.Thisstudyaimstoexploredeeplearningbasedlicenseplaterecognitionmethodsandtheirsystemimplementation,improvetheaccuracyandstabilityoflicenseplaterecognitionbyconstructingalicenseplaterecognitionsystem,andcontributetothedevelopmentofintelligenttransportationsystems.Thisarticlefirstintroducesdeeplearningtechnologyanditsapplicationinimagerecognition,convolutionalneuralnetworks(CNN).Subsequently,basedonthesetechnologies,weproposeaframeworkdesignforalicenseplaterecognitionsystem,whichincludesstepssuchaslicenseplatepositioning,charactersegmentation,andcharacterrecognition.Subsequently,theaccuracyandstabilityofthismethodwereverifiedthroughexperimentsandresultanalysisonreallicenseplateimagescapturedontheCCPD2019dataset.Theexperimentalresultsshowthatthelicenseplaterecognitionsystembasedondeeplearningcaneffectivelyimprovetheaccuracyandstabilityoflicenseplaterecognition.Thismethodisnotaffectedbyfactorssuchaslightandangle,andcanachieverapidrecognitionofdifferentvehicles,withbroadapplicationprospects.Keywords:Deeplearning;Licenseplaterecognition;Systemimplementation;LightweightCNN;目录TOC\o"1-3"\h\u802摘要 114414Abstract 22819第1章绪论 5159731.1研究背景及意义 5233421.2研究内容 5296171.3深度学习技术及其在图像识别中的应用 6252201.3.1深度学习原理 677221.3.2深度学习在图像识别中的应用 7325831.3.3车牌识别与深度学习的相关研究现状 7231551.4本文的主要创新点 9238921.5本文主要内容 9101581.6本章小结 924345第2章深度学习理论基础 1018232.1卷积神经网络介绍 10120742.2人工神经网络介绍 14301762.3本章小结 1918349第3章基于轻量级CNN的车牌检测识别 20310203.1传统的车牌识别方法 20260973.1.1牌照区域定位 20312443.1.2牌照字符分割 20214823.1.3牌照字符识别方法 20213613.2车牌特征提取方法 20323653.2.1基于手动提取特征的方法 20199573.2.2基于机器学习的方法 21180113.3SLPNET 21242873.4检测子网络 22112963.4.1角本地化 22276833.4.2非线性变换 22123383.4.3检测输出的置信度 2395823.4.4检测网络 23226393.4.5检测网络的损失函数 24170223.5识别子网络 2524453.5.1序列预测 25146803.5.2识别网络 2574253.5.3识别网络的损失函数 26212763.6网络级联 2679293.7本章小结 2631878第4章实验过程及结果 28157204.1实验环境介绍 28223604.1.1实验的硬件参数介绍 28307724.1.2实验软件及环境介绍 28318154.2CCPD数据集 29256034.3评价指标 3064364.4训练过程 3272244.5验证准确率 34136404.6实验结果 3597624.7本章小结 3530368第5章结论 3622132总结与体会 3821441谢辞 394972参考文献 4017387附录 41第1章绪论1.1研究背景及意义深度学习行业的发展前景非常广阔。深度学习是一种人工智能技术,它可以帮助计算机系统从大量数据中自动学习并做出决策。随着数据量的不断增加变的复杂,深度学习技术的应用范围也将不断扩大。深度学习技术可以应用于许多领域,包括自然语言处理、计算机视觉、医疗信息、金融、交通等[1]。在医疗信息领域,深度学习技术可以用于肿瘤检测、放射学图像分析等[2]。在金融领域,深度学习技术可以用于风险评估、信用评分等。在交通领域,深度学习技术可以用于自动驾驶、路况预测等。另外,深度学习技术在人工智能领域的发展也是十分迅速的。随着人工智能技术的不断发展,深度学习将在许多领域发挥重要作用[3]。比如超分算法,全称超分辨率(super-resolution)算法,简单的说就是用小图生成大图、图像分类VGG-nets、通过YOLO等实现的图像检测、通过Unet实现的图像分割、CV和NLP的结合实现的文本到图像生成等等技术。随着我国经济的发展,私家车已经走进家家户户,但是在方便生活的同时也带来了不少问题,比如停车场人工管理效率的低下,快速准确处理违章交通等,但是目前市场上产品通用性不够,尤其是识别条件比较恶劣的情况下,因此对车牌识别系统进行进一步的研究有着重大的应用价值[4]。1.2研究内容本文研究的是基于深度学习的车牌识别方法及系统实现。随着社会交通工具和机动车数量的增加,以及交通事故、违章等问题的不断发生,车牌识别技术成为了交通安全管理和智能交通系统等领域研究的热点。传统的车牌识别方法主要基于模板匹配或图像处理等算法,但由于待识别的车牌颜色、光照等情况多样化,传统方法的准确率较低,且对算法的设计和车牌的处理较为繁琐。深度学习技术随着近年来的快速发展已经成为图像识别领域的主流方法之一,具有高准确率和稳定性的优势。本文采用pytorch进行车牌识别,将车牌图像输入神经网络进行训练,提取特征后进行分类,从而将车牌快速准确的识别出来。深度学习技术主要包括卷积神经网络(CNN)、循环神经网络(RNN)等[5],本文选择使用轻量级CNN实现车牌识别系统。本文研究工作主要有以下几部分:对车牌识别系统的框架进行了设计,使用一种基于轻量级全卷积网络的被称为Skip-shuffeLicensePlateNetwork(SLPNet)的ALPR框架,对模型的检测子网络和识别子网络进行了设计讨论,设计了网络级联,然后对设计的车牌识别系统进行了实验及结果分析。1.3深度学习技术及其在图像识别中的应用1.3.1深度学习原理深度学习技术是一种基于多层神经网络模型的机器学习技术。其使用复杂的神经网络模型对大规模的数据进行自动化的特征提取和学习。深度学习技术的主要优势在于其能够针对高纬度、复杂的数据进行有效的学习和预测,而且在数据量和计算能力允许的情况下,其预测准确率甚至比人类还要高[6]。深度学习技术运用了反向传播算法,通过不断调整模型参数,使得模型能够更好地适应数据,并达到更高的预测准确率[7]。深度学习技术中神经网络的层数是很关键的因素。层数较少的网络只能提取一些简单的特征[8],而层数太多的网络在训练过程中则会出现梯度消失和梯度爆炸等问题。因此,在构建深度学习网络结构时,需要根据数据的类型和任务的要求来确定合适的神经网络层数。除了深度神经网络模型之外,深度学习技术还包括许多相关技术,例如卷积神经网络(CNN)、循环神经网络(RNN)以及多层感知机(MLP)等[9]。这些技术在不同的图像分类和识别任务中都有广泛的应用。综上所述,深度学习技术是一种非常强大的图像识别技术,它能够对大量的数据进行学习和预测,并且在许多领域中都已经获得了广泛的应用。在本研究中,我们将运用深度学习技术来实现车牌的识别和识别率的提升。1.3.2深度学习在图像识别中的应用随着计算机图像处理技术的不断发展,深度学习技术在图像识别领域的应用变得越来越广泛。通过训练神经网络,深度学习可以对图像中的特征进行自动学习和提取[10]。在图像识别中,深度学习已经被广泛应用于人脸识别、物体识别等识别任务,并取得了较好的效果。卷积神经网络是主要代表网络。CNN通过卷积层、池化层和全连接层构成,卷积层负责对图像特征的提取,池化层对卷积层输出的特征图进行降维处理,全连接层对特征进行分类和识别[11]。此外,CNN还可以通过增加深度、使用不同的卷积核等方式对模型进行优化,提高识别精度和鲁棒性。在车牌识别领域,深度学习技术同样发挥了重要作用。针对车牌图像中的复杂背景、光照变化等问题,在车牌识别中使用CNN模型对车牌图像进行特征提取和识别,通过对车牌区域进行剪裁、提取像素等方式对车牌图像进行预处理,可以有效提高车牌识别的准确率和鲁棒性。总的来说,深度学习在图像识别中的应用已经成为研究领域的热点。在车牌识别领域,深度学习技术同样能够发挥重要作用,并为车牌识别系统的实现提供了有力支持。未来,随着深度学习技术的不断发展和应用场景的不断拓展,相信车牌识别技术将会得到进一步提升和完善。1.3.3车牌识别与深度学习的相关研究现状车牌识别一直是计算机视觉领域中的一个重要研究方向,在过去的几十年中,研究者通过不断的探索和实践,取得了一系列的成果。然而,由于车牌种类繁多、字体差异显著、尺度、角度或光照变化等因素的干扰,基于传统的识别方法实现高精度的车牌识别依然存在许多问题。随着深度学习技术的出现,车牌识别面临的问题开始得到有效的解决。浅层学习早期的ALPR系统在检测、分割和识别子任务中使用浅层机器学习来替代人工特征选择和分类。经典的机器学习算法,如SVM,AdaBoost,可以方便地与不同的组合特征结合起来,以获得更好的性能。在中,由AdaBoost分类器获得一组可能的初始字符区域,然后传递给支持向量机(SVM),其中非字符区域被拒绝。对于车牌识别,除了SVM外,还可以使用许多分类器来识别具有有效的特征提取的字符,如ANN。深度学习随着近年来深度学习的显著发展,在深度神经网络的帮助下,检测和识别任务可以达到更好的精度和鲁棒性,使人们从人工特征选择中解放出来。RaysonLaroca等。使用了一个单级检测器来有效地定位车牌区域,而Z.Selmi等人。采用简单的卷积神经网络(CNN)完成单字符分类任务,获得了较高的识别精度。此外,目前一些最先进的ALPR框架采用了无分割的方法,可以对整个网络进行端到端训练,从而实现了一个高效的学习过程,并取得了良好的性能。典型的RPNet等工作采用一个简单的CNN作为车牌检测的骨干,并采用全连接层对每个检测图像中的字符进行分类。深度学习技术的应用主要是字符识别和车牌检测。在车牌识别领域中,深度学习技术主要集中在字符识别和车牌检测这两个方面。我们利用深度学习方法的字符识别技术,可以通过深度神经网络提取字符特征,并将其分类识别。卷积神经网络是目前主要的识别网络,通过在卷积神经网络中输入字母图像来获得核参数。优化卷积,提高字符识别的准确性和耐久性。在车牌检测方面,传统方法对光照变化、车牌旋转、车型变化等因素的适应性较差,存在较大的局限性,而基于深度学习的车牌检测方法由于其具有高度的自适应性,更好地适应了车牌的各种变化。对于车牌检测,主要的方法是使用卷积神经网络,其在目标检测领域中有较为广泛的应用,如经典的FasterR-CNN和YOLO等。这些方法可以非常高效地定位车牌位置。当前,基于深度学习的车牌识别方法广泛应用于各种场景中,包括出入口管理、智能停车、交通管理等。但同时也存在一些问题,例如数据集的质量和数量不足、车牌检测的实时性、识别准确度等,这些问题仍需要解决。因此,未来研究方向需要把握好深度神经网络学习的特点,进一步提升算法性能,在实际车牌识别场景下实现较高的鲁棒性和准确性。1.4本文的主要创新点本文采用一种基于轻量级全卷积网络的被称为Skip-shuffeLicensePlateNetwork(SLPNet)的ALPR框架。如下图2.1所示,我们将框架分为两个部分:检测部分和识别部分。并且我们的方法通过定位每个车牌的四个角来实现检测任务。然后,对检测到的和裁剪后的车牌区域进行透视校正处理,有效地降低了识别难度。[17]。对于车牌识别,我们将其视为一个类似于LPRNet的序列标记问题。虽然不同部分的网络是单独设计的,但整个网络可以进行端到端训练,并通过联合检测和识别损失函数进行优化。1.5本文主要内容首先我们先介绍了对于车牌识别的背景介绍,然后对深度学习的理论基础进行介绍,接着我们介绍了一种基于轻量级CNN的车牌检测识别方法,这里我们使用了SLPNET来进行检测和识别。同时我们详细的介绍了SLPNET的检测子网络的结构及算法,然后介绍了识别子网络的相关内容。最后我们进行实验演示,并得出了令人满意的结果。最后我们对文章整体进行总结,并进行展望,最后在附录中,我们截取了一部分相关英文文献作为参考,然后将项目重要代码附在最后,其中有图像的标签处理代码,准确率验证代码,和最终实现结果的代码。1.6本章小结首先我们对深度学习的原理进行了一个简单的介绍,然后对深度学习在图像中的识别应用和进行了一个简单的介绍,然后介绍了深度学习在车牌识别领域的研究及发展,并提出了本文的主要创新点。最后阐述了本文的主要内容。第2章深度学习理论基础2.1卷积神经网络介绍在人工的全连接神经网络中,每一层的所有神经元都与上一层和下一层的所有神经元都相互连接,形成了一张密集的神经网络。当输入层的特征维度变得很高时,由于全连接网络需要训练的参数随之增多,因此计算速度会因此而变慢。在卷积神经网络(ConvolutionalNeuralNetwork,CNN)中,卷积层的神经元只与前一层的一部分神经元节点相连,在神经元间的连接上是非全连接的。同一层中的某些神经元之间的连接具有共享的权重和偏移量,因此可以大幅减少需要训练的参数的数量。CNN快速发展,得益于LeNet-5、Alexnet、ZFNet、VGGNet、GoogleNet、ResNet等不同结构的设计出现。受益于近十年的快速发展,深度学习(DeepLearning)与卷积神经网络技术逐渐走进了研究学者的视野,并激发了研究人员学习和研究的热潮。随后AlexNet、VGG、ResNet、MobileNet、EfficientNet、RepVGG、VisionTransformer和EfficientFormer等模型提出进一步挖掘CNN的特征提取能力,使得在多个计算机视觉任务表现突出,不断刷新视觉任务榜单。卷积神经网络CNN的结构通常包括一下几层:输入层,卷积层,激励层,池化层,全连接层,输出层。当然,中间还可以使用其他功能层。归一化层,切分层,融合层。输入层:CNN处理黑白图片时,输入数据是一个二维的神经元矩阵,矩阵中的每个元素对应原始图片中的一个像素点。这个二维神经元矩阵的结构和大小取决于图片的分辨率和CNN的设计。可以用下图2.1来展示这个二维神经元矩阵的结构。图2.1二维神经元矩阵结构改写后:在CNN处理RGB格式的图片时,输入为一个具有三个维度的神经元,其中每个颜色通道都拥有一个独立的矩阵,这一情形可用下图2.2进行展示:图2.2三维神经元矩阵卷积层:我们假设输入一个二维的神经元,对于隐藏层的神经元来说,它与输入层的一定范围内的神经元相连,在这个神经元周围的5*5的区域内,我们称之为感受视野。换句话说,隐藏层的神经元通过一定大小的感受视野去感知上一层的一些特征。在全连接神经网络中,隐藏层的神经元具有足够广阔的感知范围,以至于它们能够识别上层的所有特征。这样的隐藏层神经元可以监控并参与到神经网络的复杂信息处理中。卷积神经网络中,隐藏层中的神经元只能看到之前的一部分特征,视野比较小。但可以通过平移视野来获取同一层的其他特征。一个神经元的视野带有一个卷积核,其权重矩阵被称为感受视野。当步长较大(stride>1)时,为了能够覆盖到边缘的特征,感受视野有可能会超出图像边缘,并导致信息的丢失或减少。为了避免这种情况,需要进行边缘扩充(pad),有多种方法可供选择,如可将边界扩充为0或其他数值。用户可以根据需要来定义卷积核的大小,从而决定所需要的感受视野大小。激励层:卷积层输出结果为线性计算,需要通过激励层进行非线性映射处理。使用的激励函数一般为ReLu函数,通常会使用ReLu函数作为激励函数,而卷积层和激励层常常会结合在一起,称为“卷积层”。池化层:当输入经过卷积层时,若感受视野比较小,布长stride比较小,得到的featuremap(特征图)还是比较大,可以通过池化层来对每一个featuremap进行降维操作,输出的深度还是不变的,依然为featuremap的个数。池化层也有一个“池化视野(filter)”来对featuremap矩阵进行扫描,对“池化视野”中的矩阵值进行计算,一般有两种计算方式[18]:Maxpooling:取“池化视野”矩阵中的最大值Averagepooling:取“池化视野”矩阵中的平均值扫描的过程中同样地会涉及的扫描布长stride,扫描方式同卷积层一样,先从左到右扫描,结束则向下移动布长大小,再从左到右。如下图示例所示:图2.3扫描过程演示其中“池化视野”filter:;布长stride:2。最后可将3个的featuremap下采样得到3个的特征矩阵:图2.43个特征矩阵归一化层:批量归一化技术通过在神经网络中间层进行预处理,在上一层的输入经过归一化处理后再进入下一层,从而有效预防了梯度消失问题,提高了网络训练速度。BatchNormalization具体的算法如下所示:
Input:ValuesofParameterstobelearned:γ,β;Output:
{yμB←σB2x^iyi←γ每次训练时,取batch_size大小的样本进行训练,在BN层中,将一个神经元看作一个特征,batch_size个样本在某个特征维度会有batch_size个值,然后在每个神经元维度上的进行这些样本的均值和方差,通过公式得到
,再通过参数
和
进行线性映射得到每个神经元对应的输出
。在BN层中,可以看出每一个神经元维度上,都会有一个参数
和
,它们同权重一样可以通过训练进行优化[19]。在批量归一化是卷积神经网络中常用的调整激励函数的方法之一,一般情况下,我们会对未进行ReLu激活的特征图进行批量归一化处理,再将处理后的结果作为激励层的输入,这样可以有效地调整激励函数的偏导数。可以通过将featuremap中的神经元作为特征维度,来增加参数的数量,一般来说,参数的数量将等于原来的两倍,这种做法通常会导致参数数量庞大;另一种方法是将特征图视为一个维度。特征图上的神经元共享该特征图的参数和总和。参数之和等于计算的平均值,方差以批次大小表示。CNN在图片处理上的表现出的特点是一张图片如果我们要将其分类,必须要检测其特征,但是一张图片的特征并不是由一张图片整体决定而是由图片的一些局部的区域决定的,比如我们要识别鸟类的图片,其由鸟翼、喙和爪区域决定鸟类图片特征。这就是CNN的局部性。对于具有相同特征的不同的图片,这些特征会出现在图片的不同位置,也就是说可以用同样的检测模式去检测不同图片的相同特征,只不过这些特征处于图片中不同的位置,但是特征检测所做的操作几乎一样。例如在不同的图片中,虽然鸟喙处于不同的位置,但是我们可以用相同的模式去检测。这就是CNN的相同性。如果我们对同一张图片进行下采样,那么图片的性质基本会保持不变。这就是CNN的不变性。2.2人工神经网络介绍人工神经网络ANN,简称神经网络,是指由大量的处理单元(神经元)互相连接而形成的复杂网络结构,是对人脑组织结构和运行机制的某种抽象、简化和模拟。可以说人工智能先驱的最初愿景是复制人类大脑的功能,这是自然界最聪明,最复杂的已知创造。这就是为什么该领域从人类心灵的形体和功能派生出其大部分术语(包括“人工智能”一词)的原因。人工神经网络的核心成分是人工神经元。每个神经元接收来自其他几个神经元的输入,将它们乘以分配的权重,将它们相加,然后将总和传递给一个或多个神经元。一些人工神经元可能在将输出传递给下一个变量之前将激活函数应用于输出。神经元是神经网络的基本组成,也被称为“激活单元”,每一个神经元都可以是一个独立的学习模型。在神经网络的内部,分布着数量众多的神经元,使得其具备非线性的特性。相比于建模方法单一的传统回归方法,人工神经网络在处理过程中可以采用并行处理的方式,可以对复杂的非线性关系进行建模,处理方向可以进行并行处理,因而处理的速度较快,可以实现深层次的信息处理。根据使用的模型不同,神经元模型的种类有单层感知机神经元(单层神经网络)、Sigmoid神经元、半线性神经元、Nv神经元、二元神经元、线性阈值函数或McCulloch-Pitts(MCP)神经元等等。图2.6人工神经元的基本结构在神经元概念的基础上,感知器由两层神经元组成,具体结构如图2.7所示。外界信号通过输入层输入后,传递给输出层,输出层为M-P神经元。单一的感知器结构简单,在处理复杂信号时显露表征能力不强的缺点。研究者通过实验发现,连接多个感知器可以构建复杂的多维信息表达系统,可以实现对复杂特征的分类,内部的每一个神经元都以多个输入信号作为输入,这样的连接方式也被称为神经网络。神经网络的输入层包含多个信号的输入,中间是关系较复杂的隐藏层,最后是输出层。图2.7感知器输入信号首先从输入层进入,然后通过输入层隐藏层,其在隐藏层中被赋予不同的权值。而隐藏层的性能设计决定了整个神经网络的性能,因为隐藏层会进行大量的数据处理,将输入信号的浅层特征抽象到高维空间,并更深层次的提取输入信号的高维特征信息,最后将处理的结果传递到输出层。如下图2.8所示。输出层的结果向量为y=(y1,y2,…,yk)T,该结果并不是一成不变的。目前大多可以处理两类任务,一类是分类任务,另一类是回归任务。分类输出的值是离散的,回归输出的值是连续的,分类输出的是物体的所属类别而且是定性的,回归输出的是物体的特性值而且是定量的,分类的最后一层通常要使用Softmax函数进行判断所属类别,而回归则没有逼近的概念。分类任务最终的正确结果只有一个,因为图片内容的判断通常只有一个,比如判断一张图片的内容是鸟还是鱼,不会有其他的结果。回归任务通常来说是预测一个值,比如来预测一个手机的长宽高。图2.8神经网络结构激活函数,也称为激励、活化函数,实现神经元的输入和输出之间非线性化。简单的神经元模型,和单层感知机模型都是线性可分模型。如果遇到分布较复杂的数据集,线性模型是无法实现完美的拟合。所以必须加入非线性因素(激活函数),实现神经元的输入和输出之间非线性化,增强神经网络的表达的能力。如果没有激活函数,神经网络只能做线性变化而不能进行非线性变换,表达能力会大大的减弱。激活函数是对隐藏变量使用按元素运算的非线性函数进行变换,下一层全连接层的输入为变换过后的结果,能够实现对信号的非线性化,进而增加网络的非线性,从而增强网络的表达能力。常见的激活函数有:Sigmoid(如下式的2.1)、Tanh(如下式的2.2)、ReLU(如下式的2.3)和LeakyReLU(如下式的2.4)。f(x)=11+e−xTanℎ(x)=ex−f(x)=max(0,x)(2.3)f(x)=max(0,x)f(x)={x,x>00.05x,
otℎerwise
}(Sigmoid函数如图2.9(a)所示,由图可知,该函数易于求导并具有良好的对称性。公式2.1是Sigmoid函数的公式,该函数可以较好地解决二分类问题,能够将数值为(-∞,+∞)之内的输入信号压缩到到(0,1)范围内,并将输入信号一一对应输出。而产生“梯度消失”现象,是因为在所有的输出值中,有时会存在数值为1或0的情况,这时就会造成输出值接近饱和,当梯度接近零时,反向更新权值就会停止,在传输信息的过程中很容易造成信息丢失。此外,该函数还存在原点不对称的问题,使得当前层的非零输出持续传递给下一层,随着网络层数的逐层传递就会产生“梯度爆炸”现象,当这一现象比较严重时会改变原始数据的分布形态,另外由于函数的输出不存在零值,所以更新权重时还会出现Z字型下降,网络收敛速度较慢。为了解决Sigmoid函数中的原点不对称现象,Tanh函数应运而生,它的图像如图2.9所示,两者图像形状非常相似,Tanh函数可以看作是在Sigmoid函数的基础上演变而来的。Tanh函数的公式如上式2.2所示,其中f(x)表示Sigmoid函数。Tanh函数的输出区间在(-1,1)之间,图像关于原点对称,弥补了上述缺陷,在训练过程中收敛速度较快,然而该函数依然存在“梯度消失”的问题。ReLU(RectifiedLinearUnit)函数可以解决以上两个函数存在的梯度消失的问题,这个函数的实质是取最大值函数。图2.9(a)sigmod(b)TanhReLU函数如图2.10(a)所示,只有在输入大于零时才表现出单调递增性,梯度下降较慢的情况不会在参数进行反向更新的时候出现,从而避免了输入信号大于零时出现梯度消失的情况,有效地避免了出现饱和的现象。当输入信号小于零时,该函数存在神经元抑制的问题,可能导致模型的训练效果不佳。为了解决这一问题,LeakyReLU函数在ReLU函数的基础上进行优化,函数图如图2.10(b)所示。LeakyReLU在ReLU的基础上增加了小常数因子,这样可以确保当输入信号小于零时,梯度不会消失,且存在一个很小的值,成功解决了输入信号小于零时ReLU导致的神经元抑制的问题。当输入信号大于零时,LeakyReLU与ReLU具有相同的输出结果,其函数表达式如式2.4所示。图SEQ图\*ARABIC2.10(a)ReLU(b)LeakyReLU2.3本章小结这一章详细的介绍了CNN卷积神经网络各层的功能和结构及原理,以及CNN的特点。然后对ANN人工神经网络进行了功能和结构的介绍,然后对其激活函数进行了讨论,并提出了几个函数来解决梯度消失问题,并进一步优化函数,确保了输入信号大于零时出现梯度消失的问题,然后提出一个LeakyReLU函数来确保输入信号是负值时,梯度不消失且存在一个很小的值,解决了RELU导致的神经元抑制问题。第3章基于轻量级CNN的车牌检测识别3.1传统的车牌识别方法3.1.1牌照区域定位车牌识别系统首先对采集到的所有图像进行大范围的相关搜索,找到符合汽车牌照特征的若干区域作为牌照区域的候选区,然后开始对这些侯选区域做进一步分析、评判,最后选定一个最佳区域作为牌照区域,并将其从所采集到图像中分离出来。3.1.2牌照字符分割完成牌照定位后,再将牌照区域开始分割成单个字符,然后进行下一步识别。字符分割一般采用的是垂直投影法。由于字符在垂直方向上的投影在字符的间隙处取得局部最小值的附近,并且这个位置能够满足牌照的字符书写格式、尺寸限制和一些其他条件。所以利用垂直投影法对复杂环境下的汽车图像中的字符分割有非常好的效果。3.1.3牌照字符识别方法牌照字符识别方法主要是利用基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法就是将分割后的字符二值化,然后将其尺寸大小缩放为字符数据库中的模板大小,接近着与所有的模板进行匹配,选择最佳匹配的那一个作为结果。而基于人工神经网络的算法有两种:一种是对字符进行特征提取,用所获得特征字符来训练神经网络分配器;另一种方法就是直接把图像输入网络,由网络自动实现特征提取,一直到识别出结果。3.2车牌特征提取方法3.2.1基于手动提取特征的方法在特征提取方面,有两种执行ALPR的方法,即手动特征提取和自动特征提取。通常,手动特征是通过图像分析提取的,而自动特征提取依赖于机器学习。现有的车牌检测方法根据其使用的特征大致可以分为四类,即基于边缘的、基于颜色的、基于纹理的和基于字符特征的方法。边缘和颜色是明显的特征,容易受到光照变化的影响,而纹理和字符特征可以提供更精细的分布信息,因此更具鲁棒性。传统的基于手动提取特征的分割方法通常使用像素连结和一些字符的先验特征信息来进行分割。它们很简单,但缺乏鲁棒性,同时,一些更复杂的方法,如基于字符轮廓的方法是复杂和缓慢的。对于车牌识别任务,我们利用光学字符识别技术对每个被分割的字符进行分类,虽然模板匹配是一种简单明了的方法,但缺乏可靠性。因此,许多新的分割方法使用诸如Gabor滤波器之类的高级滤波器来提取更有效的特征,以进一步提高识别精度。(Gabor滤波器是正弦平面波与高斯核函数的乘积)3.2.2基于机器学习的方法浅层学习早期的ALPR系统使用浅层机器学习来代替检测、分割和识别子任务中的手动特征选择和分类。将SVM、AdaBoost等经典的机器学习算法与不同的复合特征相结合,以获得更好的性能。对于车牌识别,除了支持向量机(SVM)之外,还可以使用许多分类器来识别字符,并进行有效的特征提取,如人工神经网络(ANN)深度学习随着近年来深度学习的显著发展,在深度神经网络的帮助下,检测和识别任务可以达到更好的精度和鲁棒性,将人们从手动特征选择中解放出来。Rayson-Laroca等人使用一级检测器来有效定位车牌区域,而Z.Selmi等人使用简单卷积神经网络(CNN)来完成单个字符分类的任务,该方法实现了较高的识别精度。此外,目前一些最先进的ALPR框架采用了无分段的方法,整个网络可以进行端到端地训练,这实现了高效的学习过程,并取得了优异的性能。比如RPNet等典型工作采用简单的CNN作为车牌检测的主干,并采用全连接层对每个检测到的图像中的字符进行分类。3.3SLPNET本文使用一种基于轻量级全卷积网络的被称为Skip-shuffeLicensePlateNetwork(SLPNet)的ALPR框架。如下图2.1所示,将框架分为两个部分:检测部分和识别部分。并且我们的方法通过定位每个车牌的四个角来实现检测任务。然后,对检测到的和裁剪后的车牌区域进行透视校正处理,有效地降低了识别难度。[17]。对于车牌识别,我们将其视为一个类似于LPRNet的序列标记问题。虽然不同部分的网络是单独设计的,但整个网络可以进行端到端训练,并通过联合检测和识别损失函数进行优化。图SEQ图\*ARABIC3.1ALPT框架整体结构3.4检测子网络3.4.1角本地化为了进行无锚目标检测,在FSAF中提出了一种内部区域被视为有效区域(或正区域)的有效的模型,只有来自有效区域的单元格才能进行对象坐标回归。并且用有效区域进行车牌四个角的定位,而不是利用直矩形的形状来定位车牌区域。与FSAF类似,选择了两个收缩因子,δ1和δ2(δ1<δ2)获取有效框和忽略框,如图所示。图2.2(a)真实车牌;(b)边框(绿色)忽略框(黑色)(有效框)(红色);(c)有效区域(红色);(d)由绿色边框决定的蓝色边框(实时)对于不同大小的车牌图像,分别使用三对收缩因子,即(0.8,1.2)、(1.0,1.5)和(0.6,0.9)。大型收缩因子被用于小型车牌,而小型收缩因子对则被用于大型车牌。这意味着在训练过程中更多地关注体型较小的车牌。根据车牌的大小将其分为三类,即小型、中型和大型,其分类由基于车牌的四个角决定的矩形框的k-均值聚类决定。3.4.2非线性变换每一个真实车牌的边界框都包含4个边界角,并且由一个向量表示g=(x1,y1,x2,y2,x3,y3,x4,y4)。我们的目标是学习一个非线性变换网络的输出o=(tx1,ty1,tx2,ty2,tx3,ty3,tx4,ty4),每一个(txi,tyi)i∈{1,2,3,4}是第i个角到单元中心(x,y)的子集。公式为:txi=其中L是金字塔级别,z是缩小输出的整数因子范围。首先将坐标(x,y)映射到输入图像,然后计算投影坐标和g之间的偏移,并正则化结果为一个立方根函数。3.4.3检测输出的置信度归一化的2D高斯函数用于计算实例边界角与检测网络预测的角的置信度G(x,y)=Ae−((x−σ其中(x,y)是一对预测的角坐标,(x0,y0)是实例。W和H是由4个角确定的矩形边界框的宽度和高度。此外,使用比例因子α∈(0,1)来控制高斯方差。3.4.4检测网络这里使用了一种称为DSNet的轻量级全卷积神经网络用于车牌检测,其中采用Shu-sulueNetv2单元作为基本模块,并跳过了基本模块之间的链接,如2.3图所示。为了进一步提高性能,采用了几个全局上下文块(Globalcontext)来增强特征表示的能力。在我们的实现中,输入图像大小设置为512×512×3,因此,输出映射的大小为32×32×12。因此,在公式(3.1)中,L等于4,并且z可以设置为128。图2.3DSNET的网络结构,c表示链接,+表示加法,s表示卷积3.4.5检测网络的损失函数检测网络的目标是通过回归计算车牌角的非线性变换,并在所有检测区域的核心中获得高的高斯分数,为了实现这一目标,在CIoU损失的启发下提出了一种多约束高斯距离损失(MG损失),MG损失在每一个识别区域核心的定义为Conf代表车牌的置信度,该置信度由四个角的真实高斯分数的平均值决定。LMG=(1−Conf)+ρρ(b,bgt)和c是与CLOU损失相似的距离和比例因子,我们顺时针列举了每个车牌上的四个角,因此,在上面的公式中(w1,h1)是从角1和角3计算出来的,(wgt1,hgt1,w2gt,hgt2)是角从实例产生的宽度和高度。3.5识别子网络3.5.1序列预测由于中国车牌上的字符数根据车辆类型而不固定,我们使用LPRNet中使用的CTC将车牌识别视为序列标记问题,这是一种无分割的车牌识别方法。传统的序列预测算法需要输入输出符号时时刻刻对齐,这是非常不方便且要求很高的。CTC在标签集合中添加空元素,在扩展标签集合之后对序列进行标注,通过映射函数转换成真实序列的预测序列,而且这些预测出的结果无需进行对齐处理,即可得到预测序列。3.5.2识别网络被命名为RSNet的识别网络也基于Shu-sulueNetv2单元,如图2.4所示,其中设计了四种区块,用于不同空间下采样的PDB(a)~PDB(d),这些区块得益于并行结构,并且善于通过下采样提取特征。“Mean”是一个对第二维度中的输出映射求平均值的运算符。class_N是字符类的总数。图2.4RSNet的网络结构PDB(a)~PDB(d)是四种具有不同池化层并行下采样块3.5.3识别网络的损失函数由于RSNet是基于CTC的,因此在训练识别网络中采用了CTC损失。CTC算法的全称是Connectionisttemporalclassification,从字面上理解它是用来解决时序类数据的分类问题。CTCLOSS主要用于解决神经网络标签和输出不对齐的问题,其优点是不用强制对齐标签且标签可变长,仅需输入序列和监督标签序列即可进行训练。CTC损失函数能够解决输入输出长度不等任务的原因在于两点:第一,CTC让模型可以在连续的时间片段中,输出相同的字符,并通过合并相同字符的方式,让连续时间片段的输出为单一字符。第二,在目标输出中存在重复字符的时候,在blank字符前后的相同字符不会被合并,因为有重复字符以及blank的存在,相同输出可能存在多条路径,因此CTC损失函数的目的就是最大化所有可能路径的概率。CTC损失的本质就是在已知每个时刻的所有类别的概率分布的情况下,找到最终能得到真实序列的总概率。这个概率越大,损失就越小,说明CTCLOSS的效果就越好;这个概率越小,损失就越大,说明CTCLOSS的效果就越差。3.6网络级联对于端到端训练,我们需要将两个分离的网络连接起来,并依次处理检测和识别任务。来自DSNet的预测角用于从原始图像中裁剪车牌识别区域,然后将其输入RSNet。因此,RSNet可以更好地与DSNet兼容,从而减少中间误差的传播,并实现更高的识别精度。由于DSNet使用小尺寸的图像进行检测,被检测到和裁剪的车牌识别区域不适合识别。为了解决这个问题,我们重新映射了检测区域到原始图像,并根据DSNet输出的车牌坐标进行透视校正。该多分辨率策略可以有效地提高识别精度。我们利用NMS,根据预测的置信度得到最终的检测结果。在对识别输出进行解码时,对RSNet的输出序列进行贪婪搜索,得到具有最大概率的种类。3.7本章小结这一张首先介绍了传统的车牌识别实现的三个步骤。然后介绍了两种车牌特征的提取方法。再介绍了本文使用一种基于轻量级全卷积网络的被称为Skip-shuffeLicensePlateNetwork(SLPNet)的ALPR框架。然后对其检测子网络和识别子网络的功能和结构、损失函数进行了详细的介绍。最后对使用的网络级联进行了说明。第4章实验过程及结果4.1实验环境介绍4.1.1实验的硬件参数介绍本文采用Pytorch作为深度学习框架,Pytorch是一个基于Python的科学计算库,它广泛使用于深度学习和人工智能(AI)领域。Pytorch由Facebook的AIResearch(FAIR)团队于2016年推出。它被设计成易于开发和调试,拥有强大的GPU加速和自动求导系统。本文实验环境如表4.1所示:表4.1硬件参数硬件参数CPU5800X内存16GBGPU3070Ti4.1.2实验软件及环境介绍表4.2环境介绍开发语言Python3.10.9开发平台Pycharm第三方软件库Anaconda23.3.1开发框架Pytorch2.0.0我们在开始实验之前,需要先下载开发软件平台Pycharm和第三方管理库Anaconda,然后使用Anaconda创造一个独立的虚拟环境,再进行第三方库的导入。在使用anaconda时要先创建一个虚拟环境,用condacreate--namesnowflakebiopython来创建。因为国内下载相关工具比较麻烦容易失败,所以这里我们已经创建好了一个含有所有实验所需软件包的环境,命名为nlp_game,使用condainfo–-envs来检查,如图所示。图4.1已搭建好的nlp_game环境然后将虚拟环境连接到开发平台。在Pycharm开发平台中选择上一步创建的虚拟环境作为项目解释器。图4.2成功设置项目解释器至此完成实验环境的搭建,可以通过数据集开始实现功能。4.2CCPD数据集我们使用在GITCODE上的CCPD2019数据集。CCPD是一个大型的、多样化的、经过仔细标注的中国城市车牌开源数据集。CCPD数据集主要分为CCPD2019数据集和CCPD2020(CCPD-Green)数据集。CCPD2019数据集车牌类型仅有普通车牌(蓝色车牌)。CCPD数据集是迄今为止中国最大的公开标记车牌数据集。CCPD2019数据集主要采集于合肥市停车场,采集时间为上午7:30到晚上10:00,停车场采集人员手持AndroidPOS机对停车场的车辆拍照进行数据采集。所拍摄的车牌照片涉及多种复杂环境,包括模糊、倾斜、雨天、雪天等。CCPD2019数据集包含了25万多幅中国城市车牌图像和车牌检测与识别信息的标注。在CCPD数据集中,每张图片仅包含一张车牌,车牌的车牌省份主要为皖。CCPD中的每幅图像都包含大量的标注信息,但是CCPD数据集没有专门的标注文件,每张图像的文件名就是该图像对应的数据标注。后面我们会使用DATAPROCESS程序对每一张图片进行标签。我们从CCPD中随机选择了6万张图像进行实验。与往常一样,随后将所有图像按8:1:1的比例分成3个子集,分别进行训练、验证和测试。图4.3CCPD数据集部分车牌展示4.3评价指标在目标检测领域中,常用到的评价指标有准确率(Precision)、召回率(Recall)、平均准确率mAP(meanAveragePrecision)、检测帧率FPS(FramePerSecond)等。在计算这些指标之前需要先计算真正例(TruePositive)、假正例(FalsePositive,FP)、真负例(TrueNegative,TN)和假负例(FalseNegative,FN)。TP指的是被模型预测为正类的正样本,TP率即在所有图片中成功检测到目标图片的比例;TN是被模型预测为负类的负样本,FP是被模型预测为正类的负样本,FN是模型预测为负类的正样本。准确率、精确率和召回率的计算公式如下。Raccuracy
准确率(Accuracy)指模型预测正确的样本数量占总样本数量的比例。一般情况下,大部分数据集都存在数据集不平衡的情况,此时准确率对于模型评价的代表性较差,容易产生较大误差。Rprecision
精确率(Precision)表示预测为正类别的样本中实际为正类别的比例。Rrecall
查全率/召回率(Recall)是指在所有的正样本类别中被正确预测为正样本类别的比例。其中NTP是所有检测图片中TP的总个数,NFP是所有检测图片中FP的总个数,NTN是所有检测图片中TN的总个数,NFN是所有检测图片中FN的总个数。AP是单个类别的平均精度值,首先根据准确率和召回率画出准确率-召回率曲线,然后AP的计算方法就是准确率-召回率曲线下覆盖的面积,mAP是所有类别AP的平均,用来评估模型的整体效果。F1-Score,该值为精确率(Precision)和召回率(Recall)的调和平均值。主要用于衡量模型在精确率(Precision)和召回率(Recall)之间的平衡。F1分数是精确率和召回率的调和平均数,它的值介于0和1之间。当F1分数越接近1时,模型的性能越好。公式为:F1=精确率和召回率是分类模型性能评估的核心指标之一。在某些场景下,我们关注的是正类别预测的准确性,即精确率;而在另一些场景下,我们关心的是所有实际正样本能被找出的比例,即召回率。因此,F1分数就是用来在这两者之间寻求平衡的一个指标。当精确率和召回率相同时,F1分数达到最大。宏平均是对每个类别的性能指标进行求和然后算平均,使得每个类别得到相同的权重。在一个多分类问题中,计算宏平均精确率,召回率和F1分数时,我们需要将每个类别的精确率、召回率和F1分数分别求和,然后除以类别的数量。宏平均公式如下:(4.5)(4.6)(4.7)其中,n表示类别的数量,Precision_n、Recall_n和F1_n分别表示第n个类别的精确率、召回率和F1分数。在实际应用中,宏平均被用来度量模型对所有类别的整体性能。当某些类别的样本数量相对较少时(也称为不平衡数据集),宏平均可以解决类别间权重不平衡的问题,因为宏平均给每一个类别分配相同的权重。所以,它更适用于处理类别不均衡的数据集。4.4训练过程所有训练实验都是由pytorch在AMD5800X上执行的。我们在训练中将高斯比例因子设置为0.2,并使用批量大小为22的Adam优化器。初始学习率设置为0.005,还有相关参数如下图所示。训练图片为20张,测试准确度图片用了512张。图4.4训练过程参数我们以指数衰减的方式降低每个时期的学习率,并且衰减因子为0.98。为了使训练更加稳定,整个过程由两个阶段组成。在第一阶段,对检测网络进行训练,直到验证集中预测角点的平均高斯分数大于0.6,然后对两个子网络进行联合训练。在此阶段使用如式(4)所述的具有检测和识别损失的损失函数化合物,其中λ是加权因子。dλ∈(0,1)Llp=L此处,λ设置为0.5。该模型总共被联合训练了70代。所有超参数都经过实验调整,可以进一步优化。在训练过程中,不进行数据增强,只使用训练集中的原始图像,评估了所提出的SLPNet与其他公开报道的模型在中国车牌识别方面的性能。识别精度的计算规则如下所述:仅当成功检测到车牌时(IoU≥0.5或GaussianScore≥0.6),并且图像上车牌的所有字符都被正确的识别到,结果才被认为是正确的。识别精度不同的方法如表4.3所示。表4.3不同方法在CCPD上的结果模型端到端精度框架参数HyperLRP[15]不78.8%-11MMTCNN+LPRNet[14]不91.8%12FPS3.6MRPNeT[13]是93.4%58FPS210MSLPNeT是99.8%25FPS3.4M我们与之比较的其他三个公开的模型分别是HyperLPR、MTCNN+LPRNet和RPNet。HyperLPR是一个开源的、高速的中国车牌检测和识别框架。该框架混合使用了深度神经网络和经典的图像处理算法来执行检测、分割和识别。MTCNN+LPRNet是另一个基于LPRNet的开源轻量级ALPR框架。它使用MTCNN来检测车牌,并使用LPRNet,一种无分割的方法来进行识别。RPNet是一个很好的端到端的车牌识别模型。可以看出,与其他模型相比,SLPNet在参数最小的情况下,识别精度最高,为98.8%,推理速度达到25FPS。为了证明所提出的MG损失的可行性,在车牌检测方面,还采用了另外两个损失函数。不同损耗函数下的检测精度如表4.4所示。表4.4不同损失函数下的检测精度损失函数MG损失高斯损失平滑L1损失检测精度98.2%97.7%96.3%车牌检测可以被视为一个特殊的自然场景文本检测问题,DB[12]是实时场景文本检测器。所以我们利用DB来检测车牌并和我们的SLPNeT进行比较,结果如表4.5所示。表4.5不同检测器在CCPD上的检测结果模型准确率召回率f1值DB44.55%81%57.49%SLPNeT99.87%99.25%99.59%4.5验证准确率使用data_process.py将要使用的image数据集的图片标签以.txt的文本文档形式储存在label文件夹里。注意代码内image和label的路径要认真检查。通过识别数据集内车牌的结果并和label进行比对可以得出准确率。这里受限于硬件设备,只截取了CCPD2019数据集中前512张图片进行验证。图4.5验证程序输出准确率运行结果得到准确率为99.8%然后通过运行test_demo.py检测图片得到先验概率为:96%左右图4.6先验概率图4.7先验概率图4.8先验概率4.6实验结果车牌识别系统的设计与实现,借助PyQt5工具包,实现了可视化的车牌识别系统。打开mian.py并运行,点击open选择需要进行车牌识别的图片,点击process,即可完成识别,如下图所示,可见识别结果快速准确高效。图4.9车牌识别系统实现界面4.7本章小结本章对实验环境进行了说明,然后介绍了使用的CCPD数据集的来源以及内容和规格,再对实验的评价指标做出了说明,又对训练过程做了讲解和展示,再通过验证准确率对结果进行了一个验证,最后借助PYQT5做出了可视化的车牌识别系统并进行了实现,得到了令人满意的结果。结论本文旨在实现基于深度学习技术实现车牌识别系统。为此,我们针对车牌图像的特点设计了相应的数据处理流程,并建立了以轻量级CNN为核心的模型。通过大量实验验证,我们发现该模型能够有效地识别车牌图像,并且具有较高的准确率和鲁棒性。由于传统的车牌识别方法简单而且识别区域混乱,正确率相对来说也较低,基于机器学习的特征提取方法,受到了启发,使用目前一些最先进的ALPR框架采用了无分段的方法,使网络可以进行端对端的训练,达成了更高效的学习过程和更优异的性能。在本文中,我们引入了SLPNet,一个无分割的端到端框架,以实现高效的检测和识别,它可以实现高达98%的识别准确率。该模型基于轻量级卷积网络,运行速度快,总参数只有3.4M。检测子网络使用角代替区域来定位车牌提高了检测正确率,并引入了一种新的MG损失函数。利用透视变换对车牌图像进行校正,提高了字符识别率。为了获得更好的性能,采用了多分辨率策略,几乎不增加任何计算成本。与现有的ALPR方法相比,这种方法在车牌检测和识别方面具有显著的性能和巨大的潜力。在系统实现中,对于性能评估这一环节的重要性不可忽视。在本研究中,我们采用了一系列准确度评价指标来衡量我们所设计的车牌识别系统的性能。其中,我们的主要评价指标为准确识别率和误判率。准确识别率是指正确识别车牌号码的总数与图像总数的比率,而误判率则是指被错误识别的车牌数与所有车牌数的比率。通过这种方法,极大的提高了车牌识别核心区域识别的准确度和速度。为了证明该方法确实在这方面取得了好的结果,对于性能评估这一环节的重要性不可忽视,在本文中,采用了一系列准确度评价指标来衡量这个车牌识别系统的性能。其中,的主要评价指标为准确率、精确率、召回率和F1值。然后我们在不同模型上得出的结果进行了计算和比较,得出的结果是这个SLPNET模型比其他同类型模型更加精准。基于以上实验结果,我们认为这个车牌识别系统具有非常好的可行性和商业应用潜力。该识别系统适用于道路监控、停车场管理、出入口安全控制等多个领域,具有广泛的应用前景。综上所述,基于深度学习的车牌识别方法及系统实现技术路线是一个不断发展和完善的领域,而本文所提出的系统实现方案,则对于更高效、精准的车牌识别技术应用和发展提供了有力的支持。总结与体会在完成基于深度学习的车牌识别方法及系统实现毕业设计过程中,我获得了许多宝贵的经验和体会。以下是一些主要的总结与体会:(1)理论知识的重要性:在整个毕业设计过程中,对于相关神经网络、车牌识别系统常用模型、损失函数等相关领域的理论知识有了更深入的理解。这为实现车牌识别系统提供了坚实的基础。(2)实践操作能力的增强:实际操作中,我学会了如何用PyTorch深度学习框架实现神经网络,并掌握了车牌图像预处理和模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应商质量管理体系评估通报(5篇)
- 智能制造升级-第2篇
- 初级教师课堂教育策略应用手册
- 量子计算基础研究验证平台
- 心灵之窗-小学主题班会课件的情感教育
- 关于违规行为处罚决定的通知函(4篇)范文
- 数字孪生城市规划应用
- 人工智能大模型开源许可授权
- 小学生心理健康辅导课件小学主题班会课件
- 企业审查与风险防范要点解析
- 雨课堂学堂云在线《地学景观-探秘﹒审美﹒文化(重大 )》单元测试考核答案
- 高原地区人群呼吸系统健康状况-洞察及研究
- GB 3608-2025高处作业分级
- 痰液的粘稠度及量的评估
- DB4203∕T 121-2017 天麻生态种植技术规程
- JJF 2275-2025高频电压标准装置校准规范
- 危化经营安全员题库及答案解析
- 外挂钢楼梯专项施工方案
- 体育器材技术服务和售后服务的内容和具体措施
- 工行制裁管理办法
- 灯杆广告管理办法
评论
0/150
提交评论