基于bp神经网络的字符识别,BP神经网络图像识别

本文探讨了在人脸识别中PCA与BP神经网络的结合使用,PCA用于图像降维,BP神经网络用于识别。实验采用8-10-4的网络结构,并讨论了不同训练策略对识别率的影响。此外,文章还提到了PCA、2DPCA在图像处理中的应用,以及对基于matlab的BP神经网络人脸识别程序的需求。
摘要由CSDN通过智能技术生成

人脸识别中应用BP神经网络的输出和输入分别是什么

基于神经网络的人脸识别有哪些算法

上次的人脸识别仿真,我们用的是PCA和SVM方法进行人脸识别,该方法仍属于机器学习领域,未涉及神经网络的知识AI爱发猫 www.aifamao.com。这次使用的方法是基于PCA和BP神经网络对人脸识别。

其中,PCA的功能和上次一致,是用来对20张图片进行降维处理,最终产生8个主成分作为BP神经网络的输入;神经网络的输出层采用4个神经元,用来区分两个不同的人脸;本例的BP神经网络采用8-10-4的三层结构,输入层神经元数量选取8个,隐含层神经元数量选取10个,输出层神经元数量选取4个。

急!请教各位,基于pca和基于2dpca图像融合有什么区别呢? 20

基于二维PCA对人脸进行识别,对图像有很好的降维作用,且识别率比pca好-PCAbasedontwo-dimensionalhumanfacerecognition,theimageisverygoodlandingpeacekeepingrole,andtherecognitionratebetterthanpca[]-含有pca和kpca算法,具有很好的在图像处理方面的应用[]-支持向量机方法,用matlab实现,用于分类检测、模式识别,人脸检测等[]-LinearDiscriminantAnalysis算法,此压缩包中已经带有大量train和test的相关图片,用于做人脸识别。

LDA算法也可以用于其他领域如语音信号处理,此代码仅供研究,请勿用于商业!

[]-双树复小波变换Dual-TreeComplexWaveletTransformPack-version4.3NickKingsbury,CambridgeUniversity,June2003.Thispackincludesthefollowing[]-将BP神经网络用于人脸识别,建立了人脸识别模型,研究了样本采样训练、样本批量训练和样本完整训练三种训练策略对识别率的影响。

所设计的识别模型包括图像压缩、图像抽样、输入矢量标准化、BP神经网络与竞争选择处理过程。

利[]-用matlab实现了2dpca算法,基于ORL人脸数据库,识别率较高[]-一种新的pca方法,2dpca,有中科院的ppt及相关资料。

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

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

%FacerecognitionclearallcloseallclcM=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);[iaib]=size(img);sum=zeros(ia,ib);B=zeros(ia,ib);fori=1:40forj=1:5str=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;endendmeanA=sum/M;cov=zeros(ib);fori=1:Mimg=cel{1,i};B=double(img)-double(meanA);temp=B'*B;cov=double(cov)+double(temp);end[vvdd]=eig(cov);num2=size(vv);%Sortandeliminatethosewhoseeigenvalueiszerov=[];d=[];fori=1:size(vv,2)if(dd(i,i)>1e-4)v=[vvv(:,i)];d=[ddd(i,i)];endendnum1=size(v,2);%sort,willreturnanascendingsequence[Bindex]=sort(d);ind=zeros(size(index));dtemp=zeros(size(index));vtemp=zeros(size(v));len=length(index);fori=1:lendtemp(i)=B(len+1-i);ind(i)=len+1-index(i);vtemp(:,ind(i))=v(:,i);endd=dtemp;v=vtemp;imgafter=[];fori=1:Mforj=1:eignumimg=cel{1,i};temp1=double(img)*double(v(:,j));imgafter=[imgaftertemp1];endcellafter{1,i}=imgafter;imgafter=[];endtimeconsume=etime(clock,tt);testimg=M/traincopy;findimgnum=traincopy;suc=0;%figure(5);fork=1:testimgInputImage=imread(strcat('E:\三维人脸\2dfacedatabase\ORL\s',int2str(k),'\'));testafter=[];forj=1:eignumtemp=double(InputImage)*double(v(:,j));testafter=[testaftertemp];end%FindEuclideandistancee=[];fori=1:MtempA=double(testafter)-double(cellafter{1,i});total=0;forj=1:eignumaa=norm(tempA(:,j));total=total+aa;ende=[etotal];end[Cindex]=sort(e);min=index(1);%%%%%%%计算正确率testingroup=floor((min-1)/traincopy)+1;%%计算要测试的图像所在的组iftestingroup==ksuc=suc+1;elsefprintf('failstomatch!\n',k);end%%%%%%%%%%%%%%%%%%%%显示所有找到的与测试图像为同一个人的图片(可)。

