版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、function Bayes2%算法视线见模式识别P33P44(各类样本的协方差不相等)%为了提高实验样本测试的精度,故采用多次模拟求平均值的方法N=input(实验模拟次数 N(N最好为奇数) );Result(1:3,1:3)=0; %判别矩阵的初始化for k=1:N %控制程序模拟次数N %生成二维正态分布的样本2 X N 维的矩阵 X1=mvnrnd(1 2,4 0;0 6,300); %2 X N X2=mvnrnd(5 3,5 0;0 1,200); X3=mvnrnd(4 7,2 0;0 9,500); %样本程序 %-% %测试样本 X10=mvnrnd(1 2,4 0;0
2、6,100); %2 X N X20=mvnrnd(5 3,5 0;0 1,100); X30=mvnrnd(4 7,2 0;0 9,100); %先验概率 P(1)=length(X1)/(length(X1)+length(X2)+length(X3); P(2)=length(X2)/(length(X1)+length(X2)+length(X3); P(3)=length(X3)/(length(X1)+length(X2)+length(X3); %计算相关量 cov(X):协方差矩阵 Ave:均值 %-% W1=-1/2*inv(cov(X1); W2=-1/2*inv(cov(
3、X2); W3=-1/2*inv(cov(X3);% Ave1=(sum(X1)/length(X1);Ave2=(sum(X2)/length(X2); Ave3=(sum(X3)/length(X3);%计算平均值(2维列向量) w1=inv(cov(X1)*Ave1;w2=inv(cov(X2)*Ave2;w3=inv(cov(X3)*Ave3;%2 w10=-1/2*Ave1*inv(cov(X1)*Ave1-1/2*log(det(cov(X1)+log(P(1); w20=-1/2*Ave2*inv(cov(X2)*Ave2-1/2*log(det(cov(X2)+log(P(2)
4、; w30=-1/2*Ave3*inv(cov(X3)*Ave3-1/2*log(det(cov(X3)+log(P(3); %-% for i=1:3 for j=1:100 if i=1 g1=X10(:,j)*W1*X10(:,j)+w1*X10(:,j)+w10; g2=X10(:,j)*W2*X10(:,j)+w2*X10(:,j)+w20; g3=X10(:,j)*W3*X10(:,j)+w3*X10(:,j)+w30; if g1=g2&g1=g3 Result(1,1)=Result(1,1)+1; elseif g2=g1&g2=g3 Result(1,2)=Result(1
5、,2)+1;%记录误判情况 else Result(1,3)=Result(1,3)+1;%记录误判情况 end elseif i=2 g1=X20(:,j)*W1*X20(:,j)+w1*X20(:,j)+w10; g2=X20(:,j)*W2*X20(:,j)+w2*X20(:,j)+w20; g3=X20(:,j)*W3*X20(:,j)+w3*X20(:,j)+w30; if g2=g1&g2=g3 Result(2,2)=Result(2,2)+1; elseif g1=g2&g1=g3 Result(2,1)=Result(2,1)+1; else Result(2,3)=Resu
6、lt(2,3)+1; end else g1=X30(:,j)*W1*X30(:,j)+w1*X30(:,j)+w10; g2=X30(:,j)*W2*X30(:,j)+w2*X30(:,j)+w20; g3=X30(:,j)*W3*X30(:,j)+w3*X30(:,j)+w30; if g3=g1&g3=g2 Result(3,3)=Result(3,3)+1; elseif g2=g1&g2=g3 Result(3,2)=Result(3,2)+1; else Result(3,1)=Result(3,1)+1; end end end endend%画出各样本的分布情况subplot(
7、2,1,1)plot(X1(1,:),X1(2,:),r.,LineWidth,2),hold onplot(X2(1,:),X2(2,:),go,LineWidth,2),hold onplot(X3(1,:),X3(2,:),b+,LineWidth,2),hold ontitle(训练样本分布情况)legend(训练样本1,训练样本2,训练样本3)subplot(2,1,2)plot(X10(1,:),X10(2,:),r.,LineWidth,2),hold onplot(X20(1,:),X20(2,:),go,LineWidth,2),hold onplot(X30(1,:),X3
8、0(2,:),b+,LineWidth,2),hold ontitle(测试样本分布情况)legend(测试样本1,测试样本2,测试样本3)%由于多次循环后存在小数,根据实际情况判别矩阵须取整%如果N为偶数,可能出现小数为0.5的情况,此时将无法更加准确判断矩阵Result=Result/N %判别矩阵,反映Bayes的判别效果for i=1:length(Result) if round(sum(Result(i,:)-fix(Result(i,:)=1 m,n=find(max(Result(i,:)-fix(Result(i,:)=(Result(i,:)-fix(Result(i,:)
9、; n=min(n);%存在小数点相同的情况随即选取一个 for j=1:length(Result) if j=n Result(i,j)=fix(Result(i,j)+1; else Result(i,j)=fix(Result(i,j); end end elseif round(sum(Result(i,:)-fix(Result(i,:)=2 m,n1=find(max(Result(i,:)-fix(Result(i,:)=(Result(i,:)-fix(Result(i,:); m,n2=find(min(Result(i,:)-fix(Result(i,:)=(Result
10、(i,:)-fix(Result(i,:); n1=min(n1);n2=min(n2);%如果有存在小数点相同的情况,随即选取一个 for j=1:length(Result) if j=n1 Result(i,j)=fix(Result(i,j)+1; elseif j=n2 Result(i,j)=fix(Result(i,j); else Result(i,j)=fix(Result(i,j)+1; end end else continue, endend图像预处理具体步骤如下:首先对图像进行灰度转换,二值化处理然后采用4X1的结构元素对图像进行腐蚀,去除图像的噪声。采用25X25的
11、结构元素,对图像进行闭合应算使车牌所在的区域形成连通。再进行形态学滤波去除其它区域。I=imread(CAR/0.jpg);%读取图片I1=rgb2gray(I); %转化为灰度图像I2=edge(I1,roberts,0.09,both); %采用robert算子进行边缘检测se=1;1;1; %线型结构元素 I3=imerode(I2,se); %腐蚀图像se=strel(rectangle,25,25); %矩形结构元素I4=imclose(I3,se); %图像聚类、填充图像I5=bwareaopen(I4,2000); %去除聚团灰度值小于2000的部分通过对比原始图片,我们可以发现
12、形态滤波后的图像已经很接近正确的车牌位置了,因此后期处理将通过这张图来找出车牌位置。2. 车牌定位观察经过预处理后得到的图像发现车牌位置有明显的矩形有明显的矩形图样,通过对矩形区域的定位即可获得具体的车牌位置。(1) 车牌的行起始和终止位置的确定y,x=size(I5);I6=double(I5);%绘制行曲线图Y1=zeros(y,1);for i=1:y for j=1:x if(I6(i,j)=1) Y1(i,1)= Y1(i,1)+1; end endendfigure();subplot(1,3,1);plot(0:y-1,Y1),title(行像素灰度值累计),xlabel(行值)
13、,ylabel(像素和); temp, MaxY=max(Y1);PY1=MaxY;while (Y1(PY1,1)=80)&(PY11)PY1=PY1-7;endPY2=MaxY;while (Y1(PY2,1)=80)&(PY2y)PY2=PY2+7;end(2) 车牌的列起始位置和终止位置的确定%绘制列曲线图X1=zeros(1,x);for j=1:x for i=PY1:PY2 if(I6(i,j)=1) X1(1,j)= X1(1,j)+1; end endendsubplot(1,3,2);plot(0:x-1,X1),title(列像素灰度值累计),xlabel(列值),yla
14、bel(像数和);PX1=1;while (X1(1,PX1)3)&(PX1x)PX1=PX1+7;endPX2=x;while (X1(1,PX2)PX1)PX2=PX2-7;end(3) 最后拼合获取的车牌在图像的行列位置DW=I(PY1:PY2,PX1:PX2,:);subplot(1,3,3);imshow(DW),title(车牌定位后图像);3. 字符分割在汽车牌照自动识别过程中,字符分割有承前启后的作用。它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。% 车牌图像转为灰度if isrgb(I)I1 = rgb2gray(I);elseI1 = I;end
15、% 二值化车牌图像I1 = im2bw(I1,graythresh(I1);%二值化图像I2 = bwareaopen(I1,16);%去除小于16像素的区块figure();subplot(1,2,1);imshow(I2),title(二值化车牌图像);% 分割字符按行积累量y,x=size(I2);I3=double(I2);X1=zeros(1,x);for j=1:xfor i=1:y if(I3(i,j)=1) X1(1,j)= X1(1,j)+1; endendendsubplot(1,2,2);plot(0:x-1,X1),title(车牌列像素点累计),xlabel(列值),
16、ylabel(像素和);% 分割字符Px0=1;Px1=1;figure();for i=1:7while (X1(1,Px0)3)&(Px0=3)&(Px1x)|(Px1-Px0)10) Px1=Px1+1;endZ=I2(:,Px0:Px1);switch strcat(Z,num2str(i) case Z1 PIN0=Z; case Z2 PIN1=Z; case Z3 PIN2=Z; case Z4 PIN3=Z; case Z5 PIN4=Z; case Z6 PIN5=Z; otherwise PIN6=Z;endsubplot(1,7,i);imshow(Z);Px0=Px1;
17、end分割成七块后的车牌图像4. 建立字符模板数据库汽车牌照的字符一般有 7 个,大部分车牌第一位是汉字,通常代表车辆所属省份,或是军种 警别等有特定含义的字符简称;紧接其后的为字母与数字。十个阿拉伯数字09, 26 个大写英文字母 AZ 以及相关的车牌用汉字:京、沪、苏、台、港、澳、甲、乙、丙、使、领、学、试、境、消、边、警等。function inpt = Pretreatment(I)% 训练样本前期处理if isrgb(I) I1 = rgb2gray(I);elseI1=I;endI1=imresize(I1,50 25);%将图片统一划为50*25大小I1=im2bw(I1,0.9
18、);m,n=size(I1);inpt=zeros(1,m*n);% 将图像按列转换成一个行向量for j=1:nfor i=1:m inpt(1,m*(j-1)+i)=I1(i,j);endend这是一个自定义函数的Pretreatment.m 文件,可以解决频繁写重复代码的问题,前面的图像预处理及车牌定位的代码可以写进Location.m文件中,通过代码DW = Location(I); 取得车牌定位后的图像;同时字符分割的代码亦可写进StringSplit.m 文件中,可以通过代码PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(DW); 取得
19、的字符分割后的图像。5. 字符识别字符的识别目前用于车牌字符识别(OCR)中的算法主要有基于模板匹配的OCR算法以及基于人工神经网络的OCR算法。设计代码如下:close all;clear all;% 归一化训练样本I0=pretreatment(imread(BP/0.jpg);I1=pretreatment(imread(BP/1.jpg);I2=pretreatment(imread(BP/2.jpg);I3=pretreatment(imread(BP/3.jpg);I4=pretreatment(imread(BP/4.jpg);I5=pretreatment(imread(BP/
20、5.jpg);I6=pretreatment(imread(BP/6.jpg);I7=pretreatment(imread(BP/7.jpg);I8=pretreatment(imread(BP/8.jpg);I9=pretreatment(imread(BP/9.jpg);I10=pretreatment(imread(BP/A.jpg);I11=pretreatment(imread(BP/B.jpg);I12=pretreatment(imread(BP/C.jpg);I13=pretreatment(imread(BP/D.jpg);I14=pretreatment(imread(B
21、P/G.jpg);I15=pretreatment(imread(BP/K.jpg);I16=pretreatment(imread(BP/L.jpg);I17=pretreatment(imread(BP/M.jpg);P=I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17;T=eye(18,18); %输出样本% bp神经网络参数设置net=newff(minmax(P),1250,32,18,logsig,logsig,logsig,trainrp);net.inputWeights1,1.initFcn =rand
22、nr;net.layerWeights2,1.initFcn =randnr;net.trainparam.epochs=5000;net.trainparam.show=50;net.trainparam.lr=0.003;net.trainparam.goal=0.0000000001;net=init(net);net,tr=train(net,P,T);%训练样本% 测试I=imread(CAR/0.jpg);DW=Location(I);%车牌定位PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(DW);%字符分割及处理% 测试字符,得到识别数值PIN0=pretreatment(PIN0);PIN1=pretreatment(PIN1);PIN2=pretreatment(PIN2);PIN3=pretreatment(PIN3);PIN4=pretreatment(PIN4);PIN5=pretreatment(PIN5);PIN6=pretreatment(PI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化系统事业单位面试试题及参考答案
- 2026年山西经贸职业学院单招职业适应性测试题库必考题
- 2026年江苏省徐州市单招职业适应性测试题库必考题
- 2026年阳泉职业技术学院单招职业技能测试题库新版
- 2026年成都航空职业技术学院单招职业适应性考试必刷测试卷及答案1套
- 2026年长江工程职业技术学院单招职业技能考试题库必考题
- 2026年河南农业职业学院单招职业倾向性测试必刷测试卷附答案
- 2026年安徽矿业职业技术学院单招职业适应性考试题库必考题
- 2026年天津电子信息职业技术学院单招职业倾向性测试题库附答案
- 2026年深圳信息职业技术学院单招职业适应性考试题库附答案
- 洁净煤发电技术
- 月子会所食品安全应急预案
- 骨科新进展课件
- 警察抓捕战术课件
- 2025年江苏省农垦集团有限公司人员招聘笔试备考及答案详解(各地真题)
- 电子厂安全生产知识培训课件
- 加油站监理实施细则
- 知道智慧树商业伦理与企业社会责任(太原科技大学)满分测试答案
- PE管道工程质量监理细则与验收标准
- 绵竹市属国有企业招聘考试真题2024
- 药物制剂新技术研发与应用
评论
0/150
提交评论