1. 首页 > 智能数码 >

bp神经网络图像识别 bp神经网络模式识别

matlab中BP神经网络OCR识别?

单看错误率分析不出来什么,可能是样本量太少,也可能是别的原因。可以把错误识别的样本拿出来,看看是哪些地方导致的错误,再有针对性的改进。

bp神经网络图像识别 bp神经网络模式识别bp神经网络图像识别 bp神经网络模式识别


bp神经网络图像识别 bp神经网络模式识别


还可能是特征工程不到位,特征选取的不好,不满足尺度不变性、旋转不变性、仿射不变性三个要素,说白了就是,大小变了,旋转的角度变了,拍照的时候站的位置不同导致对车牌的发生变化了,然后可能就识别不出来了。

所以可以考虑找一个更好的描述特征的方法,比如HoG(方向梯度直方图)。HoG,简单说就是,相邻的两个像素值做个减法,就可以表示颜色的变化,那么一个像素周围,上下、左右各有两个像素,就可以分别做两个减法,得到两个值,就像力学里两个力可以合并一样,这两个值也可以合并,得到方向,和大小(就是梯度),这样就有了一个像素的特征。但是特征太多计算量太大,就用统计的方法减少下特征,首先把图片划分成网格的形式,就像是在图像上画围棋线一样,然后每个方格内单独统计一下,方向在0-20角度内的像素的梯度的和是多少,依次类推,就得到了直方图,如果以20度为一个直方的话,那么180度就可以划分成9个直方,也就是9个特征,这样一个方格内的特征数量就与像素的数量无关了,而是固定了的。然后就是关于HoG的其他手段了,比如为了消除光照变化,可以对特征向量做归一化等。另外还可以对HoG可视化,在每个方格内,用线的方向和长度代替特征的方向和梯度,后呈现的效果是,有若干个方格,每个方格内都好像有一个沿原点对称的星星,这样做对分析算法效果有一定帮助。

HoG是比较常见的特征描述子了,在行人检测上用的比较多。除了HoG,还有SIFT、SURF等特征描述子,这些都是计算机视觉中的内容了,属于特征检测的范畴。

计算机视觉主要包括二值化、滤波器、特征检测、特征匹配等一些基础的手段,然后就是图像滤镜、图像分割、图像识别、图像生成等具体的应用算法。由于近年来计算成本降低导致神经网络的再度崛起,计算机视觉的研究热点已经转为深度神经网络的各种改进和性能优化上了,像HoG已经是05年的事情了。

关于车牌识别(LPR),如果环境不复杂,是可以做到接近的准确率的,如果环境较为复杂,95%以上准确率应该是可以做到的。总的来说,基本已经实现应用落地和商用了。现在的方法基本都是深度学习,端到端一气呵成,无需专门提取特征,传统的模式识别方法已经GG。

说的比较细。如果只是关心结果的话,Github上可以找到关于车牌识别的一些开源项目,比如openalpr之类的,当然也是采用深度学习的办法,炼丹嘛,就是这么直接。

本人毕设题目是关于神经网络用于图像识别方面的,但是很没有头续~我很不理解神经网络作用的这一机理

简单说,神经就是神经元,用于存储单个的信息,网络就是利用各神经元共同协作处理信息的功能。这是人脑的处理方式,而人工神经网络就是模拟人脑来处理各种问题。

应用在图像识别上,就是预先将已知的图像特征分成很多个小点,逐个作为神经元存储,这点是必须的,在神经元存储到一定范围后,就可以应用神经网络的协作能力去识别其他的图像了。另外,神经网络还有学习记忆功能,他会在实际使用中不断丰富自己的神经元,从而使后面的图像识别更加快速,准确。 你的论文应该更多的强调神经网络的优越性,至于算法等概念,理解后,作为介绍COPY过来就好。

相关书籍:

《神经网络》

作 者: 候媛彬,杜京义,汪梅 出 版 社: 西安电子科技大学出版社

这本书我没看过,我们自编的教材中有部分资料是参考这里的。

首先要看下神经网络方面的书,模式识别相关的书一般都会讲到神经网络的,也有专门讲神经网络的书。个人认为,神经网络用于图像识别的话,应该是对图像分类,首先从图像样本中提取特征量(多个特征量组成矢量),然后用神经网络相关的matlab函数直接,对样本特征量进行训练和测试, 欢迎交流!

用哪种神经网络进行图像识别好?

图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。一般工业使用中,采用工业相机拍摄图片,然后再利用软件根据图片灰阶做进一步识别处理。

附件是一个基于matlab的车牌识别的源程序(可以实现),其中包括车牌定位,车牌矫正,字符分割,字符识别4部分。还有已训练好的BP神经网络用于字符识别。可以对你的图像识别起一定参考作用。

急求用BP神经网络实现车牌识别的MATLAB程序代码

