用MATLAB实现人脸识别

您所在的位置:网站首页 人像追踪源码 用MATLAB实现人脸识别

用MATLAB实现人脸识别

2023-09-03 18:46| 来源: 网络整理| 查看: 265

1、人脸识别技术的细节

一般来说,人脸识别系统包括图像提取、人脸定位、图形预处理、以及人脸识别(身份确认或者身份查找)。系统输入一般是一张或者一系列含有未确定身份的人脸图像,以及人脸数据库中的若干已知身份的人脸图像或者相应的编码,而其输出则是一系列相似度得分,表明待识别的人脸的身份。

2、人脸识别技术的广泛应用

一项技术的问世和发展与人类的迫切需求是密切相关的,快速发展的社会经济和科学技术使得人类对安全(包括人身安全、隐私保护等)得认识越来越重视。人脸识别得一个重要应用就是人类的身份识别。一-般来说, 人类得身份识别方式分为三类:

1. 特征物品,包括各种证件和凭证,如身份证、驾驶证、房门钥匙、印章等; 2. 特殊知识,包括各种密码、口令和暗号等;

3、人类生物特征

包括各种人类得生理和行为特征,如人脸、指纹、手形、掌纹、虹膜、DNA、签名、语音等。前两类识别方式属于传统的身份识别技术,其特点是方便、快捷,但致命的缺点是安全性差、易伪造、易窃取。特殊物品可能会丢失、偷盗和复制,特殊知识可以被遗忘、混淆和泄漏。相比较而言,由于生物特征使人的内在属性,具有很强的自身稳定性和个体差异性,因此生物特征是身份识别的最理想依据。基于以上相对独特的生物特征,结合计算机技术,发展了众多的基于人类生物特征的身份识别技术,如DNA识别技术、指纹识别技术、虹膜识别技术、语音识别技术和人脸识别技术等。生物识别技术在上个世纪已经有了一定得发展,其中指纹识别技术已经趋近成熟,但人脸识别技术的研究还处于起步阶段。指纹、虹膜、掌纹等识别技术都需要被识别者的配合,有的识别技术还需要添置复杂昂贵的设备。人脸识别可以利用已有的照片或是摄像头远距离捕捉图像,无需特殊的采集设备,系统的成本低。并且自动人脸识别可以在当事人毫无觉察的情况下完成身份确认识别工作,这对反恐怖活动有非常重要的意义。基于人脸识别技术具有如此多的优势,因此它的应用前最非常广阔,已成为最具潜力的生物特征识别技术之一。

4、matlab分析人脸方法介绍

人脸识别之一:查找图片中的人脸并用方框圈出 这种大致步骤为:获取RGB图片—>图像处理—>人脸识别。

function Rer=Re() %Rer=0;%%%0为初始值,若成功识别,则会变为1,2,3,4 I=imread('face.jpg');%%被识别图片存储路径,要用绝对路径!! %%%%%%%%%%%%%%%%%算法封装,可以看作一个黑盒子%%%%%%%%%%%%%%%% O=rgb2ntsc(I); G=O(:,:,2); [m n]=size(G); U=zeros(m,n); for i=1:m for j=1:n if G(i,j)>0.03&&G(i,j)m*n/27 %%%%%每个程序都会经过这个,在96行结束,未能识别人脸 B1=bwareaopen(C,Sm); k_y1=m;k2=m;l2=n; for i=1:m if any(B1(i,:))==1 k_y1=i; break end end for i=k_y1:m if B1(i,:)==0 k2=i; break end end for j=1:n if any(B1(:,j))==1 l_y1=j; break end end for j=l_y1:n if B1(:,j)==0 l2=j; break end end k_y=k2-k_y1; l=l2-l_y1; if k_y>.5*l&&k_y.3 B2=bwareaopen(I1,floor(.5*Sm)); g_y1=m1; g2=m1; for j=1:m1 if any(B2(:,j))==1 g_y1=j; break end end for j=g_y1:m1 if B2(:,j)==0 g2=j; break end end g=g2-g_y1; figure; imshow(I,'border','tight','InitialMagnification','fit'); hold on h1=line([l_y1+g_y1,l_y1+g_y1+g],[k_y1,k_y1]); h2=line([l_y1+g_y1+g,l_y1+g_y1+g],[k_y1,k_y1+1.1*g]); h3=line([l_y1+g_y1+g,l_y1+g_y1],[k_y1+1.1*g,k_y1+1.1*g]); h4=line([l_y1+g_y1,l_y1+g_y1],[k_y1+1.1*g,k_y1]); h=[h1 h2 h3 h4]; set(h,'Color',[1 0 0],'LineWidth',3); gfframe=getframe(gcf); gffim=frame2im(gfframe); imwrite(gffim,'recg_result.jpg','jpg'); %%%%存储图片命名,为了保存画红框的图片 Rer=1; %fid=fopen('re.txt','w'); %fprintf(fid,'%d',Rer); %fclose(fid); else%%%未能满足最近一个if判断,不能识别人脸 figure; imshow(I); imwrite(I,'face_result.jpg','jpg'); %%%%存储图片命名 Rer=2; %fid=fopen('re.txt','w'); %fprintf(fid,'%d',Rer); %fclose(fid); end else figure; imshow(I); imwrite(I,'face_result.jpg','jpg'); %%%%存储图片命名 Rer=3; %fid=fopen('re.txt','w'); %fprintf(fid,'%d',Rer); %fclose(fid); end else figure; imshow(I); imwrite(I,'face_result.jpg','jpg'); %%%%存储图片命名 Rer=4; %fid=fopen('re.txt','w'); %fprintf(fid,'%d',Rer); %fclose(fid); end end

人脸识别方法一效果图 效果图

人脸识别之二:由输入的人像识别出图片中人像 大致步骤为:获取RGB图片—>转换为灰度图像—>图像处理—>人脸识别。

clear all clc %获取原始图片 i=imread('face.jpg'); I=rgb2gray(i); BW=im2bw(I); %利用阈值值变换法将灰度图像转换成二进制图像 figure(1); imshow(BW); %最小化背景 [n1 n2]=size(BW); r=floor(n1/10); c=floor(n2/10); x1=1;x2=r; s=r*c; for i=1:10 y1=1;y2=c; for j=1:10 if(y2=9*c) || (x1==1 || x2==r*10) loc=find(BW(x1:x2,y1:y2)==0); [o p]=size(loc); pr=o*100/s; if prmx && (BB2(1,k)/BB2(1,k+1))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3