(显示所有与测试图片最小距离的那组,而不是比较出来的最小的5个)%subplot(testimg,findimgnum+1,(k-1)*(findimgnum+1)+1);%subplot(行数,列数,放图像位置的序数)%imshow(InputImage);%%fori=1:findimgnum%temppos=(testingroup-1)*traincopy+i;%str=strcat('E:\三维人脸\testpic\orl\',int2str(temppos),'.pgm');%concatenatestwostringsthatformthenameoftheimage%eval('img1=imread(str);');%subplot(testimg,findimgnum+1,(k-1)*(findimgnum+1)+i+1)%imshow(img1)%drawnow;%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%endsucrate=suc/M*traincopy*100;fprintf('%2.1f%%matchedsuccessfully!\n',sucrate)fprintf('ittakes%3.2fS\n',timeconsume)。

哪位好心大神能给我提供 基于bp神经网络的人脸识别的matlab程序? 不胜感激!

想要识别到什么程度呢是或不是人脸?男/女/不是人脸?老/中/青?我也是刚开始学习这块的知识,你可能需要一定量的数据,经过图像处理之后(比如数字化之类的,不知道说的对不对)变成矩阵,作为训练的输入。

同时将该数据对应的输出,作为训练的期望结果。在大量训练之后,将新的待测图片以同样方法处理,将矩阵作为待测输入,得到的就是待测的输出。

你可以考虑以0,0与0,1作为两种输出来表示是不是人脸;以0,0,0;0,1,0;1,0,0三种输出来表示男/女/不是人脸,以此类推。

我在做的是肌电信号的处理,其实说到底都是将原始的信号(图片也是一种信号嘛)提取出特征,作为训练的输入。都是自学的一点拙见,平时也不玩百度,如果有大神能指点一二小弟感激不尽。分不分的无所谓的。

matlab中BP神经网络OCR识别?

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

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

所以可以考虑找一个更好的描述特征的方法,比如HoG(方向梯度直方图)。

HoG,简单说就是,相邻的两个像素值做个减法,就可以表示颜色的变化,那么一个像素周围,上下、左右各有两个像素,就可以分别做两个减法,得到两个值,就像力学里两个力可以合并一样,这两个值也可以合并,得到方向,和大小(就是梯度),这样就有了一个像素的特征。

但是特征太多计算量太大,就用统计的方法减少下特征,首先把图片划分成网格的形式,就像是在图像上画围棋线一样,然后每个方格内单独统计一下,方向在0-20角度内的像素的梯度的和是多少,依次类推,就得到了直方图,如果以20度为一个直方的话,那么180度就可以划分成9个直方,也就是9个特征,这样一个方格内的特征数量就与像素的数量无关了,而是固定了的。

然后就是关于HoG的其他手段了,比如为了消除光照变化,可以对特征向量做归一化等。

另外还可以对HoG可视化,在每个方格内,用线的方向和长度代替特征的方向和梯度,最后呈现的效果是,有若干个方格,每个方格内都好像有一个沿原点对称的星星,这样做对分析算法效果有一定帮助。

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

计算机视觉主要包括二值化、滤波器、特征检测、特征匹配等一些基础的手段,然后就是图像滤镜、图像分割、图像识别、图像生成等具体的应用算法。

由于近年来计算成本降低导致神经网络的再度崛起,计算机视觉的研究热点已经转为深度神经网络的各种改进和性能优化上了,像HoG已经是05年的事情了。

关于车牌识别(LPR),如果环境不复杂,是可以做到接近100%的准确率的,如果环境较为复杂,95%以上准确率应该是可以做到的。总的来说,基本已经实现应用落地和商用了。

现在的方法基本都是深度学习,端到端一气呵成,无需专门提取特征,传统的模式识别方法已经GG。说的比较细。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值