车牌识别技术(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在识别中的一种应用。车牌识别技术要求能够将运动中的汽车牌照从复杂背景中提取并识别出来,通过车牌提取、图像预处理、特征提取、车牌字符识别等技术,识别车辆牌号,目前的技术水平为字母和数字的识别率可达到96%,汉字的识别率可达到95%。

附件为基于matlab的车牌识别的源程序(可以实现),其中包括车牌定位,车牌矫正,字符分割,字符识别4部分。还有已训练好的BP神经网络用于字符识别。

请问用MATLAB的BP神经网络进行遥感影像分类,怎么进行样本训练啊?谢谢!

基本是这个步骤。人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。附件是一个车牌识别的例子,可以参考。

网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。人工神经网络是一种非程序化、适应性、大脑风格的信息处理 ,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。它是涉及神经科学、思维科学、人工智能、计算机科学等多个领域的交叉学科。

急求一段用matlab编程的BP神经网络的人脸识别程序 可以运行的 急用啊 谢谢各位大哥了

function []=TwoDPCA

%%%%%%%%%%%%%特征脸显示已正确,训练与测试没有分开。

% Face recognition

clear all

close all

clc

M=200;%%%%

traincopy=5;%%%表示同一个人有几张相片。

eignum=3;%%%选取的特征个数。

cel=cell(1,M);

cellafter=cell(1,M);

tt=clock;

S=[];

ii=1;

str=strcat('E:\三维人脸\2dfacedatabase\ORL\s1\1.pgm');

img=imread(str);

[ia ib]=size(img);

sum=zeros(ia,ib);

B=zeros(ia,ib);

for i=1:40

for j=1:5

str=strcat('E:\三维人脸\2dfacedatabase\ORL\s',int2str(i),'\',int2str(j),'.pgm');

eval('img=imread(str);');

sum=double(sum)+double(img);

cel{1,ii}=img;

ii=ii+1;

end

end

meanA=sum/M;

cov=zeros(ib);

for i=1:M

img=cel{1,i};

B=double(img)-double(meanA);

temp=B'B;

cov=double(cov)+double(temp);

end

[vv dd]=eig(cov);

num2=size(vv);

% Sort and eliminate those whose eigenvalue is zero

v=[];

d=[];

for i=1:size(vv,2)

if(dd(i,i)>1e-4)

v=[v vv(:,i)];

d=[d dd(i,i)];

end

end

num1=size(v,2);

%sort, will return an ascending sequence

[B index]=sort(d);

ind=zeros(size(index));

dtemp=zeros(size(index));

vtemp=zeros(size(v));

len=length(index);

for i=1:len

dtemp(i)=B(len+1-i);

ind(i)=len+1-index(i);

vtemp(:,ind(i))=v(:,i);

end

d=dtemp;

v=vtemp;

imgafter=[];

for i=1:M

for j=1:eignum

img=cel{1,i};

temp1=double(img)double(v(:,j));

imgafter=[imgafter temp1];

end

cellafter{1,i}=imgafter;

imgafter=[];

end

timeconsume=etime(clock,tt);

testimg=M/traincopy;

findimgnum=traincopy;

suc=0;

% figure(5);

for k=1:testimg

InputImage =imread(strcat('E:\三维人脸\2dfacedatabase\ORL\s',int2str(k),'\10.pgm'));

testafter=[];

for j=1:eignum

temp=double(InputImage)double(v(:,j));

testafter=[testafter temp];

end

% Find Euclidean distance

e=[];

for i=1:M

tempA=double(testafter)-double(cellafter{1,i});

total=0;

for j=1:eignum

aa=norm(tempA(:,j));

total=total+aa;

end

e=[e total];

end

[C index]=sort(e);

min=index(1);

%%%%%%%计算正确率

testingroup=floor((min-1)/traincopy)+1; %%计算要测试的图像所在的组

if testingroup==k

suc=suc+1;

else

fprintf('%d.jpg fails to match!\n',k);

end

% %%%%%%%%%%%%%%%%%%%显示所有找到的与测试图像为同一个人的图片(可)。(显示所有与测试图片小距离的那组,而不是比较出来的小的5个)

% subplot(testimg,findimgnum+1,(k-1)(findimgnum+1)+1);% subplot(行数,列数,放图像位置的序数)

% imshow(InputImage);

%% for i=1:findimgnum

% temppos=(testingroup-1)traincopy+i;

% str=strcat('E:\三维人脸\testpic\orl\',int2str(temppos),'.pgm'); %concatenates two strings that form the name of the image

% eval('img1=imread(str);');

% subplot(testimg,findimgnum+1,(k-1)(findimgnum+1)+i+1)

% imshow(img1)

% drawnow;

% end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

end

sucrate=suc/Mtraincopy100;

fprintf('%2.1f%% matched successfully!\n',sucrate)

fprintf('it takes %3.2f S\n',timeconsume)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息