版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学院(部)数学科学学院题 目基于向量机的手写数字识别目 录摘 要1Abstract1第1章 绪论21.1 研究的动机和目的21.2 研究的背景31.3 研究的内容3第2章 系统理论42.1数字识别42.1.1简介42.1.2识别难点52.1.3支持向量机(SVM)62.1.4支持向量机的优缺点72.2 MATLAB编程82.2.1 matlab简介82.2.2 计算机图像存储8第3章 识别分析93.1特征向量选择93.2文件介绍93.3流程概述93.4 训练用例9第4章 识别演示10苏州大学本科生毕业设计(论文)4.1 代码函数引用流程图104.1.1 数据处理引用104.1.2 函数调用引用
2、104.2 代码介绍114.2.1 main文件114.2.2 inputvar函数124.2.3 featureextract文件-见附录134.2.4 svmTest函数134.2.5 svmTrain函数144.2.6 kernel函数144.3 识别效果分析154.4 课题展望18第5章 总结195.1分类总结195.2整体总结19参考文献21致谢22用户手册23 摘要本论文主要介绍了基于向量机的手写数字识别,实现通过输入一部分手写数字的训练集训练向量机以识别手写数字。其中识别主要应用了Matlab编程,实现图像读取与训练向量机。AbstractThis paper mainly in
3、troduces the recognition of handwritten numerals based on support vector machine, and realizes the recognition of handwritten numerals by training a training set of a part of handwritten numerals. Among them, recognition mainly applies Matlab programming to realize image reading and training vector
4、machine.关键词:SVM、支持向量机、图像识别、决策树第一章绪论1.1研究的动机和目的数字识别可要用于很多地方,最常用的莫过于验证码识别生成、手写数字识别等等。数字识别是文字识别的一种分类。通过实现数字识别有助于自动话,对于人工智能、大数据分析的基础数据提取、数据仓库的搭建存储有着不可或缺的重要作用。由于经济的发展,金融市场化进程的日益加快,而目前,票据录入等依然是人工处理方式如果可以通过训练向量机,将训练后的支持向量存储,无疑可以实现脱机的数字识别,这样大大有利于减少人工的处理,以便于效率的提高。因此手写数字的识别研究有着十分重要的意义和价值。此外,数字识别可以推广的英文字母的识别、汉
5、字拼音的识别,因此数字识别逐渐是模式识别的一个热门分支。从很久以前,就不断有学者在研究,并做出了很多重要的贡献和很多良好算法的分享。目前手写数字识别主要的应用领域有:(1)数字识别被应用在大规模数据统计中。例如,人口普查、成绩单录入、行业年检、财务报表录入等应用中,需要输入大量的数据,以前完全靠手工输入,很耗费人力物力,如果用计算机能自动话识别将减少人力财力。(2)手写数字识别被应用在财务、税务、金融领域应用。但是因为金融行业要求很好,错一点损失将十分巨大,对于手写数字识别的效率准确性将要求很高,就必须要有一个很好的识别器。(3)手写数字识别被应用到邮件分拣系统中。1.2 研究的背景利用计算机
6、自动识别手写数字,是模式识别应用的一个重要领域。人们在生产和生活中,要处理大量的文字、报表和文本。为了提高处理效率,从上世纪开始探讨一般文字识别方法。60年代后出现了手写体文字识别机,其识别精度和机器性能都基本上能满足要求。因此,开始逐渐提高识别要求,从最简单的识别到后来70年代,主要研究文字识别的基本理论和研制高性能的文字识别机,并着重于汉字识别的研究。以至与现在对于人脸、汽车等图片的识别。因此就文字识别中的数字识别进行研究。1.3研究内容1.Matlab编程1)读取图像2)训练向量机3)验证手写数字识别效果2.原理解释1) SVM向量机算法2) 计算机图像存储第二章系统理论2.1数字识别2
7、.1.1简介图像识别,是指利用计算机对图像进行数据读取,分析其特征、进行模式识别的方法。现有的图像分割的方法有许多种,譬如有阈值分割,边缘检测,区域提取等。通过对手写数字图片的灰度处理,可以减少图片噪音的污染。从图像的类型来分有:灰度图像分割和纹理图像分割等。通过边缘检测可以区分手写数字的边缘,增加训练的特征信息量。数字识别属于图像识别的一个分支。因此,本文将依次介绍图像识别、数字识别的概念。对于数字识别有多种方式算法,例如神经网络、卷积神经网络、支持向量机等。本文采用基于向量机的图像识别技术,因此需要着重介绍研究SVM的概念与算法。SVM的研究国内外有很大的研究,对于数字识别有很多介绍。也有
8、很多开源的训练集,方便于算法的实现。2.1.2识别难点一般情况下,当涉及到数字识别时,人们往往要求识别系统有很高的识别精度,特别是金额的数字识别时,更是如此。因此针对这类问题,就要求手写数字识别系统具有高可靠性和高识别率,因此其难点主要在于以下几方面: 1)数字的字形信息量很小,对于手写数字图片,如果尺寸过小,而且根据其提取特征向量方式不同,会在训练数据时就开始产生会差。此外,不同数字写法字形相差又不大,使得准确区分某些数字相当困难。 2)数字虽然只有0-9的10种,而且笔划简单,但书写上带有明显的地域特性,同一数字写法千差万别,不同地域的人写法也不相同,很难做到通用的特征向量提取方式,以便于
9、训练。3)在实际应用中,相比有语义、复杂的文字来说,对数字的单字识别正确率的要求高很多。文字组合一般都存在上下文关系,但数字很少没有上下文关系,所以每个孤立数字的识别都至关重要。此外数字识别经常涉及的财会、金融领域,对手写数字识别系统的要求不仅仅是单纯的高正确率。 如果没法达成,还是需要人工进行辅助,效率并不会增加很多。4)由于脱机手写数字的输入只是简单的一副图像,它缺少了手写笔画的信息,在缺乏信息的基础上进行识别更增加了难度。2.1.3支持向量机(SVM)支持向量机是Cortes和Vapnik于1995年首先提出的。它在解决小样本、非线性及高维模式识别中表现出优势,并能够推广应用到函数拟合等
10、其他机器学习问题中。VC维是一种度量,即为数据问题的复杂程度。SVM解决问题的时候,和样本的维数是无关的(甚至测试数据是上万维的都可以,但是这使得本质上使用二次规划的SVM处理效率很低下,对于高位数据还是适合用神经网络来动态处理。当然的,对于大多数问题,SVM还是很适合用来解决文本分类的问题。对于高维度的也可以通过引用核函数进行降维处理)。统计学习的目标从测试数据中,带入相应公式计算。得出在相应损失函数下误差最小的参数值,SVM正是这样一种努力最小化结构风险的算法。小样本的小并非数量少(更多的样本几乎总是能带来更好的效果),而是说与问题的复杂度比起来。SVM因为是二次规划处理,因此数据太多只会
11、导致算法复杂,换句话说算法要求的样本数是相对比较少的。非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也有人叫惩罚变量)和核函数技术来实现。将高维不可分的转为其他空间,使得可用超平面分割。线性分类器是最简单也很有效的分类器形式。可以从此推到SVM的核心算法。用一个二维空间里仅有两类样本的分类问题来举个小例子。如图所示,对于两类数据可以很轻松的用一条直线将他们分割开来。图2-1 SVM简单二位分类示意图SVM它本质上即是一个分类方法,求解过程中会涉及到一系列最优化或凸二次规划等问题。至于核函数,是为处理非线性情况,若直接映射到高维计算恐维度爆炸,故在
12、低维计算,等效高维表现。最小二乘法是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘,计算误差,不断拟合并使得这些数据与实际数据之间误差的平方和为最小。常常将最小二乘最为损失函数,取其误差最为判断标准。 2.1.4SVM的优缺点优点:1)SVM本质上是一种非线性映射,对于高维看上去没有办法的数据,提高合适的映射,用内积核函数替代高维空间的非线性映射,可以减少维度灾难,实现数据的分类。2) SVM目标就是在特征空间中寻找到最有超平面,通过损失函数,最大化分类边际实现数据的划分处理。3)支持向量是SVM的训练结果,在SVM分类决策中起决定性作用。SVM算法鲁棒性强,仅
13、仅需要存储支持向量,需要的空间小。缺点:1) SVM算法对大规模训练样本难以实施。同时,SVM是一种二次规划求解支持向量,如果训练样本维度数目过大,求解二次规划因为是平方级的运算时间和存储规模,将很难计算。2) 用SVM解决多分类问题存在困难。因为SVM是0、1的划分,对于大规模分类将运算复杂。因为手写数字仅仅设计10个数字,最多需要训练10个向量机,因此还可以,但是对于例如人脸识别,因为可能的种类太多,将无法使用。2.2Matlab编程2.2.1Matlab简介MATLAB作为数学专业常用的一款软件。其功能在普通变成、矩阵处理、图像处理、神经网络训练,甚至包括可视化编程、仿真训练等方面均具有
14、不可忽视的地位。Matlab的基本单位是矩阵,其编程语言的表达时偏向python、js这种,不需要预先定义变量。指令表达式很像数学符号,因此对于相关专业的来说,很容易上手。而且因为matlab自带编译器的强大和help命令的完善文档(虽然是英文),以及丰富工具箱,对于新手也能很好的入门。不光如此,matlab利用接口,可要实现对于其他语音的支持与调用。例如java、c、Fortran的语言支持,很好的弥补了自身的不足。因为matlab的使用广泛,在网络上有很多开源的资源,可以供我们研究很下载。不光如此,这些工具包的代码是开源的(当然不能用于商业目的),对于学历资深、编程水平很高的人来说,可以自
15、由研究修改这些源代码,具有极大的自由度和操纵感。2.2.2计算机图像存储 图片在计算机中以最小单元像素的方式进行存储。由于手写数字识别不涉及颜色,因此采用灰度图片(256级灰度,对于黑色的标记为255,对于白色的标记0)。如果手写数字不是灰度的,可以通过相应算法,例如整数方法移位方法等将其转为灰度照片。对于训练集也是采用灰度进行存储。对于手写数字主要注重的是数字图片的轮廓。因为拍摄光线等误差,对于背景可能不是纯白色,因此对于图像将判断灰度大于130的即视为黑色(手写数字的绘制线)。第三章 识别分析31 特征向量选择1)因为手写数字识别相对较为简单,只有0-9,因此采用将图片分为8个区域,计算每
16、个区域的密度作为特征向量的维度3.2文件介绍1)main文件,读取图片的特征向量,依次进行训练测试2)inputvar函数,提取图片特征3)featureextract将一些列图片转为特征向量存储到本地中4)svmTrain输入特征向量,训练0-9的10个svm,保存向量机的参数5)svmTest测试向量机,依次用上面得到的10个svm测试,分析结果6)kernel向量机的核函数3.3流程概述1)读取BMP图像格式文件,提取图片特征2)读取图片特征训练向量机3)测试向量机3.4 训练用例图3-1 用于训练向量机的部分数字图片 第四章 识别演示4.1 函数引用流程图4.1.
17、1数据处理引用Featureextra文件读取图片数据提取图片特征Inputvar函数去读图片数据,保存到本地P:训练图片特征向量T:训练图片的表示符号代表数字0-9RP: 测试图片特征向量RT: 测试图片的表示符号代表数字0-94.1.2函数调用引用Main文件作为入口svmTrain提取图片训练向量机,得到0-9的10个数字的10类向量机SvmTest,测试SVM的10个向量机,根据不同测试特征向量带入到10个向量机中看识别效果4.2 代码介绍4.2.1 main文件按照识别分析中的依次调用流程。%主函数clear all;close all;C = 10;kertype = 'r
18、bf'%训练样本load featureextract; epsilon=3;%依次训练10个svmfor i=0:9 X=p;%训练样本d*n矩阵,n为样本个数,d为特征向量个数 Y=r; %训练目标1*n矩阵,n为样本个数,值为+1或-1 for ii=1:size(Y,2) if(Y(ii)=i) Y(ii)=1; else Y(ii)=-1; end end svm = svmTrain(X,Y,kertype,C,epsilon); SVM(i+1)=svm; %plot(svm.Xsv(1,:),svm.Xsv(2,:),'ro');%支持向量end %测试
19、,tp、tr测试数据集raccuracy=zeros(size(tp,2),10);rY=zeros(size(tp,2),10);rscore=zeros(size(tp,2),10);for i=1:size(tp,2) tX=tp(:,i); tY=1; for S=0:9 svm=SVM(S+1); result(i,S+1) = svmTest(svm, tX, tY, kertype); raccuracy(i,S+1)=result(i,S+1).accuracy; rY(i,S+1)=result(i,S+1).Y; rscore(i,S+1)=result(i,S+1).sc
20、ore; endend%绘制误差for i=1:size(tp,2) hold on; d=i-1; if(mod(i-1,2)=0) d=d-1; end plot(d-1)/2,max(rscore(i,:),'ro'); text(d-1)/2+0.3,max(rscore(i,:),num2str(find(rscore(i,:)=max(rscore(i,:)-1); plot(d-1)/2,min(rscore(i,:),'g+'); text(d-1)/2+0.3,min(rscore(i,:),num2str(find(rscore(i,:)=m
21、in(rscore(i,:)-1);endtitle('误差');4.2.2 inputvar函数function y=inputvar(I)% inputvar 特征提取 % 参数说明:% 输入 长16像素宽8像素的手写数字图片% 输出 该图片的特征向量b = find(I>130);%I:读入的待辨认的数字图片,find(I>130):找出I中大于130的坐标,返回的是线性索引 I(b) = 1; % 对数字图片进行二值化处理,减少数字图片的噪音污染。m,n = size(I);%获取图片尺寸,m=16,n=8p = zeros(1,17); for k=1:4
22、 for i=1+(k-1)*4:m/4+(k-1)*4 for j=1:n/2 if I(i,j)=0 p(k) = p(k)+1; else p(k) = p(k); end end for j=n/2+1:n if I(i,j)=0 p(k+4) = p(k+4)+1; else p(k+4) = p(k+4); end end endendp(9) = p(1)+p(2);p(10) = p(3)+p(4);p(11) = p(5)+p(6);p(12) = p(7)+p(8);p(13) = p(1)+p(5);p(14) = p(2)+p(6);p(15) = p(3)+p(7);
23、p(16) = p(4)+p(8);p(17) = p(9)+p(10)+p(11)+p(12);y = p/128; 4.2.3 featureextract文件-见附录4.2.4 svmTrain函数function svm = svmTrain (X,Y,ketype,C)% 训练向量机函数% 参数说明% 输入: X:特征向量,Y:1和-1的标识符,kertype:核函数标识符liner或rbf,C:最大约束% 输出:训练好的向量机svm,struct数据,内含向量机的参数options = optimset; options.LargeScale = 'off'opti
24、ons.Display = 'off' n = length(Y);H = (Y'*Y).*kernel(X,X,ketype);f = -ones(n,1); A = ;b = ;Aeq = Y;beq = 0;lb = zeros(n,1); ub = C *ones(n,1);a0 = zeros(n,1); a,fval,eXitflag,output,lambda = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options); e= 1e-8; sv_label = find(abs(a)>e); %0<a<a(m
25、ax)则认为x为支持向量 svm.a = a(sv_label);svm.Xsv = X(:,sv_label);svm.Ysv = Y(sv_label);svm.svnum = length(sv_label);4.2.5 svmTest函数function result = svmTest(svm, Xt, Yt, kertype)% 训练向量机函数% 参数说明% 输入: X:特征向量,Y:1和-1的标识符,kertype:核函数的标识符或rbf% 输出:训练好的向量机svm,struct数据,内含向量机的参数temp = (svm.a'.*svm.Ysv)*kernel(svm
26、.Xsv,svm.Xsv,kertype);total_b = svm.Ysv-temp;b = mean(total_b);w = (svm.a'.*svm.Ysv)*kernel(svm.Xsv,Xt,kertype);result.score = w + b;Y = sign(w+b);result.Y = Y;result.accuracy = size(find(Y=Yt)/size(Yt);4.2.6 kernel函数function K = kernel(X,Y,type)% 训练向量机函数% 参数说明% 输入: X:特征向量,Y:1和-1的标识符,type:核函数标识符
27、% 输出:核函数映射矩阵switch typecase 'linear' K = X'*Y;case 'rbf' delta = 5; delta = delta*delta; XX = sum(X'.*X',2); YY = sum(Y'.*Y',2); XY = X'*Y; K = abs(repmat(XX,1 size(YY,1) + repmat(YY',size(XX,1) 1) - 2*XY); K = exp(-K./delta);end4.3识别效果分析(1)训练向量机图4-1
28、 支持向量图片备注:红色的点表示支持向量(2)测试向量机,对每个数字进行0-9的向量机分类,得到误差显示,绘制,选取最小误差作为测试结果(3)调整图片备注:1:横坐标依次表示0-9的向量机识别结果,纵坐标每两个依次代表数字0-9。0表示相应向量机识别不出该数字,1表示相应向量机判断该图片为对应的手写数字。2':对于下文图片坐标(x,y),x表示第x号训练的向量机(代表识别数字x-1),y代表测试集的数字索引。因为0-9一共10个数字,每个数字有2个测试集,所以一共20位。将y/2-0.5再向下取整,即为代表的数字。3核函数为linear代表线性核函数,rbf代表高斯核函数
29、160;1)当删选支持向量误差epsilon较小时,将无法区分图4-2 epsilon小于2时,核函数为rbf解释:0表示未被识别出来,所有数字测试集均未被识别出来2)提高误差比较epsilon的大小。可以看出此时还只能识别出少量数字,其中对于数字1和数字7出现了误差,数字7被识别成了数字1。图4-3 epsilon等于3时,核函数为rbf解释:0表示未被识别出来,(2,3)、(2,15)、(2,16)为1表示数字1、7被2号向量机(代表数字1)识别出来。3)改变核函数为线性。可以发现识别效果好了很多,但是也可以发现对于数字0被识别成了数字3,以及数字8被识别成
30、了数字3、数字8和数字9。数字1被很好的识别出来了。图4-4 epsilon等于3时,核函数为linear解释:(2,3)、(2,15)、(2,16)代表数字1的训练向量机识别出了数字1和7。(4,2)、(4,17)、(4,18)表示数字3的向量机识别出数字0和数字8.(9,17)、(9,18)、(10,17)、(10,18)分别表示数字8和9的向量机识别出数字8和94)结果比较,线性核函数识别效果较好,因此重新设置误差epsilon比较。可以发现数字8被很好的识别出来了图4-5 epsilon小于2时,核函数为linear解释:(9,17)、(9,
31、18)表示数字8被代表数字8的9号向量机很好的识别了出来 5)当误差提高时,能识别的较多,但是误差也出现得更大。与核函数没有关系,误差依旧出现了。图4-6 epsilon等于3时,核函数为linear6)继续增加误差。所以数字均可能被识别成7图4-7 epsilon大于等于5时,核函数为linear 7)增加训练集数量,结果会更加好4.4 课题展望数字识别,在很多领域例如超市、银行等显得非常重要。一个好的识别器,优秀的算法,可以提高识别效率,更方便人类的使用,减少机械重复的工作,实现自动化、全自动。通过对于数字识别的研究分析,可以拓展到对于图片、对于
32、文字、对于人脸的识别分析。这些在现在以及未来都有着极大的应用市场。从最初的神经网络、到向量机、再到卷积神经网络,基于图像识别的算法越来越多、越来越好。随着量子计算机的发展,一些高纬难解的特征向量将可以被提取使用,随着科技的发展,数字识别、图像识别,将会进入极大的发展之中。虽然本论文是数字识别,但是完全可要扩展到图像识别。现在大数据的发达,有充足的数据便于神经网络、向量机等的训练与提高,必将提高自动化识别效率。随着自动话识别能力的提高,当下很火的人工智能、自动化汽车,还是3D游戏领域,均将随之不如极大的发展中。相信手写数字识别只是刚刚入门的契机,之后还需要对于图像领域做出更大的研究与贡献。第五章
33、总结5.1 分类总结通过分析,我们可以知道,对于手写数字来说,核函数应该采用线性的即可,过于复杂的核函数映射反而会导致分类误差。对于训练向量机,训练集的大小十分重要。本文仅有40个训练图片,其中还有部分区别不大,导致在设定较小误差和线性核函数下,只有数字8能被完美识别出来。本文采用的特征是将原本图片分为8个部分,提取密度。如果采用卷积神经网络,可以对特征进一步提取,抑或是通过图像分割,获取数字的连通分量作为一个关键的特征向量,相信结果会更加好。本文的处理还有很大发展的空间与技术。有如下几个关键点:1)训练的数目2)训练的图片的质量好坏3)图片特征向量的提取方法4)训练向量机的数目5)每一个关键
34、点均有不同程度的算法存在,选取好的算法将极大的优化训练效果。5.2 整体总结这次毕业课题的设计包括毕业论文的写作和图象读取数字识别分类的开发。通过毕业设计,我不光对向量机有了详细的理解,更是对于数据处理有了很大的认识。从最初的算法,到后续提取特征向量,再到最后代码实现,其中经历了很多不知辛苦,但是还是,最终吧书中的理论运用到了实践中。相信这对我以后的工作学习将具有重要意义。 在这次毕业设计的整个过程中,我有以下几点体会:1) 一定要做好计划,不然很容易乱成一团没有章法。2) 不光需要注意理论的学习,还必须得提高动手能力以便于代码、检测的最后完成3) 虽然编程语言很多,设计图像处理有python
35、、有matlab、有c+等等,也有大量开源的库和函数,但是他们核心的思想是没有变化的都是其相应的核心算法。4) 对于毕业设计中的问题需要不断思考反省、才能不断进步,对于挫折不应该选择逃避,而是迎难而上。5) 虚心向老师,同学请教,在设计过程中,对于支持向量机的算法与代码最初不是很熟悉,后来也是通过不断学习不断研究前人的知识才得以完成。通过对他们的学习,得以不断完善自我,不断提高,不断进步。参考文献1 李慧颖,傅德胜. 微机指纹自动识别系统软件设计J. 计算机应用研究. 2000(12)2 叶卫东,李冠英. 自由手写体数字识别的一种方法J. 现代计算机. 1998(10)3 王雯,施鹏飞. 多层分组神经网络的手写体数字识别J. 上海交通大学学报. 1998(09)4 朱学芳,石青云,程民德. 无限制手写数字自动识别系统的研究J. 高技术通讯. 1998(03)5 杜敏,辛大欣. 基于混合特征提取的手写体数字识别方法的研究J. 西安交通大学学报. 1996(09)6 张平,潘保昌,汪同庆,郑胜林,李健. 一种自由手写体数字识别方法研究J. 光电工程. 1995(03)7 谭鹤良,谢兵兵,陈明武. 自由手写阿拉伯数字识别方法与系统J. 中文信息学报. 1993(04)8 陈汗青,万艳玲
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工转正述职报告8篇
- 学习自我鉴定范文集合十篇
- 医生年终工作总结7篇
- 某国际机场线工程施工组织设计
- 2025年部编版新教材语文一年级下册第五单元教案
- 七年级语文的教学工作个人总结范文(33篇)
- 人教版2022年三年级语文期末复习-作文训练(童话)B卷
- 2025年合成材料阻燃剂项目合作计划书
- 摊位租赁协议书
- 2025年城市市容管理服务项目发展计划
- 【9道期末】安徽省宣城市2023-2024学年九年级上学期期末道德与法治试题(含解析)
- 2024年医药行业年终总结.政策篇 易联招采2024
- 《工程造价专业应用型本科毕业设计指导标准》
- 仓库主管2025年终总结及2025工作计划
- 2024年01月11396药事管理与法规(本)期末试题答案
- 装卸工安全培训课件
- 中成药学完整版本
- 2024-2025学年度广东省春季高考英语模拟试卷(解析版) - 副本
- 广东省广州市2023-2024学年三年级上学期英语期中试卷(含答案)
- DB11T 1282-2022 数据中心节能设计规范
- GB/T 44694-2024群众性体育赛事活动安全评估工作指南
评论
0/150
提交评论